菜单

提示格式

相关源文件

本文档涵盖了Llama模型变体中使用的提示格式约定、特殊标记和结构化输入格式。提示格式定义了文本、图像和工具调用如何被组织成模型输入,以及模型如何生成结构化输出。

有关底层分词机制的信息,请参阅分词和量化。有关工具调用实用程序和验证的详细信息,请参阅工具实用程序。有关模型特定功能和特性的信息,请参阅模型版本

特殊标记

Llama模型使用一组特殊标记来构建对话、处理多模态输入和管理工具交互。这些标记在提示格式中充当分隔符和控制信号。

核心对话标记

标记目的使用上下文
`<begin_of_text>`
`<end_of_text>`
`<header_start>`
`<header_end>`
`<eot>`

多模态标记

标记目的使用上下文
`<image_start>`
`<image_end>`
`<patch>`
`<tile_x_separator>`
`<tile_y_separator>`
`<image>`

来源:models/llama4/prompt_format.md5-16

对话结构

基本对话格式遵循由头部限定的结构,其中每条消息都包含在角色头部中并以轮次结束标记终止。

基本对话格式流程

角色类型

系统支持三种不同的角色,每种角色都有其特定用途

  • system: 建立模型行为的上下文、规则和指导方针
  • user: 代表人机输入,包括问题、命令和请求
  • assistant: 包含模型生成的响应和工具调用结果

来源:models/llama4/prompt_format.md20-23 models/llama4/prompt_format.md32-45

纯文本提示

简单的文本对话遵循标准的头部限定格式。每个轮次都包含一个角色头部、消息内容和轮次结束标记。

示例格式

<|begin_of_text|><|header_start|>system<|header_end|>

You are a helpful assistant<|eot|><|header_start|>user<|header_end|>

Answer who are you in the form of jeopardy?<|eot|><|header_start|>assistant<|header_end|>

模型生成

"What is a helpful assistant?"<|eot|>

来源:models/llama4/prompt_format.md32-45

多模态图像提示

图像提示使用补丁标记和瓦片分隔符嵌入视觉数据。格式因图像大小和模型的平铺策略而异。

图像处理格式决策树

小图像格式

对于小于瓦片大小的图像,格式包括一个缩小的版本,后跟补丁标记

<|image_start|><|image|><|patch|><|patch|>...<|patch|><|image_end|>

大图像格式

对于需要平铺的图像,分隔符将补丁组织成网格结构

<|image_start|><|patch|>...<|tile_x_separator|><|patch|>...<|tile_y_separator|><|image|><|patch|>...<|image_end|>

`<|image|>`标记将常规尺寸的图像信息与适合单个瓦片的缩小版本分开。

多张图像

每张图像都包裹在各自的`<|image_start|>`和`<|image_end|>`标记中

<|image_start|>...first_image...<|image_end|><|image_start|>...second_image...<|image_end|>

来源:models/llama4/prompt_format.md51-126

工具调用格式

工具调用使模型能够在生成过程中调用外部函数。系统支持多种定义和调用工具的格式。

工具调用格式选项

JSON格式(系统消息)

函数在系统消息中以JSON格式定义

模型生成类似Python语法的函数调用

[get_weather(city="San Francisco"), get_weather(city="Seattle")]<|eot|>

JSON格式(用户消息)

类似于系统消息格式,但函数定义出现在用户消息中与查询一起。

自定义格式

自定义指令格式允许使用替代语法

<function=trending_songs>{"n": 10}</function><|eot|>

函数调用规则

  1. 要求精确格式: 函数调用必须严格遵循指定的语法
  2. 支持多次调用: 可以在单个响应中生成并行函数调用
  3. 无混合内容: 响应包含文本或函数调用,两者不同时存在
  4. 参数验证: 所有必需参数必须存在

来源:models/llama4/prompt_format.md128-304

实现集成

提示格式化系统与多个核心组件集成

提示格式集成架构

核心数据类型中的`Role`枚举和`RawMessage`类为消息结构提供了基础,而分词系统则处理从格式化提示到模型输入标记的转换。

来源:models/llama4/prompt_format.md1-304