参考视频:轻松玩转书生·浦语大模型趣味 Demo_哔哩哔哩_bilibili
参考项目:Tutorial/helloworld/hello_world.md at camp2 · InternLM/Tutorial · GitHub
0.任务列表:
创作300字小故事:学习和熟练开发机使用、部署InternLM2-Chat-1.8B
并完成对话(基础)
八戒:部署自定义模型、本地端口映射
lagent:智能体辅助InternLM2-Chat-7B
(进阶)
浦语·灵笔2:多模态图文问答和生成(进阶)
1.创作300字小故事:学习和熟练开发机使用、部署InternLM2-Chat-1.8B
并完成对话(基础)
1.1 基本工作:创建基础环境demo、换源、安装demo所需包
conda create -n demo python==3.10 -y
conda activate demo
python -m pip install --upgrade pip
pip config set global.index-url https://mirrors.cernet.edu.cn/pypi/web/simple
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
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
1.2 下载和启动模型
按路径创建文件夹demo,cli_demo.py和download_mini.py,并进入到对应文件目录中。download_mini.py进行模型InternLM2-Chat-1.8B
下载,cli_demo.py启动模型。完整代码见课程链接Tutorial/helloworld/hello_world.md at camp2 · InternLM/Tutorial · GitHub。执行结果见下图。等待模型加载完成,键入内容示例:请创作一个 300 字的小故事。
mkdir -p /root/demo
touch /root/demo/cli_demo.py
touch /root/demo/download_mini.py
cd /root/demo
2.八戒:部署自定义模型、本地端口映射
2.1 下载模型八戒-Chat-1.8B
键入exit退出第一个demo。
在root文件夹下,下载模型八戒-Chat-1.8B,进入Tutorial文件夹。
cd /root/
git clone https://gitee.com/InternLM/Tutorial -b camp2
# git clone https://github.com/InternLM/Tutorial -b camp2
cd /root/Tutorial
2.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
2.3 本地端口映射
查询端口:Intern Studio平台点击个人开发机的“SSH连接”即可查看端口号和获得密码
打开powershell:输入以下命令后回车,粘贴密码
ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 所查端口号
返回Intern Studio平台Web IDE,点击出现的URL等待加载完成,就可进行对话:你是谁,天蓬元帅是猪吗……
3. Lagent:智能体辅助InternLM2-Chat-7B(进阶)
3.0 Lagent介绍
轻量级、开源的基于大语言模型的智能体(agent)框架。agent是LLM做任务的实体,
agent由记忆,规划,工具,行动,四大模块组。
记忆:一件事怎么做,做的过程是什么样的
规划:做事的大体规划,把大任务分解成多个小任务
工具:做事的东西
行动:用工具干活
3.1 准备工作
关闭开发机,将配置升级为30%A100。
进入开发机,激活demo环境,命令行进入demo文件夹,把lagent下载到demo里,进行安装
conda activate demo
cd /root/demo
git clone https://gitee.com/internlm/lagent.git
# git clone https://github.com/internlm/lagent.git
cd /root/demo/lagent
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac
pip install -e . # 源码安装
3.2 开启lagent
构造软链接快捷访问方式,访问share文件夹里的模型参数
打开 /root/demo/lagent
/examples/internlm2_agent_web_demo_hf.py
文件,将71行模型路径的value值改为
value='/root/models/internlm2-chat-7b'
模型加载:
streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006
本地端口映射,打开URL,步骤同2.3,等待模型加载,勾选“数据分析”,进行实验。
问了高中数学水平的两个问题:函数y=3*x的一阶导数、函数y=3*x在现实世界的最小值
从实验结果来看,模型能看懂概念,有求解简单函数一阶导数和求极值的能力。
问了高等数学水平的两个问题:正弦函数的泰勒展开式是什么、正弦函数的泰勒展开式是什么,不用写代码,并求出该函数在x=0处的极限
第一个问题,自动要编写代码,问题本身涉及近似,没有获得展开后的泰勒级数,进行了三次尝试,都error了。第二个问题直接提示不用写代码,答案正确。
从实验结果来看,模型已能读懂一些高等数学的概念,并能正确回答。
3.3 对比InternLM2-Chat-7B
没有智能体的实验结果
修改1.2中出现的cli_demo.py代码第5行为:
model_name_or_path = "/root/models/internlm2-chat-7b"
测试了三个问题:
提问1:请解方程 2*X=1360 之中 X 的结果。
提问2:函数y=3*x的一阶导数
提问3:正弦函数的泰勒展开式是什么,在x=0处的极限是多少
实验你结果如下:
4. 浦语·灵笔2:多模态图文问答和生成(进阶)
4.0 介绍
4.1 准备工作
升级开发机配置,激活demo环境,安装一些包,下载InternLM-XComposer 仓库 相关的代码资源
conda activate demo
# 补充环境包
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
cd /root/demo
git clone https://gitee.com/internlm/InternLM-XComposer.git
# git clone https://github.com/internlm/InternLM-XComposer.git
cd /root/demo/InternLM-XComposer
git checkout f31220eddca2cf6246ee2ddf8e375a40457ff626
构造软链接快捷访问方式
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
图文生成:启动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
图片理解:启动InternLM-XComposer进行
conda activate demo
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
参考2.3进行端口映射,打开 http://127.0.0.1:6006,图文生成结果如下
图片理解结果如下