自学内容网 自学内容网

LLM学习笔记(3)补全Completions

Completions和Chat Completions的对比

1. 功能侧重点的不同

Completions(文本/代码补全)

功能目标是进行单次补全任务,例如自动完成代码段、生成文本内容、填充某个提示后的内容。

特点

  • 使用prompt字段:接受一个提示作为输入。
  • 更适用于单个任务生成,像代码片段生成、摘要生成或文章续写。

Chat Completions(会话补全)

功能目标:处理多轮对话。

  • 它模拟对话的逻辑,比如聊天机器人对用户消息的回应。
  • 使用的模型主要是针对对话型应用优化的模型,例如gpt-3.5-turbogpt-4

特点

  • 支持messages字段:可以存储多轮对话消息的历史记录。
  • role字段(system/user/assistant):用来标明消息的身份,例如系统、用户或助手。
  • 适合聊天机器人、虚拟助手等交互场景。

2. API请求字段的差异

对比点Chat Completions 会话补全Completions 文本/代码补全
核心字段messages(对话消息列表)prompt(输入提示)
模块类型对话模型(如gpt-3.5-turbogpt-4补全模型(如text-davinci-003
功能多轮对话生成,支持上下文逻辑单次任务生成,完成提示后的内容
采样选项通常无需修改temperature,因为对话逻辑稳定采样温度temperature影响随机性,灵活生成

3. 响应结构的差异

Chat Completions(会话补全)

  choices字段中的message是一个完整的会话响应,包括rolecontent

        支持多轮对话历史messages字段中记录了之前所有的对话上下文。

Completions(文本/代码补全)

  choices字段中的text直接包含补全的内容。

        没有会话上下文,单次任务完成后返回结果。

4. 两者的联系

尽管两者有所不同,它们的底层逻辑是一致的,都是通过输入请求(prompt/messages)与模型交互,并得到生成结果(response)。主要区别在于:

  1. 输入结构Chat Completions更复杂,支持多轮对话;Completions则偏向简单的提示补全。
  2. 模型优化方向Chat Completions针对交互性优化;Completions适用于静态补全任务。

Completions响应JSON中的几个字段

1. logprobs 字段

  • 含义
    • logprobs 是“logarithmic probabilities”(对数概率)的缩写。
    • 它用于存储模型在生成每个 token 时,针对所有可能的 token 的概率分布的对数值(log-probability)。
  • 用途
    • 用于分析模型生成的每一步的置信度。
    • 开发者可以通过 logprobs 来了解生成每个 token 时,模型对该 token 的选择是否具有高置信度。
  • 当前值为 null 的原因
    • 在请求时未启用 logprobs 功能。
    • 如果需要获取 logprobs,需要在 API 请求中明确设置 logprobs=1 或更高的值。

2. finish_reason 字段

  • 含义
    • 表示生成结束的原因。
    • 常见的值包括:
      • "stop":生成完成,没有达到限制条件。
      • "length":生成因达到 max_tokens 限制而被截断。
      • "content_filter":生成内容被内容过滤器终止。
  • 当前值为 "length" 的原因
    • API 请求中设置了 max_tokens=7,因此生成的内容不能超过 7 个 token。
    • 在这个例子中,生成的补全确实达到了 7 个 token,因此触发了 "length" 作为结束原因。

为什么 finish_reason"length"

这与 Token 限制相关

  1. 请求中的限制

    • 在请求时,开发者设置了 max_tokens=7,明确限制了模型生成的最大 token 数量为 7。
    • 这个限制包括空格、标点符号和单词。
  2. 生成的内容

    • 示例响应中的补全内容为:

      "\n\nThis is indeed a test"

    • 这段文本的 token 分解大致如下:
      • \n (换行) = 1 token
      • \n (换行) = 1 token
      • This = 1 token
      • is = 1 token
      • indeed = 1 token
      • a = 1 token
      • test = 1 token
      • 总计 = 7 tokens
  3. 达到限制

    当模型生成了 7 个 token 后,因达到 max_tokens 限制,生成过程被自动停止,因此 finish_reason"length"


原文地址:https://blog.csdn.net/qq_40525602/article/details/143888402

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!