轻松玩转书生·浦语大模型demo
大模型及InternLM模型介绍
特点及应用
- 利用大量数据进行训练
- 拥有数十亿甚至数千亿个参数
- 模型在各种任务中展现出惊人的性能
InternLM模型全链路开源
- InternLM是一个开源的轻量级训练框架
- Lagent是一个轻量级、开源的基于大语言模型的智能体(agent)框架
InternLM-Chat-7B智能对话Demo
模型介绍
通过单一代码库,InternLM支持在拥有数千个GPU的大型集群上进行预训练,并在单个GPU上进行微调,同时实现了卓越的性能优化。在1024个GPU上训练时,InternLM可以实现90%的加速效率。
InternLM-7B包含了一个拥有70亿擦上农户的基础模型 和一个为实际场景量身定制的对话模型,该模型具有一下特点:
- 利用数万亿高质量token进行训练,建立了一个强大的知识库
- 支持8K token的上下文窗口长度,使得输入序列更长并增强了推理能力
模型部署
在环境中安装所需要的依赖:
# 升级pip
python -m pip install --upgrade pip
pip install modelscope==1.9.5
pip install transformers==4.35.2
pip install streamlit==1.24.0
pip install sentencepiece==0.1.99
pip install accelerate==0.24.1
下载模型文件
import torch
from modelscope import snapshot_download, AutoModel, AutoTokenizer
import os
model_dir = snapshot_download('Shanghai_AI_Laboratory/internlm-chat-7b', cache_dir='/root/model', revision='v1.0.3')
克隆远程仓库
cd /root/code
git clone https://gitee.com/internlm/InternLM.git
编辑cli_demo.py文件
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name_or_path = "/root/model/Shanghai_AI_Laboratory/internlm-chat-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_name_or_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='auto')
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("User >>> ")
input_text.replace(' ', '')
if input_text == "exit":
break
response, history = model.chat(tokenizer, input_text, history=messages)
messages.append((input_text, response))
print(f"robot >>> {response}")
运行demo
使用vscode运行,可以自动转发端口
streamlit run web_demo.py --server.address 127.0.0.1 --server.port 6006
Lagent智能体工具调用Demo
介绍
Lagent是一个轻量级、开源的基于大预言模型的智能体框架。
克隆远程仓库,并通过 pip install -e 来安装Lagent。
cd /root/code
git clone https://gitee.com/internlm/lagent.git
cd /root/code/lagent
git checkout 511b03889010c4811b1701abb153e02b8e94fb5e # 尽量保证和教程commit版本一致
pip install -e . # 源码安装
之后运行以下代码即可使用
streamlit run /root/code/lagent/examples/react_web_demo.py --server.address 127.0.0.1 --server.port 6006
浦语·灵笔图文创作理解Demo
模型下载
- Hugging Face 下载使用Hugging Face 官方提供的 huggingface-cli 命令行工具。安装依赖:
pip install -U huggingface_hub
huggingface-cli download --resume-download internlm/internlm-chat-7b --local-dir your_path
-OpenXLab可以通过指定模型仓库的地址,以及需要下载的文件的名称,文件所需下载的位置等,直接下载模型权重文件。使用python脚本下载模型首先要安装依赖.
pip instgall -U openxlab
然后就可以直接调用并下载了
from openxlab.model import download
download(model_repo='OpenLMLab/InternLM-7b',model_name='InternLM-7b',output='your local path')
- 使用modelscope中的snapshot_download函数下载模型,第一个参数为模型名称,参数cache_dir为模型的下载路径.
pip install modelscope
pip install transformers
import torch
from modelscope import snapshot_download,AutoModel,AutoTokenizer
import os
model_dir = snapshot_download('Shanghai_AI_Laboratory/internLM-chat-7b',cache_dir='your path',revision='master')
HF_ENDPOINT=https://hf-mirror.com python down_pth.py