书生浦语训练营2期-第二节课笔记作业

目录

一、前置准备

1.1 电脑操作系统:windows 11

1.2 前置服务安装(避免访问127.0.0.1被拒绝)

1.2.1 iis安装并重启

1.2.2 openssh安装

1.2.3 openssh服务更改为自动模式

1.2.4 书生·浦语平台 ssh配置

1.3  补充(前置服务ok仍被拒绝)

二、部署InternLM2-Chat-1.8B模型进行智能对话

2.1 配置基础环境

2.2 下载 InternLM2-Chat-1.8B 模型

2.3 运行结果

三、部署八戒-Chat-1.8B模型进行智能对话

3.1 配置基础环境

3.2 demo并运行

3.3 运行结果

四、使用 Lagent 运行 InternLM2-Chat-7B 模型

4.1 配置基础环境

4.2  使用 Lagent 运行 InternLM2-Chat-7B 模型为内核的智能体

4.3  运行结果

4.4 作业-huggingface_hub python 包下载InternLM2-Chat-7B 的 config.json 文件

 五、部署 浦语·灵笔2 模型

5.1 图文写作

5.2 图片理解

六、课程总结

6.1 课程收获

6.1.1 关于Lagent


一、前置准备

1.1 电脑操作系统:windows 11

1.2 前置服务安装(避免访问127.0.0.1被拒绝)

1.2.1 iis安装并重启

操作:控制面板----程序和功能----启用或关闭windows功能----Internet Information Services &  Internet   Information services可承载的Web核心

输入127.0.01,出现以下界面就是成功了

1.2.2 openssh安装

操作:添加可选功能----openssh

1.2.3 openssh服务更改为自动模式

操作:cmd----service.msc----openssh切换成自动方式

1.2.4 书生·浦语平台 ssh配置

(1)终端生成SSH密钥

ssh-keygen -t rsa

(2)ssh公钥复制到InternStudio

密钥放在C:\Users\Administrator/.ssh/id_rsa下,进入到目录下进行查看、复制

type id_rsa.pub

(3)点击首页的配置SSH Key,将公钥复制进去

(4)本地终端ssh连接

操作:平台点击ssh连接,复制登录命令至终端

1.3  补充(前置服务ok仍被拒绝)

1.3.1 确认是否设置隧道,端口号是ssh连接的端口号,如果要输密码就是ssh的密码,我这边跳过密码了。

ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38894

1.3.2 确认6006端口是否被占用,占用就杀掉进程

netstat ano | findstr : 6006

 

1.3.3 防火墙是否关闭

二、部署InternLM2-Chat-1.8B模型进行智能对话

2.1 配置基础环境

conda activate demo

pip install huggingface-hub==0.17.3
pip install transformers==4.34 
pip install psutil==5.9.8
pip install accelerate==0.24.1
pip install streamlit==1.32.2 
pip install matplotlib==3.8.3 
pip install modelscope==1.9.5
pip install sentencepiece==0.1.99

2.2 下载 InternLM2-Chat-1.8B 模型

(1)创建2个python脚本

mkdir -p /root/demo
touch /root/demo/cli_demo.py
touch /root/demo/download_mini.py
cd /root/demo

 (2)下载模型参数文件

import os
from modelscope.hub.snapshot_download import snapshot_download

# 创建保存模型目录
os.system("mkdir /root/models")

# save_dir是模型保存到本地的目录
save_dir="/root/models"

snapshot_download("Shanghai_AI_Laboratory/internlm2-chat-1_8b", 
                  cache_dir=save_dir, 
                  revision='v1.1.0')

 python /root/demo/download_mini.py

(3)下载模型(cli_demo.py)

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name_or_path = "/root/models/Shanghai_AI_Laboratory/internlm2-chat-1_8b"

tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True, device_map='cuda:0')
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='cuda:0')
model = model.eval()

system_prompt = """You are an AI assistant whose name is InternLM (书生·浦语).
- InternLM (书生·浦语) is a conversational language model that is developed by Shanghai AI Laboratory (上海人工智能实验室). It is designed to be helpful, honest, and harmless.
- InternLM (书生·浦语) can understand and communicate fluently in the language chosen by the user such as English and 中文.
"""

messages = [(system_prompt, '')]

print("=============Welcome to InternLM chatbot, type 'exit' to exit.=============")

while True:
    input_text = input("\nUser  >>> ")
    input_text = input_text.replace(' ', '')
    if input_text == "exit":
        break

    length = 0
    for response, _ in model.stream_chat(tokenizer, input_text, messages):
        if response is not None:
            print(response[length:], flush=True, end="")
            length = len(response)

2.3 运行结果

conda activate demo
python /root/demo/cli_demo.py 
 


三、部署八戒-Chat-1.8B模型进行智能对话

3.1 配置基础环境

(1)进入环境并用Git获取demo

conda activate demo

cd /root/
git clone https://gitee.com/InternLM/Tutorial -b camp2
cd /root/Tutorial

3.2 demo并运行

(1)windows终端运行(38894替换成自己的端口)

ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38894

(2)平台运行

python /root/Tutorial/helloworld/bajie_download.py

streamlit run /root/Tutorial/helloworld/bajie_chat.py --server.address 127.0.0.1 --server.port 6006

3.3 运行结果


四、使用 Lagent 运行 InternLM2-Chat-7B 模型

4.1 配置基础环境

(1)进入conda环境

conda activate demo

 (2)下载Lagent相关代码并安装

git clone https://gitee.com/internlm/lagent.git
cd /root/demo/lagent
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac
pip install -e . 

4.2  使用 Lagent 运行 InternLM2-Chat-7B 模型为内核的智能体

(1)进入lagent文件夹,设置软链接快速访问方式

cd /root/demo/lagent

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b

(2)更改模型路径

修改进入lagent/examples/internlm2_agent_web_demo_hf.py第71行

value='/root/models/internlm2-chat-7b'

(3)运行(前提:已经设置隧道。出现拒绝访问参考 1.2、1.3 章节

streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006

 4.3  运行结果

4.4 作业-huggingface_hub python 包下载InternLM2-Chat-7B 的 config.json 文件

(1)安装huggingface_hub

pip install -U huggingface_hub

(2)创建下载脚本

(3)运行


 五、部署 浦语·灵笔2 模型

5.1 图文写作

(1)进入conda环境

conda activate demo

(2)补充环境包

pip install timm==0.4.12 sentencepiece==0.1.99 markdown2==2.4.10 xlsxwriter==3.1.2 gradio==4.13.0 modelscope==1.9.5

(3)下载 InternLM-XComposer 仓库 相关的代码资源

cd /root/demo
git clone https://gitee.com/internlm/InternLM-XComposer.git
cd /root/demo/InternLM-XComposer
git checkout f31220eddca2cf6246ee2ddf8e375a40457ff626

 (4)构造软链接

ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-7b /root/models/internlm-xcomposer2-7b
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm-xcomposer2-vl-7b /root/models/internlm-xcomposer2-vl-7b

 (5)启动 InternLM-XComposer

cd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_composition.py  \
--code_path /root/models/internlm-xcomposer2-7b \
--private \
--num_gpus 1 \
--port 6006

(6)访问127.0.0.1:6006

 5.2 图片理解

(1)进入conda环境

(2)启动 InternLM-XComposer2-vl

cd /root/demo/InternLM-XComposer
python /root/demo/InternLM-XComposer/examples/gradio_demo_chat.py  \
--code_path /root/models/internlm-xcomposer2-vl-7b \
--private \
--num_gpus 1 \
--port 6006

 (3)访问127.0.0.1:6006


六、课程总结

6.1 课程收获

6.1.1 关于Lagent

一个轻量级的开源框架,帮助用户高效构建基于大型语言模型(LLM)的智能代理。它还提供了一些典型的工具来增强LLM的功能。

主要特点包括高效的推理引擎支持、对多种代理的支持、极简易的扩展能力以及支持多种LLM,如GPT-3.5/4、LLaMA 2和InternLM等。

Lagent的设计旨在提高扩展性和可用性,允许用户通过简单的继承和装饰来创建个性化的工具集,从而使模型到智能代理的转换只需一步操作。此外,Lagent的文档也经过了全面的升级,覆盖了完整的API文档。

Lagent支持通过简单的代码定义智能代理、动作以及与LLM的交互,使得构建智能代理变得更加直接和灵活。

当前,LLM Agent正处于实验和概念验证阶段。在实际使用中还面临着诸多挑战,如处理任务时的循环问题、记忆模块的策略问题以及因幻觉问题而错误使用工具的问题等。这些问题的解决需要LLM本身的进一步发展和Agent框架的优化。然而,围绕LLM Agent的生态正在逐渐丰富,探索Agent模型、框架以及应用的研究正在积极进行中,旨在提升Agent的能力,使其能更好地应对现实世界的复杂性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/793819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Thread的基本用法

目录 正文: 1.线程创建 2.线程休眠 3.获取线程实例 4.线程中断 5.线程等待join() 总结: 正文: 1.线程创建 线程创建是多线程编程的第一步,它涉及到创建一个可以并行执行的新线程。在Java中,有几种不同的方法可…

【Laravel】08 RESTful风格

【Laravel】08 视图模板动态渲染数据 1. RESTful风格 1. RESTful风格 (base) ➜ example-app php artisan make:model Blog -mc Model created successfully. Created Migration: 2024_04_01_143040_create_blogs_table Controller created successfully.(base) ➜ example-…

深入理解微信小程序的自定义组件模型

微信小程序作为一个独立的应用开发平台,提供了丰富的组件库供开发者使用。但在某些复杂的业务场景下,我们需要根据自身的需求来定制化组件。小程序为我们提供了自定义组件的能力,让我们可以更灵活地构建应用界面。 如果对微信小程序自定义组件还不太清楚的,请参考 …

简述JMeter实现分布式并发及操作

为什么要分布式并发? JMeter性能实践过程中,一旦进行高并发操作时就会出现以下尴尬场景,JMeter客户端卡死、请求错误或是超时等,导致很难得出准确的性能测试结论。 目前知道的有两个方法可以解决JMeter支撑高并发: …

pta 1036 跟奥巴马一起编程

1036 跟奥巴马一起编程 分数 15 全屏浏览 切换布局 作者 CHEN, Yue 单位 浙江大学 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启…

阿里 对象存储OSS 云存储服务

1.简介 对象存储服务(Object Storage Service ,OSS) 是一种 海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。 2.如何使用。参考文档 看文档,说的…

【python从入门到精通】-- 第四战:语句汇总

🌈 个人主页:白子寰 🔥 分类专栏:python从入门到精通,魔法指针,进阶C,C语言,C语言题集,C语言实现游戏👈 希望得到您的订阅和支持~ 💡 坚持创作博文…

数据库安装的一些内容

这两天在研究整理上课数据库和web要求安装操作的软件 晚点再写下去 1.SQL server 2012 安装的过程中出现不少问题,根据网上的教程以及老师发的实验指导书首先安装SQL server (1)在安装规则检测之后,没有按照步骤进入下一步——设置角色; …

docker从入门到熟悉

一、什么是docker? Docker是一个用于开发,交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的快速交付…

GPT3, llama2, InternLM2技术报告对比

GPT3(September 22, 2020)是大语言应用的一个milestone级别的作品,Llama2(February 2023)则是目前开源大模型中最有影响力的作品,InternLM2(2023.09.20)则是中文比较有影响力的作品。…

Linux文件搜索工具(gnome-search-tool)

opensuse下安装: sudo zypper install gnome-search-tool 操作界面:

JNews Theme最新版本:新闻网站首选的WordPress主题,功能强大且灵活

JNews Theme最新版本:新闻网站的首选WordPress主题 在当今数字化时代,新闻网站扮演着至关重要的角色。为了打造一个吸引读者、功能齐全的新闻平台,选择一款合适的WordPress主题显得尤为关键。而JNews Theme最新版本正是新闻网站的首选WordPr…

MacOS - brew 和 brew cask 有什么区别?

brew 是 ruby 的包管理,后来看 yangzhiping 的博客介绍了 brew cask,感觉 cask 是更好的关联关系管理,但是,我后来使用过程中,发现很多软件 brew cask 里没有,但是 brew 里面倒是挺多!今天来给说…

java面试题(Redis)

事情干的差不多了,开刷面试题和算法,争取在短时间内快速成长,理解java面试的常见题型 一、redis使用场景: 缓存:穿透、击穿、雪崩 双写一致、持久化 数据过期、淘汰策略 分布式锁:setnx、redisson 计数…

【JavaScript】函数 ⑦ ( 函数定义方法 | 命名函数 | 函数表达式 )

文章目录 一、函数定义方法1、命名函数2、函数表达式3、函数表达式示例 一、函数定义方法 1、命名函数 定义函数的标准方式 就是 命名函数 , 也就是之前讲过的 声明函数 ; 函数 声明后 , 才能被调用 ; 声明函数的语法如下 : function functionName(parameters) { // 函数体 …

计算机网络:数据链路层 - 可靠传输协议

计算机网络:数据链路层 - 可靠传输协议 可靠传输概念停止-等待协议 SW回退N帧协议 GBN选择重传协议 SR 可靠传输概念 如下所示,帧在传输过程中受到干扰,产生了误码。接收方的数据链路层,通过真伪中的真检验序列 FCS 字段的值&…

ROS 2边学边练(13)-- 创建一个功能包

前言 功能包是啥 简单理解,功能包就是一个文件夹,一个具备一定功能的文件夹,一个有组织有结构的文件夹,一个能方便分享给其他人使用的文件夹,比如我们的小海龟功能包,它就是一个文件夹,名字叫t…

【每日刷题】Day2

1. 26. 删除有序数组中的重复项 - 力扣(LeetCode) int removeDuplicates(int* nums, int numsSize) { int* newnums (int*)malloc(numsSize*sizeof(int)); int k 0; int i 0; int pf1 0; int pf2 1; if(numsSize1) { newnums[k] nums[0]; } if(nu…

Swagger2配置

Swagger2 Swagger2简介 Swagger 是一个规范和完整的框架,用于生成、描述、功能调用测试和可视化 RESTful 风格的在线的接口文档工具。 Swagger 是一套基于 OpenAPI 规范(OpenAPI Specification,OAS)构建的开源工具。 Swagger 提…

WPS 不登录无法使用基本功能的解决办法

使用wps时,常常有个比较让人烦恼的事,在不登录的情况下,新建或者打开文档时,wps不让你使用其基本的功能,如设置字体等,相关界面变成灰色,这时Wps提示用户登录注册或登录,但我又不想登…