TL;DR

OpenAI API四代演变

整个演变过程,除了确实加速LLM原生应用开发,我看到的是基础模型厂商从单纯工具到业务“伙伴”的野心,本质上是在代表AGI和生态(开发者即普通人)博弈的过程,已经不是过去云厂商和客户之间烙铁合作的关系,更像是汲取和超越。

整个演变过程反映了基础模型厂商从单纯工具到业务伙伴的野心,本质上是在代表AGI和生态(开发者即普通人)博弈的过程。

第一代,completion接口

LLM本质上都是在做一个补全的任务,所以最开始提供的接口是completion,它的数据结构是: Request:

from openai import OpenAI
client = OpenAI()

client.completions.create(
  model="gpt-3.5-turbo-instruct",
  prompt="Say this is a test",
  max_tokens=7,
  temperature=0
)

Response:

{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "gpt-3.5-turbo-instruct",
  "system_fingerprint": "fp_44709d6fcb",
  "choices": [
    {
      "text": "\\n\\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}

模型会从你发送的文本向后补全token,这些token则是它的预测结果,从案例的请求和结果来看,是:

Say this is a test

This is indeed a test

这里面有个关键参数是max_tokens,这个控制了模型最终生成多少个token来完成这次生成任务。