作者 | Joab Jackson
編輯 | 言征
出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)
ChatGPT輸出可以更加可控了,OpenAI昨天發(fā)布了一款工具,該工具將以用戶指定的精確格式返回查詢結(jié)果。
OpenAI 首席執(zhí)行官Sam Altman表示,這是使用 AI 技術(shù)的開發(fā)人員提出最多的請(qǐng)求。
1.OpenAI 今年的重點(diǎn):DevTools
自 2022 年 11 月首次亮相以來,ChatGPT 服務(wù)已被無數(shù)應(yīng)用程序開發(fā)人員用于代理驅(qū)動(dòng)和其他應(yīng)用程序。但是,雖然 ChatGPT 使用大量非結(jié)構(gòu)化數(shù)據(jù)來提供其結(jié)果(通過 API 驅(qū)動(dòng)的函數(shù)調(diào)用),但應(yīng)用程序開發(fā)人員更希望將這些結(jié)果作為結(jié)構(gòu)化數(shù)據(jù)提供,以便各自的應(yīng)用程序可以更好地解析它們。
去年,OpenAI 擴(kuò)展了其 API,以包含以JSON形式提供的結(jié)果。本周三,該公司更進(jìn)一步,推出了一項(xiàng)名為“結(jié)構(gòu)化輸出”的新 API 功能,該功能將以開發(fā)人員在查詢中指定的任何JSON 模式提供結(jié)果。
OpenAI技術(shù)人員Michelle Pokrass在周二發(fā)布的一篇博客文章中寫道:“開發(fā)人員長(zhǎng)期以來一直在通過開源工具、提示和反復(fù)重試請(qǐng)求來解決 LLM 的局限性,以確保模型輸出符合與其系統(tǒng)互操作所需的格式。 ”
“結(jié)構(gòu)化輸出通過約束 OpenAI 模型以匹配開發(fā)人員提供的模式并訓(xùn)練我們的模型以更好地理解復(fù)雜模式來解決此問題。”
2.結(jié)構(gòu)化輸出如何提高 LLM質(zhì)量
結(jié)構(gòu)化輸出與普通用戶提示生成的輸出不同,因?yàn)樗鼈冊(cè)谒芴峁┑男畔⒎矫媸艿较拗?,這種技術(shù)稱為“約束采樣”或“約束解碼”。
Pokrass 解釋說:“為了強(qiáng)制有效輸出,我們將模型限制為僅根據(jù)提供的模式有效的標(biāo)記,而不是所有可用的標(biāo)記?!?/p>
對(duì)于 ChatGPT 來說,采用這一模式的這一額外步驟可以提高其準(zhǔn)確性。
OpenAI 開發(fā)人員在測(cè)試中發(fā)現(xiàn),對(duì)復(fù)雜JSON模式的評(píng)估中,帶有結(jié)構(gòu)化輸出的新模型gpt-4o-2024-08-06得分為100%。相比之下,gpt-4-0613的得分不到40%。
ChgatGPT 能夠 100% 正確地填充預(yù)定義模式,但通過簡(jiǎn)單提示只能提供 85% 的正確響應(yīng)。
圖片
OpenAI 圖表比較了針對(duì) JSON 模式生成的 ChatGPT 響應(yīng)與從命令提示符生成的響應(yīng)的可靠性。
3.如何產(chǎn)生結(jié)構(gòu)化輸出
那么如何操做呢?
現(xiàn)在,當(dāng)應(yīng)用程序提交請(qǐng)求時(shí),開發(fā)人員會(huì)通過json_schema提供 JSON 模式,這是response_format參數(shù)的一個(gè)新選項(xiàng)。同時(shí),在函數(shù)定義中,必須將strict值設(shè)置為“true”。然后,模型的輸出將使其答案與模式最佳匹配(這既適用于 AI 工具,也適用于直接用戶查詢)。
圖片
值得注意的是,響應(yīng)結(jié)果仍將遵守 OpenAI 的安全要求(阻止?jié)撛谟泻?nèi)容),并將對(duì)不會(huì)回答的問題返回拒絕字符串值。此外還有其他限制:它僅支持JSON 模式的子集。它無法防止模型定義中的錯(cuò)誤,并且由于 ChatGPT 會(huì)整理開發(fā)人員的模式,因此第一次響應(yīng)會(huì)有額外的延遲。
OpenAI的 Node.js和Python軟件開發(fā)工具包都已更新了最新的response_format參數(shù)。
當(dāng)然,最大的可能用例是將非結(jié)構(gòu)化數(shù)據(jù)格式化為結(jié)構(gòu)化數(shù)據(jù),以便關(guān)系數(shù)據(jù)庫系統(tǒng)可以提取和分析它。這對(duì)于在辦公文檔中存儲(chǔ)大量信息的組織來說一直是一個(gè)挑戰(zhàn)。
但波克拉斯詳細(xì)闡述了該技術(shù)的一些可能的高級(jí)用途,包括根據(jù)用戶輸入動(dòng)態(tài)創(chuàng)建用戶界面并在沒有支持材料的情況下提供單一答案。
機(jī)器學(xué)習(xí)研究員Elvis Saravia在 X 上指出,這是一個(gè)“很棒的功能,非常有必要” ,并在Youtube制作了一個(gè)關(guān)于如何使用結(jié)構(gòu)化輸出的教程,各位不防自行查閱。
圖片
參考鏈接:https://thenewstack.io/openais-chatgpt-now-formats-output-to-developer-queries/