AI এসে গেছে (পর্ব ৫)

AI এসে গেছে (পর্ব ৫)

অভিজিৎ কর গুপ্ত
পদার্থ বিজ্ঞানের অধ্যাপক, পাঁশকুড়া বনমালী কলেজ (অটোনমাস)
Posted on ২৪ মে, ২০২৬

আধুনিক AI-এর ‘মস্তিষ্ক’ হলো এক বিশেষ ধরণের নিউরাল নেটওয়ার্ক-এর আর্কিটেকচার যাকে বলে ট্রান্সফরমার (transformer)। এই ট্রান্সফরমার আর্কিটেকচার কেন এক বৈপ্লবিক ব্যাপার তা বুঝতে গেলে আমাদের জানতে হবে আগে কী ছিল। ২০১৭ সালের আগে AI নির্ভর করত মূলত: রেকারেন্ট নিউরাল নেটওয়ার্ক (RNN)-এর উপর। আমাদের যাবতীয় লেখা (text) অথবা সিম্বলিক কোন বিষয়, যেমন অঙ্ক বা কোড ইত্যাদি পড়া হত ধারাবাহিক ভাবে (sequentially)। ঠিক আমরা যেভাবে পড়ি। এতে বেশ অসুবিধা হতো। প্রথম দিকে যেসব শব্দ বা সিম্বলগুলো (এদেরকে ‘টোকেন’ বলা যাক) পড়া হচ্ছে, একটু পরের দিকে গিয়ে তাদের সাথে পরবর্তী টোকেনগুলোর সম্পর্ক গুলিয়ে ফেলছে মেশিন, মনে রাখতে পারছে না।

 

ট্রান্সফরমার আর্কিটেকচার-এর উপর নির্ভর করে তৈরি হলো বৃহৎ ভাষা মডেল বা লার্জ ল্যাঙ্গোয়েজ মডেল (LLM)! “Attention is all you need” – এই ছিলো ২০১৭ সালের সেই বিখ্যাত গবেষণাপত্রের শিরোনাম যা সব হিসাব পালটে দিলো। Attention শব্দটা ব্যবহার করা হয়েছে প্রধানত একটা টেক্সট-এর ভিতরে শব্দ বা টোকেনগুলোর অবস্থান, তাদের মধ্যে পারষ্পরিক সম্পর্ক বোঝার কায়দার ব্যাপারে। ধরা যাক, একটা টেক্সট-এর একেবারে প্রথমদিকে একজন ডক্টর-এর নাম আছে এবং শেষের দিকে স্টেথোস্কোপ-এর উল্লেখ রয়েছে, তাহলে কম্পিউটার-কে বুঝতে হবে ডক্টর এবং স্টেথোস্কোপ-এর মধ্যে একটা সম্পর্ক আছে।

 

ট্রান্সফর্মার আর্কিটেকচারে যেভাবে টেক্সট পড়া হয় তা যেন একটা multihead attention মেকানিজম দিয়ে গোটা টেক্সট-কে একবারে স্ক্যান করে নেওয়ার মতো। এরপর ইনফরমেশন প্রসেসের প্রথম ধাপ হলো শব্দ বা টেকেনগুলোকে সংখ্যার একেকটা লম্বা লিস্ট-এ পরিণত করা। এরা হলো ‘ভেক্টর’! ধরা যাক, কিছু সংখ্যাকে দুটো ব্রাকেটের মধ্যে পরপর এক লাইনে লিখে ফেলা হলো। একে আমরা ভেক্টর বলব। যেমন, (3, 4) একটা ভেক্টর হতে পারে। একটা গ্রাফ পেপারের উপর x-অক্ষ বরাবর ডানদিকে 3 ঘর আর তারপর সেখান থেকে y-অক্ষ বরাবর উপরের দিকে 4 ঘর গেলে আমরা যে বিন্দুতে পৌঁছাবো তার অবস্থান বা স্থানাঙ্ক (3, 4) লিখতে পারি। মূল বিন্দু (0, 0) থেকে এই স্থানাঙ্ক অবধি একটা লাইন টানলে ওইদিকে একটা তির ভাবতে পারি। তাহলে, এই তির-এর দৈর্ঘ্য বা ভেক্টরের মান (এখানে 5 ইউনিট) এবং তার দিক নির্দেশ দুইই বলা যাচ্ছে। এখানে এটি একটি দুই মাত্রার ভেক্টর (দুটো সংখ্যা দিয়ে বোঝা যাচ্ছে।)। অর্থাৎ এই ভেক্টরটি যে স্পেসে অবস্থান করছে (এখানে একটা সমতল) তাকে দুটো মাত্রা বা অক্ষ দিয়ে বোঝা যাচ্ছে। এইরকমভাবে যদি এক হাজারটা সংখ্যার একটা লিস্ট বানানো যায়, যেমন ধরা যাক [0.2, -1.3, 0.8, 2.1, 3.9,…], তবে এটি একটি এক হাজার মাত্রার ভেক্টর। যদিও এক্ষেত্রে এক হাজারটা অক্ষ টেনে ছবি এঁকে তির দিয়ে ভেক্টর বোঝানো যাবে না অথবা সেভাবে ধারণাও করা যাবে না, কারণ আমরা তিন মাত্রার বেশি কল্পনাই করতে পারি না।

 

যাই হোক, এই যে একটা টেক্সট-এর প্রতিটা শব্দ বা টোকেন-কে একেকটা লম্বা লিস্ট বা ভেক্টর বানিয়ে দেওয়া হচ্ছে একে বলা হয় এম্বেডিং (embedding)। তাহলে, এটা ভাবতে পারি, বহুমাত্রার এই ভেক্টরগুলো বহুমাত্রার একটা স্পেসে অবস্থান করছে। একে ‘ভেক্টর স্পেস’ বলা হয়। এই ভেক্টর স্পেসে ভেক্টরগুলোর মধ্যে সম্পর্ক কেমন হবে, অঙ্কের নিয়মকানুন কী হবে তা একেবারে নির্দিষ্ট করে বলা থাকে। এখন কথা হলো, বহুমাত্রার ভেক্টর দিয়ে এই এম্বেডিং করার কারণ কি? কারণ হলো, কম্পিউটার যেহেতু সংখ্যা ছাড়া আর কিছু বোঝে না, তাই শব্দকে সংখ্যায় রূপান্তর করতে হবে। আবার, ভাবতে হবে, একটি শব্দ একা নয়, অন্যান্য শব্দ বা চিহ্ণের সাথে একেকরকম সম্পর্ক তৈরি করে। কাজেই একটা শব্দের হয়ে প্রতিনিধিত্ব করবে অনেক সংখ্যা দিয়ে তৈরি একটা লিস্ট বা বহুমাত্রিক ভেক্টর।

 

“A word is known by the company it keeps.” – এটা হলো ভাষাবিজ্ঞানে distributional semantics (শব্দার্থবিদ্যা)-এর একটা ধ্রুপদী নীতি। একটা শব্দের মানে বোঝা যায় তাকে ঘিরে অন্য যেসব শব্দরা সাধারণত থাকে তাদের মাধ্যমে। আর, এটাই হলো আধুনিক AI-এর ল্যাঙ্গোয়েজ মডেলের ভিত্তি।

 

তাহলে দেখা যাচ্ছে, বিরাট লম্বা লিস্টওয়ালা বহুমাত্রিক ভেক্টরগুলো একটা বহুমাত্রিক ভেক্টর স্পেসে অবস্থান করছে। এই স্পেসের মাত্রা বা ডাইমেনশান (context window) কত হবে, সেটা সবকিছু বুঝে ঠিক করবেন ইঞ্জিনিয়াররা। কম্পিউটার পাওয়ার, কাজের পরিধি, ক্রিয়েটিভিটি এসবই বিবেচনা করা হয় এই ব্যাপারে।

 

একটা ব্যাপার কল্পনা করে নিতে পারি, ভেক্টরগুলোর স্থানাঙ্ক বা অবস্থান (তির-এর মাথা) এই ভেক্টর স্পেসে একেকটা জায়গায় আছে। একটা অতিকায় বহুমাত্রিক অতিকায় ম্যাপ-এর কল্পনা করা যেতে পারে। যেসব শব্দগুলোর অর্থ কাছাকাছি অথবা যারা একে অপরের সাথে সাধারণভাবে সম্পর্কিত তাদের প্রতিনিধিত্বকারী ভেক্টরগুলোর অবস্থান বা স্থানাঙ্ক বিন্দুগুলো এই ম্যাপে দলবদ্ধ (cluster) ভাবে কাছাকাছি থাকবে। যেমন cat ও kitten কাছাকাছি থাকবে আবার cat ও aeroplane এর মধ্যে দূরত্ব থাকবে। একটা জিনিস স্পষ্ট হচ্ছে যে দূরত্বই আসলে সম্পর্কের পরিচয়! তার মানে, এই ম্যাপে অঙ্কের সাহায্যে কোনপ্রকার দূরত্ব-এর হিসাব করে শব্দগুলোর মধ্যে সম্পর্ক বুঝে নিতে পারবে কম্পিউটার।

 

এইবার একটা GPS সিস্টেম মার্কা কিছু ভাবা যাক। ট্রান্সফরমার একটা টেক্সট-এর যাবতীয় শব্দগুলোকে (বা সব টোকেন-কে) একসঙ্গে দেখে। তাই সে টেক্সট-এর মধ্যে এদের উপস্থিতির ক্রম গুলিয়ে ফেলবে। এটা ঠিক করতে গেলে ভেক্টরগুলোর মধ্যে একটা সময়ের ছাপ (time stamp) বা টেক্সটের মধ্যে তাদের উপস্থিতির অবস্থানিক মূল্যায়ন (positional encoding) করতে হবে। তাহলেই কম্পিউটার বুঝতে পারবে, The cat sat on the mat আর The mat sat on the cat এক ব্যাপার নয়। আরেকটা অত্যন্ত গুরুত্বপূর্ণ পদ্ধতি হলো, self-attention! একটা বাক্যে একটা শব্দ অন্যান্য শব্দগুলোর মধ্যে কার ক্ষেত্রে সবচেয়ে বেশি প্রাসঙ্গিক তা ঠিক করা হয়। যেমন ধরা যাক, যদি বলি, I did not go to school because it was closed, এই ইংরেজি বাক্যে ‘it’ শব্দটা যে আসলে ‘school’-কে বোঝাচ্ছে এটা কম্পিউটার-কে বুঝতে হবে। এসবই অবশ্য অঙ্ক! ভেক্টর স্পেসে লিনিয়ার এলজেবরার খেলা! প্রতি ক্ষেত্রে একটা সম্ভাব্যতা (probability)-র হিসাব করা হয়। এটেনশান মেকানিজম আসলে এই দুটো শব্দের মধ্যে একটা লিংক তৈরি করে যাতে লেখার ভিতরের প্রসঙ্গটা AI বুঝতে পারে। কার্যত এভাবে একেকটা বাক্যের মধ্যে একেকটা অংশ-কে আপাতত বাড়তি গুরুত্ব দেওয়া হয়, অন্য অংশগুলোকে নয়েজ (noise)-এর মতো উপেক্ষা করা হয়। একটা নিউরাল নেটওয়ার্ক-কে বার বার ট্রেনিং করিয়ে একটা নির্দিষ্ট সিদ্ধান্তের দিকে এগনো হয়। এই ট্রেনিং-এর মাধ্যমে আসলে ভেক্টরগুলোর এলিমেন্টগুলো (সংখ্যা) পরিবর্তিত হতে থাকে।

 

ট্রান্সফরমার-এর ব্লকগুলো-কে ভাবা যেতে পারে একেকটা বহুস্তরীয় শোধনাগার। ট্রেনিং করার সময় একটা টেক্সট এইসব অনেক ধাপের স্তর বা লেয়ারের মধ্যে দিয়ে বহুবার এটেনশান চেক এবং গাণিতিকভাবে পরিশোধিত হতে হতে যায়। প্রাথমিক স্তরগুলো হয়ত সাধারণ গ্রামার বা বাক্য গঠনের নিয়ম (সিনটাক্স) শেখে। পরের দিকের স্তরগুলোতে ধরা পড়ে জটিল ধারণা, রূপক (metaphor), অলঙ্কার ইত্যাদি। যতক্ষণে সর্বশেষ লেয়ারে পৌঁছায় ততক্ষণে মডেল তার ইনপুট সম্পর্কে একটা পরিশীলিত ধারণা করে ফেলে।

 

এরপর আউটপুট। ট্রান্সফরমার কিন্তু, একসাথে কোন টেক্সট বা গল্প তৈরি করে না। এতকিছুর পর সে শুধু একটা করে টোকেন (অর্থাৎ শব্দ বা সিম্বল বা কিছু) তৈরি করে। অনেককিছু অঙ্কের হিসাবনিকাশের পর মডেল বুঝে নেয় তার শব্দভান্ডার (vocabulary) থেকে এরপরের টোকেন হিসাবে কোন শব্দটা আসার সম্ভাবনা বেশি। ধরা যাক, আমরা যদি একটা ফলের কথা জিজ্ঞেস করি তাহলে সে হিসাব করে পরবর্তী টোকেন হিসাবে ‘apple’ হওয়ার সম্ভাবনা হয়ত ৯০% কিন্তু ‘bicycle’-এর সম্ভাবনা হয়ত ০.০০১% হবে। মডেল কন্টেক্সট অনুযায়ী সবচেয়ে সম্ভাবনাময় টোকেনকেই নির্বাচন করে। এভাবে একে একে টোকেন জুড়ে জুড়ে বাক্য লিখতে থাকে। তার মানে, পুরোটাই একটা বিশাল প্রেডিকশান গেম-এর মতো। এর পরের টোকেনটা কী হতে পারে তা আন্দাজ করার খেলা! আর এসবই সম্ভব হয় একটা টেক্সট বা লেখায় শব্দগুলো (বা টোকেনগুলো) কীভাবে একে অপরের সাথে সম্পর্কিত সে ব্যাপারে গভীর বোঝাপড়া।

 

(চলবে)

Leave a Reply

Your email address will not be published. Required fields are marked *

16 − one =