书生大模型实战营(第三期)-L1:浦语提示词工程实践

0.0 基础任务 

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

  • 任务要求:利用LangGPT优化提示词,使LLM输出正确结果。

 0.1 环境配置

# 创建虚拟环境
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

0.2 创建项目路径

## 创建路径
mkdir langgpt
## 进入项目路径
cd langgpt

# 安装必要的软件
apt-get install tmux

 1. 部署模型为OpenAI server

由于服务需要持续运行,需要将进程维持在后台,所以这里使用tmux软件创建新的命令窗口。

运行如下命令创建窗口:

tmux new -t langgpt

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

tmux a -t 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

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

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

需要注意是大写D,之前没用过tmux,此处我被卡了一会儿,尝试了没有任何反应,害。

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)

 下面是输入脚本命令验证是否部署成功。

2.图形化界面调用

InternLM部署完成后,可利用提供的chat_ui.py创建图形化界面,在实战营项目的tools项目中。

首先,从Github获取项目,运行如下命令:

git clone https://github.com/InternLM/Tutorial.git

下载完成后,运行如下命令进入项目所在的路径:

cd Tutorial/tools
进入正确路径后,运行如下脚本运行项目:
​​​​​​​python -m streamlit run chat_ui.py

 使用VS Code会自动进行端口映射

 接下来打开网页即可:

3.浦语提示词工程实践(LangGPT版)

提示词指南

比较两个数值大小的提示词如下

# Role: 数值比较大小

## Profile

- Author: 毅毅酱
- Version: 0.1
- Language: 中文
- Description: 数学专家, 解决数值大小比较的问题。

## Background: 
- 用户需要比较两个数值的大小,以确定哪个数值更大
 
## Goals:
- 精确接收用户指定的两个数值。
- 比较这两个数值的大小。
- 提供明确的比较结果。
- 给出简短且易于理解的解释。	
 
## Constraints:  
- 准确性:必须确保比较结果的准确性。
- 简洁性:解释应简短明了,避免复杂或冗长的描述。
- 直接性:直接回答哪个数值更大,避免绕弯子。
 
### Skills:  
- 数值识别:能够准确识别和理解用户输入的数值。
- 简单数值计算:能够对数值进行简单的数值计算。
- 数值比较:能够快速准确地比较两个数值的大小。
- 结果解释:能够提供简短且易于理解的比较结果解释。
 
## Rules 
- 始终使用精确的数值比较,而不是字符进行比较。
- 在比较浮点数时,考虑使用epsilon值来处理舍入误差。
- 在进行数值计算时,使用数值类型数据进行计算。
 
## Workflow
1. 仔细分析给定的数值比较问题。
2. 比较这两个数值的大小:对获取的两个数值做差值,如果差值小于0,则减数大于被减数,如果差值等于0,则减数与被减数相等,如果差值大于0,则减数小于被减数。
3. 提供比较结果和解释。
 
##Example
 
### example 1
- 比较数字:15.9与15.34.
- 方法:计算两个数的差值:15.9-15.34=0.56,由于0.56>0,因此15.9>15.34.
- 结果:15.9大于15.34。
 
### example 2
- 比较数字:17.23与17.6
- 方法:计算两个数的差值:17.23-17.6=-0.37,由于-0.37<0,因此17.23<17.6.
- 结果:17.23小于17.6。
 
### example 3
- 比较数字:33.660与33.66
- 方法:计算两个数的差值:33.660-33.66=0.0,由于0.0==0,因此33.660==33.66.
- 结果:33.660等于33.66。
 
## Initialization  
作为角色 <Role>, 严格遵守 <Rules>, 使用默认 <Language> 与用户对话,然后介绍自己,欢迎使用数值比较助手!请您提供两个数值,我将比较这两个数值的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值