ਕਿਸੇ ਵੀ LLM ਤੋਂ ਭਰੋਸੇਮੰਦ JSON
ਜ਼ਿਆਦਾਤਰ ਡਿਵੈਲਪਰ ਉਮੀਦ ਕਰਦੇ ਹਨ ਕਿ ਉਹਨਾਂ ਦਾ LLM ਵੈਲਿਡ JSON ਆਊਟਪੁੱਟ ਦੇਵੇਗਾ। ਉਮੀਦ ਕਰਨਾ ਕੋਈ ਰਣਨੀਤੀ ਨਹੀਂ ਹੈ।
ਤੁਹਾਨੂੰ ਪ੍ਰੋਡਕਸ਼ਨ ਐਪਸ ਲਈ ਭਰੋਸੇਮੰਦ ਡੇਟਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਦੇ ਚਾਰ ਤਰੀਕੇ ਹਨ।
- ਪਾਰਸਰ (parser) ਦੇ ਨਾਲ ਸਾਧਾਰਨ ਟੈਕਸਟ। ਇਹ ਅਕਸਰ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ।
- JSON ਮੋਡ। ਇਹ ਮਦਦ ਕਰਦਾ ਹੈ ਪਰ ਫਿਰ ਵੀ ਖਰਾਬ ਹੋ ਸਕਦਾ ਹੈ।
- ਫੰਕਸ਼ਨ ਜਾਂ ਟੂਲ ਕਾਲਿੰਗ (Function or tool calling)। ਇਹ ਬਿਹਤਰ ਹੈ।
- ਕੰਸਟ੍ਰੇਂਡ ਡੀਕੋਡਿੰਗ (constrained decoding) ਦੇ ਨਾਲ ਨੇਟਿਵ ਸਟ੍ਰਕਚਰਡ ਆਊਟਪੁੱਟ। ਇਹ ਸਭ ਤੋਂ ਉੱਤਮ ਤਰੀਕਾ (gold standard) ਹੈ।
ਕੰਸਟ੍ਰੇਂਡ ਡੀਕੋਡਿੰਗ ਤੁਹਾਡੇ ਸਟ੍ਰਕਚਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ। ਇਹ ਕਿਸਮਤ 'ਤੇ ਨਿਰਭਰ ਨਹੀਂ ਕਰਦੀ।
ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ: ਸਿਸਟਮ ਤੁਹਾਡੇ schema ਨੂੰ ਇੱਕ grammar ਵਿੱਚ ਕੰਪਾਈਲ ਕਰਦਾ ਹੈ। ਇਹ ਇੱਕ finite-state machine ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਹਰ ਕਦਮ 'ਤੇ, ਸਿਸਟਮ ਉਹਨਾਂ tokens ਨੂੰ ਮਾਸਕ (mask) ਕਰ ਦਿੰਦਾ ਹੈ ਜੋ ਤੁਹਾਡੇ ਨਿਯਮਾਂ ਨੂੰ ਤੋੜਦੇ ਹਨ। ਮਾਡਲ ਅਜਿਹਾ token ਨਹੀਂ ਚੁਣ ਸਕਦਾ ਜੋ ਸਟ੍ਰਕਚਰ ਨੂੰ ਖਰਾਬ ਕਰੇ। ਆਊਟਪੁੱਟ ਵੈਲਿਡ ਰਹਿੰਦਾ ਹੈ।
ਮੁੱਖ ਪ੍ਰਦਾਤਾ ਹੁਣ ਇਸਦਾ ਸਮਰਥਨ ਕਰਦੇ ਹਨ:
- OpenAI: Structured Outputs
- Google Gemini: responseSchema
- Anthropic: Structured Outputs beta
- Open source: vLLM, Hugging Face TGI, llama.cpp, Outlines, and Instructor
ਆਪਣੇ ਕੋਡ ਵਿੱਚ JSON ਗਲਤੀਆਂ ਨੂੰ ਸੁਧਾਰਨਾ ਬੰਦ ਕਰੋ। ਉਹਨਾਂ ਨੂੰ ਰੋਕਣ ਲਈ ਕੰਸਟ੍ਰੇਂਡ ਡੀਕੋਡਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਹੇਠਾਂ AI Tech Connect 'ਤੇ ਪੂਰਾ ਲੇਖ ਪੜ੍ਹੋ।
Source: https://dev.to/rishi_kora/reliable-json-from-any-llm-constrained-decoding-in-production-8an
Optional learning community: https://t.me/GyaanSetuAi
