主要任务
- 部署 InternLM2-Chat-1.8B 模型进行智能对话
- 部署实战营优秀作品 八戒-Chat-1.8B 模型
- 通过 InternLM2-Chat-7B 运行 Lagent 智能体 Demo
- 实践部署 浦语·灵笔2 模型
一、部署 InternLM2-Chat-1.8B 模型
配置环境
使用 Intern Studio平台配置开发机
创建Conda虚拟环境,安装所需Python库
下载 InternLM2-Chat-1.8B
模型——利用modelscope.hub.snapshot_download
工具,直接从modelscope社区下载
下载的内容为:
输入python /root/demo/cli_demo.py
命令,执行 Demo 程序:
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)
代码中首先通过transformers.AutoTokenizer
读取文本分割Tokenizer
文件
随后通过transformers.AutoModelForCausalLM
读取因果语言模型文件
model = model.eval()
这行代码将模型设置为评估模式,不修改模型参数
随后通过system_prompt
与while
循环实现对话:
受限于模型量级,推理时间较长,同时存在一定问题,模型推理中系统资源占用:
二、部署实战营优秀作品 八戒-Chat-1.8B 模型
使用git clone
下载模型
在 Web IDE
中执行 bajie_download.py
运行Demo
配置SSH远程访问,实现本地机调用模型Web界面
三、使用 Lagent 运行 InternLM2-Chat-7B 模型——待完成
Lagent 是一个轻量级、开源的基于大语言模型的智能体(agent)框架,支持用户快速地将一个大语言模型转变为多种类型的智能体,并提供了一些典型工具为大语言模型赋能。
Lagent 的特性总结如下:
- 流式输出:提供 stream_chat 接口作流式输出,本地就能演示酷炫的流式 Demo。
- 接口统一,设计全面升级,提升拓展性,包括:
– Model : 不论是 OpenAI API, Transformers 还是推理加速框架 LMDeploy 一网打尽,模型切换可以游刃有余;
– Action: 简单的继承和装饰,即可打造自己个人的工具集,不论 InternLM 还是 GPT 均可适配;
– Agent:与 Model 的输入接口保持一致,模型到智能体的蜕变只需一步,便捷各种 agent 的探索实现; - 文档全面升级,API 文档全覆盖。
克隆源代码并切换分支
git clone https://gitee.com/internlm/lagent.git
git checkout 581d9fb8987a5d9b72bb9ebd37a95efd47d479ac
通过流式运行,并通过端口开启Web访问:
streamlit run /root/demo/lagent/examples/internlm2_agent_web_demo_hf.py --server.address 127.0.0.1 --server.port 6006
智能体能够通过调用Python,实现数学计算
同时智能体具备图像打开功能,但无法实现图像理解
智能体论文助手(Arxiv Search)目前存在问题无法运行
四、实践部署 浦语·灵笔2 模型
图文生成
运行模型及Web页面
运行系统资源占用约35GB显存
根据以下标题:“中国水墨画:流动的诗意与东方美学”,创作长文章,字数不少于800字。请结合以下文本素材:
请对小米SU7汽车进行介绍,创作短文,字数不少于300字。