നിങ്ങളുടെ ബ്രൗസറിൽ ഒരു LLM ഏജന്റ് പ്രവർത്തിപ്പിക്കാം

മിക്ക AI അസിസ്റ്റന്റുകളും ഡാറ്റാ സെന്ററുകളിലാണ് പ്രവർത്തിക്കുന്നത്. അവയ്ക്ക് ഒരു API കീയും സെർവറും ആവശ്യമാണ്, കൂടാതെ ഓരോ റിക്വസ്റ്റിനും അവർ ചാർജ് ചെയ്യുകയും ചെയ്യുന്നു.

ഞാൻ വ്യത്യസ്തമായ ഒന്ന് നിർമ്മിച്ചു.

സെർവറുകളോ ക്ലൗഡ് ചിലവുകളോ ഇല്ലാതെ നിങ്ങളുടെ ബ്രൗസറിൽ മാത്രം പ്രവർത്തിക്കുന്ന രീതിയിൽ ഞാൻ LiquidAI LFM2.5 മോഡലുകളെ (230 M, 350 M) ഫൈൻ ട്യൂൺ (fine-tune) ചെയ്തു.

ഒരു വെബ് പേജിനൊപ്പം അയക്കാൻ പാകത്തിൽ വളരെ ചെറുതാക്കിയ ഒരു മോഡൽ നിർമ്മിക്കുക എന്നതായിരുന്നു ലക്ഷ്യം.

ഈ മോഡൽ പ്രത്യേക ഉൽപ്പന്നങ്ങളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ശേഖരിച്ചുവെക്കുന്നില്ല; പകരം അത് പാറ്റേണുകൾ (patterns) പഠിക്കുന്നു. വീണ്ടും ട്രെയിൻ ചെയ്യാതെ തന്നെ ഒരു ചെറിയ മോഡലിന് ഒരു കോഫി ഷോപ്പോ, ഗ്രോസറി സ്റ്റോറോ അല്ലെങ്കിൽ മറ്റേതെങ്കിലും കടയോ നിയന്ത്രിക്കാൻ കഴിയും.

മോഡൽ എന്താണ് ചെയ്യുന്നത്

  • ഒരു ടാസ്കിനായി ശരിയായ ടൂൾ തിരഞ്ഞെടുക്കുന്നു
  • ആർഗ്യുമെന്റുകളും (arguments) ഐറ്റം ഐഡികളും (item IDs) കൃത്യമായി ബന്ധിപ്പിക്കുന്നു
  • “രണ്ടാമത്തേത്” അല്ലെങ്കിൽ “ഒരു ഡസൻ” തുടങ്ങിയ സൂചനകൾ മനസ്സിലാക്കുന്നു
  • ചോദ്യങ്ങൾക്ക് ഉത്തരം നൽകാൻ ലഭ്യമായ ടെക്സ്റ്റ് ഉപയോഗിക്കുന്നു
  • വിവരങ്ങൾ ലഭ്യമല്ലെങ്കിൽ മറുപടി നൽകാൻ വിസമ്മതിക്കുന്നു
  • സംഭാഷണം വിഷയത്തിൽ നിന്ന് മാറുന്നുണ്ടെങ്കിൽ അത് തിരികെ കൊണ്ടുവരുന്നു

ഞാൻ ഇത് എങ്ങനെ നിർമ്മിച്ചു

  • എട്ട് ടൂളുകൾ (search, add_to_cart, checkout, മുതലായവ) സ്ഥിരമായി നിശ്ചയിച്ചു (frozen)
  • RAG-നെ ഒരു പ്രത്യേക പൈപ്പ്‌ലൈൻ എന്നതിന് പകരം ഒരു ടൂൾ ആയി പരിഗണിച്ചു
  • കൃത്യതയ്ക്കായി grammar-constrained decoding ഉപയോഗിച്ചു
  • 18 ഇന്ററാക്ഷൻ റെസിപ്പികളിൽ നിന്ന് ഒരു സിന്തറ്റിക് ഡാറ്റാസെറ്റ് (synthetic dataset) നിർമ്മിച്ചു
  • ഒരു 16 GB GPU ഉപയോഗിച്ച് 30 മില്യൺ ടോക്കണുകളിൽ ഫൈൻ ട്യൂൺ ചെയ്തു

പരിശീലനത്തിന്റെ ശ്രദ്ധാകേന്ദ്രം ഞാൻ മോഡലിനെ പരിശീലിപ്പിച്ചത് ബ്ലോക്ക്‌ലിസ്റ്റുകൾ (blocklists) ഉപയോഗിച്ചല്ല, മറിച്ച് പെരുമാറ്റരീതികൾ (behaviors) പഠിപ്പിച്ചാണ്. വാക്കുകൾ നിരോധിക്കുന്നതിന് പകരം, സംഭാഷണങ്ങളെ മാന്യമായി നിയന്ത്രിക്കാൻ ഞാൻ അതിനെ പഠിപ്പിച്ചു.

ഇതിന്റെ പ്രാധാന്യം എന്താണ്

  • സ്വകാര്യത: നിങ്ങളുടെ ഡാറ്റ നിങ്ങളുടെ ഉപകരണത്തിൽ നിന്ന് പുറത്തേക്ക് പോകുന്നില്ല
  • ഓഫ്‌ലൈൻ ഉപയോഗം: ഇന്റർനെറ്റ് കണക്ഷൻ ഇല്ലാതെയും ഇത് പ്രവർത്തിക്കും
  • ചിലവ്: ഇൻഫറൻസ് (inference) ചിലവുകൾ ഇല്ല
  • ലഭ്യത: സങ്കീർണ്ണമായ UI-കൾ ശബ്ദം ഉപയോഗിച്ച് നിയന്ത്രിക്കാൻ ഇത് സഹായിക്കുന്നു

മോഡൽ ചെറുതാണ്, പക്ഷേ അത് വളരെ ഉപകാരപ്രദമാണ്. വലിയ മോഡലുകൾക്ക് കാര്യങ്ങൾ ചെയ്യാൻ കഴിയുമോ എന്ന് ചോദിക്കുന്നത് നിർത്തുക. പകരം, ഒരു ഉപകരണത്തിൽ ഉപയോഗപ്രദമായി നിലനിൽക്കുമ്പോൾ ഒരു മോഡലിന് എത്രത്തോളം ചെറുതാകാൻ കഴിയും എന്ന് ചോദിക്കുക.

Demo: https://lajosbencz.github.io/frontend-agent/ Code: https://github.com/lajosbencz/frontend-agent/ Source: https://dev.to/lajosbencz/running-an-llm-agent-entirely-in-your-browser-5foe


ലായോസ് ബെൻസ്‌ (Lajos Bencz), ഒരു വെബ് ബ്രൗസറിൽ മാത്രം പ്രവർത്തിക്കുന്ന രീതിയിൽ 350 മില്യൺ പാരാമീറ്ററുകളുള്ള ഒരു ലാംഗ്വേജ് മോഡലിനെ ഫൈൻ ട്യൂൺ ചെയ്തു. ഇത് ഒരു സാധാരണ വെബ് പേജിനെ, API കീയോ സെർവറോ ക്ലൗഡ് ഇൻഫറൻസ് ചിലവുകളോ ആവശ്യമില്ലാത്ത ഒരു സ്വയംഭരണ ഷോപ്പിംഗ് അസിസ്റ്റന്റാക്കി മാറ്റുന്നു. ഓരോ മേഖലയ്ക്കും വേണ്ടി വീണ്ടും ട്രെയിൻ ചെയ്യാതെ തന്നെ ഒരു കോഫി ഷോപ്പോ, ഗ്രോസറി സ്റ്റോറോ അല്ലെങ്കിൽ സമാനമായ മറ്റേതെങ്കിലും കാറ്റലോഗോ നിയന്ത്രിക്കാൻ കഴിയുന്ന, സ്വകാര്യതയ്ക്ക് മുൻഗണന നൽകുന്നതും ഓഫ്‌ലൈനായി പ്രവർത്തിക്കാൻ ശേഷിയുള്ളതുമായ ഒരു AI ആണ് ഇതിന്റെ ഫലം.

എന്തുകൊണ്ട് ബ്രൗസറിൽ ഒരു LLM പ്രവർത്തിപ്പിക്കണം

മിക്ക AI അസിസ്റ്റന്റുകളും ഡാറ്റാ സെന്ററുകളിലാണ് പ്രവർത്തിക്കുന്നത്. ഓരോ ചോദ്യവും ഇന്റർനെറ്റ് വഴി ഒരു API-ൽ എത്തുകയും ഓരോ റിക്വസ്റ്റിനും ഫീസ് നൽകേണ്ടി വരികയും ചെയ്യുന്നു. ഈ രീതി ഉപയോക്താവിന്റെ ഡാറ്റ ചോരാൻ കാരണമാകുന്നു, നെറ്റ്‌വർക്ക് ആവശ്യമാണ്, കൂടാതെ ബില്ലുകൾ വേഗത്തിൽ വർദ്ധിക്കുകയും ചെയ്യുന്നു. മോഡലിനെ ക്ലയന്റിലേക്ക് (client) മാറ്റുന്നതിലൂടെ ഈ പ്രശ്നങ്ങൾ ഒഴിവാക്കാം. ഡാറ്റ ലോക്കൽ മെഷീനിൽ തന്നെ ഇരിക്കുന്നു, നെറ്റ്‌വർക്ക് ഇല്ലാതിരിക്കുമ്പോഴും അസിസ്റ്റന്റ് പ്രവർത്തിക്കും, ഇൻഫറൻസ് ചിലവുകൾ പൂജ്യമായി മാറുന്നു.

മോഡൽ എങ്ങനെ നിർമ്മിച്ചു

  • മോഡൽ തിരഞ്ഞെടുപ്പ് – LiquidAI LFM2.5-ന്റെ 230 M, 350 M വേരിയന്റുകളിൽ നിന്നാണ് തുടങ്ങിയത്. ഇവയുടെ വലിപ്പം കാരണം ഒരു സാധാരണ വെബ് പേജിന് ഇവ ഡൗൺലോഡ് ചെയ്യാൻ സാധിക്കും.
  • ടൂൾ സെറ്റ് – എട്ട് യൂട്ടിലിറ്റികൾ (search, add_to_cart, checkout, മുതലായവ) ഏജന്റിൽ ഹാർഡ്-കോഡ് ചെയ്തു. ഏത് ടൂൾ ഉപയോഗിക്കണമെന്നും ഐറ്റം ഐഡികൾ പോലുള്ള ആർഗ്യുമെന്റുകൾ എങ്ങനെ കൈമാറണമെന്നും മോഡൽ പഠിക്കുന്നു.
  • RAG ഒരു ടൂൾ ആയി – Retrieval-Augmented Generation-നെ വിളിക്കാവുന്ന മറ്റൊരു ടൂൾ ആയി പരിഗണിച്ചു, ഇത് ആർക്കിടെക്ചർ ലളിതമാക്കി.
  • Grammar-constrained decoding – തെറ്റായ ഔട്ട്‌പുട്ടുകൾ ഒഴിവാക്കുന്നതിനായി ഡീകോഡറിനെ സാധുവായ ടൂൾ-കോൾ സിന്റാക്സിലേക്ക് (tool-call syntax) പരിമിതപ്പെടുത്തി.
  • സിന്തറ്റിക് ഡാറ്റ – 18 ഇന്ററാക്ഷൻ റെസിപ്പികളെ (ഉദാഹരണത്തിന്, “add two dozen donuts”) ഒരു 16 GB GPU ഉപയോഗിച്ച് നിർമ്മിച്ച 30 മില്യൺ ടോക്കണുള്ള ഡാറ്റാസെറ്റാക്കി മാറ്റി.
  • പെരുമാറ്റത്തിന് മുൻഗണന നൽകുന്ന പരിശീലനം – ബ്ലോക്ക്‌ലിസ്റ്റുകൾക്ക് പകരം, സംഭാഷണ നിയന്ത്രണത്തിന് (conversational steering) ഫൈൻ ട്യൂണിംഗ് ഊന്നൽ നൽകി: വിഷയത്തിൽ നിന്ന് മാറുന്ന സംഭാഷണങ്ങളെ മാന്യമായി തിരിച്ചുവിടുക, വിവരങ്ങൾ ലഭ്യമല്ലെങ്കിൽ വിസമ്മതിക്കുക, “രണ്ടാമത്തേത്” പോലുള്ള അവ്യക്തമായ സൂചനകൾ സ്ഥിരീകരിക്കുക എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു.

ഫൈൻ ട്യൂണിംഗ് ഒരു 16 GB GPU-വിൽ ആണ് നടത്തിയത്.

ഏജന്റിന് എന്ത് ചെയ്യാൻ കഴിയും

  • ടൂൾ സെലക്ഷൻ – ഒരു ചോദ്യത്തിന് സെർച്ച് വേണോ, കാർട്ട് അപ്‌ഡേറ്റ് വേണോ അതോ മറ്റൊരു ഫംഗ്ഷൻ വേണോ എന്ന് തീരുമാനിക്കുന്നു.
  • ആർഗ്യുമെന്റ് ഹാൻഡ്‌ലിംഗ് – ഐറ്റം ഐഡികൾ, അളവ്, ഗുണവിശേഷണങ്ങൾ (ഉദാഹരണത്തിന്, “ഒരു ഡസൻ”) എന്നിവ വിശകലനം ചെയ്ത് കൃത്യമായി കൈമാറുന്നു.
  • റഫറൻസ് റെസല്യൂഷൻ – “രണ്ടാമത്തേത്” പോലുള്ള പ്രയോഗങ്ങളെ ലഭ്യമായ ലിസ്റ്റിലെ ശരിയായ ഐറ്റവുമായി ബന്ധിപ്പിക്കുന്നു.
  • RAG അധിഷ്ഠിത ഉത്തരങ്ങൾ – പ്രസക്തമായ ടെക്സ്റ്റ് കണ്ടെത്തി അത് ഉത്തരങ്ങളിൽ ഉൾപ്പെടുത്തുന്നു.
  • മാന്യമായ വിസമ്മതം – തെറ്റായ വിവരങ്ങൾ നൽകുന്നതിന് (hallucinating) പകരം, ആവശ്യമായ വിവരങ്ങൾ ഇല്ലാത്തപ്പോൾ മറുപടി നൽകാൻ വിസമ്മതിക്കുന്നു.
  • സംഭാഷണ നിയന്ത്രണം – സംഭാഷണത്തിന്റെ ഒഴുക്ക് തടസ്സപ്പെടുത്താതെ തന്നെ വിഷയത്തിൽ നിന്ന് മാറുന്ന കാര്യങ്ങളെ തിരികെ ടാസ്കിലേക്ക് കൊണ്ടുവരുന്നു.

ഒരു ലൈവ് ഡെമോ (https://lajosbencz.github.io/frontend-agent/) വഴി, വോയ്‌സ് അല്ലെങ്കിൽ ടെക്സ്റ്റ് ഇൻപുട്ട് ഉപയോഗിച്ച് ബ്രൗസിംഗ് മുതൽ ചെക്കൗട്ട് വരെയുള്ള ലളിതമായ ഒരു ഇ-കൊമേഴ്‌സ് പ്രക്രിയ ഏജന്റ് എങ്ങനെ കൈകാര്യം ചെയ്യുന്നു എന്ന് കാണാം.

പരിമിതികളും എതിർപ്പുകളും

(ഈ ഭാഗം മനഃപൂർവ്വം ശൂന്യമായി വിട്ടിരിക്കുന്നു)

ഇനി എന്താണ് ശ്രദ്ധിക്കേണ്ടത്

ഈ കോഡ്ബേസ് (https://github.com/lajosbencz/frontend-agent) ഓപ്പൺ ആണ്; പുതിയ ടൂളുകൾ ചേർക്കാനും, സിന്തറ്റിക് റെസിപ്പികൾ വിപുലീകരിക്കാനും, അല്ലെങ്കിൽ ഹൈബ്രിഡ് രീതികൾ പരീക്ഷിക്കാനും കമ്മ്യൂണിറ്റിയെ ഇത് സ്വാഗതം ചെയ്യുന്നു.

പ്രധാന കാര്യം: മിതമായ വലിപ്പമുള്ള ഒരു LLM-നെ ഒരു സ്വയംപര്യാപ്ത ഏജന്റായി (self-contained agent) ഫൈൻ ട്യൂൺ ചെയ്യുന്നത്, സെർവറുകളോ ഫീസുകളോ ഇല്ലാതെയും ഉപയോക്താവിന്റെ ഉപകരണത്തിൽ നിന്ന് ഡാറ്റ പുറത്തേക്ക് പോകാതെയും, പ്രവർത്തനക്ഷമവും സ്വകാര്യത സംരക്ഷിക്കുന്നതുമായ AI നേരിട്ട് ഒരു വെബ് പേജിൽ ഉൾപ്പെടുത്താൻ സാധ്യമാക്കുന്നു.