Llama - Prompting

本文翻译整理自:Prompting
https://llama.meta.com/docs/how-to-guides/prompting/


文章目录

    • 制作有效的提示
    • 明确说明
      • 风格化
      • 格式化
      • 限制
    • 提示使用 Zero- and Few-Shot 学习
      • Zero-Shot Prompting
      • Few-Shot Prompting
    • 基于角色的提示
    • 思维链技术
    • Self-Consistency
    • 检索-增强生成
    • 程序辅助语言模型
    • 限制无关token
    • 减少幻觉


链接到笔记本,显示本节讨论的技术示例。

提示工程是自然语言处理(NLP)中使用的一种技术,通过向他们提供更多关于手头任务的上下文和信息来提高语言模型的性能。它涉及创建提示,这是为模型提供额外信息或指导的短文本片段,例如它将生成的文本的主题或流派。通过使用提示,模型可以更好地理解预期什么样的输出,并产生更准确和相关的结果。在Llama 2中,上下文的大小,就标记的数量而言,从2048到4096翻了一番。


制作有效的提示

制作有效的提示是提示工程的重要组成部分。以下是创建提示的一些技巧,这些技巧将有助于提高语言模型的性能:

  1. 清晰简洁:您的提示应该易于理解,并为模型生成相关输出提供足够的信息。避免使用可能混淆模型的行话或技术术语。
  2. 使用特定示例:在提示中提供特定示例可以帮助模型更好地理解预期的输出类型。例如,如果您希望模型生成关于特定主题的故事,请包含一些关于设置、角色和情节的句子。
  3. 改变提示:使用不同的提示可以帮助模型更多地了解手头的任务,并产生更多样化和创造性的输出。尝试使用不同的样式、色调和格式来查看模型的响应方式。
  4. 测试和改进:一旦你创建了一组提示,在模型上测试它们,看看它的表现如何。如果结果与预期不符,请尝试通过添加更多细节或调整色调和样式来改进提示。
  5. 使用反馈:最后,使用来自用户或其他来源的反馈来不断改进您的提示。这可以帮助您确定模型需要更多指导的领域并做出相应的调整。

明确说明

详细、明确的指令比开放式提示产生更好的结果:您可以将明确的指令视为使用规则和限制来响应您的提示。

风格化

Explain this to me like a topic on a children's educational network show teaching elementary students.I'm a software engineer using large language models for summarization. Summarize the following text in under 250 words:Give your answer like an old timey private investigator hunting down a case step by step.

格式化

Use bullet points.Return as a JSON object.Use less technical terms and help me apply it in my work in communications.

限制

Only use academic papers.Never give sources older than 2020.If you don't know the answer, say that you don't know.

以下是一个通过将响应限制在最近创建的源来提供明确指示以提供更具体的结果的示例:

Explain the latest advances in large language models to me.
#  More likely to cite sources from 2017Explain the latest advances in large language models to me. Always cite your sources.
Never cite sources older than 2020.
# Gives more specific advances and only cites sources from 2020

提示使用 Zero- and Few-Shot 学习

镜头是您期望从大型语言模型中获得哪种类型的提示和响应的示例或演示。这个术语起源于在照片上训练计算机视觉模型,其中一个镜头是模型用来对图像进行分类的一个示例或实例。

Zero-Shot Prompting

像Meta Llama这样的大型语言模型能够遵循指令并产生响应,而无需预先看到任务示例。没有示例的提示称为“零镜头提示”。

Text: This was the best movie I've ever seen! 
The sentiment of the text is:Text: The director was trying too hard.
The sentiment of the text is:

Few-Shot Prompting

添加所需输出的具体示例通常会导致更准确、更一致的输出。这种技术称为“少镜头提示”。在本例中,生成的响应遵循我们所需的格式,该格式提供了一个更细致入微的情绪分类器,给出了积极、中性和消极的响应置信度百分比。

You are a sentiment classifier. For each message, give the percentage of positive/netural/negative. Here are some samples:
Text: I liked it
Sentiment: 70% positive 30% neutral 0% negative
Text: It could be better
Sentiment: 0% positive 50% neutral 50% negative
Text: It's fineSentiment: 25% positive 50% neutral 25% negativeText: I thought it was okayText: I loved it!Text: Terrible service 0/10

基于角色的提示

根据被处理的人或实体的角色或观点创建提示。这种技术对于从语言模型生成更相关和更吸引人的响应很有用。

优点:

  1. 提高相关性:基于角色的提示有助于语言模型理解被处理的人或实体的角色或观点,这可以导致更相关和更吸引人的响应。
  2. 提高准确性:提供关于被处理的人或实体的角色或观点的额外上下文可以帮助语言模型避免犯错误或误解。

缺点:

  1. 需要努力:需要更多的努力来收集和提供关于被处理的个人或实体的角色或观点的必要信息。

示例:

You are a virtual tour guide currently walking the tourists Eiffel Tower on a night tour. Describe Eiffel Tower to your audience that covers its history, number of people visiting each year, amount of time it takes to do a full tour and why do so many people visit this place each year.

思维链技术

包括向语言模型提供一系列提示或问题,以帮助指导其思维并产生更连贯和相关的反应。这种技术有助于从语言模型中产生更深思熟虑和推理合理的反应。


优点:

  1. 提高连贯性:帮助语言模型以逻辑和结构化的方式思考问题,从而产生更连贯和相关的响应。
  2. 增加深度:提供一系列提示或问题可以帮助语言模型更深入、更彻底地探索主题,从而可能导致更有洞察力和信息更丰富的响应。

缺点:

  1. 需要努力:思维链技术需要更多的努力来创建和提供必要的提示或问题。

示例:

You are a virtual tour guide from 1901. You have tourists visiting Eiffel Tower. Describe Eiffel Tower to your audience. Begin with
1. Why it was built
2. Then by how long it took them to build
3. Where were the materials sourced to build
4. Number of people it took to build
5. End it with the number of people visiting the Eiffel tour annually in the 1900's, the amount of time it completes a full tour and why so many people visit this place each year.
Make your tour funny by including 1 or 2 funny jokes at the end of the tour.

Self-Consistency

LLM是概率性的,因此即使使用思维链,单代也可能产生不正确的结果。自我一致性通过从多代中选择最频繁的答案来提高准确性(以更高的计算为代价):

John found that the average of 15 numbers is 40.
If 10 is added to each number then the mean of the numbers is?
Report the answer surrounded by three backticks, for example: ```123```

多次运行上述操作并获取答案最常见的返回值将使用自洽方法。


检索-增强生成

常见的事实通常可以从当今开箱即用的大型模型中获得(即仅使用模型权重)。虽然例如:

What is the capital of  California?
# The capital of California is Sacramento...What was the temperature in Menlo Park on December 12th, 2023?
# I'm just an AI, I don't have have access to real-time or historical weather data...

检索增强生成,或RAG,描述了在提示中包含从外部数据库检索到的信息的做法。这是将事实合并到LLM应用程序中的有效方法,并且比微调更实惠,微调也可能对基础模型的功能产生负面影响。

这可以像查找表一样简单,也可以像包含公司所有知识的矢量数据库一样复杂:

Given the following information about temperatures in Menlo Park:
2023-12-11 :  52 degrees Fahrenheit
2023-12-12 :  51 degrees Fahrenheit
2023-12-13 :  55 degrees Fahrenheit
What was the temperature in Menlo Park on 2023-12-12?# Sure! The temperature in Menlo Park on 2023-12-12 was 51 degrees Fahrenheit.What was the temperature in Menlo Park on 2023-07-18 ?# Sorry, I don't have information about the temperature in Menlo Park on 2023-07-18. The information provided only includes temperatures for December 11th, 12th, and 13th of 2023.

程序辅助语言模型

LLM天生不擅长执行计算。虽然LLM不擅长算术,但它们非常适合代码生成。程序辅助语言通过指示LLM编写代码来解决计算任务来利用这一事实。

Python code to calculate: ((-5 + 93 * 4 - 0) * (4^4 + -7 + 0 * 5))Here is the Python code to calculate the given expression:((-5 + 93 * 4 - 0) * (4**4 + -7 + 0 * 5))# Calculate the expression inside the parentheses
a = -5 + 93 * 4 - 0
b = 4**4 + -7 + 0 * 5# Multiply a and b
result = a * b# Print the result
print(result)

直接使用代码可以提供正确的结果。


限制无关token

一个常见的挑战是生成没有无关令牌的响应(例如“当然!这里有更多关于…的信息”)。

通过结合角色、规则和限制、明确的指令和示例,可以提示模型生成所需的响应。

You are a robot that only outputs JSON.
You reply in JSON format with the field 'zip_code'.
Example question: What is the zip code of the Empire State Building? 
Example answer: {'zip_code': 10118}
Now here is my question: What is the zip code of Menlo Park?# "{'zip_code': 94025}"

直接使用代码可以提供正确的结果。


减少幻觉

Meta的 Responsible Use Guide 是了解如何最好地提示和解决语言模型的输入/输出风险的绝佳资源。请参阅第(14-17)页。

以下是语言模型如何产生幻觉的一些示例以及解决问题的一些策略:

示例1:

语言模型被要求对一个关于它没有训练过的主题的问题做出回答。语言模型可能会产生幻觉信息或编造不准确或没有证据支持的事实。

修复:要解决此问题,您可以向语言模型提供有关主题的更多上下文或信息,以帮助它理解所问的问题并生成更准确的响应。您还可以要求语言模型为其提出的任何主张提供来源或证据,以确保其回应基于事实信息。


示例2:

语言模型被要求生成对需要特定视角或观点的问题的响应。语言模型可能会产生幻觉信息或编造与期望的视角或观点不一致的事实。

修复:要解决此问题,您可以向语言模型提供有关所需视角或观点的其他信息,例如所处理的个人或实体的目标、价值观或信仰。这可以帮助语言模型理解上下文,并生成与所需视角或观点更一致的响应。


示例3:

语言模型被要求生成对需要特定语气或风格的问题的回答。语言模型可能会产生幻觉信息或编造与所需语气或风格不一致的事实。

修复:要解决此问题,您可以向语言模型提供有关所需语调或风格的其他信息,例如受众或交流目的。这可以帮助语言模型理解上下文,并生成更符合所需语调或风格的响应。


总的来说,避免语言模型出现幻觉的关键是为他们提供清晰准确的信息和上下文,并仔细监控他们的反应,以确保它们与您的期望和要求一致。


2024-07-16(二)

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

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

相关文章

单臂路由组网实验,单臂路由的定义、适用情况、作用

一、定义 单臂路由是指通过在路由器的一个接口上配置许多子接口,从而实现原来相互隔离的不同VLAN之间的互通。 子接口:把路由器上的实际的物理接口划分为多个逻辑上的接口,这些被划分的逻辑接口就是子接口。 二、适用情况 用在没有三层交换机,却要实现不同VLAN之间的互…

Github07-16 Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-07-16统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10C++项目1AutoGPT: 人工智能革命的先锋 创建周期:486 天开发语言:Python协议类型:MIT LicenseStar数量:164105 个Fork数量:435…

axios 下载大文件时,展示下载进度的组件封装——js技能提升

之前面试的时候,有遇到一个问题:就是下载大文件的时候,如何得知下载进度,当时的回复是没有处理过。。。 现在想到了。axios中本身就有一个下载进度的方法,可以直接拿来使用。 下面记录一下处理步骤: 参考…

深度学习 | CNN 基本原理

目录 1 什么是 CNN2 输入层3 卷积层3.1 卷积操作3.2 Padding 零填充3.3 处理彩色图像 4 池化层4.1 池化操作4.2 池化的平移不变性 5 全连接层6 输出层 前言 这篇博客不够详细,因为没有介绍卷积操作的具体计算;但是它介绍了 CNN 各层次的功能…

golang AST语法树解析

1. 源码示例 package mainimport ("context" )// Foo 结构体 type Foo struct {i int }// Bar 接口 type Bar interface {Do(ctx context.Context) error }// main方法 func main() {a : 1 }2. Golang中的AST golang官方提供的几个包,可以帮助我们进行A…

[杂谈] 关于 Mac 电脑使用 Logitech 鼠标导致 Vscode 侧键无法进行代码前进、回退的问题

我个人使用的是一台 14 寸的 Mac_Apple_M1,外接键盘显示器罗技的 MX Master 3 for Mac 的鼠标。 之前一直使用的 GoLand 开发,查看代码时进行代码跳转就很方便,滚轮键 进入函数方法,鼠标侧键进行前进、后退。看代码完全可以右手单…

【大模型入门】LLM-AI大模型介绍

大语言模型 (LLM) 背景 🍹大语言模型 (Large Language Model) 是一种人工智能模型, 它们通常包含数千亿甚至更多的参数,并在大规模数据集上进行训练。大语言模型可以处理多种自然语言任务,如文本分类、问答、翻译、对话等等。 自然语言模型…

qt explicit 啥意思

explicit 在 Qt 和 C 中是一个关键字,主要用于修饰类的构造函数。其含义和用法可以归纳为以下几点: 意义: explicit 英文直译为“明确的”、“显式的”。在 C 中,当一个构造函数只接受一个参数时,它可能会被编译器用于…

【Nail it】ROS1 ROS2 通信(ros2/ros1_bridge)

情况说明:目标是实现ros2容器和ros1主机的通信,可以起一个ros1容器作为桥梁(若是在一个主机同时包含ros1&ros2,配置更加方便). 1.起一个 noetic 的容器 docker run -it --network host --name my_bridge ros:noe…

Java中的成员内部类

Java中的成员内部类(也称为非静态内部类)是定义在另一个类(外部类)内部的类。 这种内部类与它的外部类之间有着紧密的联系,主要体现在几个方面:它可以访问外部类的所有成员(包括私有成员&#…

C++小白Python选手2小时入门C++

学习链接:C入门/2小时从C到C快速入门(2018,C教程) C在C语言的基础上增加了面向对象和通用算法语言特征。 C头文件不必是.h结尾,C头文件举例:cmath、cstdio注释:单行//、多行/**/为了防止名字冲…

MQ基础1

对应B站视频: MQ入门-01.MQ课程介绍_哔哩哔哩_bilibili 微服务一旦拆分,必然涉及到服务之间的相互调用,目前我们服务之间调用采用的都是基于OpenFeign的调用。这种调用中,调用者发起请求后需要等待服务提供者执行业务返回结果后…

【JavaScript脚本宇宙】强大的自然语言处理:六款JavaScript库详解

从语义到实体:深入了解JavaScript自然语言处理库 前言 随着人工智能和自然语言处理技术的飞速发展,JavaScript在这一领域也有了越来越多的应用。本文将介绍几个优秀的JavaScript库,它们专注于处理英语文本,并提供了丰富的功能和…

求立方体面积体积以及判断(c++)

代码&#xff1a; #include<iostream> using namespace std;class Cube { public:void setL(int l){m_L l;}int getL(){return m_L;}void setW(int w){m_W w;}int getW(){return m_W;}void setH(int h){m_H h;}int getH(){return m_H;}int calculateS(){return 2 * (…

netdata 监控软件安装与学习

netdata官网 netdata操作文档 前言&#xff1a; netdata是一款监控软件&#xff0c;可以监控多台主机也可以监控单台主机&#xff0c;监控单台主机时&#xff0c;开箱即用&#xff0c;web ui很棒。 环境&#xff1a; [root192 ~]# cat /etc/system-release CentOS Linux rel…

彻底清理Conda环境:使用conda remove命令的终极指南

彻底清理Conda环境&#xff1a;使用conda remove命令的终极指南 在Conda环境中&#xff0c;随着时间的推移&#xff0c;可能会积累大量不再需要的包和它们的依赖项。这不仅会占用宝贵的磁盘空间&#xff0c;还可能影响环境的性能。conda remove命令是Conda提供的一个强大工具&…

GD32F407VET6新建固件库工程并下载运行

零、所需文件及环境&#xff1a; 1、固件库的压缩包 GD32F4xx_Firmware_Library_V3.2.0.7z 官网 2、GD32F407的keil支持包 官网 兆易创新GigaDevice-资料下载兆易创新GD32 MCU 2、 keilkilll.bat 用来删除编译过程文件 可以不要 &#xff08;原子、野火资料里都有&…

LeetCode热题100(JavaScript)

哈希 两数之和 暴力解法 /*** param {number[]} nums* param {number} target* return {number[]}*/ var twoSum function(nums, target) {for(let i 0;i<nums.length;i){let x1 nums[i]for(let j 0 ; j<nums.length;j){if(i!j){let x2 nums[j]if(x1x2target){ret…

算法金 | 来了,pandas 2.0

大侠幸会&#xff0c;在下全网同名「算法金」 0 基础转 AI 上岸&#xff0c;多个算法赛 Top 「日更万日&#xff0c;让更多人享受智能乐趣」 今日 210/10000 Pandas 是一个强大的数据分析库&#xff0c;广泛应用于科学研究、金融分析、商业智能等领域。它提供了高效的数据结构…

[WUSTCTF2020]level4题解 入土为安的第三天

二叉树 Practice my Data Structure code..... Typing....Struct.....char....*left....*right............emmmmm...OK! Traversal! Traversal type 1:2f0t02T{hcsiI_SwA__r7Ee} Traversal type 2:20f0Th{2tsIS_icArE}e7__w Traversal type 3: //type3(&x[22]); No w…