所以这篇随笔主要记录一下作业中的步骤,另外拆解一下 封装的一些东西,防止在本地复现时出现各种问题。
作业要求
- 基础作业
- 使用
InternLM2-Chat-1.8B
模型生成 300 字的小故事 - 熟悉
huggingface
下载功能,使用huggingface_hub
python 包,下载InternLM2-Chat-7B
的config.json
文件到本地(需截图下载过程) - 完成
浦语·灵笔2
的图文创作
及视觉问答
部署(需截图) - 完成
Lagent
工具调用数据分析
Demo 部署(需截图):
- 使用
对话Demo:InternLM2-Chat-1.8B 智能对话(使用 InternLM2-Chat-1.8B
模型生成 300 字的小故事)
搭建环境
首先是搭建环境这里,官方教程说:
进入开发机后,在 `terminal` 中输入环境配置命令 (配置环境时间较长,需耐心等待):
studio-conda -o internlm-base -t demo
# 与 studio-conda 等效的配置方案
# conda create -n demo python==3.10 -y
# conda activate demo
# conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7 -c pytorch -c nvidia
studio-conda
命令
那么,这句studio-conda -o internlm-base -t demo
究竟是什么呢?我们直接查看一下/root/.bashrc
,发现里面就一句:
source /share/.aide/config/bashrc
继续查看/share/.aide/config/bashrc
,这个可长了,这里给出最后两句:
export HF_ENDPOINT='https://hf-mirror.com'
alias studio-conda="/share/install_conda_env.sh"
alias studio-smi="/share/studio-smi"
这个文件就是它设置代码环境的了。脚本里面定义了几个变量和函数,之后就直接调用dispatch函数了。之后的流程如下:
- 因为我们给的参数是
-o internlm-base -t demo
,所以会直接从dispatch这里执行脚本中的clone
函数,参数是internlm-base demo
。 CONDA_HOME
会通过HOME_DIR=/root; CONDA_HOME=$HOME_DIR/.conda
指定为/root/.conda
,即工作区下的文件夹。- 然后,将
/share/pkgs.tar.gz
解压至目录,再通过conda create clone的方式克隆环境完成环境的搭建。
所以这个命令实际上是将预配置好的环境打包解压克隆了一遍,和教程中的等效代码还是有较大不同的。
然后需要我们执行以下代码配置环境。轻轻吐槽一下既然都是直接解压并conda clone了,为什么不直接做一个装好这些库的conda环境压缩包。
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
查看环境
base
环境下面还是啥都没有的,我们来看看demo
环境下面都有些什么:
python 3.10.13 h955ad1f_0 defaults
pytorch 2.0.1 py3.10_cuda11.7_cudnn8.5.0_0 pytorch
pytorch-cuda 11.7 h778d358_5 pytorch
pytorch-mutex 1.0 cuda pytorch
torchaudio 2.0.2 py310_cu117 pytorch
torchtriton 2.0.0 py310 pytorch
torchvision 0.15.2 py310_cu117 pytorch
下载模型
这里教程直接创建了share的软链接,应该是怕大家都下一遍占用带宽和硬盘。本地部署的时候需要重新去 huggingface 或者 modelscope 下载模型 internlm2-chat-7b,步骤之前已经详细写过了
ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b
模型推理
我们要执行的demo位于/root/demo/lagent/examples/internlm2_agent_web_demo_hf.py
,首先要更改代码中耦合的模型文件(其实不改也行,顶多会重新从huggingface中下载一遍模型):
之后使用strealit运行该文件:
streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006
再转发端口:
# 从本地使用 ssh 连接 studio 端口,将下方端口号 38374 替换成自己的端口号
ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38374
端口转发成功后会弹出“是否允许ssh.exe访问专用网络”的窗口,同意即可。在浏览器中输入[http://localhost:6006/]打开demo.。首次加载模型会比较慢:
出现底部文字输入框后即模型加载完毕,此时终端中模型检查点全部加载完成:
不要忘记勾选“数据分析”选项:
运行结果为:
避坑指北
这里我说一下我碰到的坑吧:
- 命令太长导致执行的命令与预期不一致。
创建软连接这一步,ln -s /root/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-7b /root/models/internlm2-chat-7b
这个命令太长了,在vscode的终端里会自动只执行了一段,实际上链接没有创建成功,导致streamlit报错
huggingface_hub.utils._validators.HFValidationError: Repo id must be in the form 'repo_name' or 'namespace/repo_name': '/root/models/internlm2-chat-7b'. Use `repo_type` argument if needed.
- ssh连接不转发端口
这里是教程没有认真看,直接执行ssh root@ssh.intern-ai.org.cn
了,该命令不能转发端口。需要执行教程里的ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn
才能将服务器的6006端口转发至本地。当然后面发现code-server实在是太强大了。我直接在它的终端里点击打开链接,它会打开https://a-aide-20240330-一串字母-160311.intern-ai.org.cn/proxy/6006/
,是直接就能远程访问体验demo的。
当然,官方也说了更推荐使用ssh转发端口:
(使用 VSCode 等工具进行端口转发) 直接访问开发机内 http/https 服务可能会遇到代理问题,推荐在本地机器终端执行命令
图文多模态大模型Demo(完成 浦语·灵笔2
的 图文创作
及 视觉问答
部署(需截图))
搭建环境
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
cd /root/demo/InternLM-XComposer
git checkout f31220eddca2cf6246ee2ddf8e375a40457ff626
可能大家都想学习AI大模型技术,也想通过这项技能真正达到升职加薪,就业或是副业的目的,但是不知道该如何开始学习,因为网上的资料太多太杂乱了,如果不能系统的学习就相当于是白学。为了让大家少走弯路,少碰壁,这里我直接把全套AI技术和大模型入门资料、操作变现玩法都打包整理好,希望能够真正帮助到大家。
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓