প্রকল্প সম্পর্কে

Drowse হলো বৃহৎ ভাষা মডেলের (LLM) যান্ত্রিক ব্যাখ্যাযোগ্যতার জন্য একটি স্থানীয় ওয়ার্কবেঞ্চ। এটি একটি স্থানীয় ড্যাশবোর্ড, একটি Python API এবং একটি HTTP সার্ভার সরবরাহ করে, যা OpenAI এবং Ollama উভয় ক্লায়েন্টের সাথে সামঞ্জস্যপূর্ণ। দ্রুত শুরু করার জন্য সোর্স চেকআউট থেকে ভার্চুয়াল পরিবেশে ইনস্টল করতে হয় (`uv pip install -e .`) এবং `drowse serve google/gemma-3-4b-it` কমান্ড দিয়ে চালু করলে localhost:8000-এ একটি ড্যাশবোর্ড খোলে। প্রথম চালুতে মডেলটি ডাউনলোড হয় এবং ১৭টি বান্ডেল করা কনসেপ্ট প্রোব ফিট হয়, যা `~/.drowse/` ডিরেক্টরিতে সংরক্ষিত থাকে। CUDA এবং Apple Silicon MPS সমর্থিত, সাথে ঐচ্ছিক FlashAttention এবং bitsandbytes কোয়ান্টাইজেশন এক্সট্রা সুবিধা রয়েছে। একটি হোস্টেড ব্রাউজার সংস্করণও অন্তর্ভুক্ত, যা ডিভাইসে WebGPU ইনফারেন্সের জন্য একটি বিচ্ছিন্ন Svelte PWA হিসেবে কাজ করে। README-তে সীমাবদ্ধতা সম্পর্কে সৎভাবে উল্লেখ করা হয়েছে: রানটাইম এবং ডিস্ট্রিবিউশন লকগুলি যাচাইকৃত হিসেবে চিহ্নিত, কিন্তু রিলিজ চেকগুলো মডেল লোডের অধীনে GPU স্থিতিশীলতার নিশ্চয়তা দেয় না; Gemma PT-তে ম্যাচড-ওয়েট সংখ্যাগত অসঙ্গতি রয়েছে এবং Qwen 3.5-এর জন্য এখনও ম্যাচড-কোয়ান্টাইজেশন যাচাই প্রয়োজন। ডিভাইস চেক GPU ভেন্ডর এবং আর্কিটেকচার রিপোর্ট করে, রেকর্ডকৃত ডিভাইস লসসহ ব্লক প্রোফাইল তৈরি করে, এবং চিহ্নিত Intel gen-9 অ্যাডাপ্টারে Windows Chromium ব্লক করে। ইনফারেন্সের জন্য WebGPU বাধ্যতামূলক; ক্লাউড বা CPU-অনলি ফলব্যাক নেই, এবং প্রম্পট, কথোপকথন, অ্যাক্টিভেশন ও ফিট করা আর্টিফ্যাক্ট ডিভাইসেই থাকে। WebUI কথোপকথনগুলিকে শাখাযুক্ত থ্রেড ট্রি আকারে সাজায়, সাথে reroll, save/load এবং স্ট্যান্ডার্ড স্যামপ্লিং নিয়ন্ত্রণ। চ্যাট মোড মডেল টেমপ্লেটকে টার্ন আকারে রেন্ডার করে, যাতে collapsible থিংকিং এবং ডায়নামিক রোল হ্যান্ডলিং থাকে; raw মোড বেস মডেলের জন্য একটি একক বাফার প্রকাশ করে। টোকেনগুলো প্রোব স্কোর বা logprob সারপ্রাইজ দ্বারা হাইলাইট করা যায়, এবং একটি টোকেনে ক্লিক করলে জ্যামিতি, logits (টোকেন ফর্কিংসহ), SAE এবং J-lens ভিউসহ একটি বিবরণীয় ড্রয়ার খোলে। ইন্সট্রুমেন্টগুলো Subspace, Manifold, SAE এবং Lens ট্যাবে বিভক্ত, সাথে ম্যানিফোল্ড ফিটিং, মার্জিং, ইনস্টল ও পরিদর্শন, সীমাবদ্ধ-পছন্দ টেমপ্লেট স্কোরিং, স্টিয়ারিং ব্যবস্থাপনা এবং সার্ভার স্বাস্থ্য পরীক্ষার জন্য অতিরিক্ত বিশ্লেষণ টুল রয়েছে। কনসেপ্টগুলো ম্যানিফোল্ড বা সাবস্পেস হিসেবে নিষ্কাশিত হয়: একটি 1D ফ্ল্যাট সাবস্পেস হলো স্টিয়ারিং ভেক্টর, উচ্চ-র্যাংক ফ্ল্যাট সাবস্পেস হলো অর্থোগোনাল গ্রুপ, এবং বক্র ম্যানিফোল্ড অরৈখিক পৃষ্ঠ ফিট করে। বান্ডেল করা প্রোবগুলো এপিস্টেমিক, অ্যালাইনমেন্ট, রেজিস্টার এবং সাংস্কৃতিক কনসেপ্ট জোড়া কভার করে, সাথে ব্যক্তিত্ব, আবেগ এবং মাসের জন্য বড় ঐচ্ছিক সেট রয়েছে। একটি ইউনিফাইড স্টিয়ারিং এক্সপ্রেশন সিনট্যাক্স Python, YAML, OpenAI, Ollama এবং নেটিভ API জুড়ে কাজ করে; এটি যোগ/বিয়োগ, শেয়ার্ড-কম্পোনেন্ট keep/remove অপারেটর, mean ablation, ম্যানিফোল্ড নোড নির্বাচন, টোকেন-ফেজ সীমাবদ্ধতা, ডিকোড-উইন্ডো সীমাবদ্ধতা এবং লাইভ প্রোব গেট সমর্থন করে। নিষ্কাশনের সময় মডেলকে প্রতিটি কনসেপ্টের জন্য বেসলাইন প্রম্পটের উত্তর দিতে বলা হয়, তারপর লুকানো অবস্থাগুলো একটি ম্যানিফোল্ড বা সাবস্পেসে ফিট করা হয়; লেয়ার বরাদ্দের জন্য Mahalanobis মেট্রিক এবং বৈষম্যমূলক লেয়ার নির্বাচন ব্যবহার করা হয়। মনিটরিং রিডিংয়ের মধ্যে রয়েছে ফিট করা স্থানাঙ্ক, সাবস্পেস ভগ্নাংশ, সফট অ্যাসাইনমেন্টসহ নিকটতম নোড এবং বক্র ম্যানিফোল্ডের জন্য অফ-সারফেস রেসিডুয়াল। Jacobian লেন্স প্রকাশিত verbalizable-workspace কাজ অনুসরণ করে, এবং SAE সমর্থন প্রকাশিত SAELens রিলিজ ব্যবহার করতে পারে বা স্থানীয় SAE প্রশিক্ষণ দিতে পারে। CLI-তে আটটি ক্রিয়া রয়েছে: serve, manifold, pack, experiment, config, template, lens এবং sae, যা পুনরুৎপাদনযোগ্য প্রস্তুতি, বিতরণ এবং ব্যাচ কাজ কভার করে। ম্যানিফোল্ড প্যাক স্থানীয় পাথ থেকে ইনস্টল করা যায় বা Hugging Face মডেল রিপোজিটরি হিসেবে বিতরণ করা যায়, এবং একটি `.drowse` ZIP একটি ম্যানিফোল্ড ক্লোজার এবং তার উল্লেখিত টেমপ্লেট একসাথে পরিবহন করে। একটি ফিট করা দুই-নোড PCA ম্যানিফোল্ডকে llama.cpp কন্ট্রোল-ভেক্টর GGUF হিসেবে রপ্তানি করা যায়। হোস্টেড-ব্রাউজার আবিষ্কার শুধুমাত্র `drowse-manifold` ট্যাগযুক্ত Hugging Face রিপোজিটরি গ্রহণ করে, যাতে একটি একক রুট `.drowse` এবং রুট `manifold.json` থাকে; এটি অপরিবর্তনীয় কমিটে রেজলভ হয় এবং ঘোষিত রিপোজিটরি ও রিভিশন যাচাই করে। একটি `drowse serve` প্রক্রিয়া এক পোর্টে চারটি সারফেস প্রকাশ করে: WebUI, OpenAI-সামঞ্জস্যপূর্ণ `/v1/*`, Ollama-সামঞ্জস্যপূর্ণ `/api/*` এবং সেশন, loom ট্রি, প্রোব, ম্যানিফোল্ড, টেমপ্লেট, SAE/J-LENS লাইফসাইকেল ও রিপ্লে, SSE এবং টোকেন-প্লাস-মেজারমেন্ট WebSocket-এর জন্য নেটিভ `/drowse/v1/*` API। Python API-র কেন্দ্রে রয়েছে `DrowseSession`, যার মধ্যে `extract`, `add_probe`, `generate`, `generate_stream`, `generate_batch`, `generate_sweep` এবং `score_choices` পদ্ধতি রয়েছে, সাথে নোটবুক প্লটিং সহায়ক ফাংশনও আছে। মডেল সমর্থনের মধ্যে রয়েছে Qwen 2/3/3.5, Gemma 2/3/4, Mistral 3 এবং Ministral 3, Llama, GLM, gpt-oss এবং Talkie-এর জন্য এন্ড-টু-এন্ড পরীক্ষিত পাথ; অতিরিক্ত আর্কিটেকচার একটি জেনেরিক রেসিডুয়াল-লেয়ার ইন্টারফেসের মাধ্যমে সংযুক্ত হয় এবং অপরীক্ষিত হলে সতর্কতা দেখায়। README-তে স্পষ্টভাবে Drowse-কে একটি বিশ্বস্ত স্থানীয় মেশিন বা ল্যাব নেটওয়ার্কের জন্য তৈরি হিসেবে বর্ণনা করা হয়েছে, শক্তিশালী মাল্টি-টেন্যান্ট সার্ভিস হিসেবে নয়; এবং বিশ্বস্ত হোস্টের বাইরে বাঁধাই করলে API কী, TLS, রেট লিমিট এবং আইসোলেশন ব্যবহারের পরামর্শ দেওয়া হয়েছে। রিপোজিটরি Python এক্সিকিউশন ডিফল্টভাবে নিষ্ক্রিয় এবং স্পষ্ট অপ্ট-ইন প্রয়োজন। স্টেট `~/.drowse/`-তে থাকে (যা `$DROWSE_HOME` দিয়ে স্থানান্তরযোগ্য), আর কথোপকথন সংরক্ষণ অটোসেভ না করে ব্রাউজার-ডাউনলোড করা JSON ফাইল হিসেবে স্পষ্টভাবে সংরক্ষিত হয়। প্রকল্পটি AGPL-3.0-or-later লাইসেন্সের অধীনে এবং এটি Representation Engineering, repeng, difference-of-means extraction, Goodfire-এর ম্যানিফোল্ড কাজ, Anthropic-এর Assistant Axis ফ্রেমিং এবং Gurnee et al.-এর J-lens পদ্ধতিকে কৃতিত্ব দেয়।