আপনার ব্রাউজারে একটি LLM এজেন্ট চালানো
বেশিরভাগ AI অ্যাসিস্ট্যান্ট ডেটা সেন্টারে থাকে। তাদের একটি API key, একটি সার্ভার প্রয়োজন এবং তারা প্রতি অনুরোধের জন্য চার্জ করে।
আমি ভিন্ন কিছু তৈরি করেছি।
আমি LiquidAI LFM2.5 মডেলগুলোকে (230 M এবং 350 M) সম্পূর্ণভাবে আপনার ব্রাউজারে চালানোর জন্য fine-tune করেছি—কোনো সার্ভার বা ক্লাউড খরচ ছাড়াই।
লক্ষ্য ছিল মডেলটিকে এতটাই ছোট করা যাতে এটি একটি ওয়েব পেজের সাথেই পাঠানো সম্ভব হয়।
মডেলটি নির্দিষ্ট পণ্যের তথ্য জমা রাখে না; এটি প্যাটার্ন শেখে। একটি ক্ষুদ্র মডেল পুনরায় ট্রেনিং ছাড়াই একটি কফি শপ, মুদি দোকান বা অন্য যেকোনো দোকান পরিচালনা করতে পারে।
মডেলটি যা করে
- একটি কাজের জন্য সঠিক টুল নির্বাচন করে
- আর্গুমেন্ট এবং আইটেম ID সঠিকভাবে সংযুক্ত করে
- “the second one” বা “a dozen”-এর মতো রেফারেন্স বুঝতে পারে
- প্রশ্ন উত্তর দিতে রিট্রিভ করা টেক্সট ব্যবহার করে
- তথ্য না থাকলে উত্তর দিতে অস্বীকার করে
- কথোপকথন অপ্রাসঙ্গিক হয়ে গেলে তা পুনরায় মূল বিষয়ে ফিরিয়ে আনে
আমি এটি কীভাবে তৈরি করেছি
- আটটি টুলের একটি সেট (search, add_to_cart, checkout, ইত্যাদি) ফ্রিজ (frozen) করেছি
- RAG-কে একটি আলাদা পাইপলাইনের পরিবর্তে একটি টুল হিসেবে বিবেচনা করেছি
- নির্ভুলতার জন্য grammar-constrained decoding প্রয়োগ করেছি
- ১৮টি ইন্টারঅ্যাকশন রেসিপি থেকে একটি সিন্থেটিক ডেটাসেট তৈরি করেছি
- একটি মাত্র 16 GB GPU ব্যবহার করে 30 M টোকেনের ওপর fine-tune করেছি
ট্রেনিংয়ের মূল লক্ষ্য আমি মডেলটিকে ব্লক লিস্টের পরিবর্তে আচরণের ওপর ভিত্তি করে প্রশিক্ষণ দিয়েছি। শব্দ নিষিদ্ধ করার পরিবর্তে, আমি এটিকে বিনয়ের সাথে কথোপকথন পরিচালনা করতে শিখিয়েছি।
এটি কেন গুরুত্বপূর্ণ
- প্রাইভেসি: আপনার ডেটা কখনোই আপনার ডিভাইস থেকে বাইরে যায় না
- অফলাইন ব্যবহার: এটি ইন্টারনেট সংযোগ ছাড়াই কাজ করে
- খরচ: ইনফারেন্সের কোনো বিল নেই
- অ্যাক্সেসিবিলিটি: এটি জটিল 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 একটি ৩৫০-মিলিয়ন প্যারামিটার বিশিষ্ট ল্যাঙ্গুয়েজ মডেলকে সম্পূর্ণভাবে ওয়েব ব্রাউজারে চালানোর জন্য fine-tune করেছেন, যা একটি স্ট্যাটিক পেজকে একটি স্বায়ত্তশাসিত শপিং অ্যাসিস্ট্যান্টে রূপান্তরিত করে। এর জন্য কোনো API key, সার্ভার বা ক্লাউড-ভিত্তিক ইনফারেন্স খরচের প্রয়োজন নেই। এর ফলাফল হলো একটি প্রাইভেসি-ফার্স্ট, অফলাইন-সক্ষম AI যা প্রতিটি ডোমেইনের জন্য পুনরায় ট্রেনিং ছাড়াই একটি কফি শপ, মুদি দোকান বা অনুরূপ যেকোনো ক্যাটালগ পরিচালনা করতে পারে।
কেন ব্রাউজারে একটি LLM চালাবেন
বেশিরভাগ AI অ্যাসিস্ট্যান্ট ডেটা সেন্টারে থাকে। প্রতিটি কুয়েরি ইন্টারনেটের মাধ্যমে যায়, একটি API-তে পৌঁছায় এবং প্রতি অনুরোধের জন্য ফি প্রদান করতে হয়। এই ব্যবস্থা ব্যবহারকারীর ডেটা ফাঁস করতে পারে, নেটওয়ার্কের প্রয়োজন হয় এবং বিল দ্রুত বেড়ে যায়। মডেলটিকে ক্লায়েন্টে নিয়ে আসা এই সমস্যাগুলো দূর করে। ডেটা লোকাল মেশিনে থাকে, নেটওয়ার্ক বিচ্ছিন্ন হলেও অ্যাসিস্ট্যান্ট কাজ করে এবং ইনফারেন্স খরচ শূন্যে নেমে আসে।
মডেলটি কীভাবে তৈরি করা হয়েছে
- মডেল নির্বাচন – LiquidAI LFM2.5-এর 230 M এবং 350 M ভেরিয়েন্ট দিয়ে শুরু করা হয়েছে। এদের আকার এমন যে একটি সাধারণ ওয়েব পেজ সহজেই এগুলো ডাউনলোড করতে পারে।
- টুল সেট – এজেন্টের মধ্যে আটটি ইউটিলিটি (search, add_to_cart, checkout, ইত্যাদি) হার্ড-কোড করা হয়েছে। মডেলটি শেখে কোন টুলটি ব্যবহার করতে হবে এবং আইটেম ID-এর মতো আর্গুমেন্ট কীভাবে পাস করতে হবে।
- টুল হিসেবে RAG – Retrieval-Augmented Generation-কে কেবল একটি কলযোগ্য টুল হিসেবে বিবেচনা করা হয়েছে, যা আর্কিটেকচারকে সহজ করে তুলেছে।
- Grammar-constrained decoding – ডিকোডারকে বৈধ টুল-কল সিনট্যাক্সের মধ্যে সীমাবদ্ধ রাখা হয়েছে, যা ভুল আউটপুট অনেকাংশে কমিয়ে দিয়েছে।
- সিন্থেটিক ডেটা – ১৮টি ইন্টারঅ্যাকশন রেসিপিকে (যেমন, “add two dozen donuts”) একটি 30 M-টোকেন ডেটাসেটে রূপান্তরিত করা হয়েছে, যা একটি মাত্র 16 GB GPU-তে তৈরি করা হয়েছে।
- আচরণ-কেন্দ্রিক ট্রেনিং – ব্লক লিস্টের পরিবর্তে, fine-tuning-এ কথোপকথন পরিচালনার ওপর জোর দেওয়া হয়েছে: বিনয়ের সাথে অপ্রাসঙ্গিক কথাগুলো সরিয়ে মূল বিষয়ে ফিরিয়ে আনা, তথ্য না থাকলে প্রত্যাখ্যান করা এবং “the second one”-এর মতো অস্পষ্ট রেফারেন্স নিশ্চিত করা।
Fine-tuning প্রক্রিয়াটি একটি মাত্র 16 GB GPU-তে চালানো হয়েছে।
এজেন্ট যা করতে পারে
- টুল নির্বাচন – একটি কুয়েরির জন্য সার্চ, কার্ট আপডেট বা অন্য কোনো ফাংশন প্রয়োজন কি না তা সিদ্ধান্ত নেয়।
- আর্গুমেন্ট হ্যান্ডলিং – আইটেম আইডেন্টিফায়ার, পরিমাণ এবং কোয়ালিফায়ার (যেমন, “a dozen”) পার্স করে এবং সেগুলো সঠিকভাবে পাস করে।
- রেফারেন্স রেজোলিউশন – “the second one”-এর মতো শব্দগুচ্ছকে রিট্রিভ করা তালিকার সঠিক আইটেমের সাথে যুক্ত করে।
- RAG-চালিত উত্তর – প্রাসঙ্গিক টেক্সট সংগ্রহ করে এবং তা উত্তরের সাথে যুক্ত করে।
- মার্জিত প্রত্যাখ্যান – ভুল তথ্য (hallucination) দেওয়ার পরিবর্তে প্রয়োজনীয় তথ্য না থাকলে উত্তর দিতে অস্বীকার করে।
- কথোপকথন পরিচালনা – কথোপকথনের প্রবাহ না ভেঙে অপ্রাসঙ্গিক মন্তব্যগুলোকে পুনরায় কাজের দিকে ফিরিয়ে আনে।
একটি লাইভ ডেমো (https://lajosbencz.github.io/frontend-agent/) দেখায় যে এজেন্ট ভয়েস বা টেক্সট ইনপুট ব্যবহার করে ব্রাউজিং থেকে চেকআউট পর্যন্ত একটি সাধারণ ই-কমার্স ফ্লো পরিচালনা করতে পারে।
সীমাবদ্ধতা এবং পাল্টা যুক্তি
(এই বিভাগটি ইচ্ছাকৃতভাবে খালি রাখা হয়েছে)
পরবর্তী কী লক্ষ্য রাখা উচিত
কোডবেসটি (https://github.com/lajosbencz/frontend-agent) উন্মুক্ত, যা কমিউনিটিকে নতুন টুল যোগ করতে, সিন্থেটিক রেসিপি সম্প্রসারণ করতে অথবা হাইব্রিড পদ্ধতি পরীক্ষা করতে আমন্ত্রণ জানাচ্ছে।
মূল কথা: একটি মাঝারি আকারের LLM-কে একটি স্বয়ংসম্পূর্ণ এজেন্টে ফাইন-টিউন করা একটি ওয়েব পেজে সরাসরি কার্যকরী এবং গোপনীয়তা-রক্ষাকারী AI যুক্ত করা সম্ভব করে তোলে—কোনো সার্ভার ছাড়াই, কোনো খরচ ছাড়াই এবং ব্যবহারকারীর ডিভাইস থেকে কোনো ডেটা বাইরে না পাঠিয়েই।
