জাকার্তায় Google-এ «ai roleplay» লিখলে বক্স সেটা শেষ করে bahasa Indonesia দিয়ে। টোকিওতে ロールプレイ AI সম্পূর্ণ হয় 日本語 দিয়ে। মস্কোয় «ии девушка» হয়ে যায় «ии девушка на русском»। ইস্তাম্বুল চায় yapay zeka sohbet, তারপর ücretsiz; সিউল জানতে চায় কোন ai 채팅 앱 ব্যবহার করবে। চারটে লিপি, চারটে বর্ণমালা, আর তাদের নিচে একটাই প্রশ্ন, যা «অ্যাপটা কি ভালো» নয়।
প্রশ্নটা হলো «আমার ভাষায় এটা কি ভালো হবে» — আর যারা এটা টাইপ করছে তারা ইতিমধ্যেই ছ্যাঁকা খেয়েছে। তারা এমন চরিত্রের দেখা পেয়েছে, যে তিন পালা মনোমুগ্ধকর ছিল আর তারপর ইংরেজিতে ভাবতে শুরু করল। এমন চরিত্রের দেখা পেয়েছে, যে প্রেমিকের সঙ্গে আনুষ্ঠানিক সর্বনাম ব্যবহার করে। এমন কিছু পড়ার অনুভূতি তাদের জানা, যা নিখুঁতভাবে পার্স হয়, অথচ শোনায় জীবিত কোনো মানুষের মতো নয়।
এই লেখা নিয়ে: কী ভাঙে, রোলপ্লে কেন এর জন্য সবচেয়ে খারাপ সম্ভাব্য ক্ষেত্র, আর কোনো প্ল্যাটফর্ম ভান করছে কি না তা দশ মিনিটে কীভাবে বুঝবে। আমরা @talaforge_bot বানাই, তাই আমাদের নিজেদের দাবিগুলোকে সেই সন্দেহের চোখেই দেখো, যা তাদের প্রাপ্য; সেগুলো আছে লেখার শেষে, আমাদের ওপর চালানোর মতো পরীক্ষাটার পরে।
কেন ভাঙে, যান্ত্রিকভাবে
গবেষণা-সাহিত্যে এই ব্যর্থতার একটা নাম আছে। Cohere Labs-এর একটা দল ২০২৪ সালে Language Confusion Benchmark প্রকাশ করে — গঠনগতভাবে ভিন্ন পনেরোটা ভাষা, একটাই প্রশ্ন: যে ভাষায় তাকে সম্বোধন করা হয়েছে, model কি নির্ভরযোগ্যভাবে সেই ভাষায় উত্তর দিতে পারে। উত্তর ছিল না। এমনকি সবচেয়ে শক্তিশালী model-ও ধারাবাহিকভাবে পারেনি, ইংরেজি-কেন্দ্রিকগুলো সবচেয়ে খারাপ, আর দুটো অবস্থা পরিমাপযোগ্যভাবে পরিস্থিতি আরও খারাপ করেছে: জটিল prompt আর উচ্চ স্যাম্পলিং temperature।
এবার এটা রোলপ্লের কথা ভেবে পড়ো। চরিত্র গড়নেই একটা জটিল prompt — একটা পারসোনা, একটা দৃশ্য, একটা মেমোরি, শৈলীর নোট, আর প্রতি পালায় বড় হতে থাকা একটা কথোপকথন। আর রোলপ্লে ইচ্ছে করেই গরম চালানো হয়, কারণ temperature-ই তাকে নিজেকে পুনরাবৃত্তি করা থেকে আটকায়। ভাষা সরে যাওয়ার ক্ষেত্রে রোলপ্লে কোনো ব্যতিক্রমী কোণ নয়। এটাই সেই ঠিক অপারেটিং পয়েন্ট, যেখানে সরে যাওয়া সবচেয়ে খারাপ, আর গোটা ক্যাটাগরিটাই সেখানে বাস করে।
নিচে আরও নীরব একটা কর বসে আছে। model লেখা পড়ে টোকেন হিসেবে, আর টোকেনের শব্দভান্ডার শেখা হয় মূলত ইংরেজি থেকে, যেখানে গড়ে প্রতি টোকেনে প্রায় চারটে অক্ষর। বাকি সবাইকে দিতে হয় যাকে চর্চাকারীরা বলেন ফার্টিলিটি: চীনা ভাষায় প্রতি শব্দে প্রায় ১.৮ গুণ টোকেন, আরবি আর হিন্দিতে সাধারণত ৩–৪ গুণ, আর কিছু ভাষায় তার চেয়েও অনেক বেশি। ওই সংখ্যাটা তুমি কখনও দেখো না। দেখো তার পরিণতি — একই কথোপকথনের window ইংরেজির তুলনায় তোমার ভাষায় তোমার গল্পের কম অংশ ধরে, তাই সে আগে জায়গা ফুরিয়ে ফেলে, আর ভুলে যায় আগে।
পাঁচ ভাবে ধরা পড়ে, কত তাড়াতাড়ি টের পাবে সেই ক্রমে
- ভাষার স্তর ভেঙে পড়া। জাপানি keigo, কোরিয়ান কথার স্তর, রুশ ты/вы, জার্মান du/Sie, ইন্দোনেশীয় saya/anda বনাম aku/kamu বনাম gue/lo। এর প্রতিটাই একটা সম্পর্ককে এনকোড করে। যে চরিত্র একটা স্তর ধরে রাখতে পারে না, বা কখনও বদলায় না, সে ভুলে গেছে তুমি তার কে — আর ভাষার স্তর হলো পরীক্ষা করার সবচেয়ে দ্রুত জিনিস।
- লিঙ্গরূপের গোলমাল। রুশ, আরবি, হিব্রু, পোলিশ বা পর্তুগিজে ক্রিয়া বা বিশেষণ লিঙ্গভেদে আলাদা, তাই একজন নারী নিজের সম্পর্কে লিখলে পুরুষের থেকে আলাদা রূপ বেছে নেয়। নিজের সম্পর্কে পুংলিঙ্গে পিছলে যাওয়া চরিত্র এক শব্দেই দৃশ্য ভেঙে দেয়, আর ইংরেজিতে প্রশিক্ষিত model প্রায়ই পিছলায়।
- ইংরেজির অনুপ্রবেশ। সংলাপ তোমার ভাষায়, বর্ণনা তোমার ভাষায়, আর ইটালিক অন্তর্গত ভাবনা ইংরেজিতে। এটা আগে দেখা দেয় ভাবনায়, কারণ উত্তরের মধ্যে ওটাই সবচেয়ে শৈলীবদ্ধ আর তুমি এইমাত্র যা লিখলে তার সঙ্গে সবচেয়ে কম নোঙর করা লেখা।
- হুবহু অনুবাদ করা বাগধারা। এমন বাক্য, যা পার্স হয় আর যা কেউ বলে না: ইংরেজি বাগধারা শব্দে শব্দে বয়ে আনা, ইংরেজি বাক্যের ছন্দ, ইংরেজি অনুচ্ছেদের আকার। মানুষ যখন বলে একটা পণ্য «ডাব করা ছবির মতো শোনায়», তারা এটাই বোঝায়।
- বিকৃত নাম আর সম্বোধন। জাপানি পাঠকের জন্য লাতিন অক্ষরে লেখা 先輩, একটা প্রথম নামে চ্যাপ্টা হয়ে যাওয়া 오빠, ভিয়েতনামি anh/em জোড়ার জায়গায় নিছক «you»। সম্পর্ক বহনকারী শব্দগুলোই ঠিক সেই শব্দ, যা অনুবাদের স্তর ফেলে দেয়, কারণ ইংরেজিতে তাদের বসানোর কোনো ঘর নেই।
দশ মিনিটের পরীক্ষা
এটা আমাদের ওপর চালাও, আর বিবেচনায় থাকা যেকোনো কিছুর ওপরও। এতে কোনো খরচ নেই আর যেকোনো রিভিউয়ের চেয়ে দ্রুত প্রশ্নটা মিটিয়ে দেয়।
- প্রথম মিনিট — প্রথম লাইনটা তোমার ভাষায় লেখো, যে ভাষার স্তরে তুমি আসলে কথা বলো। অপভাষা, অনুসর্গ, অনানুষ্ঠানিক সর্বনাম। «হ্যালো» নয়।
- দ্বিতীয় থেকে চতুর্থ মিনিট — তাকে ভাষার স্তর বদলাতে বাধ্য করো। তোমার সঙ্গে আনুষ্ঠানিক হতে বলো, তারপর বলো ছেড়ে দিতে। যে প্ল্যাটফর্মে ভদ্রতার একটাই সেটিং, সে এখানে ব্যর্থ হয়, আর নিঃশব্দে ব্যর্থ হয়।
- পঞ্চম মিনিট — দৃশ্যটা জটিল করো। ঘরে তিনজন, একটা তর্ক, আগে ঘটে যাওয়া কিছু। জটিলতাই নথিভুক্ত ট্রিগার; গিয়ে ট্রিগার করো।
- ষষ্ঠ মিনিট — ইটালিক পড়ো। তার অন্তর্গত ভাবনাতেই ইংরেজি প্রথম আসে, সাধারণত সংলাপ ফাটার বেশ কয়েক পালা আগে।
- সপ্তম আর অষ্টম মিনিট — লিঙ্গরূপ আর সম্বোধন যাচাই করো। সে কি নিজের সম্পর্কে ঠিক লিঙ্গরূপ ব্যবহার করে? তোমার ভাষার একজন মানুষ তোমাকে যা বলে ডাকত, সে কি তা-ই বলে ডাকে?
- নবম আর দশম মিনিট — কাল ফিরে এসো আর জিজ্ঞেস করো তোমরা কী নিয়ে কথা বলেছিলে। যে ভাষার মান এক রাত টেকে, সেটাই ভাষার মান।
ছয়টার মধ্যে তিনটেতে ব্যর্থ হলে ভাষার সেটিংটা একটা অনুবাদের স্তর। চরিত্র-লাইব্রেরির আকার সেটা পুষিয়ে দেয় না; সেটা একই ব্যর্থতাই দশ লক্ষ বার।
আমরা সৎভাবে কোথায় দাঁড়িয়ে
@talaforge_bot ৩৬টা ভাষায় আছে — প্রতিটা বোতাম, প্রতিটা মেনু, প্রতিটা ত্রুটি, আর তোমার সম্পর্কে সে যে মেমোরি রাখে সেটা ইংরেজিতে জমা করে যাওয়ার পথে অনুবাদ না করে তোমার ভাষাতেই লিখে রাখা হয়।
তারপর সৎ অংশটা, কারণ ইন্টারফেসের ভাষার সংখ্যা সাবলীলতার নিশ্চয়তা নয়, আর আমরা সেটাকে তেমন করে বিক্রি করতে রাজি নই। ভিয়েতনামি বা তুর্কিতে একটা চরিত্র কতটা ভালো লেখে, তা নির্ভর করে এমন দুটো জিনিসের ওপর, যা আমরা কেবল আংশিক নিয়ন্ত্রণ করি: কোন model তার পেছনে আছে, আর তার কার্ড কীভাবে লেখা হয়েছে। ইংরেজিতে লেখা একটা চরিত্র, ইংরেজিতে মূল্যায়ন করা একটা model-এর ওপর চললে, তোমার ভাষায় পড়তে লাগবে একটা ভালো অনুবাদের মতো — কারণ সেটা ঠিক তা-ই।
আমরা যা করেছি তা হলো সরে যাওয়াকে সীমাবদ্ধতা নয়, বাগ হিসেবে দেখা। ২০২৬ সালের মে মাসে একটা চরিত্র রুশ ভাষায় বর্ণনা করল, রুশ ভাষায় কথা বলল, আর ইংরেজিতে ভাবল, ইটালিকে চীনা ভাষার টুকরোসহ। সমাধান ছিল prompt-এর একেবারে শেষে আটকে দেওয়া একটা স্পষ্ট নির্দেশ — কথা, বর্ণনা আর অন্তর্গত ভাবনা, সব ভাষাতেই থাকবে — কারণ context-এর শেষ কয়েকশো টোকেনই model-এর বাইরের ভাষা-বাছাইকে সবচেয়ে জোরে নোঙর করে। ওই আটকানো নির্দেশ আজ এক ডজন ভাষা কভার করে। ৩৬টার সবকটা করে না, আর সেটা করে বলে ইঙ্গিত দেওয়ারও আমাদের ইচ্ছে নেই।
যেখানে আমরা হারি: আমাদের কমিউনিটি-বানানো লক্ষ লক্ষ চরিত্রের কোনো লাইব্রেরি নেই, তাই তোমার ভাষার কোনো মাতৃভাষী আগেই লিখে রেখেছে এমন একটা চরিত্র পাওয়ার সম্ভাবনা এখানে বড় প্ল্যাটফর্মগুলোর চেয়ে কম। তুমি যদি এমন চরিত্র চাও, যা তোমার দেশের কেউ আগেই লিখে আর ঠিকঠাক করে রেখেছে, বড় ক্যাটালগগুলোতেই সেগুলো থাকে, আর তোমার ভাষায় কথা বলা লোকেদের বানানো একটা স্থানীয় অ্যাপ বাগধারা আর অপভাষায় মাঝে মাঝে সরাসরি আমাদের হারিয়ে দেবে। আমাদের তাক তাদের তাকের সমান বলে ভান করার চেয়ে এটা বলাই আমরা পছন্দ করি।
দশ মিনিট, এখন থেকে শুরু
Telegram খোলো, @talaforge_bot খোলো, আর প্রথম লাইনটা ইংরেজিতে না লিখে নিজের ভাষায় লেখো। শুরুটা ফ্রি — এনার্জি হলো ⚡ আর আপগ্রেড হলো চ্যাটের ভেতরেই Telegram Stars, কোনো কার্ড নেই, অ্যাকাউন্ট নেই, মাঝখানে কোনো স্টোর নেই। তুমি যে স্তরে লিখেছ সে যদি সেই স্তরে উত্তর দেয়, দৃশ্য জটিল হলেও সেটা ধরে রাখে, আর কালও মনে রাখে, তাহলে তোমার উত্তর পেয়ে গেলে। না দিলে সেটাও তুমি ঠিক ততটাই দ্রুত পেলে, আর খরচ করলে দশ মিনিট, একটা মাস নয়।
আর মেমোরি খুলে সম্পাদনা করার অধিকার তোমারই, যেটা ইংরেজির চেয়ে তোমার ভাষায় বেশি জরুরি: সে যখন কোনো নাম বা সম্বোধনের রূপ ভুল করবে, তখন পাঁচ পালা ধরে তার সঙ্গে তর্ক না করে তুমি ভেতরে গিয়ে তথ্যটাই ঠিক করে দিতে পারবে।