1.前期准备:
创建虚拟机不再展示,首先进入虚拟机,打开Terminal,使用下述命令创建名称为langgpt,python版本为3.10的环境:
conda create -n langgpt python=3.10 -y
激活虚拟环境:
conda activate langgpt
之后使用下述命令,依次安装依赖包:
# 安装一些必要的库
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y
# 安装其他依赖
pip install transformers==4.43.3
pip install streamlit==1.37.0
pip install huggingface_hub==0.24.3
pip install openai==1.37.1
pip install lmdeploy==0.5.2
运行下述命令,创建项目路径:
## 创建路径
mkdir langgpt
## 进入项目路径
cd langgpt
安装必要软件:
apt-get install tmux
2.模型部署:
本人使用Intern-studio开发机进行开发,可以直接在路径/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b
下找到模型,不使用Inern-studio开发机的可以在huggingface上获取模型,地址为:https://huggingface.co/internlm/internlm2-chat-1_8b
可以使用如下脚本下载模型:
from huggingface_hub import login, snapshot_download
import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
login(token=“your_access_token")
models = ["internlm/internlm2-chat-1_8b"]
for model in models:
try:
snapshot_download(repo_id=model,local_dir="langgpt/internlm2-chat-1_8b")
except Exception as e:
print(e)
pass
由于服务需要持续运行,需要将进程维持在后台,所以这里使用tmux
软件创建新的命令窗口。命令为:
tmux new -t langgpt
创建完成后,运行下述命令进入新的命令窗口:
tmux a -t langgpt
进入命令窗口,需要先激活环境,命令同上:
conda activate langgpt
之后使用LMDeploy进行部署,命令如下:
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2
效果如下图:
部署成功后可以输入Ctrl+b+d退出当前界面,然后使用下述命令测试模型部署是否成功:
from openai import OpenAI
client = OpenAI(
api_key = "internlm2",
base_url = "http://0.0.0.0:23333/v1"
)
response = client.chat.completions.create(
model=client.models.list().data[0].id,
messages=[
{"role": "system", "content": "请介绍一下你自己"}
]
)
print(response.choices[0].message.content)
效果如下图:
3.图形化界面调用:
InternLM部署完成后,可利用提供的chat_ui.py
创建图形化界面。
首先从Github上调用项目:
git clone https://github.com/InternLM/Tutorial.git
然后进入项目所在的路径:
cd Tutorial/tools
进入路径后,运行如下脚本:
python -m streamlit run chat_ui.py
然后进行之前操作过的端口映射,参考命令为:
ssh -p {ssh端口,从InternStudio获取} root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:8501 -o StrictHostKeyChecking=no
效果如下图:
最后打开地址就进入了可视化界面:
首先可以让它进行自我介绍:
可以加入系统提示改变它的自我认知:
为实现数据对比,利用下述LangGPT优化提示词使其完成正确的数值大小对比:
# Role: 吹牛逼大师
## Background:
我是一个数学家,能够正确比较两个数字的大小,无论是否有小数点
## Attention:
## Profile:
- 姓名:Loki
- 爱好:精确
- 座右铭:正确
### Skills:
- 精确对比两个带有小数点的数值大小
## Goals:
## Constrains:
## Workflow:
1. 倾听对方话语
2. 搜索相关知识
3. 精确判断两个带有小数点的数值大小
## OutputFormat:
-给出大小比较
## Initialization
系统提示输入后的对比结果如下图所示:
可以看到还真是有用,不错!!!