🔥🔥🔥还没搞懂嵌入(Embedding)、微调(Finetuning)和提示工程(Prompt Engineering)?

2023年 9月 27日 44.9k 0

嵌入(Embedding)、微调(Fine-tuning)和提示工程(Prompt Engineering) 是AIGC 模型的核心功能,合理运行这些功能,能实现一些复杂和意向不到的应用。

前言

Prompt和Embedding是AIGC模型的核心功能,语言处理应用。例如,它们可以用于聊天机器人、语言翻译、摘要生成、文本分类等。Fine-tuning技术可以用于优化预训练模型,以提高其在特定任务中的性能,例如问答、文本摘要、语言理解等。

image.png

一、嵌入(Embedding)

嵌入是浮点数的向量(列表)。两个向量之间的距离衡量它们的相关性。小距离表示高相关性,大距离表示低相关性。

image.png

嵌入通常用于:

  • Search 搜索(结果按与查询字符串的相关性排序)
  • Clustering 聚类(文本字符串按相似性分组)
  • Recommendations 推荐(推荐具有相关文本字符串的条目)
  • Anomaly detection 异常检测(识别出相关性很小的异常值)
  • Diversity measurement 多样性测量(分析相似性分布)
  • Classification 分类(其中文本字符串按其最相似的标签分类)
  • 二、微调 (Fine-tuning)

    微调通过训练比提示(prompt)中更多的示例来改进小样本学习,让您在大量任务中取得更好的结果。对模型进行微调后,您将不再需要在提示(prompt)中提供示例。这样可以节省成本并实现更低延迟的请求。

    image.png

    image.png

    三、提示工程(Prompt Engineering)

    如果没有良好的提示设计和基础技术,模型很可能产生幻觉或编造答案,其危险在于,模型往往会产生非常有说服力和看似合理的答案,因此必须非常小心地设计安全缓解措施和地面模型的事实答案,所以提示工程应运而生。

    提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。

    研究人员可利用提示工程来提升大语言模型处理复杂任务场景的能力,如问答和算术推理能力。开发人员可通过提示工程设计、研发强大的工程技术,实现和大语言模型或其他生态工具的高效接轨。

    提示工程不仅仅是关于设计和研发提示词。它包含了与大语言模型交互和研发的各种技能和技术。提示工程在实现和大语言模型交互、对接,以及理解大语言模型能力方面都起着重要作用。用户可以通过提示工程来提高大语言模型的安全性,也可以赋能大语言模型,比如借助专业领域知识和外部工具来增强大语言模型能力。

    3.1 大语言模型设置

    image.png

    Temperature:简单来说,temperature 的参数值越小,模型就会返回越确定的一个结果。如果调高该参数值,大语言模型可能会返回更随机的结果,也就是说这可能会带来更多样化或更具创造性的产出。我们目前也在增加其他可能 token 的权重。在实际应用方面,对于质量保障(QA)等任务,我们可以设置更低的 temperature 值,以促使模型基于事实返回更真实和简洁的结果。 对于诗歌生成或其他创造性任务,你可以适当调高 temperature 参数值。

    Top_p:同样,使用 top_p(与 temperature 一起称为核采样的技术),可以用来控制模型返回结果的真实性。如果你需要准确和事实的答案,就把参数值调低。如果你想要更多样化的答案,就把参数值调高一些。

    3.2 提示词的技巧

    提示词的技巧包括但不限于:

    • 使用最新的模型以获得最佳效果
    • 将指令放在提示符的开头,并使用###或”""来分隔指令和上下文
    • 对于所需的上下文、结果、长度、格式、风格等,要尽可能具体、描述和详细
    • 通过示例清晰地表达所需的输出格式
    • 从零样本开始,然后是少样本,当它们都不起作用,再进行微调减少“蓬松”和不精确的描述
    • 不要只是说什么不要做,而是说什么要做
    • 特定的代码生成一一使用“引导词”将模型推向特定的模式

    3.3 零样本提示(Zero Shot)

    零样本提示即用户不提供任务结果相关的示范,直接提示语言模型给出任务相关的回答。

    隐私过滤

    企业内容个人信息过滤。

    system_message

    请根据用户的输入,审查个人信息,将涉及个人隐私信息的内容,用【隐私内容】替代,其他内容不做任何更改。
    
    

    input

    彭磊是新裤子乐队的主唱,常驻于北京八大胡同xx四合院,电话是【隐私内容】,其乐队成员有庞宽,赵梦,代表作有《生活因你而火热》、《没有理想的人不伤心》等。
    

    output

    image.png

    数据结构化
    大语言模型具备惊人的的零样本能力。
    system_message

    根据用户输入的创建AWS EC2的实例请求,生成JSON文件。
    提取用户对话中提到的实例的区域,实例类型,磁盘大小。
    

    input

    创建一台us-east-1区域,实例类型为t2.micro的,磁盘大小为50G的AWS EC2 实例。
    

    output

    image.png

    image.png
    更多提示
    system_message

    根据用户输入的创建AWS EC2的实例请求,生成JSON文件。提取用户对话中提到的实例的区域,实例类型,磁盘大小。
    如果用户输入不足以创建AWS EC2 实例,不要生成Json,进行追问,直到可以生成为止。
    

    input

    创建一台us-east-1区域,实例类型为t2.micro的AWS EC2 实例。
    

    output

    image.png

    3.4 少样本提示(Few Shot)

    当零样本不起作用时,建议在提示中提供演示或示例,这就引出了少样本提示。

    用户举例。

    创建一台us-east-1区域,实例类型为t2.micro的,磁盘大小为50G的AWS EC2 实例。
    
    {
    "region": "us-east-1",
    "InstanceType": "t2.micro",
    "diskSize": "50G"
    }
    
    

    image.png

    output

    image.png

    3.5 链式思考提示(CoT)

    **链式思考(CoT)**提示通过中间推理步骤实现了复杂的推理能力,可以将其与少样本提示相结合,以获得更好的结果,以便在回答之前进行推理的更复杂的任务。

    image.png

    image.png

    最近提出来的有零样本CoT,它基本上涉及将“让我们逐步思考”添加到原始提示中。让我们尝试一个简单的问题,看看模型的表现如何:

    image.png

    这个简单的提示在这个任务中非常有效。这在您没有太多示例可用于提示时特别有用。

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论