参考内容:

1.LangGPT社区:‌‌‬⁠⁠⁠‌⁠‬‌⁠‍‬⁠‬‬‬‌‌‌‍‌‌‬⁠LangGPT结构化提示词 - 飞书云文档
2.浦语开源文档书生浦语-浦语提示词工程实践
3.文档:系统论述文章: 构建高性能 Prompt 之路——结构化 Prompt


步骤

step0:前期准备
0.1:创建虚拟环境->激活虚拟环境->安装必要包文件
0.2:创建项目路径->进入项目
0.3:安装必要软件,如tmux

step1:模型部署模型下载->部署模型为OpenAI server->图形化界面调用
‬⁠⁠⁠
step3:langgpt结构化提示词⁠‬编写⁠‍‬⁠‬‬‬‌‌‌‍‌‌
偷懒大法:GPTS有LangGPT提示词专家,用大模型生成即可


tmux扫盲

tmux可以在终端中创建终端,将进程维持在后台。

当我们下载模型时,使用tmux在后台下载,即便我们断开ssh连接,下载也不会中断。

step1:部署模型为OpenAI server

tmux常见命令

1.创建窗口命令

PS:t表示target(目标),用于指定会话、窗口或面板的名称

1
tmux new -t <session_name>

PS:创建完成后,运行下面的命令进入新的命令窗口(首次创建自动进入,之后需要连接):其中aattach 的简写

1
tmux a -t <session_name>

2.查看当前 tmux 会话

1
tmux ls

3.连接到特定的 tmux 会话

1
tmux attach -t <session_name>

<session_name> 替换为你要连接的会话的实际名称或编号。

4.杀死整个 tmux 会话:

1
tmux kill-session -t <session_name>

5.退出tmux:

Ctrl+B进入tmux的控制模式,然后按d退出窗口连接

模型部署

进入命令窗口后,需要在新窗口中再次激活环境,命令参考0.1节。然后,使用LMDeploy进行部署,参考如下命令:

使用LMDeploy进行部署,参考如下命令:

1
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2

更多设置参考:https://lmdeploy.readthedocs.io/en/latest/index.html

部署成功后,可以利用如下脚本调用部署的InternLM2-chat-1_8b模型并测试是否部署成功。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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)

服务启动完成后,可以按Ctrl+B进入tmux的控制模式,然后按D退出窗口连接,更多操作参考


作业:

基础任务 (完成此任务即完成闯关):

  • 背景问题:近期相关研究发现,LLM在对比浮点数字时表现不佳,经验证,internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题,例如认为13.8<13.11

  • 任务要求:利用LangGPT优化提示词,使LLM输出正确结果。完成一次并提交截图即可

使用GPTS中LangGPT提示词专家,配合我们的需求生成LangGPT结构化提示词


生成结果如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Role: 数学助手

## Profile
- author: LangGPT
- version: 1.0
- language: 中文
- description: 一个能够进行基本数学加减法运算,并能够比较两个数字大小的助手。

## Skills
1. 能够进行基本的数学加法和减法运算。
2. 能够比较两个数字的大小,并给出相应的判断。
3. 能够理解用户输入的简单数学表达式或问题描述。

## Rules
1. 用户输入可以是任意两个数字或一个包含加法、减法的表达式。
2. 当输入两个数字时,助手应比较它们的大小,并返回结果。
3. 当输入一个加法或减法表达式时,助手应计算出结果并返回。
4. 如果用户输入有误或不符合数学表达式规则,助手应给出提示并要求重新输入。

## Workflows
1. 接收用户输入的数字或数学表达式。
2. 判断输入的类型(两个数字或数学表达式)。
3. 如果是两个数字,执行大小比较,并返回结果。
4. 如果是数学表达式,进行加法或减法计算,返回结果。
5. 如果输入不符合预期格式,返回错误提示,要求用户重新输入。

## Init
1. 向用户介绍助手的功能和使用方法。
2. 提示用户可以输入两个数字进行比较,或输入一个加法、减法表达式进行计算。

加入系统提示词前:
PS:估计InternLM2-chat-1_8b版本太久远了,所以回答不出来🤔

加入系统提示词后:
PS:效果明显变好了😋