ਇੱਕ ਡਿਵੈਲਪਰ ਨੇ 350 ਮਿਲੀਅਨ-ਪੈਰਾਮੀਟਰ ਵਾਲਾ ਇੱਕ ਲੈਂਗੂਏਜ ਮਾਡਲ ਲਿਆ, ਉਸਨੂੰ ਫਾਈਨ-ਟਿਊਨ ਕੀਤਾ, ਅਤੇ ਇਸਨੂੰ ਇੱਕ ਪੂਰੀ ਤਰ੍ਹਾਂ ਕਾਰਜਸ਼ੀਲ AI ਸਹਾਇਕ ਵਜੋਂ ਤਾਇਨਾਤ ਕੀਤਾ ਜੋ ਕਿਸੇ ਵੀ ਆਧੁਨਿਕ ਵੈੱਬ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਅੰਦਰ ਚੱਲਦਾ ਹੈ—ਕੋਈ ਸਰਵਰ ਕਾਲ ਨਹੀਂ, ਕੋਈ API ਕੀਅ ਨਹੀਂ, ਅਤੇ ਕੋਈ ਕਲਾਊਡ ਬਿੱਲ ਨਹੀਂ।
ਇਹ ਪ੍ਰੋਜੈਕਟ ਮਾਡਲ ਦੇ ਵੇਟਸ (weights) ਨੂੰ ਇੱਕ ਸਟੈਟਿਕ ਵੈੱਬਪੇਜ ਦੇ ਨਾਲ ਭੇਜਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਏਜੰਟ ਨੂੰ ਟੂਲ ਚੁਣਨ, ਆਰਗੂਮੈਂਟਸ ਨੂੰ ਬੰਨ੍ਹਣ, "ਦੂਜਾ ਵਾਲਾ" ਵਰਗੇ ਰੈਫਰੈਂਸਾਂ ਨੂੰ ਹੱਲ ਕਰਨ, ਅਤੇ ਜਾਣਕਾਰੀ ਦੀ ਘਾਟ ਹੋਣ 'ਤੇ ਜਵਾਬ ਦੇਣ ਤੋਂ ਇਨਕਾਰ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲਦੀ ਹੈ—ਇਹ ਸਭ ਕੁਝ ਉਦੋਂ ਵੀ ਜਦੋਂ ਤੁਹਾਡਾ ਡੇਟਾ ਤੁਹਾਡੇ ਆਪਣੇ ਡਿਵਾਈਸ 'ਤੇ ਹੀ ਰਹਿੰਦਾ ਹੈ।
ਬ੍ਰਾਊਜ਼ਰ-ਅਧਾਰਤ ਏਜੰਟ ਕਿਵੇਂ ਬਣਾਇਆ ਗਿਆ
ਸ਼ੁਰੂਆਤੀ ਬਿੰਦੂ LiquidAI ਦਾ LFM2.5 ਪਰਿਵਾਰ ਸੀ, ਖਾਸ ਤੌਰ 'ਤੇ 230 M ਅਤੇ 350 M ਪੈਰਾਮੀਟਰ ਵੇਰੀਐਂਟਸ।
ਮਾਡਲ ਵਿੱਚ ਪ੍ਰੋਡਕਟ ਕੈਟਾਲਾਗ ਜਾਂ ਕੀਮਤਾਂ ਦੀਆਂ ਸਾਰਣੀਆਂ ਭਰਨ ਦੀ ਬਜਾਏ, ਟ੍ਰੇਨਰ ਨੇ ਇਸਨੂੰ ਅੰਤਰਕਿਰਿਆ ਦੇ ਪੈਟਰਨ (patterns) ਸਿਖਾਏ। ਏਜੰਟ ਕਦੇ ਵੀ ਕਿਸੇ ਖਾਸ SKU ਨੂੰ ਨਹੀਂ ਜਾਣਦਾ; ਇਹ ਸਿੱਖਦਾ ਹੈ ਕਿ:
- ਕਿਸੇ ਦਿੱਤੀ ਗਈ ਬੇਨਤੀ ਲਈ ਉਚਿਤ ਟੂਲ ਚੁਣਨਾ।
- ਉਸ ਟੂਲ ਨਾਲ ਸਹੀ ਆਰਗੂਮੈਂਟਸ ਅਤੇ ਆਈਡੈਂਟੀਫਾਇਰਾਂ ਨੂੰ ਜੋੜਨਾ।
- ਅਸਪਸ਼ਟ ਰੈਫਰੈਂਸਾਂ (“ਇੱਕ ਦਰਜਨ,” “ਦੂਜਾ ਵਾਲਾ”) ਦੀ ਵਿਆਖਿਆ ਕਰਨਾ।
- ਬਾਹਰੀ ਟੈਕਸਟ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨਾ ਅਤੇ ਪ੍ਰਸ਼ਨਾਂ ਦੇ ਉੱਤਰ ਦੇਣ ਲਈ ਇਸਦੀ ਵਰਤੋਂ ਕਰਨਾ।
- ਲੋੜੀਂਦੀ ਜਾਣਕਾਰੀ ਮੌਜੂਦ ਨਾ ਹੋਣ 'ਤੇ ਮਨ੍ਹਾ ਕਰਨਾ।
- ਗੱਲਬਾਤ ਨੂੰ ਵਿਸ਼ੇ 'ਤੇ ਰੱਖਣਾ।
ਟੂਲਸੈੱਟ ਜਾਣਬੁੱਝ ਕੇ ਸਟੈਟਿਕ ਰੱਖਿਆ ਗਿਆ ਹੈ: list_items, get_item, search_knowledge, add_to_cart, remove_from_cart, clear_cart, checkout, ਅਤੇ navigate। ਰੋਸਟਰ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰਨ ਨਾਲ ਮਾਡਲ ਨੂੰ ਟੂਲ IDs ਨੂੰ ਯਾਦ ਕਰਨ ਤੋਂ ਰੋਕਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਫਾਈਨ-ਟਿਊਨਿੰਗ ਡੇਟਾ ਨੂੰ ਛੋਟਾ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ।
ਤਿੰਨ ਇੰਜੀਨੀਅਰਿੰਗ ਚੋਣਾਂ ਸਿਸਟਮ ਨੂੰ ਹਲਕਾ ਰੱਖਦੀਆਂ ਹਨ:
- ਫ੍ਰੋਜ਼ਨ ਟੂਲ ਰੋਸਟਰ – ਮਾਡਲ ਕਾਰਵਾਈਆਂ ਦੀ ਇੱਕ ਨਿਸ਼ਚਿਤ ਸੂਚੀ ਦੇਖਦਾ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਟੂਲ ਦੇ ਨਾਵਾਂ ਦੀ ਵੱਡੀ ਸ਼ਬਦਾਵਲੀ ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ।
- ਟੂਲ ਵਜੋਂ RAG – Retrieval-augmented generation (RAG) ਕਿਸੇ ਹੋਰ ਫੰਕਸ਼ਨ ਵਾਂਗ ਕੰਮ ਕਰਦਾ ਹੈ। ਏਜੰਟ ਟੈਕਸਟ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ
search_knowledgeਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ, ਫਿਰ ਉਸ ਟੈਕਸਟ ਨੂੰ ਸਿੱਧਾ ਆਪਣੇ ਜਵਾਬ ਵਿੱਚ ਪਾ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇੱਕ ਵੱਖਰੇ ਰਿਟ੍ਰੀਵਲ ਪਾਈਪਲਾਈਨ ਤੋਂ ਬਚਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਲੇਟੈਂਸੀ (latency) ਅਤੇ ਮੈਮੋਰੀ ਦਾ ਬੋਝ ਵਧਾਉਂਦੀ। - ਗ੍ਰਾਮਰ-ਕੰਸਟਰੇਂਡ ਡੀਕੋਡਿੰਗ – ਜਨਰੇਸ਼ਨ ਦੌਰਾਨ ਡੀਕੋਡਰ ਇੱਕ ਸਰਲ ਵਿਆਕਰਣ (grammar) ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ ਜੋ ਆਉਟਪੁੱਟ ਨੂੰ ਇੱਕ ਵੈਧ ਟੂਲ-ਕਾਲ ਸਟ੍ਰਕਚਰ ਵਿੱਚ ਰੱਖਦਾ ਹੈ। ਇਹ ਪਾਬੰਦੀ ਫਾਲਤੂ ਟੋਕਨਾਂ ਨੂੰ ਖਤਮ ਕਰਦੀ ਹੈ ਅਤੇ ਗਲਤ ਕਮਾਂਡਾਂ ਨੂੰ ਘਟਾਉਂਦੀ ਹੈ।
ਟ੍ਰੇਨਿੰਗ ਲਈ ਸਿੰਥੈਟਿਕ ਡੇਟਾ ਡਿਸਟਲੇਸ਼ਨ (synthetic data distillation) ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਗਈ ਸੀ। ਲੇਖਕ ਨੇ 18 ਇੰਟਰੈਕਸ਼ਨ ਰੈਸਿਪੀਜ਼ ਤੈਅ ਕੀਤੀਆਂ, ਜਿਨ੍ਹਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਇੱਕ ਆਮ ਯੂਜ਼ਰ-ਅਸਿਸਟੈਂਟ ਅੰਤਰਕਿਰਿਆ ਦਾ ਵਰਣਨ ਕਰਦੀ ਹੈ। ਇੱਕ ਵੱਡੇ "ਟੀਚਰ" ਮਾਡਲ ਨੇ ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਵਾਲਾ ਪਾਸਾ ਤਿਆਰ ਕੀਤਾ, ਜਦੋਂ ਕਿ ਇੱਕ ਡਿਟਰਮਿਨਿਸਟਿਕ ਸਕ੍ਰਿਪਟ ਨੇ ਸਹੀ ਟੂਲ-ਕਾਲ ਫਾਰਮੈਟ ਤਿਆਰ ਕੀਤਾ। ਫਾਈਨ-ਟਿਊਨਿੰਗ ਰਨ ਵਿੱਚ ਲਗਭਗ 30 ਮਿਲੀਅਨ ਟੋਕਨਾਂ ਦੀ ਵਰਤੋਂ ਹੋਈ ਅਤੇ ਇਹ 16 GB ਮੈਮੋਰੀ ਵਾਲੇ ਇੱਕ ਸਿੰਗਲ GPU 'ਤੇ ਆ ਗਿਆ।
ਡਿਵਾਈਸ 'ਤੇ ਹੋਣਾ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਹੈ
- ਪ੍ਰਾਈਵੇਸੀ – ਸਾਰੇ ਯੂਜ਼ਰ ਪ੍ਰੋਂਪਟ ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਮੈਮੋਰੀ ਵਿੱਚ ਰਹਿੰਦੇ ਹਨ। ਕੋਈ ਵੀ ਟੈਲੀਮੈਟਰੀ ਡਿਵਾਈਸ ਤੋਂ ਬਾਹਰ ਨਹੀਂ ਜਾਂਦੀ, ਜੋ ਕਿ ਸੰਵੇਦਨਸ਼ੀਲ ਸਵਾਲਾਂ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
- ਆਫਲਾਈਨ ਸਮਰੱਥਾ – ਕਿਉਂਕਿ ਮਾਡਲ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਕੈਸ਼ (cached) ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਸਹਾਇਕ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਤੋਂ ਬਿਨਾਂ ਕੰਮ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਫੀਲਡ ਵਰਕ ਜਾਂ ਯਾਤਰਾ ਲਈ ਸੰਭਾਵਨਾਵਾਂ ਖੋਲ੍ਹਦਾ ਹੈ।
- ਲਾਗਤ – ਸਟੈਟਿਕ ਮਾਡਲ ਫਾਈਲਾਂ ਭੇਜਣ ਨਾਲ ਵਾਰ-ਵਾਰ GPU-ਪਾਵਰਡ ਇਨਫਰੈਂਸ ਸਰਵਰਾਂ ਜਾਂ ਪ੍ਰਤੀ-ਕਾਲ API ਫੀਸਾਂ ਦੀ ਲੋੜ ਖਤਮ ਹੋ ਜਾਂਦੀ ਹੈ।
- ਪਹੁੰਚਯੋਗਤਾ – ਘੱਟ ਸਪੈਕ ਵਾਲੇ ਡਿਵਾਈਸਾਂ 'ਤੇ ਗੁੰਝਲਦਾਰ ਵੈੱਬ ਇੰਟਰਫੇਸਾਂ ਦਾ ਵੌਇਸ-ਡਰਿਵਨ ਨੈਵੀਗੇਸ਼ਨ ਸੰਭਵ ਹੋ ਜਾਂਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਪਹੁੰਚ ਉਨ੍ਹਾਂ ਯੂਜ਼ਰਾਂ ਤੱਕ ਵਧ ਜਾਂਦੀ ਹੈ ਜੋ ਸਹਾਇਕ ਤਕਨਾਲੋਜੀ (assistive technology) 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ।
ਇਹ ਫਾਇਦੇ ਗੱਲਬਾਤ ਨੂੰ "ਕੀ ਇੱਕ ਵਿਸ਼ਾਲ ਮਾਡਲ ਇਸਦਾ ਜਵਾਬ ਦੇ ਸਕਦਾ ਹੈ?" ਤੋਂ ਬਦਲ ਕੇ "ਇੱਕ ਮਾਡਲ ਕਿੰਨਾ ਛੋਟਾ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕਿ ਉਹ ਫਿਰ ਵੀ ਲਾਭਦਾਇਕ ਸਹਾਇਤਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ?" 'ਤੇ ਲੈ ਆਉਂਦੇ ਹਨ।
ਸੰਭਾਵੀ ਸੀਮਾਵਾਂ
ਇਸ ਆਕਾਰ ਦਾ ਮਾਡਲ ਵਿਆਖਿਆਤਮਕ ਤੱਥਾਂ (encyclopedic facts) ਨੂੰ ਯਾਦ ਨਹੀਂ ਰੱਖ ਸਕਦਾ। ਜਦੋਂ ਕੋਈ ਯੂਜ਼ਰ ਕਿਸੇ ਖਾਸ ਉਤਪਾਦ ਦੀ ਕੀਮਤ ਜਾਂ ਤਾਜ਼ਾ ਖ਼ਬਰ ਬਾਰੇ ਪੁੱਛਦਾ ਹੈ, ਤਾਂ ਸਹਾਇਕ ਜਾਂ ਤਾਂ search_knowledge ਰਾਹੀਂ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਜਾਂ ਨਿਮਰਤਾ ਨਾਲ ਮਨ੍ਹਾ ਕਰ ਦਿੰਦਾ ਹੈ। ਉਹ ਡਿਜ਼ਾਈਨ ਪ੍ਰਾਈਵੇਸੀ ਦੀ ਰੱਖਿਆ ਕਰਦਾ ਹੈ ਪਰ ਸਿਸਟਮ ਨੂੰ ਇਸਦੇ ਬਾਹਰੀ ਗਿਆਨ ਦੇ ਸਰੋਤ ਦੀ ਗੁਣਵੱਤਾ ਅਤੇ ਤਾਜ਼ਗੀ ਨਾਲ ਵੀ ਜੋੜਦਾ ਹੈ।
ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ
ਪਬਲਿਕ ਡੈਮੋ ਇੱਕ ਸਧਾਰਨ GitHub Pages URL 'ਤੇ ਉਪਲਬਧ ਹੈ, ਅਤੇ ਸੋਰਸ ਕੋਡ ਖੁੱਲ੍ਹੇ ਤੌਰ 'ਤੇ ਉਪਲਬਧ ਹੈ।
ਸਿੱਖਿਆ (Takeaway): ਇੱਕ ਮੱਧਮ-ਆਕਾਰ ਦੇ LLM ਨੂੰ ਸਖ਼ਤ ਟੂਲ ਗ੍ਰਾਮਰ ਦੀ ਪਾਲਣਾ ਕਰਨ ਲਈ ਸਿਖਾ ਕੇ ਅਤੇ ਰਿਟ੍ਰੀਵਲ ਨੂੰ ਇੱਕ ਹੋਰ ਫੰਕਸ਼ਨ ਵਜੋਂ ਮੰ
