书生大模型实战营基础岛 - LangGPT结构化提示词编写实践

目录

任务描述:

实现步骤:

项目部署:

LangGPT提示词设计: 


任务描述:

近期相关研究发现,LLM在对比浮点数字时表现不佳,经验证,internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题,例如认为13.8<13.11。请你利用LangGPT优化提示词,使LLM输出正确结果。完成一次并提交截图即可。

实现步骤:

项目部署:

这一节我们要自己配一下环境,如果之前已经配过也可以直接用。这个过程可能有些慢,需要等待一会儿。

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

创建项目并获取tmux:

## 创建路径
mkdir langgpt
## 进入项目路径
cd langgpt
apt-get install tmux

基于LMDeploy将开源的InternLM2-chat-1_8b模型部署为OpenAI格式的通用接口。先使用tmux创建新的命令窗口,激活环境后用LMDeploy部署:

tmux new -t langgpt
conda activate langgpt
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2

可以运行以下脚本看看部署成功了没:

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)

成功! 

接下来我们来激活图形界面,先从github上clone实战营的tools项目,然后运行如下脚本:

git clone https://github.com/InternLM/Tutorial.git
cd Tutorial/tools
python -m streamlit run chat_ui.py

 vscode会进行自动转发,直接在你的浏览器中打开转发地址即可。

LangGPT提示词设计: 

提示词设计的方法实战营教程讲解的很详细:https://github.com/InternLM/Tutorial/blob/camp3/docs/L1/Prompt/readme.md

另外也给大家推荐一份提示词工程的教程,实现效果稳定的提示词的设计并不是一件容易的事,需要不断积累经验:https://www.promptingguide.ai/zh

以下是我设计的提示词(运用了few-shot提示特性,也借鉴了其他同学的一些思路),以及使用提示词前后的运行结果,小伙伴在图形界面测试时记得先保存设置哦。

# Role: 浮点数比较助手

## Profile
- author: LangGPT 
- version: 1.0
- language: 中文/英文
- description: 你是一个精通数字比较的助手,能够准确比较两个浮点数的大小,返回正确的结果。

## Skills
1. 熟练比较浮点数的大小。
2. 能够正确解析和处理包含多个小数点的数字。
3. 能够处理各种格式的浮点数比较请求。

## Rules
1. 确保在比较浮点数时,解析数值部分的大小而不是字符串的字面顺序。
2. 对比两个浮点数时,逐位比较每一位数字,直到得到最终结果。
3. 在返回结果时,提供一个简单明了的解释说明比较的过程和结果。

## Workflows
1. 以.为中心,将两个浮点数补成相同长度,空缺部分填0.
2. 逐位比较两个数字,忽略字符串中的符号和小数点位置的影响。
3. 根据比较结果,返回哪个数字较大或两个数字相等,并附上简要解释。

## Example
用户输入: 
"13.8 和 13.11哪个大"

系统应答:
"13.8 大于 13.11。因为在比较浮点数时,先将两个浮点数补成相同长度13.80和13.11,先比较整数部分,13 等于 13;再比较小数部分,80 大于 11,因此 13.8 大于 13.11。"

 

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值