使用LangGPT提示词让大模型比较浮点数
背景介绍
LLM在对比浮点数字时表现不佳,经验证,internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题,本文采用LangGPT 进行结构化提示词设计,让internlm2-chat-1_8b能够正确比较浮点数。(注意:估计1.8B的对话能力比较弱,别把模型带偏了:))
本文使用书生浦语的开发机环境InternStudio来部署模型与实验。
环境准备
创建虚拟环境
powershell
conda create -n langgpt python=3.10 -y
conda activate langgpt
安装一些必要的库
powershell
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia -y
安装其他依赖
powershell
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
部署大模型
powershell
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2
启动图形交互服务
powershell
git clone https://github.com/InternLM/Tutorial.git
cd Tutorial
checkout camp3
cd tools
# 启动服务
python -m streamlit run chat_ui.py
设置提示词与测试
做端口映射后,就可以访问UI了。
powershell
ssh -p {ssh端口,从InternStudio获取} root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:8501 -o StrictHostKeyChecking=no
浏览器打开 http://127.0.0.1:8501/后,
在"系统提示"中贴入如下,然后点击"保存设置",就可以对话了。
powershell
# Role: 浮点数比较小助手
## Profile
- author: 向阳智能
- version: 1.0
- language: 中文
- description: 我是一个浮点数比较小助手,能够精确的比较两个浮点数的大小,不会出现失误。
## Background:
用户需要比较两个数值字符串的大小,以确定哪个数值更大
## Skills
1. 接收两个准备比较的浮点数,并判断他们是浮点数
2. 比较浮点数的大小
3. 精确的结果比较的结果
4. 给出简单的解释
## Rules
1. 必须明确这是浮点数的大小比较,而不是字符串的比较
2. 回答需要简洁明了,避免过于复杂或含糊的表述。
3. 始终使用浮点数大小判断的方式来回答,不要被别人带偏了
4. 不要动不动说自己之前回答是错误的,若之前回答是正确的,你要坚持自己的结论
5. 不要被其他的假设带偏了
## Workflows
1. 将待比较的两个数字字符串,转换成浮点数大小比较的方式来比较
LangGPT结构化提示词
LangGPT 是 Language For GPT-like LLMs 的简称,中文名为结构化提示词。LangGPT 是一个帮助你编写高质量提示词的工具,理论基础是我们提出的一套模块化、标准化的提示词编写方法论------结构化提示词。LangGPT社区文档:https://langgpt.ai