17-02-2026 22:41:28 pm
Link: https://bigyan.org.in/ml-based-natural-language-processing

শৌর্য (বিজ্ঞান): চ্যাটজিপিটি এবং আধুনিক এআই কীভাবে তৈরি হয়—এই বিষয়েই আজকের আলোচনা। বক্তা ড. মনোজিৎ চৌধুরী। তিনি Mohamed bin Zayed University of Artificial Intelligence (MBZUAI)-এর একজন অধ্যাপক। একাডেমিয়াতে যোগ দেওয়ার আগে তিনি দীর্ঘদিন Microsoft Research Lab, India-তে একজন Scientist হিসেবে কাজ করেছেন। বর্তমানে তাঁর প্রধান গবেষণার ক্ষেত্র হলো Natural Language Processing (NLP)।
আজ আমরা এই বিষয়গুলো নিয়েই আলোচনা করব—বিশেষ করে Large Language Model, যেমন ChatGPT বা DeepSeek। প্রতিদিনই আমরা এসব নিয়ে আলোচনা করি এবং অনেক মানুষ এগুলো ব্যবহার করেন। NLP নতুন কোনো বিষয় নয়; বহু বছর ধরে অনেক গবেষক এ নিয়ে কাজ করে আসছেন। আগে NLP-র সব কাজ deep learning-ভিত্তিক ছিল না। কিন্তু বর্তমানে আমরা Large Language Model-এর যুগে আছি। তাহলে প্রশ্ন হলো—NLP কি শুধু deep learning দিয়েই হয়, নাকি এর বাইরে আরও অন্য ধরনের কাজ ও পদ্ধতিও রয়েছে?
ড: চৌধুরী: 23 বছর আগে আমি NLP (Natural Language Processing) নিয়ে আমার কাজ শুরু করি। সেসময় আমি IIT খড়গপুরের একজন আন্ডারগ্র্যাজুয়েট ছাত্র ছিলাম। আমার প্রথম সমাধান করা সমস্যাটি ছিল হিন্দি ভাষা-কেন্দ্রিক। সাধারণভাবে হিন্দি ভাষায় শব্দের বানান ও উচ্চারণ প্রায় একই রকম হয়—ইংরেজি ভাষার মতো নয়। তবে হিন্দি ভাষাতেও কিছু গুরুত্বপূর্ণ ধ্বনিতাত্ত্বিক বৈশিষ্ট্য (phonological phenomena) রয়েছে, যেখানে একই অক্ষর ভিন্ন শব্দে ভিন্নভাবে উচ্চারিত হতে পারে।
Phonological phenomenon (ধ্বনিতাত্ত্বিক বৈশিষ্ট্য) বলতে কোনো ভাষার ধ্বনি-ব্যবস্থায় ঘটে যাওয়া পরিবর্তন বা রূপান্তরকে বোঝায়। এই পরিবর্তনগুলো সাধারণত শব্দের অর্থ অক্ষুণ্ণ রেখে উচ্চারণকে সহজ করার জন্য ঘটে, অথবা ভাষার অন্যান্য ব্যাকরণগত ও ধ্বনিগত প্রক্রিয়ার প্রভাবে সৃষ্টি হয়।
এই ধ্বনিতাত্ত্বিক পরিবর্তনগুলোকে যদি সঠিকভাবে মডেল করা না যায়, তাহলে যখন আমরা কোনো লিখিত টেক্সট থেকে স্পীচ তৈরি করতে চাই (text-to-speech system), তখন সেটা ঠিক মতো কাজ করে না। আমি মূলত এই বিষয়টি নিয়েই কাজ করেছি—লিখিত টেক্সট থেকে সঠিক উচ্চারণ বা pronunciation নির্ণয় (deduce)করা।
ওই কাজগুলো করার সময় আমি মূলত ব্যাকরণগত (grammar) নিয়ম অনুসরণ করতাম। প্রথমে হিন্দি ভাষা দিয়ে শুরু করি, পরে বাংলায় কাজ করি। বাংলায় প্রচুর মজার জিনিস লক্ষ্য করা যায়, যেমন যুক্তাক্ষরের ব্যাপারটা বা যেভাবে ‘অ’-এর উচ্চারণ ক্ষেত্রবিশেষে ‘ও’ হয়ে যায়! এ নিয়ে ভাষাতত্ত্ববিদরা ইতিমধ্যেই অনেক গবেষণা করেছেন। পবিত্র সরকারের এই নিয়ে একটা সুন্দর বই আছে, “বাংলা বলো”। আমরা এই ধরণের বই পড়ে অনেক কাজ করেছি।
কম্পিউটার সায়েন্স বা কোডিং মূলত ব্যবহার করা হত ওই ব্যাকরণের নিয়মগুলোকে কম্পিউটারের জন্য বোধগম্য করতে। কিন্তু নিয়মগুলো আমরা মুলত ভাষাবিদদের (linguists) কাছ থেকেই নিতাম।
মূল সমস্যা ছিল এটাই—যখন আমরা কোনো নিয়ম (rule) তৈরি করতাম বা নিয়মভিত্তিক সিস্টেম (rule-based system) বানাতাম, তখন প্রতিটি ভাষার জন্য আলাদা আলাদা নিয়ম লিখতে হতো। হিন্দি, বাংলা, ইংরেজি, জাপানি বা আরবি — প্রত্যেকটির জন্য আলাদা সিস্টেম তৈরি করতে হতো। এটাই ছিল প্রথম বড় সমস্যা।
দ্বিতীয়ত, সমস্যাটি আরও জটিল হয়ে গেলে নিয়মগুলো লেখাই প্রায় অসম্ভব হয়ে উঠত। উদাহরণস্বরূপ, একটা ভাষায় উচ্চারণ নির্ণয় করা তুলনামূলকভাবে সহজ হলেও সেটা থেকে অন্য ভাষায় অনুবাদ করার সময় অনুবাদের নিয়মগুলো লেখা খুব জটিল হয়ে যেত। তখন আর নিয়মভিত্তিক সিস্টেম দিয়ে কাজ করা সম্ভব হতো না। ঠিক এই পর্যায়ে মেশিন লার্নিং-এর ব্যবহার শুরু হয়।
মেশিন লার্নিং হলো কৃত্রিম বুদ্ধিমত্তার (AI) একটি উপশাখা, যা কম্পিউটারকে ডেটা থেকে শিখতে এবং অভিজ্ঞতার মাধ্যমে উন্নতি করতে শেখায়।
আমার যাত্রাটাও ঠিক একইভাবে শুরু হয়েছিল, প্রায় কুড়ি–পঁচিশ বছর আগে। ধীরে ধীরে আমি মেশিন লার্নিং সিস্টেম নিয়ে কাজ শুরু করি এবং পরবর্তীকালে মাইক্রোসফটে যোগ দিই। সেখানেও আমি বিভিন্ন ভারতীয় ভাষা, যেমন বাংলা বা হিন্দি, নিয়ে কাজ করেছি, কিন্তু এবারে মেশিন লার্নিং প্রযুক্তি ব্যবহার করে।
এই শুরুর দিকের মেশিন লার্নিং সিস্টেমগুলোতে আমরা একটি নির্দিষ্ট লেভেল পর্যন্ত ভালো accuracy পেতাম। কিন্তু প্রত্যেকটা সমস্যার জন্য আমাদের আলাদা ডেটা-সমূহ (dataset) তৈরি করতে হতো, আর আলাদা আলাদা সিস্টেম বানাতে হতো।
যেমন, আমি অনুবাদের সমস্যাটার কথা বলছিলাম। এই সমস্যাটার জন্য নির্দিষ্ট ধরনের ডেটা-র দরকার হয়, আর সেটা প্রতিটি ভাষার জন্য আলাদা করে তৈরি করতে হয়। আগে যেখানে আমাদের ব্যাকরণের নিয়মগুলো আলাদা আলাদা করে বানাতে হতো, এখন সেই জায়গায় মূল কাজটা হয়ে দাঁড়ালো বড় এবং ভালো মানের ডেটা-সমূহ তৈরি করা। অর্থাৎ সমস্যাটা এক অর্থে প্রায় একই রয়ে গেল। পার্থক্য শুধু এইটুকুই যে সিস্টেমগুলো আগের তুলনায় একটু বেশি নির্ভুল হতো — এই যা। তাতে কিছুটা লাভ হলো বটে, কিন্তু সমস্যার মূল সমাধান খুব একটা হলো না।
সেখান থেকে পুরো ব্যাপারটাই বদলে গেল 2018 সালে। আসলে 2015–2016 সাল থেকেই মানুষের ভাষা বোঝার জগতে একটা পরিবর্তনের আভাস পাওয়া যাচ্ছিল। এরপর 2017–2018 সালে এসে কিছু গুরুত্বপূর্ণ উন্নতি দেখা গেল —নতুন ধরনের ডিপ লার্নিং অ্যালগরিদম ও আর্কিটেকচার (deep learning algorithms and architectures) এলো। এর ফলে NLP-র ক্ষেত্রটা অভাবনীয়ভাবে পাল্টে যেতে শুরু করল। যে সমস্যাগুলোতে একসময় 80% অব্দি নির্ভুল উত্তর পাওয়া যেত, সেগুলো হঠাৎ করে এক লাফে 95%-এ পৌঁছে গেল।
আরেকটা মজার ব্যাপার হলো। এই নতুন জগতে আমাকে প্রত্যেকটা ভাষার জন্য আলাদা করে সিস্টেম বানাতে হচ্ছে না। কিংবা প্রত্যেকটা কাজের জন্যও আলাদা আলাদা সিস্টেম তৈরি করতে হচ্ছে না। আমার কাছে মূলত একটা মাত্র সিস্টেম আছে—ধরা যাক, ChatGPT। তাকে যদি অনুবাদ করতে দিই সেটাও পারছে, সারসংক্ষেপ করতে বললে সেটাও পারছে। গল্প লিখতে দিলে লিখছে, কবিতা লিখতে বললেও পারছে। যাই বলছি তাই পারছে। এই পরিবর্তনটা সত্যিই অভাবনীয়ভাবে এসেছে।
এরপর যে বিষয়টা হলো, মানুষের ভাষা বোঝার মূল চ্যালেঞ্জগুলো — যেগুলো নিয়ে আমরা বহু বছর ধরে লড়াই করেছি — তার বেশিরভাগই এখন কার্যত সমাধান হয়ে গেল। আজ আমরা অনেক বেশি কাজ করতে পারি, অনেক বড় স্কেলে, যেগুলো আগে কল্পনাও করা যেত না।
এক সময় কোনো একটা system তৈরি করতে আমাদের যেখানে 5 বছর লেগে যেত, এখন সেই একই ধরনের কাজ আমরা 5 দিনের মধ্যেই করে ফেলতে পারি — বেশিরভাগ ক্ষেত্রেই বড়জোর এক–দুই সপ্তাহের বেশি লাগে না।
ChatGPT-র কথা যখন এলোই, এটা নিয়ে একটা প্রশ্ন করি। আমরা অনেকেই এটা রোজ ব্যবহার করি কিছু না কিছু কাজে। ChatGPT বা কিছুদিন আগে চায়না থেকে যে DeepSeek মডেল এলো, এগুলো আসলে কীভাবে কাজ করে? আপনি এই যে বলছিলেন মডেলগুলো অনেকরকম কাজ করতে পারে, এগুলো কী এমনভাবে তৈরি যে এত ভালোভাবে কাজ করে? এদের backend-এ ঠিক কী রয়েছে?
সহজভাবে বলতে গেলে একটা উদাহরণ দেওয়া যেতে পারে।
ধরো আমার কাছে অনেক বাংলা বই আছে। বইগুলোর কোনটা কবিতা, কোনটা গল্প, কোনটা সামারি — এব্যাপারে আলাদা করে কিছুই লেখা নেই। হতে পারে আমরা ইন্টারনেট থেকে গোটা বাংলা উইকিপিডিয়া ডাউনলোড করে নিলাম। বা তার সঙ্গে যত রকমের বই আছে — রবীন্দ্র রচনাবলী, শরৎ রচনাবলী— সব এক জায়গায় জড়ো করলাম।
এরপর এইসব লেখা একসঙ্গে দিয়ে একটা মেশিন বানালাম, আর তাকে শুধু একটাই জিনিস শেখালাম। আমি তাকে কিছু শুরুর শব্দ বলে দেব — ধরো প্রথম দশটা শব্দ বলে দিলাম। তারপর এর পরের শব্দটা বা শব্দগুচ্ছ কী হতে পারে, সেটা তাকে অনুমান করার চেষ্টা করতে হবে। এই একটা কাজই আমি মডেলটাকে বারবার শেখাবো।
এর জন্য ডেটা পাওয়াটা খুব সহজ কারণ আমাকে আলাদা করে কিছুই করতে হচ্ছে না। আমি ইন্টারনেটে গিয়ে যত রকমের বাংলা শব্দ, বাক্য আর যত ধরনের ওয়েবসাইট আছে, সব ঘেঁটে সেগুলো সংগ্রহ করে নিলাম। এই সব লেখা একসঙ্গে নিয়ে যাকে বলে একটা কর্পাস (corpus) তৈরি করলাম। এরপর সেই কর্পাস-টা মডেলকে দিয়ে বললাম: তুমি প্রত্যেকটা বাক্যের ভেতরে বা বাক্যের পর একটার পর একটা শব্দ কী হতে পারে, সেটা অনুমান করার চেষ্টা করো।
মেশিন লার্নিং-এর প্রশিক্ষণ (training) ও মূল্যায়নের (evaluation) জন্য ব্যবহৃত লেখা বা কথ্য ভাষার ডেটার একটি বৃহৎ, কাঠামোবদ্ধ সংগ্রহকে Corpus বলা হয়।
এইভাবে শিখিয়ে দেওয়ার পর দেখা যায়, মডেলকে যদি একটা নতুন কোনো বাক্য দেওয়া হয় — যেটা সে হয়তো আগে কখনো দেখেনি— সে মোটামুটি একজন বাঙালি যেভাবে বাক্যটা সম্পূর্ণ করত, সেভাবেই করে দিতে পারে।
আর এটা সম্ভব হচ্ছে মূলত কিছু ডিপ লার্নিং architecture-এর কারণে। এর মধ্যে সবচেয়ে গুরুত্বপূর্ণ যেটা, সেটাকে আমরা বলি ট্রান্সফরমার আর্কিটেকচার (Transformer architecture)। বিষয়টা বেশ টেকনিকাল, তাই এখানে খুব বেশি গভীরে যাচ্ছি না। মোটের ওপর কিছু গাণিতিক আর কম্পিউটেশনাল পদ্ধতির মাধ্যমে মডেলটা এই ধরনের অনুমান করা (prediction) খুব সহজেই শিখে নিতে পারে।
এবার প্রশ্ন আসে — মডেলটা যদি শুধু পরের শব্দটা কী হবে সেটা অনুমান করতে পারে, তাহলে সে প্রশ্নের উত্তর কীভাবে দেয়? কিংবা গল্পই বা কীভাবে লেখে? গল্প লেখার ব্যাপারটা তবুও বোঝা যায়। আমি গল্পের প্রথম লাইনটা দিয়ে দিলাম। এরপর সে একটার পর একটা শব্দ অনুমান করতে করতে পুরো গল্পটাই লিখে ফেলল।
কিন্তু প্রশ্নের উত্তর দেওয়ার ব্যাপারটা একটু আলাদা। এখানে কিছু অতিরিক্ত ধাপ যোগ করা হয়। মডেলকে নানান ধরনের ইনপুট (input) আর আউটপুট (output) দেখানো হয় — যেমন প্রশ্ন ও তার উত্তর, কোনো নির্দেশনা আর তার প্রত্যাশিত ফলাফল, ইত্যাদি। ধরো, আমি প্রশ্ন করলাম, “পৃথিবীতে বাঙালির সংখ্যা কত?”—তার সঙ্গে সঠিক উত্তরটা দেওয়া হলো। বা আমি জিজ্ঞেস করলাম, “ডিপ লার্নিং কী?”— আর তার উত্তরটা লেখা হলো।
এই ধরনের প্রশ্ন–উত্তরের সেট দিয়েই মডেলটাকে ট্রেন করা হয়। এটা একেবারে নতুন ধরনের একটা corpus, যেটা আলাদা করে তৈরি করতে হয়। আর এই corpus-টাই কিন্তু ইন্টারনেট থেকে খুব সহজে পাওয়া যায় না — সেখানেই আসল মজাটা।
এক্ষেত্রে ডিপ লার্নিং-এর জন্য নতুন ধরনের corpus তৈরি করা হয় — যেখানে প্রশ্ন–উত্তরের মতো স্ট্রাকচার্ড ডেটা (structured data) যুক্ত থাকে। এখানেই DeepSeek, OpenAI বা ChatGPT-এর মতো প্রতিষ্ঠানগুলো সবচেয়ে বেশি পরিশ্রম ও বিনিয়োগ করেছে। তারা বিপুল পরিমাণ ডেটা নানা রকম ভিন্নতা (variation) সহ তৈরি করেছে, যাতে তাদের মডেলগুলো আরও সাধারণীকরণ (generalize) করতে পারে এবং আগের চেয়ে অনেক বেশি শক্তিশালী হয়ে ওঠে।
সেই মডেলকে এবার প্রশ্ন দেওয়া হলে সে পরের শব্দটা অনুমান করতে গিয়ে উত্তর দিতে ফেলে, কারণ ওর ট্রেনিং ডেটাতেও ওই ধরণের প্রশ্ন ছিল। তবে এর ভেতরে অনেক সূক্ষ্ম বিষয় জড়িত থাকে—কোন অনুপাতে কী ধরনের ডেটা দেওয়া হলো, কী ধরনের প্রশ্ন করা হচ্ছে, কত রাউন্ড ট্রেনিং দেওয়া হলো, আরও অনেক প্যারামিটার আছে। এই সবকিছুই কমিয়ে–বাড়িয়ে পরীক্ষা করা হয়। সব মিলিয়ে যখন এই বিষয়গুলো ঠিকভাবে সেট করা যায়, তখন দেখা যায় যে সিস্টেমটি সত্যিই খুব ভালোভাবে কাজ করছে।
(মূল ইন্টারভিউ থেকে এই লেখাটি তৈরী করেছেন সায়ন্তি কর।)
Original interview:
লেখাটি অনলাইন পড়তে হলে নিচের কোডটি স্ক্যান করো।
Scan the above code to read the post online.
Link: https://bigyan.org.in/ml-based-natural-language-processing