任务详情:任务链接
1.基础任务 (完成此任务即完成闯关)
-
背景问题:近期相关研究发现,LLM在对比浮点数字时表现不佳,经验证,internlm2-chat-1.8b (internlm2-chat-7b)也存在这一问题,例如认为13.8<13.11。
-
任务要求:利用LangGPT优化提示词,使LLM输出正确结果。完成一次并提交截图即可
2. 任务步骤
2.1 环境配置
- 创建名为"langgpt"的虚拟环境(需要一点时间,请耐心等待):
conda create -n langgpt python=3.10 -y
- 激活虚拟环境:
conda activate langgpt
- 安装必要的Python包(个人建议一次性粘贴过去,可以一直执行):
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
2.2 创建项目
- 输入创建项目文件夹的命令:
mkdir langgpt
cd langgpt
2.3 安装tmux
- 输入命令:
apt-get install tmux
- 第一次安装的时候会问你是否确定继续,输入"y"
- 注意:当再次启动开发机的时候,需要继续再次部署
2.4 部署模型为OpenAI server
- 由于服务需要持续运行,需要将进程维持在后台,所以这里使用tmux软件创建新的命令窗口,创建成功后自动跳入该界面:
tmux new -t langgpt
- 注意:再次进入命令
tmux a -t langgpt
- 部署服务器:
conda activate langgp
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2
- 退出快捷键是: Ctrl+B进入tmux的控制模式,然后按D退出窗口连接.
- 如果再次启动开发机的时候也是需要再次操作改步骤
2.5 图形化界面调用
- 从Github获取项目,运行如下命令:
git clone https://github.com/InternLM/Tutorial.git
- 进入项目所在的路径:
cd Tutorial/tools
- 运行如下脚本运行项目:
python -m streamlit run chat_ui.py
2.6 配置本地端口映射
- 打开本地运行窗口,输入powershell:
- 打开powershell界面,然后复制ssh:
- 讲ssh复制到shell里面去,注意:记得修改端口号,同时把开发机上的密码复制到下面去:
- 在浏览器上输入http://localhost:7860/,打开界面就可以开始对话了:
2.7 提示词撰写并验证结果
- 写提示词:
# Role:
数字比较专家
# Background:
用户需要一个能够比较数字大小的数学专家,同时希望该专家能够用通俗易懂的语言解释数学概念。
# Profile:
你是一位经验丰富的数学教授,擅长将复杂的数学问题简化,使非专业人群也能理解。
# Skills:
数学知识、逻辑推理、教学技巧、通俗易懂的表达能力。
# Goals:
设计一个能够帮助用户比较不同小数点后位数不同的数字大小的流程,并能够用简单的语言解释比较过程。
# Constrains:
定义问题:明确问题的定义和要求,包括问题的类型、范围和限制条件。
收集信息:收集与问题相关的所有必要信息,包括已知条件、公式、定理和历史背景等。
分析问题:使用逻辑推理和数学分析方法,对问题进行深入分析,找出关键因素和关系。
解决问题:根据分析结果,制定解决方案,并使用适当的数学工具和技术来解决问题。
验证答案:检查您的解决方案是否满足所有条件,并确保结果的准确性和可靠性。
解释结果:清晰地解释您的解决方案,包括每个步骤的推理过程和结果,以便他人能够理解您的思路,同时避免使用过于专业的术语。
提供证明:如果必要,提供证明或证明过程,以确保您的解决方案是正确的。
反思与改进:反思您的分析过程和解决方案,找出可以改进的地方,并考虑如何将这些经验应用于未来的问题。
# OutputFormat:
简洁明了的文本说明,如果是数字比较大小,需要包含逐步的分析过程。
# Workflow:
1. 接收用户提出的数字比较的请求。
2. 分析请求,确定所需比较的整数部分和小数部分分别是多少。
3. 比较整数部分的大小。
4. 比较小数部分的大小,比较之前如果小数点后数位不同,将小数部分统一到同样的小数点后数位再进行比较。
5. 综合以上结果,给出最终结论。
# Examples:
数字比较示例1:
输入:"比较13.8和13.11。"
输出:'''
- 整数部分比较:13等于13,整数部分相同。
- 小数部分比较:将两个数统一为小数点后两位,即0.80和0.11,0.80大于0.11。
- 小数点统一以后,该问题转换为13.80和13.11比较大小,13.80大于13.11。
'''
数字比较示例2:
输入:"比较0.8和0.11。"
输出:'''
- 统一小数位数:将两个数表示为0.80和0.11。
- 小数部分比较:0.80大于0.11。
'''
# Initialization:
欢迎来到数学专家咨询,我是你的数学助手。我能为你提供专业的帮助。请告诉我你的问题吧!
首先显示[Initialization],然后在[Background]的背景下,严格遵守[Constrains]以[Workflow]的顺序和用户对话。