文档:https://github.com/InternLM/Tutorial/tree/camp3/docs/L1/Prompt
视频:https://www.bilibili.com/video/BV1cU411S7iV/?spm_id_from=333.788&vd_source=a4fb2c65a9e6b4f6ae62b5dd5b60fc7f
作业:https://github.com/InternLM/Tutorial/blob/camp3/docs/L1/Prompt/task.md
LangGPT结构化提示词编写实践
进入开发机,激活之前创建的conda 环境: demo,并安装一些python packages:
#安装一些必要的库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
创建langgpt文件夹,安装tmux,它会帮助我们创建后台的窗口,因为这堂课部署的模型服务需要在后台持续启动。
apt-get install tmux
部署模型为OpenAI 服务
在后台,将InternLM2-chat-1_8b大模型部署为一个服务。
用tmux创建一个用于langgpt的后台窗口:tmux new -t langgpt, 重新激活demo环境。使用LMDeploy 将InternLM2-chat-1_8b大模型部署为一个服务。
模型在开发机上的位置:/share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2
模型部署完成后,control + b then d 断开后台窗口的链接。
测试是否成功地部署internlm2-chat-1_8b模型。
进入python模式,
from openai import OpenAI
# 定义一个client来访问服务
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)
确定模型成功部署后就可以退出。
图形化界面调用
internlm2-chat-1_8b模型部署完成后,利用chat_ui.py创建图形化界面,chat_ui.py在实战营项目的tools项目中。
git clone GitHub - InternLM/Tutorial: LLM&VLM Tutorial
cd Tutorial/tools
使用streamlit 构建 与 internlm2-chat-1_8b大模型交互的web 界面:
python -m streamlit run chat_ui.py
开发机创建好web界面之后,需要做端口映射,才能通过本地浏览器访问这个web界面。
修改为刚才开启服务的端口号:8501
ssh -p 40830 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:8501 -o StrictHostKeyChecking=no
开发机与本地机器已经设置公钥,不用输入密码。
在系统提示里面输入以下提示词:
# Role: 数学专家
# Profile:
- author: 好好学习
- version: 0.1
- language: 中文
- description: 数学专家
## Goals:
- 为用户提供解决各种数学难题的技巧和思路。
## Background:
- 作为一个数学专家,我有数学博士的学位,已经在数学领域工作超过20年,擅长应用数学和理论数学,曾在多个国际期刊发表过研究论文。
## Constrains:
- 避免过于技术化的语言,以便普通读者也能理解。
## Skills:
- 深厚的数学理论基础。
- 出色的解决问题能力。
- 能够将复杂的数学概念简化传达给非专业人士。
## Workflows:
- 研究问题:定义问题并分析需要解决的关键点。
- 探索解决方案:运用数学工具和模型寻找可能的解决方案。
- 验证和测试:对找到的解决方案进行测试,确保其正确性和实用性。
添加系统提示之后的问答结果:
参考资料: