Ollama के साथ संरचित आउटपुट
(ollama.com)संरचित आउटपुट
6 दिसंबर 2024
Ollama अब structured outputs को सपोर्ट करता है, जिससे मॉडल के आउटपुट को JSON schema से परिभाषित किसी खास फ़ॉर्मैट तक सीमित किया जा सकता है। Ollama Python और JavaScript लाइब्रेरी को structured outputs सपोर्ट करने के लिए अपडेट किया गया है।
- structured outputs के उपयोग के मामले:
- दस्तावेज़ों से डेटा parsing
- इमेज से डेटा extraction
- सभी language model responses को संरचित करना
- JSON mode की तुलना में अधिक विश्वसनीयता और consistency प्रदान करना
शुरू करना
- Ollama का नवीनतम वर्ज़न डाउनलोड करें
- Ollama Python या JavaScript लाइब्रेरी को नवीनतम वर्ज़न में अपग्रेड करें
cURL
formatपैरामीटर का उपयोग करके मॉडल को structured output दिया जा सकता है
आउटपुट
- response, request के JSON schema से परिभाषित फ़ॉर्मैट में लौटाया जाता है
Python
- Ollama Python लाइब्रेरी का उपयोग करके schema को JSON object के रूप में
formatपैरामीटर में पास करें - schema को serialize करने के लिए Pydantic का उपयोग करना अनुशंसित है
आउटपुट
name='Canada' capital='Ottawa' languages=['English', 'French']
JavaScript
- Ollama JavaScript लाइब्रेरी का उपयोग करके schema को JSON object के रूप में
formatपैरामीटर में पास करें - schema को serialize करने के लिए Zod का उपयोग करना अनुशंसित है
आउटपुट
{ name: "Canada", capital: "Ottawa", languages: [ "English", "French" ] }
उदाहरण
डेटा extraction
- टेक्स्ट से structured data निकालने के लिए जानकारी को दर्शाने वाला schema परिभाषित करें
- मॉडल जानकारी निकालता है और परिभाषित schema के अनुसार डेटा को JSON में लौटाता है
उदाहरण आउटपुट
pets=[ Pet(name='Luna', animal='cat', age=5, color='grey', favorite_toy='yarn'), Pet(name='Loki', animal='cat', age=2, color='black', favorite_toy='tennis balls') ]
इमेज विवरण
- structured outputs को vision models के साथ इस्तेमाल किया जा सकता है
llama3.2-visionका उपयोग करके इमेज का वर्णन करें और structured output लौटाएँ
उदाहरण आउटपुट
summary='A palm tree on a sandy beach with blue water and sky.'objects=[ Object(name='tree', confidence=0.9, attributes='palm tree'), Object(name='beach', confidence=1.0, attributes='sand') ]scene='beach', colors=['blue', 'green', 'white'], time_of_day='Afternoon', setting='Outdoor', text_content=None
OpenAI संगतता
- OpenAI client का उपयोग करके structured outputs के साथ संगत
टिप्स
- structured outputs का विश्वसनीय रूप से उपयोग करने के लिए:
- response schema परिभाषित करने के लिए Pydantic(Python) या Zod(JavaScript) का उपयोग करें
- मॉडल को अनुरोध समझाने के लिए prompt में "JSON में लौटाएँ" जोड़ें
- अधिक deterministic output के लिए temperature को 0 पर सेट करें
अगले चरण
- controlled generation के लिए logit exposure
- structured outputs के performance और accuracy में सुधार
- sampling के लिए GPU acceleration
- JSON schema से आगे अतिरिक्त फ़ॉर्मैट्स का समर्थन
1 टिप्पणियां
Hacker News राय
llama.cpp की gbnf सुविधा के ज़रिए आउटपुट पर अधिक मजबूत constraints लगाए जा सकते हैं
सामान्य prompts को structured करके csv डेटा में बदलते समय अनावश्यक टेक्स्ट हटाने में यह उपयोगी है
gemma2:2b का उपयोग करके टेक्स्ट इनपुट देने पर structured JSON फ़ॉर्मैट में आउटपुट प्राप्त किया जा सकता है
{"amount": 190, "balance": 5098, "category": "Shopping", "place": "Fresh Mart"}कुछ लोगों की राय है कि constraints का LLM के आउटपुट quality पर क्या असर पड़ता है, यह जानना दिलचस्प होगा
यह supported models के साथ उपयोग किया जा सकता है या नहीं, इस पर सवाल है
यह जिज्ञासा भी है कि llama.cpp और ollama, llama की structured output सुविधा का उपयोग करते हैं या इसे किसी और तरीके से लागू किया गया है
outlinesकी तुलना में इसका अतिरिक्त मूल्य क्या है, इस पर प्रश्न हैoobabooga का उपयोग जारी रखने की वजह exlv2 support है, जो dual 3090s पर अधिक कुशल inference देता है
यह बेहतर होगा कि
curlउदाहरण पहले आएLLM को structured input देने का सबसे अच्छा तरीका क्या है, इस पर सवाल है