11 पॉइंट द्वारा GN⁺ 2024-08-07 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • API में "Structured Outputs" पेश किया गया
    • यह एक नई सुविधा है जो डेवलपर द्वारा दिए गए JSON schema के अनुसार मॉडल आउटपुट को ठीक-ठीक मेल कराने में मदद करती है
    • पिछले साल DevDay में JSON mode पेश किया गया था, लेकिन वह किसी खास schema के अनुरूप response की गारंटी नहीं देता था
    • Structured Outputs डेवलपर द्वारा दिए गए schema के अनुसार मॉडल आउटपुट को सीमित करता है और मॉडल को जटिल schema बेहतर समझने के लिए प्रशिक्षित करता है
  • Structured Outputs की आवश्यकता
    • unstructured input से structured data बनाना AI के प्रमुख use cases में से एक है
    • OpenAI API का उपयोग करके data retrieval, question answering, data extraction, और multi-step workflow निर्माण जैसे कई काम किए जा सकते हैं
    • पहले मॉडल आउटपुट को सिस्टम के साथ interoperable format में ढालने के लिए open source tools, prompts, retries आदि का सहारा लेना पड़ता था
    • Structured Outputs इस समस्या को हल करता है और डेवलपर द्वारा दिए गए schema के अनुसार मॉडल आउटपुट को सीमित करता है
  • प्रदर्शन मूल्यांकन
    • जटिल JSON schema का पालन करने वाले evaluation में gpt-4o-2024-08-06 मॉडल ने 100% स्कोर हासिल किया
    • gpt-4-0613 मॉडल ने 40% से कम स्कोर दर्ज किया
  • Structured Outputs का उपयोग कैसे करें
    • function calling के माध्यम से Structured Outputs: function definition के भीतर strict: true सेट करें
      • यह उन सभी मॉडलों में उपलब्ध है जो tools को support करते हैं
  • सुरक्षित Structured Outputs
    • यह OpenAI की मौजूदा safety policies का पालन करता है
    • मॉडल असुरक्षित अनुरोधों को अस्वीकार कर सकता है
    • API response में refusal string value शामिल होती है, जिससे प्रोग्राम के जरिए पता लगाया जा सकता है कि मॉडल ने अस्वीकृति उत्पन्न की है या नहीं
  • native SDK समर्थन
    • Python और Node SDK, Structured Outputs को native रूप से support करते हैं
    • Pydantic या Zod objects देकर उन्हें JSON schema में बदला जा सकता है, और JSON response को अपने-आप serialize व parse किया जा सकता है
  • सीमाएँ
    • JSON schema का केवल कुछ हिस्सा ही समर्थित है
    • नए schema के साथ पहली API response में अतिरिक्त latency हो सकती है
    • मॉडल असुरक्षित अनुरोधों को अस्वीकार कर सकता है
    • यह parallel function calling के साथ compatible नहीं है
    • Structured Outputs, Zero Data Retention (ZDR) के दायरे में नहीं आता
  • उपलब्धता
    • Structured Outputs API में सामान्य रूप से उपलब्ध है
    • function calling के माध्यम से Structured Outputs उन सभी मॉडलों में उपलब्ध है जो function calling support करते हैं
    • response format option नवीनतम मॉडलों में उपलब्ध है

GN⁺ का सार

  • OpenAI की नई सुविधा Structured Outputs, JSON schema के अनुसार मॉडल आउटपुट को ठीक-ठीक मेल कराने की क्षमता देती है
  • डेवलपर इसके जरिए data retrieval, question answering, data extraction जैसे कई कार्य अधिक भरोसेमंद तरीके से कर सकते हैं
  • Python और Node SDK में native support होने से development आसान हो जाता है
  • unstructured data से structured data निकालने सहित इसके कई अतिरिक्त use cases हैं
  • यह constrained decoding तकनीक का उपयोग करके मॉडल आउटपुट को सीमित करता है और केवल वैध JSON उत्पन्न होने देता है

2 टिप्पणियां

 
bluejoyq 2024-08-08

दिलचस्प फीचर है।

 
GN⁺ 2024-08-07
Hacker News राय
  • GPT-4o का उपयोग करके dynamic UI और code बनाया गया

    • JSON mode का उपयोग करने पर यह स्थिर रूप से काम करता है
    • GPT-4o-mini में यह format समस्याओं को हल करने में मददगार होगा
    • function calling mode में success rate, JSON mode की तुलना में कम है
    • इस फीचर से काफी उम्मीदें हैं
  • gpt-4o-2024-08-06 में मुख्य बदलाव

    • output tokens 4k से बढ़कर 16k हो गए हैं
    • input cost 50% और output cost 33% कम हुई है
    • API users के लिए यह एक महत्वपूर्ण बदलाव है
  • vLLM के Outlines Structured Output के उपयोग का अनुभव

    • यह OpenAI के Structured Output से अधिक उन्नत फीचर्स देता है
    • field type support सीमित है
      • OpenAI केवल String, Number, Boolean जैसे basic types को support करता है
      • Outlines में regular expression pattern परिभाषित किए जा सकते हैं
    • schema setup cost और latency अधिक है
      • vLLM और Outlines में लगभग कोई लागत नहीं लगती
      • OpenAI में context-free grammar generation में समय लगता है
    • OpenAI के लिए यह पहला कदम होने के हिसाब से अच्छी शुरुआत है, लेकिन इसे और आगे बढ़ाने की जरूरत है
  • AI performance पर राय

    • AI से output format तय करवाना पुराने समय से चली आ रही समस्या का समाधान करने का तरीका है
    • natural language processing और problem-solving क्षमता में चौंकाने वाली प्रगति हुई है
    • लेकिन यह नतीजा पाने के लिए बहुत बड़े स्तर की computation चाहिए
  • OpenAI के approach पर राय

    • structured output के लिए fine-tuning approach को छोड़ दिया गया है
    • llama.cpp ने यह फीचर पहले ही 1.5 साल पहले लागू कर दिया था
  • "strict: true" option को लेकर भ्रम

    • यही हमेशा वांछित behavior होता है, इसलिए इसे default होना चाहिए
    • constrained decoding तकनीक के बारे में जानने को मिला
      • इससे reliability बढ़ सकती है और latency कम हो सकती है
  • यह राय कि model में JSON को hardcode करना AGI लक्ष्य की दिशा के उलट है

  • OpenAI फीचर्स इस्तेमाल करने पर lock-in effect को लेकर चिंता

    • दूसरे LLM पर आसानी से migrate नहीं किया जा सकता
    • केवल तब इस्तेमाल करने की सलाह, जब text prompt पर्याप्त न हो
  • JSON format error पर टिप्पणी

    • {“val{“:2} वैध JSON है
  • top-level level object होना क्यों जरूरी है, इस पर सवाल

    • array को object में wrap करना असुविधाजनक है