前言
本文为书生·浦语大模型实战营的课程笔记系列第二节
笔记
由于配套的说明文档已经记录的相当详细并且图文并茂,这节课丝毫没有记录笔记的必要,所以本文仅仅记录课后作业
基础作业
HF模型下载
目标:熟悉
hugging face
下载功能,使用huggingface_hub
python 包,下载InternLM-20B
的config.json
文件到本地(需截图下载过程)。
这个无需多言,只是基本的命令使用,需要注意的是,由于众所周知的原因,国内直接下载 hugging face
是不行的,这里使用镜像站 hf-mirror。
- 结果图:
浦语7B模型部署demo
目标:使用 InternLM-Chat-7B 模型生成 300 字的小故事(需截图)。
这里我们可以使用两种demo来完成,分别是 cli_demo
和 web_demo
,详细步骤参考配套教学文档,以下为大致总结:
- 环境准备:
- 在 InternStudio 平台选择 A100(1/4) 的配置,使用
Cuda11.7-conda
镜像。 - 打开开发机,进入终端,切换到
bash
环境。 - 使用提供的脚本克隆并激活
pytorch 2.0.1
的conda
环境,然后安装所需依赖。
- 在 InternStudio 平台选择 A100(1/4) 的配置,使用
- 模型下载:
- 复制已准备好的
InternLM
模型到指定目录,或使用modelscope
中的snapshot_download
函数下载模型(推荐,跑满带宽),或在huggingface
、OpenXLab
等处下载。
- 复制已准备好的
- 代码准备:
- 在
/root
路径下新建code
目录,clone
指定版本的代码。 - 在
/root/code/InternLM
目录下新建cli_demo.py
文件,使用transformers
和torch
库运行大模型。 - 修改
/root/code/InternLM/web_demo.py
中的模型路径为本地路径。
- 在
- 终端运行:
- 运行
xxx_demo.py
文件,即可体验InternLM-Chat-7B
模型的对话能力。
- 运行
使用的prompt:帮我生成一个300字的小故事,主角是打工人叫平方君,内容是他通过不断努力升职加薪、当上总经理、出任CEO、迎娶白富美、走上人生巅峰的励志故事
cli_demo
- 结果图:
web_demo
由于 InternStudio 平台的开发机不能直接通过web访问,所以需要做一下端口映射,原理是利用 ssh
做端口转发。
在本地主机运行:
|
|
各部分解释如下:
- ssh: 启动SSH客户端程序。
- -C: 启用压缩。数据传输时进行压缩,提高传输效率。
- -N: 不执行任何命令,主要用于纯粹建立连接。在这里,它告诉SSH客户端不要执行远程命令。
- -g: 允许远程主机连接到本地的转发端口。在这里,它允许其他主机连接到本地端口8008。
- -L 8008:127.0.0.1:8008: 设置本地端口转发。将本地端口8008转发到远程主机的127.0.0.1(即本地主机)的8008端口。
- root@ssh.intern-ai.org.cn: 远程SSH服务器的用户名和主机地址。
- -p 34664: 指定SSH服务器的端口号。
此命令的目的是在本地端口8008
上创建一个SSH隧道,将流量转发到远程服务器上的相同端口,同时允许其他主机通过该远程服务器连接到本地端口。
作业部分:
- 终端命令:
- 结果图:
进阶作业(可选做)
Lagent部署demo
目标:完成
Lagent
工具调用 Demo 创作部署(需截图)
由于涉及到图形化操作,这里只有 web_demo
,详细步骤参考配套教学文档,以下为大致总结:
- 环境准备:
- 沿用之前的环境。
- 模型下载:
- 不再赘述。
- Lagent 安装和修改代码:
- 切换到
/root/code
目录,克隆lagent
仓库,并通过pip install -e .
源码安装。 - 修改
react_web_demo.py
文件,替换为相应代码。
- 切换到
- Demo 运行:
- 在终端运行
streamlit
命令,启动Web
页面。 - 在浏览器中访问
http://127.0.0.1:8008
查看 Demo。 - 选择
InternLM
模型,输入问题,观察Lagent
调度并处理的过程。
- 在终端运行
作业部分:
- 终端命令:
- 结果图:
浦语·灵笔部署demo
目标:完成浦语·灵笔的图文理解及创作部署(需截图)
由于涉及到图形化操作,这里也只有 web_demo
,详细步骤参考配套教学文档,以下为大致总结:
- 环境准备:
- 继续沿用之前的环境。
- 模型下载:
- 用同样的方式,准备
internlm-xcomposer-7b
模型到指定目录。
- 用同样的方式,准备
- 代码准备:
- 在
/root/code
目录下克隆InternLM-XComposer
仓库的代码,切换到指定的 commit 版本,以便对齐教学结果。
- 在
- Demo 运行:
- 在终端运行
web_demo.py
文件,启动Web
页面。 - 在浏览器中访问
http://127.0.0.1:8008
,体验图文理解创作的功能。
- 在终端运行
作业部分: 从终端的log来看,浦语·灵笔的创作流程大致上是先用语言模型生成文章,再选取合适的图片插入点,然后在数据库里根据关键词搜索匹配的图片,之后下载图片,并组合生成一份 markdown
文档。
- 终端命令:
- 结果图1-图文生成:
- 结果图2-多模态对话: