提示词工程介绍

大模型之提示工程


1.提示词工程

  1. 什么是提示词(Prompt)

    所谓的提示词其实指的就是提供给模型的一个文本片段,用于指导模型生成特定的输出或回答。提示词的目的是为模型提供一个任务的上下文,以便模型能够更准确地理解用户的意图,并生成相关的回应。

  1. 什么是提示词工程(Prompt Engineering)

    所谓的提示工程也可以被称为「指令工程」,提示工程的核心思想是,通过精心设计的提示,可以显著提高模型的性能和输出质量。

    貌似简单,但其实意义非凡。(提问的智慧)

    • Prompt 是 AGI 时代的「编程语言」
    • 提示工程师是 AGI 时代的「程序员」

    如果要学好提示工程,那么其实就是要知道如何对咱们的Prompt进行调优,与大模型进行更好的交互。

    获得更好结果的中策略:

    • write clear instructions 编写清晰的说明
    • provide reference text 提供参考文献
    • split complex tasks into simpler subtasks 将复杂任务拆分为更简单的子任务
    • give the model time to think 给模型时间思考
    • use external tools 使用外部工具
    • test changes systematically 系统地测试更改
  2. 提示词工程常用技巧

    使用 清晰,明确,避免模糊的词语

    在对话中包含详细信息以获得更好的答案

    • 给openai写首诗,用中文
    • 给openai写一首四句的中文诗,模仿李白的《望庐山瀑布》

    角色扮演

    给我一个减肥的计划 VS 我想让你扮演一个专业的健身私人教练。你应该利用你的运动科学知识、营养建议和其他相关因素为你的客户定制专业的计划。给我一个减肥的计划。

    告诉用户的角色

    怎么提高英语成绩? VS 我是一名幼儿园的5岁小朋友,还不会写字。怎么提高英语成绩?

    指定输出的格式

    给openai写一首四句的中文诗,模仿李白的《望庐山瀑布》输出格式为json

    少样本提示

    生成文本:ChatGPT可以生成与给定主题相关的文章、新闻、博客、推文等等。您可以提供一些关键词或主题,然后ChatGPT将为您生成相关的文本。
    
    语言翻译:ChatGPT可以将一种语言的文本翻译成另一种语言。
    
    问答系统:ChatGPT可以回答您提出的问题,无论是事实性的问题、主观性的问题还是开放性的问题。
    
    对话系统:ChatGPT可以进行对话,您可以与ChatGPT聊天,让它回答您的问题或某个话题进行讨论。
    
    摘要生成:ChatGPT可以从较长的文本中生成摘要,帮助您快速了解文章的主要内容。
    
    文本分类:ChatGPT可以将一些给定的文本分类到不同的类别中,例如新闻、体育、科技等等。
    
    文本纠错:ChatGPT可以自动纠正文本中的拼写错误和语法错误,提高文本的准确性。
    
  3. Prompt调优

    找到好的 prompt 是个持续迭代的过程,需要不断调优。

    高质量 prompt 核心要点:具体、丰富、少歧义

    • 简洁:尽量用最简短的方式表达问题。过于冗长的问题可能包含多余的信息,导致模型理解错误或答非所问。

    • 具体:避免抽象的问题,确保问题是具体的、不含糊。

    • 详细上下文:如果问题涉及特定上下文或背景信息,要提供足够的详情以帮助模型理解,即使是直接提问也不例外。

    • 避免歧义:如果一个词或短语可能有多重含义,要么明确其含义,要么重新表述以消除歧义。

    • 逻辑清晰:问题应逻辑连贯,避免出现逻辑上的混淆或矛盾,这样才能促使模型提供有意义的回答。

    Prompt 的典型构成

    • 角色:给 AI 定义一个最匹配任务的角色,比如:「你是一位软件工程师」「你是一位小学老师」

    • 指示:对任务进行描述

    • 上下文:给出与任务相关的其它背景信息(尤其在多轮交互中)

    • 例子:必要时给出举例,学术中称为 one-shot learning, few-shot learning 或 in-context learning;实践证明其对输出正确性有帮助

    • 输入:任务的输入信息;在提示词中明确的标识出输入

    • 输出:输出的格式描述,以便后继模块自动解析模型的输出结果,比如(JSON、XML)

    大模型对 prompt 开头和结尾的内容更敏感

    为什么要用代码完成一部分需求,而不是直接使用OpenAI

    产品中集成和使用仍然需要大量的工作

posted @ 2025-03-07 17:09  Michael_Z  阅读(572)  评论(0)    收藏  举报