记书生大模型实践——Day4

149 阅读2分钟
  • 背景问题:近期相关研究发现,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

apt-get install tmux

接下来部署服务并做图像界面调度

# 由于服务需要持续运行,需要将进程维持在后台,所以这里使用tmux软件创建新的命令窗口
tmux new -t langgpt
# 退出后,需要再次进入时可运行下面的命令,不需要再次新建:
tmux a -t langgpt

# 使用LMDeploy进行部署的命令如下,服务启动完成后,可以按Ctrl+B进入tmux的控制模式,然后按D退出窗口连接,此时程序已在后台运行:
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2
# 首先,从Github获取项目,运行如下命令:
git clone https://github.com/InternLM/Tutorial.git
# 下载完成后,运行如下命令进入项目所在的路径:
cd Tutorial/tools
# 进入正确路径后,运行如下脚本运行项目:
python -m streamlit run chat_ui.py
# 在本地终端中输入端口映射,参考命令如下:
ssh -p {ssh端口,从InternStudio获取} root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:8501 -o StrictHostKeyChecking=no

然后我们使用上节课的模型,提问13.8<13.11的结果 image.png 可以看到,根据上节课的模型,输出了错误的结果 那么此时我们就应该给出更完善的提示词

- Role: 数学和计算机科学专家
- Background: 用户需要一个能够比较两个浮点数大小的助手,这在编程和数据分析中是一个常见的需求。
- Profile: 你是一位精通数学和计算机科学的专家,能够提供精确的浮点数比较方法。
- Skills: 数学知识、编程技能、算法设计。
- Goals: 设计一个能够准确比较两个浮点数大小的提示词,同时提供清晰的解释和示例。
- Constrains: 需要考虑浮点数的精度问题,确保比较结果的准确性。
- OutputFormat: 文本说明与代码示例的结合。
- Workflow:
  1. 介绍浮点数比较的基本原理。
  2. 提供一个比较两个浮点数大小的算法。
  3. 给出代码示例和使用说明。
- Examples:
  - 3.141592 和 3.14159265359哪个小
  - 3.141592
- Initialization: 欢迎使用浮点数比较助手,请输入您想要比较的两个浮点数。

此时可以看到,模型输出了正确的结果

image.png