BanglaTuring
ডিটেক্টরে ফিরে যান

আমাদের সম্পর্কে

বাংলা ভাষায় এআই দিয়ে তৈরি লেখা শনাক্তকরণে একটি উন্মুক্ত বিজ্ঞানভিত্তিক উদ্যোগ।

প্রারম্ভ

সোশ্যাল মিডিয়া, খবরের কাগজ, এমনকি সরকারি নানান রিপোর্ট, কতো কতো বিদেশি বইয়ের বাংলা অনুবাদ, সব জায়গায়-ই AI slop এ ছেয়ে গেছে।

এআই স্লপ বলতে কি বুঝাচ্ছি আমরা?

এআই স্লপ বলতে সাধারণত এমন নিম্নমানের, অতিরিক্ত বা অর্থহীন কনটেন্টকে বোঝানো হয়, যেটা AI দিয়ে খুব দ্রুত, কোনো রকম ইফোর্ট, হিউম্যান টাচ ইত্যাদি ছাড়াই তৈরি করা হয়েছে। কতো কতো প্রতিষ্ঠানে শিক্ষার্থীরা বাংলায় কতো কতো এসাইনমেন্ট লিখে, কতো পত্রিকায় পর্যাপ্ত হিউম্যান মনিটরিং এর অভাবে ভুলে ভরা খবর প্রকাশিত হয়… এসমস্ত জায়গায় প্রয়োজন হয় এমন একটা এআই ডিটেক্টর, যেটা দিয়ে অথোরিটি যাচাই করতে পারবে যে, তাদের কাছে আসা বাংলা লিখাগুলি কি আসলেই মানুষের লিখা কিনা।

এসব নিয়ে যতো গবেষণা হয়েছে, তার প্রায় সবই ইংরেজি ভাষায়। প্রায় ২৩ কোটি মানুষের এই বাংলা ভাষা এক্ষেত্রে একাডেমিয়ায় এবং NLP গবেষণায় অনেকটাই অবহেলিত।

তাই আমরা ভাবলাম, why don't we step up?

আমাদের খোঁজ তো বাংলা ভাষার এআই ভিত্তিক ফ্যাক্টচেকিং প্রকল্প। তো, সেখানেও কেন আমরা অন্তত বাংলার জন্য অন্তত একটা এআই টেক্সট ডিটেক্টর রাখি না?

ডেটাসেট

সে ভাবনা থেকেই কাজে লেগে পড়া। শুরুতে আমরা হাত দিলাম ডেটাসেট তৈরিতে। কারণ এক্সিস্টিং যতো ডেটাসেট আছে, সেসব অনেক ছোট, স্যাম্পল কম, টেক্সটে ডাইভার্সিটি কম, এআই আর হিউম্যান স্যাম্পলে যথেষ্ট ব্যালেন্স নেই। এক্সিস্টিং এসব কাজ খুবই অযত্নে বানানো এবং কেবল ‘রিসার্চ পেপার' পাবলিশ করতে হবে, এমন চিন্তাভাবনা থেকে বানানো।

তাই ভাবলাম আগে চমৎকার আর ডাইভার্স একটা ডেটাসেট বানাই। শুরু হয়ে গেলো কাজ, আমরা ২০,০০০ স্যাম্পলের এক বিশাল ডেটাসেট বানানোর কাজে হাত দিলাম, যেখানে প্রতিটা স্যাম্পল অর্থাৎ ডক্যুমেন্টে গড়ে শব্দ সংখ্যা হবে প্রায় ১৩০ টি। তাহলে আমাদের প্রয়োজন অর্ধেক মানুষের লিখা, যাতে লেবেলিং করা থাকবে “০” এবং বাকি অর্ধেক এআই এর, যাতে লেবেলিং করা থাকবে “১”।

তো, এইযে৷ এআই এর লেখা নেবো, সেটা কোন কোন এআই এর লিখা? সেজন্য সবচেয়ে ভালো সলিউশন হচ্ছে, আমরা বরং বাংলা ভাষাভাষীদেরকেই জিজ্ঞেস করি যে, তাঁরা কাজে কর্মে বা দৈনন্দিন জীবনে বাংলা ভাষার জন্য কোন এআই-টা ব্যবহার করেন। উত্তরে তারা চাইলে একটি এআই (যেমন ChatGPT) বা একাধিক এআই পছন্দ করতে পারবেন (যেমন ChatGPT এর সাথে Grok ও)। সেই জরিপটা আমরা চালিয়েছি নানান শ্রেণি পেশার মানুষের ওপর। এবং মোট ১৪৬৬ জন সে জরিপে অংশ নিয়েছেন। ফলাফলটা ছিলো বেশ চমকপ্রদ। জরিপে ChatGPT পেয়েছে ৮৬.২%, Gemini ৪৪.৭%, Claude ২০.২%, DeepSeek ১০.১% আর Grok ৪.৮%। অর্থাৎ যেগুলো আসলেই ব্যবহৃত হয়, সেগুলোই নেওয়া হয়েছে। জনপ্রিয় ও কম-জনপ্রিয় দুই ধরনই রাখা হয়েছে যাতে পরীক্ষাটা বাস্তবের কাছাকাছি হয়।

সেথেকেই আমাদের ডেটাসেটের ১০,০০০ স্যাম্পল নিলাম ChatGPT, Gemini, Grok, DeepSeek এবং ক্লড থেকে (প্রতিটা এআই ২,০০০ করে স্যাম্পল। এবং আমরা ঠিক করলাম ৪৫ টা টপিকে লেখা সংগ্রহ করবো। যেই ৪৫ টা টপিকে মোটামুটি আমাদের দৈনন্দিন, প্রাত্যহিক, প্রাতিষ্ঠানিক, একাডেমিক পর্যায়ে যতো লেখালেখি হয়, সব টপিক কাভার হয়ে যায়। ইকোনমি, প্রযুক্তি, গণিত, বিজ্ঞান, ফিজিক্স, সাহিত্য, দর্শন, আর্ট, রেগুলার কনভার্সাশান, সোশিওলজি, জার্নালিজম, মিডিয়া থেকে শুরু করে প্রায় সমস্ত কিছু কাভার করা হয়েছে।

এখন, এতোগুলো টপিকে মানুষের হাতে লিখা সংগ্রহ করা ছিলো আরও চ্যালেঞ্জিং। সে হিসেবে উইকিপিডিয়া হতে পারতো একটা ভালো সোর্স। কিন্তু, আমরা খেয়াল করে দেখেছি, অধিকাংশ উইকি পেইজই ২০২৪/২৫ অর্থাৎ এআই আসার পর অনেকবার সম্পাদিত হয়েছে। তাই আমাদের শংকা ছিলো যে, সেগুলিতে এআই এর টাচ থাকতে পারে। সে ভয় থেকে উইকিপিডিয়া পুরোপুরি এড়িয়ে গেছি। তবে আমাদের জন্য বিরাট এক খনি ছিলো বাংলাপিডিয়া, রোর মিডিয়া আর্কাইভ, মুক্তমনা আর্কাইভ, বিজ্ঞানযাত্রা আর্কাইভ(২০২২ এর পর আর তেমন লেখা নেই), উইকি সংকলন (যেখানে পেয়েছি অসংখ্য কবিতা), এবং যে উৎসটার ব্যাপারে বলতে বেশ সংকোচবোধ করছি, তা হচ্ছে ই-বাংলা লাইব্রেরি নামে এক বইয়ের ওয়েবসাইট। যেটায় কোনো পিডিএফ নেই। কিন্তু প্রতিটা বইয়ের লেখা ওদের সাইট থেকেই স্ক্র‍্যাপ করা গেছে। একই সাথে গুগল সার্চে টেম্পোরাল বাউন্ডারি সেট করে দেয়ার ফিচারটাও বিরাট কাজে লেগেছে। এই ডেটাসেট বানানোর জার্নিটা বিশাল। সে গল্প বলেছি একটা গবেষণাপত্রে, প্রকাশিত হলে অবশ্যই আপনাদের জানাবো।

তো, সুন্দর গোছানো এবং ব্যালেন্সড, ক্লিন একটা ডেটাসেট তো তৈরি হলো। এবার ট্রেনিং এর পালা। কীভাবে এআই এর লেখা চেনা যাবে বাংলায়?

কীভাবে এআই টেক্সট জেনারেট করে?

এটার জন্য আগে আমরা খুব সহজ করে জেনে নিই যে, কীভাবে AI নিজে লাইনের পর লাইন অর্থবোধক জিনিসপাতি লিখতে পারে।

ম্যাশিনকে আসলে লিখতে শেখানো হয়েছে পরিসংখ্যান এবং গাণিতিক সম্ভাবনার মাধ্যমে। ব্যাপারটা কিছুটা কীবোর্ডেই আপনি দেখতে পাবেন। যে শব্দের পর যে শব্দ আপনি বেশি ব্যবহার করেন, আপনার কীবোর্ড সেটাই সাজেস্ট করে আপনাকে। তবে বৃহৎ ভাষা মডেল বা LLM এর ক্ষেত্রে ব্যাপারটা আরও বড় পরিসরে। একটা এআই মডেল কোটি কোটি লেখা পড়ে শিখেছে যে, কোন বাক্যের পর কোন বাক্য বসিয়ে অর্থবোধক কিছু লিখতে হয়।

তাকে আপনি ধরুন কয়েক হাজার বাংলা বইপত্র দিয়ে ট্রেন করিয়েছেন। যেখানে কবি-লেখকেরা নানান জায়গায় লিখেছে “আজ আকাশে জমেছে অনেক মেঘ”, “ মেঘে মেঘে ছেয়ে গেছে আকাশ”, “আজ ঢাকা শহরের আকাশ মেঘে মেঘাচ্ছন্ন হয়ে থাকবে সারাদিন”... এভাবে যখন একটা মডেল বার বার একই প্যাটার্ন দেখে শিখবে, তখন সে প্রেডিক্ট করতেও শিখবে যে, কোন শব্দের পরে কোন শব্দ বসার সম্ভাবনা কেমন।

সে শিখে ফেলবে যে, “ আজ আকাশে অনেক…” লিখলে পরের শব্দ “মেঘ” হওয়ার প্রোবাবলিটি অনেক বেশি, কিন্তু “ডোনাল্ড ট্রাম্প” হওয়ার সম্ভাবনা প্রায় শূন্য। এভাবে প্রতিবারই সে সম্ভাব্য শব্দগুলোর মধ্য থেকে সবচেয়ে বেশি সসম্ভাবনাময় শব্দ চুজ করে করে পুরো লেখা তৈরি করে। একটু নার্ডি টোনে বললে বলবো, এআই একটা শব্দ লেখার পর পরবর্তী পসিবল শব্দটা কি হতে পারে, তার প্রোবাবিলিটি ডিস্ট্রিবিউশন হিসেব করে। ম্যাথেম্যাটিক্সের ভাষায়, এআই এর তৈরি করা লেখাগুলো সাধারণত একটা নির্দিষ্ট low-probability ফাংশনের ‘লোকাল ম্যাক্সিমা' বা সবচেয়ে বেশি সম্ভাবনার জায়গায় অবস্থান করে। অর্থাৎ, এআই সবসময়ই সবচেয়ে নিরাপদ আর সবচেয়ে সম্ভাবনাময় শব্দ বেছে নেয়।

এতোক্ষণ কী বুঝেছেন জানি না, তবে আশা করি এতোটুকু বুঝেছেন যে, এআই এর লেখার প্রক্রিয়াটা একটা গাণিতিক সম্ভাবনার ছকে বাঁধা থাকে। এবং এই ঝোপটাতেই আমাদের কোপ দেয়ার জায়গা। (ঝোপ বুঝে কোপ দেয়া যাকে বলে)।

যেহেতু এআই নির্দিষ্ট গাণিতিক কাঠামোর বাইরে গিয়ে লিখতে পারবে না, তাই এই গাণিতিক কাঠামোটাকেই চিনে ফেলতে হবে। তাহলেই চিনতে পারবো কোনটা এআই এর লিখা আর কোনটা এআই এর নয়। কিন্তু মানুষ হিসেবে এটা আমরা হয়তো পারবো না। তাহলে কী করা?

উত্তরটা বেশ সহজ! আমরা কেবল আরেকটা এআই বানাবো।

কীভাবে বানালাম বাংলাটিউরিং?

হ্যাঁ, ঠিক শুনেছেন, আমরা তখন ভাবলাম, এমন আরেকটা এআই বানাই, যেটা ধরতে পারবে যে, কোনো এআই এর লেখার ভেতরের গাণিতিক গঠন ও স্ট্যাটিসটিকাল সিগ্নেচার বা পরিসংখ্যানগত ছাপ কেমন হয়।

ততোদিনে চমৎকার এক ডেটাসেটও আমাদের হাতে।

তারপর লেখা পড়তে জানে, এমন একটা “এনকোডার” বাছাই করলাম আমরা। এহহে! আবারও জার্গন ছুড়ে মারলাম! আমরা মোটেই চাই না আপনি এ লেখা পড়তে গিয়ে দুর্বোধ্য টার্ম দেখে চলে যান।

এনকোডার কী আবার?

এনকোডার হচ্ছে, একটা বিশেষ ম্যাশিন বা মডেল বা প্রক্রিয়া। যাকে আপনি কোনো টেক্সট দিলে সে, আপনার সে টেক্সট টাকে অর্থ হিসেবে সংরক্ষণ না করে সেটাকে ভেক্টর রিপ্রেজেন্টেশনে রূপান্তর করে। এই রিপ্রেজেন্টেশনের মধ্যে লেখাটার শব্দ, কন্টেক্সট এবং বিভিন্ন শব্দের পারস্পরিক সম্পর্ক সম্পর্কে ইনফরমেশন থাকে।

ধরুন আপনি কোনো এনকোডারকে দিলেন “আমি ভাত খাই”... সে এটাকে অনেকটা এমন কিছু বানাবে:

"আমি ভাত খাই।" ↓ Encoder ↓ [0.21, -0.73, 0.48, 0.15, …]

(বাস্তবে রিপ্রেজেন্টেশন এমন ছোট কয়েকটা ভেক্টর হয় না। আপনাদের বুঝাতে বেশ সরলীকরণ করলাম ব্যাপারটার।)

তো, বাংলাদেশ প্রকৌশল বিশ্ববিদ্যালয় (BUET) এর NLP টিম একটা চমৎকার এনকোডার বানিয়েছে। যার নাম দিয়েছে তারা BanglaBERT। বাংলা ভাষায় ক্লাসিফিকেশনের জন্য এই এনকোডারটাকেই আমাদের সর্বশ্রেষ্ঠ মনে হয়েছে (কেবল ব্যক্তিগত মতামত বললে ভুল হবে, আমরা XLM এর মতো মাল্টিলিঙ্গুয়াল এনকোডারকে আমাদের গবেষণায় ব্যবহার করে দেখেছি, এটাকেও হারিয়ে দিয়েছে আমাদের BanglaBERT)। এই এনকোডারটা শুধু প্রতিটা শব্দ আলাদাভাবে দেখে না। বরং বাক্যের মধ্যে শব্দগুলার কন্টেক্সট এবং পারস্পরিক সম্পর্ক বোঝার চেষ্টা করে। তাহলে আমাদের কাজ আরও কমে এলো না?

তারপর আমরা এই BanglaBERT এনকোডারকে ঘাড় ধরে শেখালাম, বুঝাবো যে এআই কীভাবে লিখে, আর এআই কীভাবে “লিখে না।” ট্রেনিং এর ডেটেইলস ফলাফল ইত্যাদি সমস্তকিছুর গল্প আমরা লিখেছি আরেক গবেষণাপত্রে। সেটাও হয়তো কোনোদিন আপনাদের দেখানোর সুযোগ হবে। তবে একটা বিষয়ের গল্প আপনাদেরকে না বলার লোভ সামলাতে পারছি না, তা হচ্ছে LOGO এর গল্প। সামনে বলছি সেটা।

ঐযে বলেছিলাম, আমাদের কাছে হিউজ টেক্সট আছে এআই এবং মানুষের লিখা? সেটাই এখন এই ট্রান্সফরমার এনকোডারকে খাওয়ালাম। সে এই লেখাগুলো পড়ে আর নিজে অনুমান করে, “আচ্ছা এইটা কি এআই নাকি মানুষের লিখা?”... সে ভুল করবে, এবং তাকে শুধরেও দেওয়া হবে। এভাবে এই চক্র চলতে থাকে লাখো বার। তাকে কখনোই বলে দেওয়া হবে না যে, “এই ব্যাটা শোন, বেশি এম ড্যাশ ‘—’ দেখলে বা বেশি বিরামচিহ্ন দেখলে বা সঠিক গ্রামার দেখলে বা non ascii স্যাম্বল দেখলে AI flag দিবি”... সে নিজে নিজেই বের করে নেবে কোন কোন ছাপ মানুষ আর AI.. দুই দলকে আলাদা করবে।

একটা সময় পর… with proper data preprocessing and with proper training, আমাদের এই মডেল সত্যিই সত্যিই বের করে ফেলতে পেরেছে কোন লেখাটা এআই এর এবং কোন লেখাটা মানুষের।

তো কীভাবে বুঝবো আমাদের মডেল কতোটা ভালো? কোন বেঞ্চমার্কে? কোন মাপকাঠিতে?

একটু আগেই আপনাকে বলেছিলাম যে, LOGO এর গল্প বলবো, তাই না?

এখন শুনুন…

কতোটা ভালো ফলাফল করলো বাংলাটিউরিং?

একটা উদাহরণ ভাবুন। ধরুন আপনি অনেক পরিশ্রম করে একটা বিশেষ পরীক্ষায় একটা প্রশ্ন সেটে ৯৮ পেলেন। এবং আপনি ভাবলেন, আপনি ১০০ না পাওয়া অবধি থামবেন না। তাই নেক্সট ইয়ার আবারও পরীক্ষা দিতে গিয়ে খেয়াল করলেন, আপনাকে গত বছরের একই প্রশ্ন দেওয়া হলো। আপনি সে পরীক্ষায় ১০০ পেয়েও সন্তুষ্ট হলেন না। কারণ আসল পরীক্ষা হলো একদম নতুন প্রশ্নে, আপনি আগের প্রশ্নের প্রায় সবকিছুই জানেন।

আমাদের মডেলকে তাই আমরা প্রতিবার নতুন এবং সম্পূর্ণ অচেনা প্রশ্ন দিয়ে যাচাই করেছি। এবং সেই প্রক্রিয়াটাকেই বলছি, LOGO, অর্থাৎ Leave one generator out!

আমরা ৫ টা এআই (ChatGPT, Gemini, Grok, Claude, Deepseek) এর একটিকে পুরোপুরি বাদ রেখে বাকি চারটি দিয়ে মডেল প্রশিক্ষণ দিলাম, তারপর বাদ রাখা এআই এর লেখা দিয়ে পরীক্ষা করালাম ট্রেনড মডেলটাকে (তার কাছে বাদ রাখা এআই এর টেক্সট প্যাটার্ন সম্পূর্ণ নতুন)। এটা পাঁচবার পাঁচটি এআই-এর জন্য করা হয়। এর মানে হলো, মডেলটিকে ট্রেনিং করানোর সময় একটি নির্দিষ্ট এআইয়ের লেখা সম্পূর্ণ লুকিয়ে রাখা হয়। পরে মডেলটি পরীক্ষা করার সময় শুধু ওই লুকানো বা অজানা এআইয়ের লেখাই তাকে দেওয়া হয়। এটি প্রমাণ করে যে, ডিটেক্টরটি কেবল ট্রেনিং ডেটা মুখস্থ করে না, বরং এআইয়ের সূক্ষ্ম গাণিতিক ওয়াটারমার্ক ধরে ফেলেছে। এবং ফলাফল এসেছিলো চমকপ্রদ! সেটাও বলছি একটু পর।

তো আমাদের ফলাফল আর কার্যপদ্ধতি নিয়ে লিখলে এটা হয়ে যাবে এক বিশাল কাঠখোট্টা গবেষণা পত্র। তবে আমাদের ট্রেনড মডেলের পরিচিত এআই এর ক্ষেত্রে (যেই এআই মডেলগুলো আমাদের ডেটাসেটে ছিলো) একিউরিসি এসেছে ৯৮.৫০%। এবং অচেনা এআই এর ক্ষেত্রে (LOGO), যেমন জাপানের sakana AI, চীনের Zhipu AI, ফ্রান্সের Mistral সহ আরও কতো নাম না জানা এআই আছে… সেসব অচেনা এআই এর টেক্সটও আমাদের মডেল প্রায় ৯৫.০৪% ক্ষেত্রে একিউরিসি দেখিয়েছে। আর ৯৫.৯৯% ক্ষেত্রে মানুষের লেখা সঠিকভাবে "মানুষের" হিসেবে চিহ্নিত হয়েছে। অর্থাৎ অচেনা এআই-এর বেলায় কিছুটা পিছলে যায়, তবে সেই ঘাটতি সামলানোর মতো।

এতোকিছুর পরেও মনে হলো, আমাদের এই মডেল, অর্থাৎ বাংলাটিউরিং এর ‘সীতার অগ্নীপরীক্ষা’ আরও লম্বা করি। বাইনোকুলার নামের একটি পদ্ধতি আছে, যা কোনো প্রশিক্ষণ ছাড়াই দেখে একটা লেখা মডেলের কাছে কতটা "প্রেডিক্টেবল", অর্থাৎ ওপরের সেই প্রেডিক্টেবিলিটির ধারণাটিই। এবং সেক্ষেত্রে আমাদের মডেল এর ROC-AUC আসে ০.৯৭৯ এবং বাইনোকুলারের BLOOMZ এর ROC-AUC ০.৮৫৪।

এবং পুরো গল্প আরও বিশাল। সে গল্প আমরা বলেছি অন্যভাবে। কোনো একদিন সেটাও নিয়ে হাজির হবো হয়তো। আপাতত আপনি আমাদের বাংলাটিউরিং ব্যবহার করুন। যাচাই করুন, দেখুন এটা কতোটা ভালো পারফর্ম করতে পারে। এআই দিয়ে টেক্সট প্যারাফ্রেজ করালে সেটা ধরতে একটু ঝাক্কি পোহাতে হয় তার, এ সীমাবদ্ধতাও একদিন কমিয়ে ফেলব। কিন্তু সম্পূর্ণ এআই দ্বারা লিখিত টেক্সট বা মানুষের লিখা টেক্সট সে ধরবেই। আপনি পৃথিবীর যে প্রান্ত থেকেই, যে এআই এর লিখাই আনুন না কেন, এবং সে লেখা যতো হিউম্যানলি শুনাক না কেন, বাংলাটিউরিং আপনাকে ধরবেই।

শুভকামনায়,

মাহাথির আহমেদ তুষার।

এবং টিম খোঁজ।

Khoj Factchecker

খোঁজ (Khoj) এর একটি গবেষণা উদ্যোগ

বাংলাটিউরিং হলো খোঁজ (khoj-ai.bd) এর একটি গবেষণা প্রকল্প। খোঁজ হলো বাংলা ভাষার প্রথম প্রাতিষ্ঠানিক এআইভিত্তিক ফ্যাক্টচেকিং উদ্যোগ, যা ডিজিটাল মাধ্যমে তথ্যের সত্যতা, নির্ভুলতা ও নির্ভেজালতা রক্ষার কাজে নিবেদিত।