【大模型基础_毛玉仁】3.1 Prompt 工程简介


更多内容:XiaoJ的知识星球


目录

  • [3 Prompt工程](#3 Prompt工程)
    • [3.1 Prompt 工程简介](#3.1 Prompt 工程简介)
      • [3.1.1 Prompt 的定义](#3.1.1 Prompt 的定义)
      • [3.1.2 Prompt 工程的定义](#3.1.2 Prompt 工程的定义)
      • [3.1.3 Prompt 分词向量化](#3.1.3 Prompt 分词向量化)
      • [3.1.4 Prompt 工程的意义](#3.1.4 Prompt 工程的意义)

3 Prompt工程

大语言模型因训练数据规模和参数数量增长,突破泛化瓶颈,涌现强指令跟随能力。泛化能力使其处理多种未知任务,指令跟随能力让其准确响应人类指令。二者结合,通过精心编写的Prompt引导模型适应下游任务,避免传统微调高昂成本。

Prompt工程是编写有效指令的技术,是连接模型与任务需求的桥梁,要求深入了解模型和精准把握任务目标,能最大化发挥模型潜力,使其在多场景中表现卓越。

本章探讨Prompt工程的概念、方法、作用,介绍上下文学习、思维链等技术及Prompt工程的应用。

.

3.1 Prompt 工程简介

传统自然语言处理研究遵循"预训练-微调-预测"范式,即大规模语料库上预训练--下游任务上微调--进行预测。

但随着语言模型规模和能力的提升,"预训练-提示预测"新范式出现,它通过精心设计Prompt引导大模型直接适应下游任务,无需繁琐微调。

在此过程中,Prompt设计对模型性能影响深远,而专注于编写Prompt的技术即Prompt工程

图3.1: "预训练-微调-预测"范式与"预训练-提示预测"范式对比

.

3.1.1 Prompt 的定义

Prompt:是指用于指导生成式人工智能模型执行特定任务的输入指令,这些指令通常以自然语言文本的形式出现。

Prompt核心目的:是清晰地描述模型应该执行的任务,以引导模型生成特定的文本、图像、音频等内容。

图3.2: 几种常见的Prompt例子

Prompt 的应用范围广泛,不仅限于文本到文本的任务。但本文聚焦于文本生成模型。

.

3.1.2 Prompt 工程的定义

Prompt 工程Prompt Engineering ),又称提示工程

  • 是指设计和优化用于与生 成式人工智能模型交互的Prompt的过程

Prompt 工程技术的核心:

  • 将新任务通过 Prompt 构建为模型在预训练阶段已经熟悉的形式,利用模型固有的泛化能力来执行新的任务,而无需在额外的特定任务上进行训练。

Prompt 的四个基本元素:

  • 任务说明------向模型明确提出具体的任务要求。任务说明应当清晰、直接,并尽可能详细地描述期望模型完成的任务。

  • 上下文------向模型提供的任务相关背景信息,用以增强其对任务的理解以及提供解决任务的思路。上下文可以包括特定的知识前提、目标受众的背景、 相关任务的示例,或任何有助于模型更好地理解任务的信息。

  • 问题------向模型描述用户的具体问题或需要处理的信息。这部分应直接涉及用户的查询或任务,为模型提供一个明确的起点。问题可以是显式的提问, 也可以是隐式的陈述句,用以表达用户的潜在疑问。

  • 输出格式------期望模型给出的回答的展示形式。这包括输出的格式,以及任何特定的细节要求,如简洁性或详细程度。例如,可以指示模型以JSON格式输出结果。

Prompt 的四个基本元素------任务说明、上下文、问题和输出格式,对于大语言模型生成的效果具有显著影响。这些元素的精心设计和组合构成了Prompt工程的 核心。

在此基础上,Prompt工程包括多种技巧和技术,如

  • 上下文学习(In-Context Learning);

  • 思维链(ChainofThought)等。

Prompt长度增加会减慢模型推理速度、提升推理成本。

LLMLingua提出一种由粗到细的Prompt压缩方法,可将Prompt压缩至原来的二十分之一且几乎不损失性能。

随着RAG技术兴起,模型需处理更多上下文信息,FIT-RAG通过高效压缩检索内容,将上下文长度缩短约50%,同时保持性能稳定。

这些方法在优化Prompt长度的同时,确保了模型性能不受影响,为处理大规模上下文信息提供了有效解决方案。

.

3.1.3 Prompt 分词向量化

1)基本概念

构建Prompt后,将其输入到大语言模型中,以期待得到满意的生成结果。但语言模型无法直接理解文本。

在Prompt进入大模型之前,需要将它拆分成一个Token的序列,其中Token承载语义的最小单元,标识具体某个词,并且每个Token由Token ID唯一标识。

文本转化为Token 的过程称之为分词Tokenization),如图3.4所示,对于"小浣熊吃干脆面"这样一句话,经过分词处理之后,会变成一个Token序列,每个Token有对应的Token ID。

图3.4: 分词与嵌入的过程,以DeepSeek-V2-Chat模型的分词器为例

一句话可能存在多种拆分方式。为实现有效分词,首先需构建一个包含大语言模型所能识别的所有Token的词表,并依据该词表进行句子拆分。

.

在构建大语言模型的词表时,分词器依赖于分词算法,如BBPE、BPE 和WordPiece 等,这些算法通过分析语料库中的词频等信息来划分Token。

BBPEByte-Level Byte Pair Encoding)算法为例,阐述其分词过程:

  1. 初始化词表:首先,将所有字符按照其底层编码拆分为若干字节,并将这些单字节编码作为初始词表的Token。

  2. 统计词频:接下来,统计词表中所有Token对(即相邻Token的组合)的出现频率。在初始阶段,Token对即为相邻字节的组合。

  3. 合并高频Token对:然后,选择出现频率最高的Token对,将其合并成一个新的Token并加入词表。

  4. 迭代合并:重复步骤2和步骤3,不断迭代合并,直至达到预设的词表大小或达到指定的合并次数。

.

2)分词对模型性能影响

词表大小和分词粒度影响模型性能。

  • 词表过小:会使模型难以区分相似词汇,限制语义承载能力,增加序列长度;

  • 词表过大:则可能导致学习不深入,难以捕捉词汇关联。

构建词表时需平衡涵盖词汇广泛性和语义精细度,以确保大语言模型能学习丰富词汇知识,准确理解和生成复杂语义文本。

如图3.4所示,词表构建时,高频词语或短语收录为独立Token,如"干脆"表示一个Token;同时包含特殊Token,通过组合表示低频生僻字,如"浣"用"æµ"和"£"组合表示。这样既能涵盖常见高频词汇,又能灵活表达稀有字符,且词表构建受人类语料库积累沉淀的"先验知识"影响。

大语言模型的分词器质量直接影响模型性能。优秀分词器应具备以下特点:

  • 一是准确识别文本中的关键词和短语,助力模型捕捉语义信息;

  • 二是高效实现文本Token优化压缩,显著缩短模型处理数据时间,提升训练和推理速度,降低计算资源消耗。

表3.1: 模型分词器对比表

模型 词表大小 中文分词效率(字/Token) 英文分词效率(词/Token)
LLaMA1 32000 0.6588 0.6891
LLaMA2 32000 0.6588 0.6891
LLaMA3 128256 1.0996 0.7870
DeepSeek-V1 100016 1.2915 0.7625
DeepSeek-V2 100002 1.2915 0.7625
GPT-3.5 & GPT-4 100256 0.7723 0.7867
GPT-3 50,257 0.4858 0.7522
Qwen-1.5 151646 1.2989 0.7865
StarCoder 49152 0.9344 0.6513

不同开源大语言模型的分词器性能受词表大小、分词效率等因素影响。

  • 对DeepSeek、Qwen等中文开源模型对中文分词优化好,平均每个Token可表示1.3个字(每个字仅需0.7个Token即可表示),常用词甚至一个Token表示,分词效率高。

  • 而GPT-4、LLaMA系列等以英文为主的模型,中文支持弱,分词效率低。

  • 在英文中,由于存在"ly","ist"等后缀Token,单词通常需1个及以上Token表示。单个Token语义承载多,模型输出Token少,提升推理效率。

对比不同模型分词器处理不同语言的效率,对选合适模型和优化性能意义重大。

分词后的Token,经嵌入矩阵Embedding Matrix )转为固定大小的表征向量,供模型理解处理。生成阶段,模型依输入向量序列计算词表概率分布,选对应Token输出并转为文本内容。

上述通过分词技术将文本分割成Token,再将Token转化为特征向量,在高维 空间中表征这些文本的处理流程,使得语言模型能够捕捉文本的深层语义结构,并 有效地处理和学习各种语言结构,从简单的词汇到复杂的句式和语境。

.

3.1.4 Prompt 工程的意义

Prompt工程是一种高效灵活的自然语言处理任务执行方式,无需微调模型,避免了高昂的计算成本。它能激发大型语言模型的潜力,在垂域任务、数据增强、智能代理等多个领域发挥出卓越的性能。

  • 垂域任务:Prompt工程可引导大语言模型完成垂直领域任务,无需针对每个任务进行特定微调,降低计算成本和标注数据依赖。

  • 数据增强:Prompt工程利用大语言模型进行数据增强,提升现有数据集质量并生成新高质量数据。

  • 智能代理:Prompt工程可将大语言模型构建为智能代理(IntelligentAgent,IA),智能代理又叫做智能体,使其能感知环境、自主行动和学习知识。

.


其他参考:【大模型基础_毛玉仁】系列文章


声明:资源可能存在第三方来源,若有侵权请联系删除!

相关推荐
蹦蹦跳跳真可爱589几秒前
Python----计算机视觉处理(Opencv:ROI图像切割)
人工智能·python·opencv·计算机视觉
xiangzhihong821 分钟前
Hunyuan3D,腾讯推出的3D资产系统
人工智能·深度学习·机器学习
Kika写代码23 分钟前
Cursor AI IDE
人工智能
视觉&物联智能39 分钟前
【杂谈】-2025年AI与网络安全六大趋势展望
人工智能·安全·web安全·网络安全·ai·agi·数字安全
梦想画家40 分钟前
PyTorch系列教程:基于LSTM构建情感分析模型
人工智能·pytorch·lstm
知舟不叙1 小时前
机器学习——深入浅出理解朴素贝叶斯算法
人工智能·python·算法·机器学习
CodeJourney.1 小时前
AI赋能办公:开启高效职场新时代
数据库·人工智能·算法
yscript1 小时前
linux系统安装和激活conda
linux·运维·人工智能·python·深度学习·conda
szxinmai主板定制专家1 小时前
基于FPGA的3U机箱轨道交通网络通讯板,对内和主控板、各类IO板通信,对外可进行RS485、CAN或MVB组网通信
大数据·人工智能·嵌入式硬件·fpga开发·边缘计算
海特伟业2 小时前
森林防火预警广播监控系统:以4G为纽带架构融合智能广播、远程监控、AI智能识别、告警提示、太阳能供电于一体的新一代森林防火预警系统
人工智能·架构