একটি AI স্থাপত্য, গড়া মৌলিক নীতি থেকে, কোনো ফর্ক থেকে নয়
আধুনিক প্রায় সব কৃত্রিম বুদ্ধিমত্তাই (AI) একই গুটিকয়েক নকশার হেরফের। Cypha শুরু করে অন্য জায়গা থেকে: একটিমাত্র C++ টাইপ, যার শিখনের নিয়ম ধার করা নয়, গণিত থেকে বের করা, আর যা একবার প্রশিক্ষণ নিয়ে জমে যাওয়ার বদলে দেখা প্রতিটি উদাহরণেই নিজেকে হালনাগাদ করে। এটি একটি গবেষণা প্রকল্প, আর ফলাফলের পাশে ব্যর্থতাগুলিও প্রকাশ করা হয়।
- AIXI / Solomonoff — ন্যূনতম বর্ণনা-দৈর্ঘ্যের (MDL) পূর্বধারণা ঠিক করে মডেল সস্তায় কী কী বিশ্বাস করতে পারবে।
- তথ্য জ্যামিতি — হালনাগাদ চলে প্রাকৃতিক গ্রেডিয়েন্ট ধরে, তাই শিখন প্যারামিটার-স্থানের বক্রতাকে মেনে চলে।
- সক্রিয় অনুমান / মুক্ত শক্তি — কাঠামোটাকে ভেঙে দেয় পূর্বধারণা, ডিফারেনশিয়াল ও প্রেক্ষাপটে।
- তথ্য-সংকীর্ণতা — এনকোডারের লক্ষ্য ঠিক করে দেয়: যা পূর্বাভাস দেয় তা রাখো, বাকিটা ফেলে দাও।
এটি কী, এক মিনিটে
ব্যবহারে থাকা প্রায় প্রতিটি AI ব্যবস্থাই গুটিকয়েক নকশার হেরফের। এগুলিকে একবার বড় যন্ত্রে প্রশিক্ষণ দিয়ে জমাট অবস্থায় পাঠানো হয়, তাই যা বদলাতে থাকে — নতুন ধরনের জালিয়াতি, নতুন ত্রুটি — তার সঙ্গে তাল মেলাতে হলে ফিরে গিয়ে আবার প্রশিক্ষণ দিতে হয়। এগুলি আবার বড়, তাই বসে যন্ত্রের গায়ে নয়, ডেটা সেন্টারে, আর একটিমাত্র সিদ্ধান্ত ব্যাখ্যা করাও কঠিন হয়ে পড়ে।
Cypha একটিমাত্র C++ টাইপ, যা শ্রেণিবদ্ধ করে, সংখ্যার পূর্বাভাস দেয় আর সিকোয়েন্স তৈরি করে। এর শিখনের নিয়ম প্রচলিত কোনো স্থাপত্য থেকে নকল করা নয়, গণিতের চারটি শাখা থেকে বের করা, আর এটি দেখা প্রতিটি উদাহরণেই হালনাগাদ হয় — কোনো ব্যাচ নয়, এপক নয়, আবার প্রশিক্ষণের দৌড় নয়। যে হার্ডওয়্যার ডেটা জোগাড় করে তার উপরেই চলার মতো ছোট।
আজকের দিনে, ভিন্ন নকশা পরখ করতে রাজি গবেষক ও প্রকৌশলীরা। যেসব সমস্যার দিকে এটি তাক করা, সেখানে ডেটা বদলাতেই থাকে — জালিয়াতি, যন্ত্রের ত্রুটি, বদলে যাওয়া আচরণ — মডেলটিকে ডেটা সেন্টারে নয়, যন্ত্রের গায়েই বসতে হয়, আর পরে কাউকে না কাউকে সিদ্ধান্তটা ব্যাখ্যা করতে হয়।
র্যান্ডম ফিচার, বর্ণনা নয়, মেপে দেখা
র্যান্ডম ফুরিয়ে ফিচার (RFF) নিয়ে Cypha-র যুক্তি হলো, এগুলি একটি রৈখিক হেডকে এমন কিছু আলাদা করতে দেয় যা রৈখিক হেড পারে না। এটি মাপা যায় এমন দাবি, তাই এখানে সেটাই মাপা হচ্ছে — সঙ্গে cypha::rff_features WebAssembly-তে কম্পাইল করে, JavaScript-এ নতুন করে বলে নয়।
cypha::rff_features — WebAssembly
লোড হয়নিহুবহু রেডিয়াল বেসিস ফাংশন (RBF) কার্নেল n সংখ্যক নমুনা বিন্দুর উপরে, আর তাতে পাওয়া যায় একটি ম্যাট্রিক্স K। র্যান্ডম ফিচার তার একটি আসন্ন মান পুনর্গঠন করে K̂। যা আঁকা হয়েছে তা হলো ‖K − K̂‖F ফিচারের সংখ্যা বাড়ার সঙ্গে সঙ্গে: যত বেশি ফিচার, তত কাছাকাছি আসন্ন মান।
chi_d থেকে, যাতে একটি অর্থোগোনাল সারি যে গাউসীয় সারির জায়গা নিচ্ছে তার সঙ্গে মেলে। সারিগুলি √d গুণ বেশি ছোট ছিল, তাই ফিচারগুলি ভুল কার্নেলের কাছাকাছি যাচ্ছিল আর ভুলের মাত্রা অভিসারী না হয়ে থমকে যাচ্ছিল। এক লাইন। এখন তিনটির মধ্যে এটিই সবচেয়ে ভালো।
সাতটি স্তর, প্রতিটি একটি করে কাজ করে
নিচের প্রতিটি অংশ আছে কারণ ওই চারটি ধারার কোনো একটি সেটিকে দাবি করে — ওই ত্রৈমাসিকের কোনো গবেষণাপত্রে ছিল বলে নয়।
বদলে নেওয়া যায় এমন সামনের অংশ
কাঁচা ইনপুট থেকে ফিচার ভেক্টর। সঙ্গে আসে VectorEncoder,
RFFEncoder (র্যান্ডম ফুরিয়ে ফিচার) ও ConcatEncoder। পরের ধাপের কিছু না ছুঁয়েই এটি বদলে নেওয়া যায়।
EncoderProjection
Fisher–Rao কনট্রাস্টিভ হালনাগাদের মাধ্যমে ফিচারকে সুপ্ত স্থানে নিয়ে যায়, সঙ্গে Frobenius-নর্মে সীমা বেঁধে দেওয়া, যাতে একটিমাত্র বিচ্যুত বিন্দু জ্যামিতিটাকে উড়িয়ে দিতে না পারে।
WorldPrior
একটি ভাগ করা কর্ণ গাউসীয় বণ্টন, Welford আর সূচকীয় চলমান গড়ের (EMA) হালনাগাদ দিয়ে অনলাইনে বসানো। এটিই সেই “অসীম প্রেক্ষাপট” যা কখনও ভোলে না — আর যার নড়াচড়াই ড্রিফট সংকেত।
ClassDifferential
শ্রেণিভিত্তিক প্রাকৃতিক-প্যারামিটারের সরণ, যা পর্যবেক্ষণের দিকে টানে আর MDL ক্ষয় তাকে ফিরিয়ে আনে। একটি শ্রেণি হলো জগৎ থেকে একটি সরণ, আলাদা কোনো মডেল নয়।
DIFMemory
সাধারণীকৃত হাইপারবোলিক পোস্টেরিয়রের অধীনে লগ-সম্ভাবনার অনুপাত হিসাব করে, সঙ্গে Bessel-অনুপাতের লুকআপ টেবিল, যাতে ভারী লেজের জন্য প্রতি নমুনায় একটি ট্রান্সেনডেন্টাল ফাংশনের খরচ না লাগে।
TieredContextBuffer
NIGField-এর আত্মবিশ্বাস দিয়ে ওজন করা ছোট, মাঝারি ও দীর্ঘ স্তর, যাতে সাম্প্রতিক প্রমাণ প্রাধান্য পেতে পারে, অথচ দীর্ঘ স্তর যা প্রতিষ্ঠা করেছে তা মুছে না যায়।
ক্লিক করে একটি ক্লাসিফায়ার প্রশিক্ষণ দিন
Cypha পাইপলাইনের একটি বিশ্বস্ত দ্বিমাত্রিক ছোট সংস্করণ: অনলাইনে বসানো একটি ওয়ার্ল্ড প্রায়র, আপনি যা রাখেন তার দিকে টানা শ্রেণিভিত্তিক ডিফারেনশিয়াল, আর লগ-সম্ভাবনার অনুপাত দিয়ে শ্রেণিবিভাগ। প্রতিটি ক্লিক থেকেই এটি শেখে — কোনো ব্যাচ নেই, কোনো এপক নেই, নতুন করে শুরু নেই।
cypha::Cypha — অনলাইন ক্লাসিফায়ার
নির্বাচিত শ্রেণির একটি নমুনা যোগ করতে ক্যানভাসে ক্লিক করুন। একটি গুচ্ছ আঁকতে টেনে নিন।
কোন শ্রেণি বসাবেন
একটি ডেটাসেট লোড করুন
শেষ ইনফারেন্স
ক্লাস ডিফারেনশিয়াল Δₖ
ফলাফল, সঙ্গে যে তুলনাটা আসল
রোগনির্ণয়ের সারাইয়ের পরে রিপোজিটরির নিজের বেঞ্চমার্ক চালনা থেকে পাওয়া সংখ্যা। শুদ্ধতার প্রমাণ হলো সংরক্ষিত ফিক্সচার মানের সঙ্গে মিলে যাওয়া একটি CTest ম্যাট্রিক্স — লিডারবোর্ডের অবস্থান নয়।
সারণির সংক্ষেপ: স্টোক্যাস্টিক গ্রেডিয়েন্ট ডিসেন্ট (SGD), লং শর্ট-টার্ম মেমরি (LSTM), সময়ের মধ্য দিয়ে ব্যাকপ্রোপাগেশন (BPTT)।
| ডেটাসেট | কাজ | Cypha | অনলাইন SGD | মন্তব্য |
|---|---|---|---|---|
| রৈখিকভাবে আলাদা করা যায় | ২-শ্রেণি | 0.783 | 0.644 | একই অনলাইন বাজেট |
| Iris | ৩-শ্রেণি | 0.900 | — | চিরায়ত ভিত্তি-সেট |
| Wine | ৩-শ্রেণি | 0.969 | — | |
| Digits | ১০-শ্রেণি | 0.922 | — | |
| Breast cancer | ২-শ্রেণি | 0.957 | — | |
| WikiText-2 | সিকোয়েন্স, ৩ লাখ টোকেন | ২.৬৬৪ BPC | — | হাইব্রিড GRIA+LSTM L2+Wave2 BPTT |
| XOR | ২-শ্রেণি, সুপ্ত RFF | ~0.763 | — | শুধু রৈখিক LLR এলোমেলো আন্দাজের কাছেই আটকে যায় |
তাপমাত্রা-মাপা, ক্ষেত্র-শর্তাধীন, সুপ্ত-সীমানায় ইন্টারপোলেশন, প্রতিদ্বন্দ্বী (এনট্রপি-সর্বোচ্চকারী), OOD নমুনায়ন, MDL-সীমিত, পূর্বপুরুষভিত্তিক, আর রিপ্লে বাফার থেকে KDE নমুনায়ন।
গেটের মান থেকে অস্বাভাবিকতার স্কোর, এনট্রপি × সীমানার নৈকট্য হিসেবে সক্রিয়-প্রশ্নের স্কোর, আর ওয়ার্ল্ড প্রায়রের নড়াচড়া থেকে সরাসরি পড়া ড্রিফট শনাক্তকরণ।
১০,০০০ ধারণক্ষমতার একটি অগ্রাধিকার বাফার, সাম্প্রতিকতা ও বিস্ময় দিয়ে ওজন করা, ০.৩০ অনুপাতে আবার চালানো হয় — যাতে বিরল, তথ্যবহুল নমুনাটি সাধারণটির নিচে চাপা না পড়ে।
প্রোফাইল করে পাওয়া, আন্দাজ করা নয়
এগুলি এসেছে একটি প্রোফাইল করা মাঝারি-গ্রিড অপ্টিমাইজেশন থেকে, আর রেফারেন্স কনফিগারেশন হিসেবেই আসে।
Cypha যা নয়
- কোনো র্যাপার নয়। মৌলিক নীতি থেকে নিজের মতো গড়া — যার মানে আবার এই যে, এটি অন্য কারও টিউনিং উত্তরাধিকারসূত্রে পায় না।
- রৈখিক LLR-এর একটা ছাদ আছে। সুপ্ত RFF এনকোডার ছাড়া XOR এলোমেলো আন্দাজের কাছাকাছি পড়ে থাকে; এনকোডারটি তাকে প্রায় ৭৬.৩% পর্যন্ত তোলে।
- যাচাই হয় মিল দেখে। সংরক্ষিত ফিক্সচার মানের বিপরীতে CTest। লিডারবোর্ড নিয়ে কোনো দাবি করা হয় না।
- CUDA কেবল ইনফারেন্সের জন্য। প্রশিক্ষণ কেন্দ্রীয় প্রক্রিয়াকরণ ইউনিটেই (CPU) থাকে, কারণ এই স্থাপত্যে CPU-ই দ্রুততর।
- তত্ত্ব থাকে অন্যত্র। হারমোনিক-স্পেকট্রাম ও NMP-র কাজ একটি আলাদা কম্প্রেশন-অ্যালগরিদম গবেষণাপত্রের বিষয়; Cypha হলো বাস্তবায়নের স্তর।
Cypha, একটি সত্যিকারের দাবা ইঞ্জিন থেকে ডিস্টিল করা
২৬,৫৬৮টি অবস্থান, যেগুলিতে একটি প্রচলিত আলফা-বিটা ইঞ্জিনের নিজের অনুসন্ধান-মূল্যায়ন দিয়ে লেবেল দেওয়া, আর সেগুলিতে বসানো হয়েছে স্থাপত্যের বাকি সব জায়গায় ব্যবহৃত সেই একই WorldPrior হোয়াইটেনিং ও প্রাকৃতিক-গ্রেডিয়েন্ট হালনাগাদ। আলাদা করে রাখা অবস্থানগুলিতে এটি শিক্ষকের মূল্যায়ন ফিরিয়ে আনে R² ০.৮৬৬ মাত্রায়, আর সমান অনুসন্ধান গভীরতায় ওই শিক্ষকের বিপরীতে ফল দাঁড়ায় ৫ জয়–১৯ হার–৬ ড্র।
একটি ছোট AI, যা শিখতেই থাকে
বেশিরভাগ AI একবার ডেটা সেন্টারে প্রশিক্ষণ পায়, তারপর জমে যাওয়া অবস্থায় পাঠানো হয়। Cypha যথেষ্ট ছোট যে সাধারণ হার্ডওয়্যারেই চলে, আর যত নতুন উদাহরণ দেখে তার প্রতিটি থেকেই শিখতে থাকে।
বড় AI ধরে না এমন ছোট যন্ত্র
সেন্সর, ক্যামেরা, কন্ট্রোলার আর এমন হার্ডওয়্যার যার পিছনে একটা ডেটা সেন্টার রাখার জায়গা নেই। Cypha যথেষ্ট ছোট যে যন্ত্রের ভিতরেই চলে, তাই কিছুই বাড়ির বাইরে যেতে হয় না।
যা কিছুকে বদলের সঙ্গে তাল মিলিয়ে চলতে হয়
জালিয়াতির ধরন, যন্ত্রের গোলমাল, ক্রেতার বদলে যাওয়া আচরণ। গত বছর প্রশিক্ষণ পাওয়া মডেল এখনই পুরনো। এটি চলতে চলতেই হালনাগাদ হয়, অফলাইনে নামিয়ে আবার প্রশিক্ষণ না দিয়েই।
যে কাজের পরে কৈফিয়ত দিতে হয়
ব্যাংক, বিমা আর স্বাস্থ্যসেবাকে প্রায়ই একটি সিদ্ধান্তের যুক্তি দেখাতে হয়। Cypha যথেষ্ট ছোট যে খুঁটিয়ে দেখা যায়, আর সে কোন জায়গায় খারাপ তা লুকিয়ে না রেখে প্রকাশ করে।
তিনটি কমান্ড
$ cmake -S native -B /tmp/cypha_build -DCMAKE_BUILD_TYPE=Release -G Ninja $ cmake --build /tmp/cypha_build --parallel $ ctest --test-dir /tmp/cypha_build -R native_ --output-on-failure # REST service $ cypha_rest --listen 127.0.0.1:8099 --cypha fixtures/reference.cypha # Qt shell (build with -DCYPHA_BUILD_QT=ON) $ cypha_qt_shell