JavaScript物件標記法(JSON)是一種行業標準的檔案格式,具有可讀性和可解析性,廣泛用於數據交換。儘管JSON具備優勢,大型語言模型(LLMs)在處理JSON時仍然面臨挑戰,常常出現幻覺內容、生成的回應僅部分符合指示,或無法正確解析JSON的情況。這使得開發人員不得不使用各種變通方法,例如開源工具、多次提示或重複請求,以實現期望的輸出互操作性。
結構化輸出:為開發者的解決方案
今日,OpenAI推出了結構化輸出功能,以解決這些問題。這項新功能確保模型生成的輸出符合JSON Schema,該Schema定義了JSON文檔的內容、結構、數據類型及約束。OpenAI指出,這是開發者要求最多的功能,並強調其在加強應用程序一致性方面的重要性。CEO Sam Altman更表示此次發布是“應開發者的強烈要求”。
在評估中,OpenAI的新GPT-4o模型在結構化輸出功能下取得了100%的滿分。此公告發布之際,OpenAI亦經歷了一週內重要高管約翰·舒爾曼、格雷格·布羅克曼和彼得·登的意外辭職,以及伊隆·馬斯克針對公司的法律挑戰,形容為對AI使命的“莎士比亞式”背叛。
輕鬆增強模式遵循
JSON作為一種靈活且被廣泛使用的數據存儲和交換格式,與多種編程語言兼容。OpenAI在去年的DevDay上推出了模型的JSON模式,以滿足開發者的需求。結構化輸出使開發者能夠限制OpenAI模型嚴格遵循定義的模式,OpenAI表示這一功能增強了模型對複雜模式的理解。
“結構化輸出代表了JSON模式的進化,”該公司在其博客中解釋道。“雖然兩者都確保生成有效的JSON,但只有結構化輸出能夠保證遵循模式。”這一進展緩解了對缺少必要鍵或無效列舉值的擔憂——這些常量簡化了編程中的代碼維護。
開發者可以利用結構化輸出逐步引導輸出,無需驗證或重新發送格式錯誤的回覆。該功能允許簡化提示並對不安全的請求明確拒絕,維持OpenAI對安全性的承諾。
可用性與兼容性
結構化輸出在GPT-4o-mini、GPT-4o及其微調版本上可用。它可以與聊天完成API、助手API及批處理API結合使用,並支持視覺輸入。OpenAI承認,這一新功能受到開源社群的優秀工作啟發,特別是來自outlines、jsonformer、instructor、guidance及lark等庫的貢獻。