GPT-4o加錢能變快!新功能7秒完成原先23秒的任務
OpenAI出了個新功能,直接讓ChatGPT輸出的速度原地起飛!
這個功能叫做“預測輸出”(Predicted Outputs),在它的加持之下,GPT-4o可以比原先快至多5倍。
以編程為例,來感受一下這個feel:
為啥會這么快?用一句話來總結就是:
跳過已知內容,不用從頭開始重新生成。
因此,“預測輸出”就特別適合下面這些任務:
- 在文檔中更新博客文章
- 迭代先前的響應
- 重寫現有文件中的代碼
而且與OpenAI合作開發這個功能的FactoryAI,也亮出了他們在編程任務上的數據:
從實驗結果來看,“預測輸出”加持下的GPT-4o響應時間比之前快了2-4倍,同時保持高精度。
并且官方還表示:
原先需要70秒完成的編程任務,現在只需要20秒。
值得注意的是,目前“預測輸出”功能僅支持GPT-4o和GPT-4o mini兩個模型,且是以API的形式。
對于開發者而言,這可以說是個利好消息了。
網友們在線實測
消息一出,眾多網友也是坐不住了,反手就是實測一波。
例如Firecrawl創始人Eric Ciarla就用“預測輸出”體驗了一把將博客文章轉為SEO(搜索引擎優化)的內容,然后他表示:
速度真的超級快。
它就像在API調用中添加一個預測參數一樣簡單。
,時長00:20
另一位網友則是在已有的代碼之上,“喂”了一句Prompt:
change the details to be random pieces of text.
將詳細信息更改為隨機文本片段。
來感受一下這個速度:
也有網友曬出了自己實測的數據:
總而言之,快,是真的快。
怎么做到的?
對于“預測輸出”的技術細節,OpenAI在官方文檔中也有所介紹。
OpenAI認為,在某些情況下,LLM的大部分輸出都是提前知道的。
如果你要求模型僅對某些文本或代碼進行細微修改,就可以通過“預測輸出”,將現有內容作為預測輸入,讓延遲明顯降低。
例如,假設你想重構一段 C# 代碼,將 Username 屬性更改為 Email
/// <summary>
/// Represents a user with a first name, last name, and username.
/// </summary>
public class User
{
/// <summary>
/// Gets or sets the user's first name.
/// </summary>
public string FirstName { get; set; }
/// <summary>
/// Gets or sets the user's last name.
/// </summary>
public string LastName { get; set; }
/// <summary>
/// Gets or sets the user's username.
/// </summary>
public string Username { get; set; }
}
你可以合理地假設文件的大部分內容將不會被修改(例如類的文檔字符串、一些現有的屬性等)。
通過將現有的類文件作為預測文本傳入,你可以更快地重新生成整個文件。
import OpenAI from "openai";
const code = `
/// <summary>
/// Represents a user with a first name, last name, and username.
/// </summary>
public class User
{
/// <summary>
/// Gets or sets the user's first name.
/// </summary>
public string FirstName { get; set; }
/// <summary>
/// Gets or sets the user's last name.
/// </summary>
public string LastName { get; set; }
/// <summary>
/// Gets or sets the user's username.
/// </summary>
public string Username { get; set; }
}
`;
const openai = new OpenAI();
const completion = await openai.chat.completions.create({
model: "gpt-4o",
messages: [
{
role: "user",
content: "Replace the Username property with an Email property. Respond only with code, and with no markdown formatting."
},
{
role: "user",
content: code
}
],
prediction: {
type: "content",
content: code
}
});
// Inspect returned data
console.log(completion);
使用“預測輸出”生成tokens會大大降低這些類型請求的延遲。
不過對于“預測輸出”的使用,OpenAI官方也給出了幾點注意事項。
首先就是我們剛才提到的僅支持GPT-4o和GPT-4o-mini系列模型。
其次,以下API參數在使用預測輸出時是不受支持的:
- n
- logprobs
- presence_penalty
- frequency_penalty
- audio
- modalities
- max_completion_tokens
- tools
除此之外,在這份文檔中,OpenAI還總結了除“預測輸出”之外的幾個延遲優化的方法。
包括“加速處理token”、“生成更少的token”、“使用更少的輸入token”、“減少請求”、“并行化”等等。
文檔鏈接放在文末了,感興趣的小伙伴可以查閱哦~
One More Thing
雖然輸出的速度變快了,但OpenAI還有一個注意事項引發了網友們的討論:
When providing a prediction, any tokens provided that are not part of the final completion are charged at completion token rates.
在提供預測時,所提供的任何非最終完成部分的tokens都按完成tokens費率收費。
有網友也曬出了他的測試結果:
- 未采用“預測輸出”:5.2秒,0.1555美分
- 采用了“預測輸出”:3.3秒,0.2675美分
嗯,快了,也貴了。
OpenAI官方文檔:https://platform.openai.com/docs/guides/latency-optimization#use-predicted-outputs