背景

相信很多申请GPT-4 API的开发者都收到OpenAI的邮件通知了,从2023.07.06开始,所有OpenAI的API付费用户都可以使用GPT-4了。

目前所有大语言模型的评测中,毫无疑问GPT-4是最亮眼的那颗星。

有了GPT-4的API,意味着开发者可以做出功能更强大、体验更好的应用。

此外,OpenAI官方表示要废弃Completions API,该API目前可以使用的一些Model会在2024年1月4号下线。后续OpenAI的规划是让开发者都使用Chat Completions API。

另外,Embedding的部分模型以及Edits API也会在2024年1月4号下线。

GPT-4 API全面开放

GPT-4是目前最强大的大语言模型,从3月份开放API以来,数百万的开发者进行了申请,有非常多成功的应用是基于GPT-4 API开发的。

从2023.07.06开始,只要有过API付费记录的开发者都可以使用GPT-4 8K上下文版本的API了。

新申请的开发者预计2023年7月底会审批通过,然后OpenAI会基于已有的计算能力来降低API的使用流控限制(rate limit),让开发者可以更顺畅地使用GPT-4 API。

GPT-3.5 Turbo, DALL.E和Whisper API也都会全部开放出来给开发者使用。

预计2023年下半年,基于GPT-4和GPT-3.5 Turbo模型的微调(fine-tuning)也会开放出来。

废弃Completions API

OpenAI在2023年3月份引入了Chat Completions API,现在有大约97%的API使用量都来源于Chat Completions API。

Completions API是在2020年6月份引入的,当时是为了给开发者提供和OpenAI语言模型交互的能力。

现在有了Chat Completions API后,完全可以覆盖Completions API的功能,而且Chat Completions API更为强大,可以满足非常多的使用场景和对话需求。

下面简单介绍几种Chat Completions API的使用场景:

  • 文本总结(Text summarization)
1
2
3
4
5
6
7
8
System
Summarize this message in max 10 words.

User
Jupiter is the fifth planet from the Sun and the largest in the Solar System. It is a gas giant with a mass one-thousandth that of the Sun, but two-and-a-half times that of all the other planets in the Solar System combined. Jupiter is one of the brightest objects visible to the naked eye in the night sky, and has been known to ancient civilizations since before recorded history. It is named after the Roman god Jupiter. When viewed from Earth, Jupiter can be bright enough for its reflected light to cast visible shadows, and is on average the third-brightest natural object in the night sky after the Moon and Venus.

Assistant
Jupiter: Largest planet, visible to the naked eye at night.
  • 代码补全(Code completion)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
System
Complete the following code.


User
def fibonacci(num):


Assistant
if num == 0:
  return 0
elif num == 1:
  return 1
else:
  fib = [0, 1]
  for i in range(2, num + 1):
     fib.append(fib[i-1] + fib[i-2])
  return fib[num]
  • 小样本学习(Few-shot learning)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
System
You translate corporate jargon into plain English.


User
New synergies will help drive top-line growth.


Assistant
Working well together will make more money.


User
Let’s circle back when we have more bandwidth to touch base on opportunities for increased leverage.


Assistant
When we’re less busy, let’s talk about how to do better.


User
This late pivot means we don’t have time to boil the ocean for the client deliverable.


Assistant
Because of this sudden change, we don’t have enough time to complete the entire project for the client.

We plan to continue investing most of our platform efforts in this direction, as we believe it will offer an increasingly capable and easy-to-use experience for developers. We’re working on closing the last few remaining gaps of the Chat Completions API quickly, such as log probabilities for completion tokens and increased steerability to reduce the “chattiness” of responses.

废弃Completions API的旧模型

OpenAI接下来会把重点放在Chat Completions API,不再投入精力支持Completions API。

从2023年1月4日开始,Completions API目前可以使用的一些模型会下线,开发者要继续使用Completions API,得使用新模型,参考如下表格:

Older model New model
ada ada-002
babbage babbage-002
curie curie-002
davinci davinci-002
davinci-instruct-beta gpt-3.5-turbo-instruct
curie-instruct-beta
text-ada-001
text-babbage-001
text-curie-001
text-davinci-001
text-davinci-002
text-davinci-003
  • 如果开发者使用的是基于GPT-3模型的稳定模型版本,例如ada, babbage, curie, davinci,那代码可以不用修改,这些稳定版本的模型底层会在2024年1月4日后自动升级为上面表格里右侧的新模型。

    右侧的新模型在接下来几周开放测试,调用API的时候指定新Model的名字即可,例如 ada-002, babbage-002, curie-002, davinci-002

  • 如果开发者使用的是其他旧模型名称,例如 text-davinci-003,那就需要在手工修改API里调用的模型名称为gpt-3.5-turbo-instruct,这个新模型也会在接下来几周开放测试。

同时,OpenAI也把Completions API在官网的API文档里标记为legacy,不推荐大家继续使用了。

所以还在用Completions API的赶紧去拥抱Chat Completions API吧。

废弃Embedding旧模型

从2024年1月4日开始,只能使用text-embedding-ada-002这个Embedding Model,其它Embedding Model都会下线,不能再使用。

text-embedding-ada-002是2022年12月上线的,比其它Embedding Model更强大而且成本更低。现在99%的embedding API调用都在使用这个模型。

这对使用旧模型来做embedding的开发者来说是一个痛苦的事情,因为不同模型embedding的结果是不一样的,开发者需要在旧模型下线前提前做好适配和测试。

OpenAI官方承诺会补偿旧模型的用户。

Older model New model
code-search-ada-code-001 text-embedding-ada-002
code-search-ada-text-001
code-search-babbage-code-001
code-search-babbage-text-001
text-search-ada-doc-001
text-search-ada-query-001
text-search-babbage-doc-001
text-search-babbage-query-001
text-search-curie-doc-001
text-search-curie-query-001
text-search-davinci-doc-001
text-search-davinci-query-001
text-similarity-ada-001
text-similarity-babbage-001
text-similarity-curie-001
text-similarity-davinci-001

废弃Edits API

目前Edits API可以使用text-davinci-edit-001code-davinci-edit-001这2个模型。

从2024年1月4日开始,Edits API不能使用这2个模型,要继续使用Edits API,得使用GPT-3.5 Turbo模型。

但是官方不再建议大家使用Edits API了,这个API也会废弃。

我们建议直接使用Chat Completions API来替代Edits API,如下例所示:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
System
Apply the change requested by the user to the code.


User
def fibonacci(num):
  if num <= 1:
    return num
  else:
    return fibonacci(num-1) + fibonacci(num-2)
print(fibonacci(10))


User
Rename the function to fib.


Assistant
def fib(num):
  if num <= 1:
    return num
  else:
    return fib(num-1) + fib(num-2)
print(fib(10))

相关阅读

总结

文章和示例代码开源在GitHub: GPT实战教程,了解主流LLM相关知识。

公众号:coding进阶。关注公众号可以获取最新GPT实战内容。

个人网站:Jincheng’s Blog

知乎:无忌

References