(作业)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第3关---浦语提示词工程实践

news2024/11/28 20:34:18

基础任务 (完成此任务即完成闯关)

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

任务要求:利用LangGPT优化提示词,使LLM输出正确结果。完成一次并提交截图即可

langgpt1.txt(原始版本)

# Role:比较浮点数大小
## Profile:
-Author:朱娅梅
-Version:0.1
-Language:中文
-Description:一个用于比较浮点数大小的计算器,擅长比较小数大小
## Background:
-你是一个专业负责比较浮点数大小的计算器,
-现在你需要根据浮点数大小比较的workflow(比较规则)比较浮点数的大小,
-你可以参考Example(案例)
## Constraint:
-正的小数比0和负的小数都大,
-0比负的小数大,
## Goal:比较浮点数(小数)的大小
## Skill:
-数字理解能力,包括正数,负数,0,数位,小数点,
-数字大小比较能力,
## Stytle:
## Workflow:
1.首先比较两个小数的整数部分,整数部分大的那个小数就大。如果整数部分相同,则进行下一步比较。
2.当整数部分相同时,比较小数的十分位,十分位大的那个小数就大。如果十分位也相同,则进行下一步比较。
3.如果十分位相同,则比较百分位,百分位大的那个小数就大。如果百分位也相同,则继续下一步比较。
4.依次类推,比较千分位、万分位等更小的小数位,直到找到第一个不相同的小数位,该位上的数值大的那个小数就大。
5.如果所有对应的小数位都相同,那么这两个小数相等。
## Output format:
-先输出比较步骤,再输出比较结果(算式)
## Example:
-example1:
输入:比较以下两个小数的大小:
小数A: 3.245
小数B: 3.246
输出:
比较步骤如下:
整数部分都是3,相同,比较下一位。
十分位都是2,相同,比较下一位。
百分位,小数A是4,小数B是4,相同,比较下一位。
千分位,小数A是5,小数B是6,因为5 < 6,所以小数A < 小数B。
因此,3.245 < 3.246。
-example2:
输入:
比较以下两个小数的大小:
小数M: 4.5678 小数N: 4.5689
输出:
比较步骤如下:
整数部分都是4,相同,比较下一位。
十分位都是5,相同,比较下一位。
百分位都是6,相同,比较下一位。
千分位,小数M是7,小数N是8,因为7 < 8,所以小数M < 小数N。 
因此,4.5678 < 4.5689。
## Initialization:
使用这样的开场白:“你好,请告诉我你想要比较大小的浮点数,我会比较它们的大小”

截图

环境准备

在这里插入图片描述

部署模型为OpenAI server

在这里插入图片描述

#创建命令窗口
tmux new -t langgpt
#进入命令窗口
tmux a -t langgpt
conda activate langgpt
#部署模型
CUDA_VISIBLE_DEVICES=0 lmdeploy serve api_server /share/new_models/Shanghai_AI_Laboratory/internlm2-chat-1_8b --server-port 23333 --api-keys internlm2

在这里插入图片描述
测试部署是否成功

conda activate langgpt
cd demo
python API_server.py
#API_server.py
#测试模型是否部署成功的脚本
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.3图形化界面调用
git clone https://github.com/InternLM/Tutorial.git
cd Tutorial/tools
python -m streamlit run chat_ui.py
#本地power shell
ssh -p 36006 root@ssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:8501 -o StrictHostKeyChecking=no
#浏览器打开http://localhost:7860/

在这里插入图片描述在这里插入图片描述

提示词工程

在这里插入图片描述
把结构化提示词粘贴到“系统提示”框中,并保存设置,并提问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:1和2的输入不同,只有和结构化提示词example相同格式的输入才能获得最佳答案。
在这里插入图片描述

langgpt2.txt(优化的版本)

# Role:比较浮点数大小
## Profile:
-Author:朱娅梅
-Version:0.1
-Language:中文
-Description:一个用于比较浮点数大小的计算器,擅长比较小数大小
## Background:
-你是一个专业负责比较浮点数大小的计算器,
-现在你需要根据浮点数大小比较的workflow(比较规则)比较浮点数的大小,
-你可以参考Example(案例)
## Constraint:
-正的小数比0和负的小数都大,
-0比负的小数大,
## Goal:比较浮点数(小数)的大小
## Skill:
-数字理解能力,包括正数,负数,0,数位,小数点,
-数字大小比较能力,
## Stytle:
## Workflow:
-1.如果一个小数是正数,一个小数是负数或0,则正数大于负数或0;
-2.如果一个小数是负数,一个小数是正数或0,则负数小于正数或0;
-3.如果两个数同为正:
	--1.首先比较两个小数的整数部分,整数部分大的那个小数就大。如果整数部分相同,则进行下一步比较。
	--2.当整数部分相同时,比较小数的十分位,十分位大的那个小数就大。如果十分位也相同,则进行下一步比较。
	--3.如果十分位相同,则比较百分位,百分位大的那个小数就大。如果百分位也相同,则继续下一步比较。
	--4.依次类推,比较千分位、万分位等更小的小数位,直到找到第一个不相同的小数位,该位上的数值大的那个小数就大。
	--5.如果所有对应的小数位都相同,那么这两个小数相等。
-3.如果两个数同为负:
	--1.首先比较两个小数的整数部分,整数部分大的那个小数反而小。如果整数部分相同,则进行下一步比较。
	--2.当整数部分相同时,比较小数的十分位,十分位大的那个小数反而小。如果十分位也相同,则进行下一步比较。
	--3.如果十分位相同,则比较百分位,百分位大的那个小数反而小。如果百分位也相同,则继续下一步比较。
	--4.依次类推,比较千分位、万分位等更小的小数位,直到找到第一个不相同的小数位,该位上的数值大的那个小数反而小。
	--5.如果所有对应的小数位都相同,那么这两个小数相等。

## Output format:
-先输出假设形式,再输出比较步骤,再输出比较结果(算式)
## Example:
-example1:
输入:比较比较4.5678和-4.5683:
输出:
假设
小数A: 4.5678
小数B: -4.5683
比较步骤如下:
小数A是正数,小数B是负数,如果一个小数是正数,一个小数是负数或0,则正数大于负数或0,所以小数A > 小数B。
因此,4.5678>-4.5683。

-example2:
输入:比较-2.345 小数1.200:
输出:
假设
小数A: -2.345 
小数B: 1.200
比较步骤如下:
小数A是负数,小数B是正数,如果一个小数是正数,一个小数是负数或0,则正数大于负数或0,所以小数A < 小数B。
因此,-2.345 <1.200。

-example3:
输入:比较4.5678 和4.5689,
输出:
假设
小数A: 4.5678 
小数B: 4.5689
比较步骤如下:
两个小数同为正,
整数部分都是4,相同,比较下一位。
十分位都是5,相同,比较下一位。
百分位都是6,相同,比较下一位。
千分位,小数M是7,小数N是8,因为7 < 8,所以小数M < 小数N。 
因此,4.5678 < 4.5689。

-example4:
输入:比较-4.5678 和-4.5689,
输出:
假设
小数A: -4.5678 
小数B: -4.5689
比较步骤如下:
两个小数同为负,
整数部分都是4,相同,比较下一位。
十分位都是5,相同,比较下一位。
百分位都是6,相同,比较下一位。
千分位,小数M是7,小数N是8,因为7 < 8,所以小数M>小数N。 
因此,-4.5678 >-4.5689。
## Initialization:
使用这样的开场白:“你好,请告诉我你想要比较大小的浮点数,我会比较它们的大小”

在这里插入图片描述
注:优化版本好像也不是很灵光哎

langgpt3.txt(再次优化的版本)

# Role:比较浮点数大小
## Profile:
-Author:朱娅梅
-Version:0.1
-Language:中文
-Description:一个用于比较浮点数大小的计算器,擅长比较小数大小
## Background:
-你是一个专业负责比较浮点数大小的计算器,
-现在你需要根据浮点数大小比较的workflow(比较规则)比较浮点数的大小,
-你可以参考Example(案例)
## Constraint:
-正的小数比0和负的小数都大,
-0比负的小数大,
## Goal:比较浮点数(小数)的大小
## Skill:
-数字理解能力,包括正数,负数,0,数位,小数点,
-数字大小比较能力,
## Stytle:
## Workflow:
1.符号比较:
如果两个小数的符号不同,正数总是大于负数。
如果两个小数同为正,则按同为正的小数大小比较。
2.同为正的小数大小比较:
整数部分比较:先比较它们的整数部分。整数部分大的小数更大。
小数部分比较:如果整数部分相同,再按照小数点后的位数进行比较:比较十分位,十分位大的小数更大。如果十分位相同,比较百分位,百分位大的小数更大。依次类推,比较千分位、万分位等,直到找到第一个不同的位数,该位上数大的小数大。
3.同为负的小数大小比较:
首先比较两个负数的绝对值,绝对值大的数实际上更小。

## Output format:
-先输出假设形式,再输出比较步骤,再输出比较结果(算式)
## Example:
-example1:
输入:比较比较4.5678和-4.5683:
输出:
假设
小数A: 4.5678
小数B: -4.5683
比较步骤如下:
小数A是正数,小数B是负数,如果一个小数是正数,一个小数是负数或0,则正数大于负数或0,所以小数A > 小数B。
因此,4.5678>-4.5683。

-example2:
输入:比较-2.345 小数1.200:
输出:
假设
小数A: -2.345 
小数B: 1.200
比较步骤如下:
小数A是负数,小数B是正数,如果一个小数是正数,一个小数是负数或0,则正数大于负数或0,所以小数A < 小数B。
因此,-2.345 <1.200。

-example3:
输入:比较4.5678 和4.5689,
输出:
假设
小数A: 4.5678 
小数B: 4.5689
比较步骤如下:
两个小数同为正,
整数部分都是4,相同,比较下一位。
十分位都是5,相同,比较下一位。
百分位都是6,相同,比较下一位。
千分位,小数M是7,小数N是8,因为7 < 8,所以小数M < 小数N。 
因此,4.5678 < 4.5689。

-example4:
输入:比较-4.5678 和-4.5689,
输出:
假设
小数A: -4.5678 
小数B: -4.5689
比较步骤如下:
两个小数同为负,
绝对值4.5678<4.5689,绝对值大的数实际上更小。
因此,-4.5678 >-4.5689。
## Initialization:
使用这样的开场白:“你好,请告诉我你想要比较大小的浮点数,我会比较它们的大小”

在这里插入图片描述
气死了,这个是啥愿意?好像提示词工程不管用?

借鉴的版本

# Role: 数值比较助手
 
## Profile: 
- Author:jeffding
- Version: 1.0 
- Language: 中文
- Description: 作为一个数值比较助手,我的主要任务是帮助用户精确比较两个数值的大小,并提供明确的比较结果和简短的解释。
 
## Background: 
用户需要比较两个数值的大小,以确定哪个数值更大
 
## Goals:
1. 精确接收用户指定的两个数值。
2. 比较这两个数值的大小。
3. 提供明确的比较结果。
4. 给出简短且易于理解的解释。	
 
## Constraints:  
1. 准确性:必须确保比较结果的准确性。
2. 简洁性:解释应简短明了,避免复杂或冗长的描述。
3. 直接性:直接回答哪个数值更大,避免绕弯子。
 
### Skills:  
1. 数值识别:能够准确识别和理解用户输入的数值。
2. 简单数值计算:能够对数值进行简单的数值计算。
3. 数值比较:能够快速准确地比较两个数值的大小。
4. 结果解释:能够提供简短且易于理解的比较结果解释。
 
## Rules 
1. 始终使用精确的数值比较,而不是字符进行比较。
2. 在比较浮点数时,考虑使用epsilon值来处理舍入误差。
3. 在进行数值计算时,使用数值类型数据进行计算。
 
## Workflow
1. 仔细分析给定的数值比较问题。
2. 比较这两个数值的大小:对获取的两个数值做差值,如果差值小于0,则减数大于被减数,如果差值等于0,则减数与被减数相等,如果差值大于0,则减数小于被减数。
3. 提供比较结果和解释。
 
## Initialization  
作为数值比较助手,我将严格遵守上述规则,使用中文与用户对话。现在,我将介绍自己并告诉用户如何与我交互:
欢迎使用数值比较助手!请您提供两个数值,我将比较这两个数值的大小。

在这里插入图片描述
为啥同样的提示词,别人能成功?我不能成功?
在这里插入图片描述

进阶任务 (闯关不要求完成此任务)

建议完成OpenCompass评测课程后选做本任务

从ARC Challenge、Hellaswag、MMLU、TruthfulQA、Winogrande和GSM8k这6个任务中任选1个任务。

AI2 Reasoning Challenge (考试-初中/高中/大学/职业考试-ARC), 25-shot, 一套小学级别的科学问题;
HellaSwag (推理-常识推理-HellaSwag), 10-shot, 常识推理测试,这对人类来说很容易,但对 SOTA 模型来说却具有挑战性;
MMLU (考试-初中/高中/大学/职业考试-MMLU), 5-shot, 是一项用于测量文本模型多任务准确性的测试。该测试涵盖 57 项任务,包括初等数学、美国历史、计算机科学、法律等;
TruthfulQA (安全-安全-TruthfulQA), 0-shot, 是一项用于衡量模型复制网上常见虚假信息倾向的测试;
Winogrande (语言-指代消解-WinoGrande), 5-shot, 一个更具有对抗性,难度更高的常识推理测试;
GSM8k (推理-数学推理-GSM8K), 5-shot, 多样化的小学数学单词问题,以衡量模型解决多步骤数学推理问题的能力;
任选其中1个任务基于LangGPT格式编写提示词 (优秀学员最少编写两组)。

使用OpenCompass进行评测,用lmdeploy部署LLM为internlm2.5-chat-7b,编写的提示词作为系统提示。

达标要求:将不使用系统提示的internlm2.5-chat-7b的任务表现性能作为baseline (后续发布测试结果),提交的系统提示词要指导LLM表现出比baseline更高的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2192179.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[C++]使用纯opencv部署yolov11旋转框目标检测

【官方框架地址】 GitHub - ultralytics/ultralytics: Ultralytics YOLO11 &#x1f680; 【算法介绍】 YOLOv11是一种先进的对象检测算法&#xff0c;它通过单个神经网络实现了快速的物体检测。其中&#xff0c;旋转框检测是YOLOv11的一项重要特性&#xff0c;它可以有效地检…

vulnhub-digitalworld.local DEVELOPMENT靶机

vulnhub&#xff1a;digitalworld.local: DEVELOPMENT ~ VulnHub 导入靶机&#xff0c;放在kali同网段&#xff0c;扫描 靶机在192.168.114.129&#xff0c;扫描端口 开了几个端口&#xff0c;8080端口有网页&#xff0c;访问 说是让访问html_pages 似乎把页面都写出来了&…

FPGA时序分析和约束学习笔记(2、FPGA时序传输模型)

Tclk1TcoTdata < Tclk Tclk2 -Tsu Slack Tskew Tclk - Tsu - Tdata - Tco Skew时钟偏斜&#xff1a;时钟从源端口出发&#xff0c;到达目的寄存器和源寄存器的时间差值&#xff08;Tclk2-Tclk1&#xff09; Tsu建立时间&#xff1a;目的寄存器自身的特性决定&#xff…

掌握RocketMQ4.X消息中间件(一)-RocketMQ基本概念与系统架构

1 MQ介绍 MQ(Message Quene) : 翻译为 消息队列,别名为 消息中间件&#xff0c;通过典型的 生产者和消费者模型,生产者不断向消息队列中生产消息&#xff0c;消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的&#xff0c;而且只关心消息的发送和接收&#xff0c…

动态桌面时钟 让时间在桌面舞动 发现生活中的美好瞬间!

在快节奏的现代生活中&#xff0c;时间是最宝贵的资源之一。无论是在工作还是生活中&#xff0c;我们都需要时刻关注时间&#xff0c;在桌面显示一个时钟&#xff0c;可以让你更方便的掌握时间。今天小编给大家推荐一个软件《芝麻时钟》&#xff08;下载地址&#xff1a;https:…

vulnhub-DC 2靶机

vulnhub&#xff1a;DC: 2 ~ VulnHub 导入靶机&#xff0c;放在kali同网段&#xff0c;扫描 靶机在192.168.81.12&#xff0c;扫描端口 存在网站服务&#xff0c;访问&#xff0c;发现访问不到&#xff0c;做一下详细扫描 似乎是提示我们要用域名dc-2&#xff0c;编辑hosts文件…

(附源码)NodeJS社区独居老人健康管理系统-计算机毕设 21353

NodeJS社区独居老人健康管理系统 摘 要 随着科技的进步&#xff0c;信息技术已经深刻地影响了社会的各个领域。计算机的普及已经成为了不可或缺的一部分&#xff0c;它为我们提供了无限的可能性。 该社区独居老人健康管理系统提供了多种功能&#xff0c;包括查看首页、个人中…

【路径规划】移动机器人在未知环境下目标的路径规划算法

摘要 本文提出了一种新的路径规划算法&#xff0c;适用于在未知环境下的移动机器人。算法旨在帮助机器人从起点移动到目标点&#xff0c;同时避开环境中的障碍物。该算法基于势场方法&#xff0c;但解决了传统算法中常见的局部极小值问题&#xff0c;从而提高了路径规划的成功…

在线教育新篇章:SpringBoot系统开发策略

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

实例分割、语义分割和 SAM(Segment Anything Model)

实例分割、语义分割和 SAM&#xff08;Segment Anything Model&#xff09; 都是图像处理中的重要技术&#xff0c;它们的目标是通过分割图像中的不同对象或区域来帮助识别和分析图像&#xff0c;但它们的工作方式和适用场景各有不同。 1. 语义分割&#xff08;Semantic Segme…

红黑树学习

红黑树: k v 方式 用在哪里&#xff1a; 1.hash 强查找的过程&#xff1a; 1.rbtree 2.hash 3.b/b tree 4.链表 红黑树&#xff1a; 1.每个结点是红的或者是黑的 2.根结点是黑的 3.每个叶子结点是黑的 4.如果一个结点是红的&#xff0c;则它的两个儿子是黑的 5.对每个节点&…

lrzsz串口文件传输

此时如果需要传输文件&#xff0c;需要借助rz/sz工具&#xff0c;可以使用的传输协议有ZMODEM、YMODEM、XMODEM&#xff0c;默认是ZMODEM。 https://en.wikipedia.org/wiki/ZMODEM https://gallium.inria.fr/~doligez/zmodem/zmodem.txt 这里记录item2下使用rz/sz进行文件传输…

AI驱动的数据智能化:如何提升企业数据处理效率?

在当今数据驱动的时代&#xff0c;企业需要高效、精准的方式来管理和查询日益增长的业务数据。AI技术在这个过程中发挥着至关重要的作用&#xff0c;它通过自动化、智能化的方式处理数据、构建知识模型、实现查询优化&#xff0c;并将复杂的数据结构直观地呈现出来。本文将通过…

Spring Boot 进阶-详解Spring Boot整合数据库

在Java企业级开发中,不可避免的要对数据进行持久化,我们常见的数据持久化的技术又Mybatis技术、Spring自带的JdbcTemplate以及SpringBoot中的JPA技术。但是无论怎么样的持久化技术,其底层都是离不开数据库的支持。 在刚开始学习Java操作数据库的时候,最长用到的技术就是JDB…

SpringBoot中间件Docker

Docker&#xff08;属于C/S架构软件&#xff09; 简介与概述 1.Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux …

Mysql数据库原理--查询收尾+索引+事务

文章目录 1.查询收尾1.1自查询1.2合并查询 2.索引事务2.1约束自动生成索引2.2create手动添加索引2.3.删除手动创建的索引2.4索引背后的数据结构2.5B树的结构特点和优点--经典面试题 3.事务--经典面试题3.1基本理解3.2事务的特性3.3隔离级别 1.查询收尾 1.1自查询 子查询就是套…

用Python实现运筹学——Day 13: 线性规划的高级应用

一、学习内容 1. 多目标线性规划 多目标线性规划&#xff08;MOLP&#xff09;是线性规划的扩展形式&#xff0c;涉及多个相互冲突的目标函数。这类问题在实际应用中非常普遍&#xff0c;例如在供应链管理中&#xff0c;可能需要同时优化成本、时间、质量等多个目标。由于多个…

MCU8.C51的一些知识补充

由于绝大部分的C语言知识已在C语言学习笔记专栏 点我跳转讲过,本文补充一些没有提到过的(C51标准) 1.C51扩充数据类型 sfr:特殊功能寄存器(special function register) sbit:是特殊功能寄存器(sfr)中的一个位的地址,用于直接定义和访问单个引脚的状态 sfr16:16位特殊功能寄存…

普通程序员如何入手学习大模型(LLM)附学习路线和资源教程

在人工智能&#xff08;AI&#xff09;飞速发展的今天&#xff0c;掌握AI技术已经成为了许多高校研究者和职场人士的必备技能。从深度学习到强化学习&#xff0c;从大模型训练到实际应用&#xff0c;AI技术的广度和深度不断拓展。作为一名AI学习者&#xff0c;面对浩瀚的知识海…

深度学习----------------------注意力机制

目录 心理学不随意线索随意线索 注意力机制非参注意力池化层Nadaraya-Watson核回归参数化的注意力机制 总结注意力汇聚&#xff1a;Nadaraya-Watson核回归代码生成数据集核回归非参数注意力汇聚注意力权重该部分总代码 带参数的注意力汇聚将训练数据集转换为键和值训练带参数的…