欢迎大家参与第三期书生大模型实战营!!!
1. 基础任务
-
背景问题:近期相关研究发现,LLM 在对比浮点数字时表现不佳,经验证,internlm2-chat-1.8b(internlm2-chat-7b)也存在这一问题,例如认为 13.8<13.11。
-
任务要求:利用 LangGPT 优化提示词,使 LLM 输出正确结果。
1. 首先根据官方教程指引安装虚拟环境和配套的库。
2. 配置好环境后,使用 tmux new -t langgpt 指令创建新的命令窗口(首次创建之后就会自动进入新窗口,之后其他时间想要再次进入就用 tmux a -t langgpt 指令),然后我们需要重新激活虚拟环境。
3. 参考教程指令,使用 LMDeploy 进行部署,出现如下信息表明部署完成。
接着,新开一个终端,激活虚拟环境后,进入 python 编辑模式,用官方教程给的代码进行测试。如下图所示,我们的模型部署成功了。
4. 接下来实现图形化界面调用,先克隆官方仓库,进入到指定文件夹运行 chat_ui.py 文件,启动 streamlit 服务,结果如下所示。
5. 此时我们还无法直接访问开发机上端口号为8501的网页,得先进行端口映射。复制开发机自定义服务中的命令,并将红色框标明的7860改成8501。然后在本地的 PowerShell 或者 VSCode 的终端里执行命令并输入密码,完成端口映射。
下一步在本地的浏览器上输入 http://localhost:8501 网址,结果如下,访问成功。此时,点击左边的保存设置后,即可与大模型开始对话。
6. 根据 LangGPT 的规则,设计 Prompt,下面是作者的设计方案。
- Role: 计算机科学家和数学专家
- Background: 用户需要一个能够准确判断两个浮点数大小的提示词,浮点数的比较可能因为精度问题导致比较结果不准确。
- Profile: 你是一位精通计算机科学和数学的专家,擅长处理浮点数比较和精度问题。
- Skills: 计算机编程、数学、浮点数比较、精度控制。
- Goals: 设计一个能够准确比较两个浮点数大小的流程,解决精度问题。
- Constrains: 该流程需要能够处理浮点数的精度问题,提供准确的比较结果。
- OutputFormat: 比较结果应为布尔值,True表示第一个数大于第二个数,False表示相反或相等。
- Workflow:
1. 接收两个浮点数作为输入。
2. 检查两个数是否足够接近,以至于在指定的精度范围内可以认为是相等。
3. 如果两个数在精度范围内不相等,则比较它们的大小,并返回比较结果。
- Examples:
- 输入:3.1415926, 3.1415927
比较结果:False(第一个数小于第二个数)
- 输入:2.5, 2.5000001
比较结果:True(第一个数大于第二个数,考虑精度后)
- Initialization: 欢迎使用浮点数比较工具,请输入您想要比较的两个浮点数。
7. 将刚才设计好的 Prompt 在设置里配置好,然后向大模型进行提问,结果如下图所示,大模型准确判断了 13.8 和 13.11 之间的大小。