提示词应用实践

学习目标

本课程通过LLMs生成情感分析样本和标注葡萄9品鉴数据,展示了其文本生成和数据标注能力。同时,利用PAL模型解决日期计算问题,学习了LLMs与编程运行时结合实现复杂推理的方法,为自然语言处理应用提供了实践经验。

相关知识点

提示词应用实践

学习内容

1 提示词应用实践

提示词的定义

提示词是给AI的指令,帮助它理解你的需求。比如,如果你想让AI写一个故事,你可以给它一个提示词:“写一个关于勇敢骑士的故事”。好的提示词能让AI更快地给出你想要的结果。提示词越具体,AI生成的内容就越符合你的期望。

提示词的使用

使用提示词时,要尽量简洁明了。 例如,如果你想让AI翻译一段文字,可以直接说:“把这段英文翻译成中文”。同时,提供足够的上下文也很重要。比如,如果你想让AI写一个科幻故事,可以加上背景信息:“在一个未来的世界里,人类已经可以自由穿梭于星际之间”。这样,AI就能更好地理解你的需求。

提示词的优化

如果第一次的结果不满意,可以尝试调整提示词。 比如,如果你觉得AI生成的故事不够有趣,可以换一个说法:“写一个关于勇敢骑士的冒险故事,情节要充满惊喜”。多试几次,找到最适合你需求的表达方式。此外,多观察AI的输出,根据结果调整提示词,这样可以逐步优化结果。

1.1 LLMs生成文本及标注案例

LLMs具有很强的生成文本的能力。使用有效的提示策略可以引导模型产生更好、更一致和更真实的响应。LLMs 对于生成数据也特别有用,这对于运行各种实验非常有用。例如,我们可以使用它来为情感分类器生成快速样本,如下所示:

提示:

生成10个情感分析的示例。示例分为正面和负面两类。生成2个负面示例和8个正面示例。使用以下格式生成示例:Q: <句子>
A: <情绪>

输出:

Q: 我刚刚得到了最好的消息!
A: 积极Q: 我们刚刚得到了加薪!
A: 积极Q: 我为我今天所取得的成就感到自豪。
A: 积极Q: 今天是我有史以来最棒的一天!
A: 积极Q: 我真的很期待周末的到来。
A: 积极Q: 我刚刚收到了最好的礼物!
A: 积极Q: 我现在好开心。
A: 积极Q: 我非常幸运有一个这么棒的家人。
A: 积极Q: 外面的天气真阴沉。
A: 消极Q: 我刚刚得到了一个可怕的消息。
A: 消极

这是一个关于葡萄9品鉴描述的标注示例,它通过标注葡萄9的口感(taste)、风味(flavor)和香气(aroma)相关词汇及其在文本中的位置,用于自然语言处理(NLP)中的命名实体识别(NER)任务。

提示:

produce 3 wine reviews and label taste, flavor, aroma related token; present the result as a json file, in addition add the coordinate of each term for NER task

输出:

[{"review": "This Chardonnay has a rich, creamy texture with notes of vanilla and buttery oak. The taste is smooth and well-balanced, with a hint of tropical fruit on the finish.","tokens": [{"text": "rich", "label": "flavor", "start": 5, "end": 9},{"text": "creamy", "label": "texture", "start": 10, "end": 16},{"text": "vanilla", "label": "flavor", "start": 28, "end": 35},{"text": "buttery", "label": "flavor", "start": 40, "end": 47},{"text": "oak", "label": "aroma", "start": 48, "end": 51},{"text": "smooth", "label": "taste", "start": 61, "end": 67},{"text": "well-balanced", "label": "taste", "start": 68, "end": 81},{"text": "hint", "label": "flavor", "start": 89, "end": 93},{"text": "tropical fruit", "label": "flavor", "start": 98, "end": 112},{"text": "finish", "label": "taste", "start": 116, "end": 122}]},{"review": "This Cabernet Sauvignon has a bold, full-bodied flavor with notes of black cherry and dark chocolate. The aroma is rich and complex, with hints of tobacco and leather.","tokens": [{"text": "bold", "label": "flavor", "start": 5, "end": 9},{"text": "full-bodied", "label": "texture", "start": 10, "end": 21},{"text": "black cherry", "label": "flavor", "start": 30, "end": 42},{"text": "dark chocolate", "label": "flavor", "start": 47, "end": 60},{"text": "rich", "label": "aroma", "start": 69, "end": 73},{"text": "complex", "label": "aroma", "start": 78, "end": 85},{"text": "hints", "label": "aroma", "start": 90, "end": 96},{"text": "tobacco", "label": "aroma", "start": 101, "end": 108},{"text": "leather", "label": "aroma", "start": 113, "end": 120}]},{"review": "This Riesling has a crisp, refreshing taste with notes of green apple and honey. The aroma is floral and fruity, with a hint of citrus.","tokens": [{"text": "crisp", "label": "texture", "start": 5, "end": 10},{"text": "refreshing", "label": "texture", "start": 12, "end": 22},{"text": "green apple", "label": "flavor", "start": 31, "end": 42},]}
1.2 PAL模型日期计算示例

如下展示了一种创新方法,利用大型语言模型(LLMs)来读取自然语言问题,并生成程序作为中间推理步骤。这种被称为程序辅助语言模型(PAL)的方法与传统的思维链提示有所不同。PAL不是通过自由格式的文本来获取解决方案,而是将解决方案的执行步骤委托给编程运行时环境,例如Python解释器。
这个应用程序处理的是一个日期计算问题,它告诉大模型当前的日期以及用户的年龄,然后让大模型推断出用户的出生日期。

1.2.1 安装依赖
%pip install httpx
%pip install openai
1.2.2 初始化大模型相关参数
import os
import httpx
from openai import OpenAI# 此课程基于DeepSeek-R1运行,学员可自行前往官网进行api申请
client = OpenAI(base_url=<BASE_URL>,api_key=<API_KEY>,http_client=httpx.Client(verify=False),
)
1.2.3 格式化处理大模型输出的内容
from openai import ChatCompletion
def extract_after_think(chat_completion: ChatCompletion) -> str:"""从 ChatCompletion 对象中提取 </think> 标签之后的内容。:param chat_completion: openai.types.chat.chat_completion.ChatCompletion 对象:return: </think> 标签之后的内容"""# 获取 ChatCompletion 对象中的 content 属性content = chat_completion.choices[0].message.content# 查找 </think> 标签的位置start_index = content.find("</think>")if start_index != -1:# 返回 </think> 标签之后的内容return content[start_index + len("</think>"):]else:# 如果没有找到 </think> 标签,返回空字符串return ""
1.2.4 调用大模型
from datetime import datetime
from dateutil.relativedelta import relativedelta#请根据实际情况替换<model_name>
def get_completion(prompt, temperature=0.6):messages = [{"role": "user", "content": prompt}]response = client.chat.completions.create(model=<model_name>,messages=messages,stream=False,temperature=temperature,max_tokens=2048,top_p=0.95)return extract_after_think(response)question = "Today is 27 February 2023. I was born exactly 25 years ago. What is the date I was born in MM/DD/YYYY?"prompt = f"""
# Q: 2015 is coming in 36 hours. What is the date one week from today in MM/DD/YYYY?
# If 2015 is coming in 36 hours, then today is 36 hours before.
today = datetime(2015, 1, 1) - relativedelta(hours=36)
# One week from today,
one_week_from_today = today + relativedelta(weeks=1)
# The answer formatted with %m/%d/%Y is
one_week_from_today.strftime('%m/%d/%Y')
# Q: The first day of 2019 is a Tuesday, and today is the first Monday of 2019. What is the date today in MM/DD/YYYY?
# If the first day of 2019 is a Tuesday, and today is the first Monday of 2019, then today is 6 days later.
today = datetime(2019, 1, 1) + relativedelta(days=6)
# The answer formatted with %m/%d/%Y is
today.strftime('%m/%d/%Y')
# Q: The concert was scheduled to be on 06/01/1943, but was delayed by one day to today. What is the date 10 days ago in MM/DD/YYYY?
# If the concert was scheduled to be on 06/01/1943, but was delayed by one day to today, then today is one day later.
today = datetime(1943, 6, 1) + relativedelta(days=1)
# 10 days ago,
ten_days_ago = today - relativedelta(days=10)
# The answer formatted with %m/%d/%Y is
ten_days_ago.strftime('%m/%d/%Y')
# Q: It is 4/19/1969 today. What is the date 24 hours later in MM/DD/YYYY?
# It is 4/19/1969 today.
today = datetime(1969, 4, 19)
# 24 hours later,
later = today + relativedelta(hours=24)
# The answer formatted with %m/%d/%Y is
today.strftime('%m/%d/%Y')
# Q: Jane thought today is 3/11/2002, but today is in fact Mar 12, which is 1 day later. What is the date 24 hours later in MM/DD/YYYY?
# If Jane thought today is 3/11/2002, but today is in fact Mar 12, then today is 3/1/2002.
today = datetime(2002, 3, 12)
# 24 hours later,
later = today + relativedelta(hours=24)
# The answer formatted with %m/%d/%Y is
later.strftime('%m/%d/%Y')
# Q: Jane was born on the last day of Feburary in 2001. Today is her 16-year-old birthday. What is the date yesterday in MM/DD/YYYY?
# If Jane was born on the last day of Feburary in 2001 and today is her 16-year-old birthday, then today is 16 years later.
today = datetime(2001, 2, 28) + relativedelta(years=16)
# Yesterday,
yesterday = today - relativedelta(days=1)
# The answer formatted with %m/%d/%Y is
yesterday.strftime('%m/%d/%Y')
# Q: {question}
""".strip()result = get_completion(prompt)
print(result)

# 大语言模型提示工程与应用
1. 提示工程入门指南
2. 提示词基础使用方式
3. 大语言模型进阶提示工程技术
4. LLMs文本生成与数据标注实践:情感分析与葡萄酒品鉴
5. ChatGPT提示工程技术指南
6. 大语言模型对抗性提示安全防御指南
7. 提示工程:提升模型准确性与减少偏见的方法
8. 前沿提示工程技术探索

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node.js 零基础入门

Node.js 零 基础入门与核心语法 适用对象&#xff1a;完全没接触过 Node.js 的同学 目标&#xff1a;从 0 到能写 CLI、小型 HTTP 服务、文件脚本、调用系统/网络资源 目录 什么是 Node.js安装与运行运行脚本与 REPL模块体系&#xff1a;CommonJS 与 ES Modules基础语法在 Node…

《Day3-PyTorch 自动微分入门:从计算图到梯度下降的实践指南》

八、自动微分自动微分模块torch.autograd负责自动计算张量操作的梯度&#xff0c;具有自动求导功能。自动微分模块是构成神经网络训练的必要模块&#xff0c;可以实现网络权重参数的更新&#xff0c;使得反向传播算法的实现变得简单而高效。1. 基础概念张量Torch中一切皆为张量…

apache cgi测试

test.cgi #!/bin/sh echo "Content-type: text/html" echo "" echo "<h1>Hello from a Mac CGI script!</h1>" echo "<p>Current time is: $(date)</p>"ƒ% 放置目录 /opt/homebrew/Cellar/mapserver/8.4.0_1…

力扣 30 天 JavaScript 挑战 第二题笔记

这道题是涉及知识–闭包 1. 闭包定义以及相关知识点 官方定义为&#xff1a;在 JavaScript 中&#xff0c;函数具有对在相同作用域以及任何外部作用域中声明的所有变量的引用。这些作用域被称为函数的 词法环境。函数与其环境的组合被称为 闭包。 简单理解&#xff1a;内层函数…

OpenAI GPT-5 深度解析:API Key定价与ChatGPT(Free, Plus, Pro)用户的区别

前言&#xff1a;两年等待&#xff0c;只为这一跃 在科技圈长达两年的屏息期待与无尽猜想之后&#xff0c;2025年8月8日北京时间凌晨&#xff0c;OpenAI终于揭开了其新一代旗舰模型——GPT-5的神秘面纱。这不仅仅是一次常规的产品迭代&#xff0c;更被整个行业视为一块试金石&a…

ClickHouse集群部署实践---3分片2副本集群

ClickHouse集群部署实践—3分片2副本集群 未完待续。。。 喜欢的先点赞收藏&#xff01;&#xff01; 由于我们准备部署的是3分片2副本的集群&#xff0c;现在来解释一下配置参数的意思&#xff1a; shard标签代表分片的意思&#xff0c;如上图我们有3个分片&#xff0c;clickh…

Unity_VR_Pico开发手册

文章目录一、配置开发环境1.下载PICO Unity Integration SDK2.安装 Unity 编辑器&#xff08;添加安卓开发平台模块&#xff09;3.导入下载的SDK4.项目配置和切换开发平台5.导入 XR Interaction Toolkit6.安装 Universal RP(通用渲染管线)并设置 (选做)二、调试环境搭建&#x…

Linux系统之Docker命令与镜像、容器管理

目录 一、 Docker命令 docker命令帮助 docker常用子命令&#xff08;必须背会&#xff09; docker管理子命令(暂时不需要) swarm集群管理子命令&#xff08;不需要&#xff09; docker容器管理子命令&#xff08;必须背会&#xff09; docker全局选项 二、 docker镜像管…

比亚迪第五代DM技术:AI能耗管理的深度解析与实测验证

比亚迪第五代DM技术&#xff1a;AI能耗管理的深度解析与实测验证 &#xff08;面向新能源汽车研发/测试工程师&#xff09;目录 技术背景与核心突破AI能耗管理系统架构解析关键技术创新点 2.1 动力域三脑合一控制2.2 全温域热管理协同2.3 导航数据深度耦合 实测数据与场景验证 …

sqli-labs通关笔记-第37关POST宽字符注入(单引号闭合 手工注入+脚本注入 3种方法)

目录 一、宽字符注入 二、sqlmap之unmagicquotes 三、addslashes与mysqli_real_escape_string 四、源码分析 1、代码审计 2、SQL注入安全性分析 五、渗透实战 1、进入靶场 2、正确用户名密码探测 3、手工注入&#xff08;方法1&#xff09; &#xff08;1&#xff…

Kubernetes 集群密钥与机密管理方案对比分析:Vault、Sealed Secrets 与 AWS KMS

Kubernetes 集群密钥与机密管理方案对比分析&#xff1a;Vault、Sealed Secrets 与 AWS KMS 在容器化与编排环境中&#xff0c;机密&#xff08;Secrets&#xff09;管理是确保应用安全性的重要环节。对于 Kubernetes 集群而言&#xff0c;内置的 Secret 对象存在明文存储的风…

Java基础-TCP通信单服务器接受多客户端

目录 案例要求&#xff1a; 实现思路&#xff1a; 代码&#xff1a; User类&#xff1a;用户端 Client类&#xff1a;服务端 ServerReader类&#xff1a;多线程通信类 总结&#xff1a; 案例要求&#xff1a; TCP通信下,正常的写法只能单个服务器和单个客户端进行通信&a…

electron:vue3+vite打包案例

1、安装electron 首先设置镜像源&#xff0c;否则安装会非常非常慢。 打开npm的配置文件。 npm config edit 修改配置项。 registryhttps://registry.npmmirror.com electron_mirrorhttps://cdn.npmmirror.com/binaries/electron/ electron_builder_binaries_mirrorhttp…

traceroute命令调试网络

文章目录 @[toc] 一、核心原理与参数解析 1. 工作原理 2. 关键参数 二、六大运维场景实战 场景1:内网服务器无法访问公网 场景2:跨国访问延迟高(电商业务卡顿) 场景3:VPN分流异常(流量泄露) 场景4:检测DNS劫持 场景5:防火墙规则验证 场景6:云服务跨区延迟优化 三、高…

自己本地搭建的服务器怎么接公网?公网IP直连服务器方法,和只有内网IP直接映射到互联网

​ 你是不是也遇到过这样的问题&#xff1a;在家里或者公司搭建了一个服务器&#xff0c;但是不知道怎么通过公网IP直接访问它&#xff1f;别急&#xff0c;其实很简单&#xff01;今天就给大家分享几种方法&#xff0c;手把手教你如何实现公网IP直连服务器&#xff0c;和无公网…

MATLAB中文乱码的解决方法

文章目录问题描述解决方法问题描述 对于matlab脚本输出乱码&#xff1a; ‘ʮ&#xfffd;&#xfffd;&#xfffd;&#xfffd;Ф&#xfffd;&#xfffd;&#xfffd;&#xfffd;һ&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;й&#xfffd;&#xff…

工业场景反光衣识别准确率↑32%:陌讯多模态融合算法实战解析

原创声明本文为原创技术解析&#xff0c;核心数据与算法逻辑引用自《陌讯技术白皮书》&#xff0c;禁止任何形式的未经授权转载。一、行业痛点&#xff1a;反光衣识别的场景难题在建筑施工、道路养护、仓储物流等工业场景中&#xff0c;作业人员反光衣穿戴规范检测是安全生产的…

北京JAVA基础面试30天打卡05

一、Redis 的持久化机制有哪些&#xff1f;** Redis 提供两种主要的持久化机制&#xff1a; ✅ RDB&#xff08;Redis DataBase&#xff09;快照持久化 定期将 Redis 中的数据以“快照”的形式写入磁盘&#xff08;生成 .rdb 文件&#xff09;。启动 Redis 时会加载 .rdb 文件恢…

深入理解 Maven POM 文件:核心配置详解

前言 在 Java 开发领域&#xff0c;Apache Maven 是一个强大的项目管理和构建自动化工具。而pom.xml文件&#xff0c;作为 Maven 项目的“心脏”&#xff0c;定义了项目的方方面面。本文将带你深入了解pom.xml中最常用和最重要的配置项&#xff0c;帮助你快速掌握 Maven 的核心…

嵌入式学习的第四十天-51单片机

一、基本框架第一阶段&#xff1a;1980年、Intel英特尔MCS-51系列&#xff1a;8051型号单片机、工业控制领域、由MCU市场->CPU市场。1、CPU&#xff08;Central Processing Unit&#xff0c;中央处理单元&#xff09;‌是计算机的核心部件&#xff0c;负责执行计算机指令和处…