RL & Generative AIপড়তে ১১ মিনিট লাগবে

জেনারেটিভ এআই (Generative AI)

প্যাটার্ন থেকে নতুন ছবি, লেখা এবং মিউজিক তৈরি করা
scope:কোর কনসেপ্ট (মূল ধারণা)difficulty:ইন্টারমিডিয়েট (Intermediate)

যে শিল্পী ১০০০টি ছবি নিয়ে পড়াশোনা করেছেন

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

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

এটাই হলো জেনারেটিভ এআই (generative AI) — এমন এক ধরনের মডেল যা প্রচুর পরিমাণ ডেটা থেকে প্যাটার্ন বা ধরন শেখে এবং সেই প্যাটার্নগুলো ব্যবহার করে নতুন কনটেন্ট তৈরি করে। লেখা, ছবি, মিউজিক, ভিডিও, কোড — এককথায় যা কিছুকে ডেটা হিসেবে দেখানো যায়, জেনারেটিভ মডেল সেগুলোর প্যাটার্ন শিখে ঠিক তেমন আরও নতুন জিনিস তৈরি করতে পারে।

জেনারেশন বা তৈরি করার দুটি পদ্ধতি

জেনারেটিভ মডেলগুলো সাধারণত দুটি ভাগে কাজ করে:

  • অটোরিগ্রেসিভ মডেল (Autoregressive models) — এগুলো একবারে একটি করে অংশ তৈরি করে। যেমন, জিপিটি (GPT) একবারে একটি টোকেন বা শব্দ লেখে, যেখানে প্রতিটি টোকেন আগের টোকেনগুলোর ওপর ভিত্তি করে আসে। এটি অনেকটা একের পর এক শব্দ জুড়ে একটা গল্প লেখার মতো।
  • ডিফিউশন মডেল (Diffusion models) — এগুলো প্রথমে শুধু একগাদা নয়েজ (noise) বা ঝিরঝিরে ছবি দিয়ে শুরু করে এবং সময়ের সাথে ধীরে ধীরে ওই নয়েজগুলোকে পরিষ্কার করে একটা সুন্দর আউটপুট তৈরি করে। ডাল-ই (DALL-E) এবং স্ট্যাবল ডিফিউশন (Stable Diffusion) এভাবেই কাজ করে। এটি অনেকটা মার্বেল পাথরের ব্লক খোদাই করে একটা ভাস্কর্য তৈরি করার মতো।

লার্জ ল্যাঙ্গুয়েজ মডেল বা এলএলএম (LLMs)

বর্তমানে জিপিটি-৪ (GPT-4), ক্লড (Claude), এবং জেমিনি (Gemini)-র মতো এলএলএম (LLMs)-গুলো সবচেয়ে জনপ্রিয় জেনারেটিভ মডেল। এদের কাজ করার মূল মেকানিজমটি বাইরে থেকে খুবই সহজ মনে হয়: এদের কাজ হলো কেবল পরবর্তী টোকেন বা শব্দটি অনুমান করা (predict the next token)

ধরা যাক, আপনি লিখলেন "The capital of France is", এরপর মডেলটি সম্ভাব্য সব শব্দের একটা লিস্ট আর সেগুলোর সম্ভাবনার হার বের করবে। এই লিস্টে "Paris" শব্দটি থাকার সম্ভাবনা বা প্রবাবিলিটি সবচেয়ে বেশি থাকবে। আর "pizza" থাকার সম্ভাবনা সবচেয়ে কম। মডেলটি ঠিক এভাবে একটা একটা করে শব্দ তার সম্ভাবনার হারের লিস্ট থেকে বেছে নিয়ে পুরো লাইন বা লেখাটি তৈরি করে।

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

ইমেজ জেনারেশন: গ্যান (GAN) থেকে ডিফিউশন

ছবি তৈরি বা ইমেজ জেনারেশনের পেছনের গল্পটি একটু ভিন্ন:

  • গ্যানস বা GANs (২০১৪) — এখানে মূলত দুটি নেটওয়ার্ক একে অপরের সাথে প্রতিযোগিতা করে। এর একটি হলো জেনোরেটর (generator), যা নকল ছবি তৈরি করে। আর অন্যটি হলো ডিসক্রিমিনেটর (discriminator), যা আসল ছবি আর নকল ছবির মধ্যে পার্থক্য খোঁজার চেষ্টা করে। এই দুজনের প্রতিযোগিতা একে অপরকে প্রতিনিয়ত আরও উন্নত হতে সাহায্য করে, অনেকটা জালিয়াত আর গোয়েন্দার মতো।
  • ভিএই (VAEs) — এগুলো ছবির একটি কম্প্রেস করা বা ছোট রূপ শেখে এবং তারপর সেই কম্প্রেস করা জায়গা থেকে নমুনা নিয়ে নতুন ছবি তৈরি করে।
  • ডিফিউশন মডেল (Diffusion models, ২০২০+) — এটি বর্তমান সময়ের সবচেয়ে উন্নত প্রযুক্তি। এগুলো মূলত নয়েজ (noise) যুক্ত করার একটি প্রক্রিয়াকে উল্টো দিকে নিতে শেখে। এরা প্রচুর নয়েজ দিয়ে শুরু করে এবং ধাপে ধাপে নয়েজ সরিয়ে (denoise) একটি পরিষ্কার ছবি বের করে আনে। এটি গ্যান (GAN)-এর চেয়ে ভালো মানের ও অনেক বেশি বৈচিত্র্যময় ছবি তৈরি করতে পারে।

কোডের ভাষায় জেনারেটিভ এআই কনসেপ্ট

import random
# === মার্কভ চেইন দিয়ে সাধারণ টেক্সট জেনারেশন ===
# মার্কভ চেইন হলো টেক্সট জেনারেট করার সবচেয়ে সরল মডেল
def build_markov_chain(text, order=2):
"""ক্যারেক্টার-লেভেলের মার্কভ চেইন তৈরি করা।"""
chain = {}
for i in range(len(text) - order):
key = text[i:i+order]
next_char = text[i+order]
if key not in chain:
chain[key] = []
chain[key].append(next_char)
return chain
def generate_text(chain, order, length=100):
"""মার্কভ চেইন থেকে টেক্সট জেনারেট করা।"""
key = random.choice(list(chain.keys()))
result = list(key)
for _ in range(length):
if key in chain:
next_char = random.choice(chain[key])
result.append(next_char)
key = ''.join(result[-order:])
else:
break
return ''.join(result)
# কিছু স্যাম্পল বা ডেমো টেক্সট দিয়ে ট্রেইন করানো
training_text = (
"the cat sat on the mat the cat ate the rat "
"the dog sat on the log the dog ate the frog "
"the bird sat on the word the bird flew to the sky "
) * 10 # আরও বেশি ডেটার জন্য বারবার রিপিট করা
random.seed(42)
chain = build_markov_chain(training_text, order=3)
print("জেনারেট করা বা তৈরি করা লেখা (মার্কভ চেইন):")
for i in range(3):
text = generate_text(chain, 3, length=50)
print(f" {i+1}. {text[:50]}")
print("\n--- এলএলএম-গুলো কিভাবে কাজ করে (ধারণাগতভাবে) ---")
vocab = ["the", "cat", "sat", "on", "mat", "dog", "ate"]
print("ইনপুট: 'the cat sat on the'")
print("পরবর্তী টোকেনের সম্ভাবনা:")
probs = {"mat": 0.45, "cat": 0.20, "dog": 0.15, "sat": 0.10, "the": 0.05, "ate": 0.03, "on": 0.02}
for word, p in probs.items():
bar = '#' * int(p * 40)
print(f" {word:>5}: {p:.0%} {bar}")
Output
জেনারেট করা বা তৈরি করা লেখা (মার্কভ চেইন):
  1. the cat sat on the mat the dog ate the frog 
  2. the bird flew to the sky the cat ate the rat
  3. the dog sat on the log the bird sat on the w

--- এলএলএম-গুলো কিভাবে কাজ করে (ধারণাগতভাবে) ---
ইনপুট: 'the cat sat on the'
পরবর্তী টোকেনের সম্ভাবনা:
    mat: 45% ##################
    cat: 20% ########
    dog: 15% ######
    sat: 10% ####
    the: 5% ##
    ate: 3% #
     on: 2% 
Note: জেনারেটিভ মডেলগুলো কি সৃজনশীল (creative)? বর্তমানে এআই জগতে এটি সবচেয়ে বড় বিতর্কের একটি বিষয়। জেনারেটিভ মডেলগুলো এমন নতুন বা অভিনব আউটপুট তৈরি করতে পারে, যা এদের ট্রেইনিং ডেটায় আগে কখনোই ছিল না। কিন্তু এদের নিজস্ব কোনো উদ্দেশ্য, আবেগ বা বোঝাপড়ার ক্ষমতা থাকে না। এগুলো মূলত অত্যন্ত উন্নত মানের কিছু প্যাটার্ন মেলানোর ইঞ্জিন (pattern completion engines)। এদের কাজকে "সৃজনশীলতা" বা ক্রিয়েটিভিটি বলা যাবে কি না, তা সম্পূর্ণ নির্ভর করছে আপনি সৃজনশীলতা বলতে কী বোঝেন তার ওপর—এবং এই নিয়ে বিজ্ঞজনদের মধ্যেও মতভেদ আছে।

জেনারেটিভ এআইয়ের জগৎ (The Generative AI Landscape)

জেনারেটিভ এআইয়ের পরিধি এখন শুধু টেক্সট বা ছবির মধ্যেই সীমাবদ্ধ নেই, বরং এটি আরও অনেক বড় হচ্ছে:

  • কোড জেনারেশন — কোপাইলট (Copilot), কার্সর (Cursor), এবং ক্লড (Claude)-এর মতো এআই মানুষের মুখের ভাষা বা ন্যাচারাল ল্যাঙ্গুয়েজ শুনে নিজে থেকেই কোড লিখতে পারে।
  • মিউজিক — সুনো (Suno) এবং উডিও (Udio) গলা, বাদ্যযন্ত্র এবং লিরিক্স দিয়ে একদম নতুন গান তৈরি করতে পারে।
  • ভিডিও — সোরা (Sora) এবং রানওয়ে (Runway) টেক্সট প্রম্পট (text prompt) থেকে ছোট ছোট ভিডিও ক্লিপ জেনারেট করে।
  • সায়েন্স বা বিজ্ঞান — আলফাফোল্ড (AlphaFold) বিভিন্ন প্রোটিনের থ্রিডি (3D) গঠন তৈরি করে নতুন আবিষ্কারকে আরও দ্রুততর করছে।
  • থ্রিডি (3D) মডেল — পয়েন্ট-ই (Point-E) এবং ড্রিমফিউশন (DreamFusion) টেক্সট থেকে থ্রিডি অবজেক্ট তৈরি করে।

এসবগুলোর মধ্যে একটা সাধারণ মিল হলো: এগুলো প্রথমে বিশাল ডেটা বা তথ্যের স্ট্যাটিস্টিক্যাল প্যাটার্নগুলো শেখে এবং এরপর সেই প্যাটার্নগুলো ব্যবহার করে নতুন কিছু একটা তৈরি বা জেনারেট করে। মডেল যত ভালো হবে এবং ডেটা যত বেশি হবে, এদের তৈরি জিনিসগুলোও তত বেশি নিখুঁত ও বাস্তবসম্মত হবে।

ছোট কুইজ

বেশিরভাগ লার্জ ল্যাঙ্গুয়েজ মডেলের (LLMs) প্রধান ট্রেইনিং অবজেক্টিভ বা লক্ষ্য কী?

পড়া চালিয়ে যান