পরের শব্দ, কখনও একটি নিশ্চয়তা নয়
মডেল কী লিখবে, তা লেখার আগে সে জানে না। প্রতিটি শব্দে সে প্রতিটি সম্ভাব্য প্রার্থীর জন্য একটি সম্ভাবনা হিসাব করে, তার পর তার ভেতর থেকে একটি তুলে নেয়। এই পাতা সেই তোলাটিই আপনার চোখের সামনে চালায়, একটি একটি সেটিং ধরে: তাপমাত্রা, টপ-k আর টপ-p।
সবই আপনার ব্রাউজারে হিসাব হয়। কর্পাস পাতার সঙ্গেই লোড হয়, মডেল সেখানেই এই ডিভাইসে শেখে, আর আপনি যা সেট করেন তার কিছুই আপনার যন্ত্র ছেড়ে যায় না। আপনার ব্রাউজারের নেটওয়ার্ক ট্যাব খুলুন আর প্রদর্শনটি নাড়াচাড়া করুন: কোনো অনুরোধই বাইরে যায় না।
একটি বিন্যাস হিসাব করা, তার পর তার ভেতর থেকে তোলা
একটি ভাষা-মডেল কী লিখবে, তা লেখার আগে জানে না। প্রতিটি শব্দে সে প্রতিটি সম্ভাব্য প্রার্থীর জন্য একটি সম্ভাবনা হিসাব করে: একটি গোটা তালিকা, কখনও একটিমাত্র ঠিক করে ফেলা উত্তর নয়। সম্ভাবনার এই তালিকাটিই একটি বিন্যাস। যা একটি বাছাইয়ের মতো দেখায়, তা আসে তার পরে: এই বিন্যাসের ভেতর থেকে একটি তোলা, যেমন ওজন-বসানো একটি তাসের গোছা থেকে একটি তাস তোলা হয়।
সেই জন্যই একই প্রশ্ন দুবার করলে সব সময় একই উত্তর আসে না। যত ক্ষণ বিন্যাসে কয়েকজন প্রার্থী সম্ভাব্য থাকেন, তোলাটি তাঁদের একজনকেই রাখে, তবে সব সময় একই জনকে নয়। এখানে তোলাটি একটি দৃশ্যমান আর বদলানো যায় এমন বীজ মানে, যাতে ফলটি পুনরুৎপাদনযোগ্য থাকে: একই বীজ সব সময় একই শব্দই দেয়। একটি সাধারণ পরিষেবা তার বীজ লুকিয়ে রাখে, আর তাতে মনে হয় এলোমেলোটির কোনো উৎসই নেই।
এই পাতার মডেল শেখে Le Tour du monde en quatre-vingts jours-এর উপরে, Jules Verne-এর লেখা, 1873 সালে প্রকাশিত আর পাবলিক ডোমেইনে। এই লেখায় আগে থেকে দেখা এক থেকে তিন শব্দের প্রতিটি সারির জন্য সে গোনে, কোন শব্দ তার পরে এসেছে আর কতবার। এই কর্পাসে এই মুহূর্তে সে চেনে …টি টোকেন, …টি আলাদা শব্দের একটি শব্দভাণ্ডারের জন্য, যা ভাগ হয়ে আছে এক শব্দের …টি প্রসঙ্গে, দুই শব্দের …টি প্রসঙ্গে আর তিন শব্দের …টি প্রসঙ্গে। এই প্রদর্শনের জন্য প্রতিলিপিটি একটু ছোঁয়া হয়েছে: অ্যাপোস্ট্রফি টাইপোগ্রাফিক করা, প্রতিলিপির ড্যাশ আর উদ্ধৃতিচিহ্ন সরানো, ইটালিকের চিহ্ন সরানো, অধ্যায়ের শিরোনাম আর সূচিপত্র বাদ দেওয়া, চল্লিশটি অক্ষরের চেয়ে ছোট অনুচ্ছেদ বাদ দেওয়া।
এই প্রদর্শন লেখাটি গোটা শব্দে ভাগ করে, যাতে তা পড়ার মতো থাকে। একটি সত্যিকারের মডেল শব্দের চেয়ে ছোট এককে ভাগ করে, একেবারে অন্য একটি হিসাবে পাওয়া টোকেনে: দেখুন শব্দ, টুকরো টুকরো করে অধ্যায়। বিন্যাস আর তোলার কলকৌশলটি, অন্যদিকে, দুটি ক্ষেত্রেই একই থাকে।
প্রদর্শনটি যা দেখায়
এক ধাপ: একই সূত্র, আর একটি ফল যা আপনার চোখের সামনেই বদলায়
তাপমাত্রার স্লাইডারটি সরান, আর ছকের কলামগুলি সঙ্গে সঙ্গেই নড়ে ওঠে: লগারিদম বদলায় না, তাপমাত্রা দিয়ে তার ভাগটি বদলায়, আর তার সঙ্গে “সফটম্যাক্সের পরে” কলামটিও। একটি টপ-k বা একটি টপ-p চালু করুন, আর এত ক্ষণ রাখা প্রার্থীরা “বাদ” হয়ে যান, পুরো কথায়, কেবল তাঁদের দণ্ডের ফ্যাকাশে হওয়াতেই নয়। এর কিছুই কর্পাস বা গণনা বদলায় না: কেবল একই বিন্যাসটি পড়ার ধরনটিই বদলায়।
কয়েক ধাপ: এমন একটি লেখা, যা নিজেকে ফিরিয়ে আনে, নয়তো ছড়িয়ে পড়ে
শূন্যের কাছাকাছি তাপমাত্রায় তোলাটি প্রায় সব সময় সবচেয়ে সম্ভাব্য প্রার্থীকেই রাখে: তৈরি হওয়া লেখা দ্রুত একটি চক্রে পড়ে যায়, একই কয়েকটি শব্দ একই ক্রমে ফিরে আসতে থাকে। দুইয়ের কাছাকাছি তাপমাত্রায় বিরল প্রার্থীরা প্রায় ঘন ঘন আসা প্রার্থীদের মতোই সম্ভাব্য হয়ে যান: লেখা টুকরো টুকরো হয়ে যায়, জায়গায় জায়গায় সম্ভাব্য, বাক্য ধরে ধরে, তবে গোটা কোনো সুতো ছাড়াই। একই শুরু আর একই বীজে দুটি সেটিংই চেষ্টা করে দেখুন, দুটি প্রভাব একের পর এক দেখতে।
পদ্ধতি
“লেখাটি তৈরি করুন” বোতামটি যা করে, একবারে এক ধাপ। “এক ধাপ” বিভাগের ছকটি চলতি শুরুর সত্যিকারের প্রার্থীদের উপরে এই একই ধাপগুলিই দেখায়: হাতে, পাঁচজন প্রার্থী আর একটি ক্যালকুলেটর দিয়ে সেটি আবার করতে কেবল একটির পর একটি কলাম আবার পড়াই যথেষ্ট।
- গোনা। চলতি প্রসঙ্গটির জন্য গোটা কর্পাসে দেখে নিন, কোন কোন
শব্দ তার পরে এসেছে, আর কতবার। একজন প্রার্থীর শুরুর সম্ভাবনা হলো তার গণনা
ভাগ এই প্রসঙ্গের সব প্রার্থীর গণনার যোগফল দিয়ে:
p = গণনা ÷ মোট। - লগারিদমে যাওয়া। প্রতিটি সম্ভাবনা হয়ে যায়
logit = log(p), যেখানেlogহলো স্বাভাবিক লগারিদম, একটি বৈজ্ঞানিক ক্যালকুলেটরের “ln” বোতাম। একটি লজিট সব সময় ঋণাত্মক বা শূন্য, কারণ p থাকে শূন্য আর একের মধ্যে। - একটি ঝোঁক যোগ করা, যদি থাকে। বাকি সবের আগে লজিটের সঙ্গে
একটি ঐচ্ছিক ঝোঁক যোগ হয়:
ঝোঁকসহ লজিট = লজিট + ঝোঁক। এই পাতা কোনো ঝোঁক যোগ করে না; জলছাপ অধ্যায় ঠিক এই ধাপেই একটি যোগ করে। - তাপমাত্রা দিয়ে ভাগ করা। প্রতিটি ঝোঁকসহ লজিট তাপমাত্রা T
দিয়ে ভাগ হয়:
z = ঝোঁকসহ লজিট ÷ T। ছোট তাপমাত্রা সেরা প্রার্থী আর বাকিদের মধ্যে ফারাক বাড়িয়ে দেয়; বড় তাপমাত্রা তা মুছে দেয়। - সফটম্যাক্সে যাওয়া। z-গুলি এমন সম্ভাবনা হয়ে যায় যাদের
যোগফল এক:
সম্ভাবনা = exp(z) ÷ সব প্রার্থীর exp(z)-এর যোগফল। তাপমাত্রা শূন্য হলে এই ধাপ আর পরের ধাপটি বাদ যায়: সবচেয়ে উঁচু লজিটের প্রার্থীকেই সোজা রাখা হয়, কোনো তোলা ছাড়াই। - টপ-k-তে কাটা। প্রার্থীদের সবচেয়ে সম্ভাব্য থেকে সবচেয়ে কম সম্ভাব্যের ক্রমে সাজানো হয়। k মানের একটি টপ-k চালু থাকলে কেবল প্রথম k জনই দৌড়ে থাকেন; বাকিরা বাদ যান।
- টপ-p-তে কাটা। একটি টপ-p সীমা চালু থাকলে মডেল এই একই তালিকার সবচেয়ে ছোট সেই শুরুর অংশটিই রাখে, যার জমা সম্ভাবনা এই সীমায় পৌঁছায়; বাকিটা বাদ যায়, তার মধ্যে যা একটি সম্ভাব্য টপ-k কাটা আগেই ছেড়ে দিয়েছিল, তাও।
- আবার স্বাভাবিক করা। বাকি প্রার্থীদের সম্ভাবনা তাদের নিজেদের যোগফল দিয়ে ভাগ হয়, যাতে মোট আবার এক পাওয়া যায়: এটিই প্রত্যেকের চূড়ান্ত সম্ভাবনা।
- তোলা। শূন্য থেকে, শূন্য ধরে, এক পর্যন্ত, এক বাদ দিয়ে, নেওয়া একটি সংখ্যা পাশাপাশি বসানো এই চূড়ান্ত সম্ভাবনার তালিকায় পড়ে: যে প্রার্থীর ভাগটিতে এই সংখ্যাটি আছে, সেই টোকেনটিই রাখা হয়। প্রসঙ্গ একটি শব্দ লম্বা হয়, আর পরের শব্দের জন্য এক নম্বর ধাপ আবার শুরু হয়।
একটি সত্যিকারের মডেল যা যোগ করে, আর যা সে সরিয়ে নেয় না
এই প্রদর্শন একটি শর্তেই সৎ: বলে দেওয়া, উপমাটি কোথায় থেমে যায়।
একটি বড় মডেলেও যা সত্য থাকে
- সে পরের এককের উপরে সম্ভাবনার একটি বিন্যাসই দেয়, কখনও একটি নিশ্চয়তা নয়।
- সে এই বিন্যাসের ভেতর থেকেই তোলে: ফলটি একটি এলোমেলোর উপরে নির্ভর করে, এখানে একটি বীজ দিয়ে যা দৃশ্যমান আর পুনরুৎপাদনযোগ্য করা হয়েছে।
- তাপমাত্রা, টপ-k আর টপ-p তার বিন্যাসের উপরে একই সূত্রে, একই ধাপে কাজ করে।
- সে সব সময়ই উত্তর দেয়: কখনও একটি নীরবতা নয়, কখনও নিজের থেকে আসা একটি “আমি জানি না” নয়।
এই খেলনা-মডেল যা করে না
- গ্রেডিয়েন্ট নামা দিয়ে কোনো শেখা নয়: এই মডেল গোনে, সে কোনো ওজন সাজায় না।
- শব্দের কোনো এমবেডিং নয়: প্রতিটি শব্দ একটি নিছক নামফলক, অর্থের কোনো পরিসরে একটি বিন্দু নয়।
- কোনো অ্যাটেনশন নয়: হিসাবে নেওয়া প্রসঙ্গ তিন শব্দেই থেমে যায়, সব সময় সবচেয়ে সাম্প্রতিক তিনটি।
- কোনো অর্থ নয়, কোনো সাধারণীকরণ নয়: চাওয়া ক্রমে কখনও না দেখা একটি প্রসঙ্গ মডেলকে নামিয়ে দেয়, কখনও আন্দাজ করায় না।
গবেষণা যা মেপেছে
প্রকাশিত তিনটি ফল, প্রদর্শনটি যা অনুভব করায়, তার জায়গা ঠিক করে দেয়।
সব সময় সবচেয়ে সম্ভাব্য শব্দটি বেছে নিলে লেখা হয় সমান আর একঘেয়ে; নিউক্লিয়াস নমুনায়ন, যা বিন্যাসের কম নির্ভরযোগ্য অংশটি ছেঁটে দেয় (এই পাতার টপ-p), আরও স্বাভাবিক একটি লেখা দেয়। সফটম্যাক্স সূত্রের তাপমাত্রার প্যারামিটার মডেলের হিসাব করা সম্ভাবনার বিন্যাসকে নরম বা শক্ত করে: বেশি তাপমাত্রা বাছাইগুলি কম আগে থেকে বলা যায় এমন করে তোলে আর কয়েকটি সম্ভাব্য শব্দের মধ্যে আরও সমানভাবে ছড়িয়ে দেয়। টপ-k নমুনায়ন, যা প্রতিটি ধাপে তোলাকে সবচেয়ে সম্ভাব্য k-টি শব্দে বেঁধে দেয়, সব সময় নির্ধারিত একটি বাছাইয়ের চেয়ে বেশি বৈচিত্র্যময় লেখা তৈরি করতে ব্যবহৃত একটি পদ্ধতি।
একটি সম্ভাব্য লেখা কেন সত্য লেখা নয়
এই পাতার মডেল 1873 সালের একটি উপন্যাস ছাড়া আর কিছুই পড়েনি। এই উপন্যাসের মতো দেখতে একটি বাক্যের পরের অংশ তার কাছে চান, আর সে একটি সত্যিকারের প্রসঙ্গ নিয়ে, ঠিক ক্রমে উত্তর দেবে। এই লেখায় যার কোনো সমতুল্য নেই এমন একটি বাক্যের পরের অংশ চান, আর সে আরও ছোট একটি প্রসঙ্গে নেমে আসবে, গোটা কর্পাসের সবচেয়ে ঘন ঘন আসা শব্দটি ফিরিয়ে দেওয়া পর্যন্ত: সে তবু উত্তর দেয়, একই আপাত দৃঢ়তায়, আর কখনও জানায় না যে সে আন্দাজ করছে।
একটি সম্ভাব্য উত্তর হলো এমন একটি উত্তর, যা তার চেহারায় কর্পাসে যা আছে তার মতো দেখতে। হিসাবের কিছুই যাচাই করে না, তা কোনো তথ্যের সঙ্গে মেলে কি না। একটিমাত্র উপন্যাসের বদলে শত কোটি শব্দের উপরে শেখা একটি বড় মডেল কম বার নামে আর কম চোখে পড়ার মতো করে নামে: এটিই কেন সে বানিয়ে বলে অধ্যায়ের বিষয়।
আরও দূর যেতে
লেখাকে শব্দের চেয়ে ছোট এককে ভাগ করা সামলানো হয়েছে শব্দ, টুকরো টুকরো করে অধ্যায়ে। মডেল যখন উত্তর দেওয়ার বদলে বানিয়ে বলে, সেই ক্ষেত্রগুলি সামলানো হয়েছে কেন সে বানিয়ে বলে অধ্যায়ে। সাইটের সব প্রদর্শন এক জায়গায় আছে প্রদর্শন পাতায়, আর পাঠক্রমের সূচি আছে বোঝা পাতায়।
উৎস
- The Curious Case of Neural Text Degeneration Ari Holtzman, Jan Buys, Li Du, Maxwell Forbes, Yejin Choi, 2020। প্রমাণ করে যে সব সময় সবচেয়ে সম্ভাব্য শব্দটি বেছে নিলে লেখা হয় সমান আর একঘেয়ে, আর নিউক্লিয়াস নমুনায়ন (টপ-p), যা বিন্যাসের কম নির্ভরযোগ্য অংশটি ছেঁটে দেয়, আরও স্বাভাবিক একটি লেখা দেয়।
- Distilling the Knowledge in a Neural Network Geoffrey Hinton, Oriol Vinyals, Jeff Dean, 2015। প্রমাণ করে যে সফটম্যাক্স সূত্রের তাপমাত্রার প্যারামিটার মডেলের হিসাব করা সম্ভাবনার বিন্যাসকে নরম বা শক্ত করে, আর বেশি তাপমাত্রা বাছাইগুলি কম আগে থেকে বলা যায় এমন আর কয়েকটি সম্ভাব্য শব্দের মধ্যে আরও সমানভাবে ছড়ানো করে তোলে।
- Hierarchical Neural Story Generation Angela Fan, Mike Lewis, Yann Dauphin, 2018। প্রমাণ করে যে টপ-k নমুনায়ন, যা প্রতিটি ধাপে তোলাকে সবচেয়ে সম্ভাব্য k-টি শব্দে বেঁধে দেয়, সব সময় নির্ধারিত একটি বাছাইয়ের চেয়ে বেশি বৈচিত্র্যময় লেখা তৈরি করতে ব্যবহৃত একটি পদ্ধতি।
- Le Tour du monde en quatre-vingts jours Jules Verne, J. Hetzel et Compagnie, 1873, পাবলিক ডোমেইন। প্রতিলিপি: Wikisource। এই প্রদর্শনের জন্য একটু ছোঁয়া: অ্যাপোস্ট্রফি টাইপোগ্রাফিক করা, প্রতিলিপির ড্যাশ আর উদ্ধৃতিচিহ্ন সরানো, ইটালিকের চিহ্ন সরানো, অধ্যায়ের শিরোনাম আর সূচিপত্র বাদ দেওয়া, চল্লিশটি অক্ষরের চেয়ে ছোট অনুচ্ছেদ বাদ দেওয়া।