AI ডিটেক্টর কীভাবে কাজ করে? Perplexity, Burstiness এবং Token Probability
AI ডিটেক্টর পাঠকের মতো করে যন্ত্রলিখনকে শনাক্ত করে না। তারা দেখে আপনার লেখা কতটা পূর্বানুমানযোগ্য, তারপর সেটিকে একটি স্কোরে রূপান্তর করে। এটি বোঝার পর প্রযুক্তি এবং এর ব্যর্থতা, উভয়ই আরও স্পষ্ট হয়।
আপনার বিশ্ববিদ্যালয় এখন জমা দেওয়া লেখাগুলোকে একটি AI detector-এর মাধ্যমে পরীক্ষা করা শুরু করেছে, এবং একটি রিপোর্টে এমন একটি সংখ্যা এসেছে যা আপনি আশা করেননি। সেটি নিয়ে আপত্তি তোলার আগে, ওই সংখ্যাটির অর্থ কী, তা জানা উপকারী। AI detector কীভাবে কাজ করে? তারা যন্ত্রে লেখা পাঠকে একজন মানুষের মতো পড়ে না। তারা দেখে আপনার লেখা একটি language model-এর কাছে কতটা পূর্বানুমেয়, তারপর সেই পূর্বানুমেয়তাকে একটি স্কোরে রূপান্তর করে। সেই প্রক্রিয়ার কোথাও আপনি কী বোঝাতে চেয়েছেন, আপনার যুক্তি কী, বা আপনি সত্যিই লেখাটি লিখেছেন কি না, তা দেখা হয় না।
আমি বহু বছর ধরে এমন সরঞ্জাম তৈরি করেছি যা পাঠ্যকে পরিসংখ্যানগতভাবে বিশ্লেষণ করে, এবং detection সম্পর্কে বোঝার ক্ষেত্রে এককভাবে সবচেয়ে উপকারী বিষয়টি হলো, এটি সাধারণতার একটি পরিমাপ, উৎসের নয়। একবার এটি স্পষ্ট হলে, প্রযুক্তি এবং এর ব্যর্থতা, দুটোই অনেক বেশি অর্থবহ হয়ে ওঠে।
একটি detector আসলে কী পরিমাপ করছে
একটি detector জানে না কিছুই কে লিখেছে। এর কাছে যা আছে, তা হলো একটি language model এবং একটি scoring function। modelটি আপনার পাঠ্যকে বাম থেকে ডানে পড়ে, এবং প্রতিটি ধাপে পরবর্তী শব্দটি কী হওয়া উচিত, সে সম্পর্কে একটি probability distribution তৈরি করে। যদি আপনি এটিকে "the results of the" শব্দগুলো দেন, তবে এটি "study" কে সর্বোচ্চ স্থানে রাখবে, "experiment" কে একটু নিচে, এবং "marmalade" কে প্রায় শূন্যের কাছাকাছি কোথাও রাখবে।
তাই detector আপনার নথিকে একটি প্রশ্ন করে, এই পাঠ্য কতবার model যে শব্দটি আশা করেছিল, সেটি বেছে নিয়েছে? যে লেখা বারবার উচ্চ probability-র শব্দে গিয়ে থামে, তা যন্ত্রে তৈরি বলে মনে হয়, কারণ একটি text generator ঠিক সেটাই করে। modelটি নিজের distribution-এর শীর্ষ অংশ থেকে বারবার নমুনা নেয়, হাজার হাজার token জুড়ে।
এই কারণেই পুরো শ্রেণিটি marketing যা বলে, তার তুলনায় অনেক বেশি অনিশ্চিত ভিত্তির ওপর দাঁড়িয়ে আছে। একটি detector কোনো watermark বা fingerprint খুঁজে পাচ্ছে না। এটি কেবল লক্ষ্য করছে যে আপনার গদ্য পরিসংখ্যানগতভাবে অপ্রত্যাশিত নয়, এবং অপ্রত্যাশিত নয় এমন গদ্যের chatbot ছাড়াও অনেক কারণ থাকতে পারে।
Perplexity, modelটি কতটা বিস্মিত হয়
মূল পরিমাপকটিকে perplexity বলা হয়, যা শুনতে যতটা কঠিন লাগে, আসলে তার চেয়ে সহজ। মডেলটি যে প্রতিটি শব্দের জন্য সম্ভাবনা নির্ধারণ করেছে, যা বাস্তবে উপস্থিত হয়েছিল, সেই সম্ভাবনা নিন, ওই সম্ভাবনাগুলোর লগারিদমের গড় বের করুন, এবং ফলটিকে exponentiate করুন। এতে যে একক সংখ্যা পাওয়া যায়, তা বর্ণনা করে আপনার নথি দেখে মডেলটি কতটা বিস্মিত হয়েছিল। অনুমান করার বদলে আপনি নিজের খসড়ার perplexity পরীক্ষা করতে পারেন।
কম perplexity মানে পাঠ্যটি সেই পথে গেছে, যা মডেল প্রত্যাশা করেছিল। বেশি perplexity মানে এটি এমন মোড় নিয়েছে, যা মডেল প্রত্যাশা করেনি। মানব রচনায় সাধারণত মানটি বেশি হয়, কারণ মানুষ অদ্ভুত নির্দিষ্ট বিশেষ্য, অস্বাভাবিক গঠন, এমন বাক্য বেছে নেয় যা অপ্রত্যাশিত জায়গা থেকে শুরু হয়। উৎপন্ন পাঠ্য সাধারণত কম মানে থাকে, কারণ decoding প্রক্রিয়াটি ঠিক এই ধরনের পদক্ষেপ এড়াতে নির্মিত।
methods section শুরু করার দুটি উপায় তুলনা করুন। "The results of the study were statistically significant" এমন একটি শব্দক্রম, যা প্রায় যেকোনো model উচ্চ confidence সহ পূর্বানুমান করতে পারত, কারণ এতে কোনো অপ্রত্যাশিত তথ্য নেই। "Two of the three cohorts drifted before week six, which we had not planned for" অনেক কম পূর্বানুমেয়, কারণ এতে নির্দিষ্ট, অস্বস্তিকর তথ্য আছে, যা প্রবন্ধের বাকি অংশ থেকে অনুমান করা যেত না। দ্বিতীয়টি detector-এর কাছে বাস্তব বিস্ময়ের খরচ তৈরি করে, এবং সেই বিস্ময়ই human হিসেবে নিবন্ধিত হয়।
Burstiness: গড় নয়, বিচ্যুতি
শুধু perplexity যথেষ্ট নয়, কারণ একটি নথির গড় একটি সম্পূর্ণ যুক্তিসংগত সংখ্যায় পৌঁছাতে পারে, অথচ ভেতরে সন্দেহজনকভাবে সমানধর্মী থাকতে পারে। গুরুত্বপূর্ণ হলো আপনার পাঠ্যের মধ্যে তারতম্য, এবং burstiness সেটাই পরিমাপ করে: লেখার অগ্রগতির সঙ্গে বাক্যের দৈর্ঘ্য এবং বাক্য-স্তরের perplexity কতটা ওঠানামা করে। একটি burstiness checker আপনাকে সেই বিস্তার সরাসরি দেখাবে।
আমরা আত্মবিশ্বাসী হলে গতি বাড়াই এবং সতর্কতা অবলম্বন করলে ধীরে চলি, এবং সেই ছন্দ গদ্যের মধ্যেও থেকে যায়। মানুষ খণ্ডে খণ্ডে লেখে। একটি অনুচ্ছেদ আটটি শব্দের একটি সংক্ষিপ্ত ঘোষণামূলক বাক্য দিয়ে শুরু হতে পারে, তারপর এমন একটি 34 শব্দের বাক্যে পৌঁছাতে পারে যা তিনটি clause এবং একটি parenthetical বহন করে, তারপর আবার সংক্ষিপ্ত কিছুর দিকে নেমে আসতে পারে।
মডেল আউটপুট এটি নির্ভরযোগ্যভাবে করে না। বাক্যগুলো গড় দৈর্ঘ্যের কাছাকাছি জমা হয়। অনুচ্ছেদগুলো পরিপাটি গুচ্ছে আসে। প্রতিটি অংশ তার নিজস্ব শিরোনাম পুনরুক্তি করে শুরু হয়। এটি মসৃণভাবে পড়া যায় এবং খারাপ স্কোর করে, কারণ বাক্যগুলোর মধ্যে কম বৈচিত্র্য একটি ডিটেক্টরের সবচেয়ে শক্তিশালী সংকেতগুলোর একটি। এটি কোনো একক বাক্য নয় যা একে প্রকাশ করে। এটি একরূপতা।
| সংকেত | এটি কী পরিমাপ করে | কেন যন্ত্র-উৎপাদিত পাঠ্য কম স্কোর করে |
|---|---|---|
| Perplexity | আপনার শব্দ নির্বাচনে মডেল কতটা বিস্মিত হয়, পুরো নথি জুড়ে গড় করা | নকশাগতভাবে উচ্চ-সম্ভাব্যতার টোকেন থেকে ডিকোডিং নমুনা নেয় |
| Burstiness | পাঠ্য জুড়ে বাক্যের দৈর্ঘ্য এবং পূর্বানুমেয়তা কতটা পরিবর্তিত হয় | আউটপুট দোল না খেয়ে গড়ের কাছাকাছি জমা হয় |
| Token probability | প্রতি-শব্দ সম্ভাবনা, যেখান থেকে অন্য দুইটি গণনা করা হয় | স্বতন্ত্রভাবে তেমন উল্লেখযোগ্য নয় এমন নির্বাচনের দীর্ঘ ধারাবাহিকতা |
Token probability এবং স্কোর কোথা থেকে আসে
এই দুইটি সংখ্যা একটি তৃতীয় সংখ্যা থেকে নির্মিত হয়, সেটি হলো প্রতি-টোকেন লগ-সম্ভাব্যতা, অর্থাৎ সেই কাঁচামাল, যেখান থেকে বাকি সবকিছু গণনা করা হয়। কিছু টুল এটি সরাসরি দেখায়, আপনার পাঠ্যের যে অংশগুলো সবচেয়ে পূর্বানুমেয় ছিল সেগুলো হাইলাইট করে। সেই হাইলাইটগুলো নির্দিষ্ট বাক্য সম্পর্কে কোনো অভিযোগ নয়, ইন্টারফেস যা-ই ইঙ্গিত করুক না কেন। এগুলো সেই অংশ, যা নথি-স্তরের সংখ্যায় সবচেয়ে বেশি অবদান রেখেছে।
গবেষণাভিত্তিক পদ্ধতিগুলো সরল থ্রেশহোল্ডের সীমা অতিক্রম করেছে। DetectGPT এবং এর উত্তরসূরিরা বক্রতা দেখে, তারা আপনার পাঠ্য সামান্য perturb করে এবং পরীক্ষা করে likelihood কি সেই প্যাটার্নে কমে, যা উৎপাদিত পাঠ্য সাধারণত দেখায়। অন্যরা একই অনুচ্ছেদকে দুটি ভিন্ন মডেলের অধীনে তুলনা করে এবং মতভেদকে একটি সংকেত হিসেবে ব্যবহার করে।
যার মূল্যায়ন করা হচ্ছে, তার জন্য একটি পরিণতি গুরুত্বপূর্ণ। যেহেতু মেট্রিকগুলো একটি নির্দিষ্ট reference model-এর বিরুদ্ধে গণনা করা হয়, তাই একটি স্কোর সবসময় সেই model-এর তুলনায় আপেক্ষিক। দুটি ডিটেক্টর একই অনুচ্ছেদ পড়েও সম্পূর্ণ ভিন্নমত হতে পারে, এবং কোনোটি বিকল নয়। তারা একই প্রশ্নের উত্তর দিচ্ছে, কিন্তু ভিন্ন reference point দিয়ে।
দ্বিতীয় পরিণতিটি তুলনামূলকভাবে কমই উল্লেখ করা হয়। একটি মডেল কেবল তখনই কোনো অনুচ্ছেদকে পূর্বানুমেয় হিসেবে শনাক্ত করতে পারে, যখন সেই অনুচ্ছেদটি তার প্রশিক্ষণকৃত উপাদানের সঙ্গে সাদৃশ্যপূর্ণ হয়, তাই রেফারেন্স মডেল এবং যে কিছু পাঠ্যটি তৈরি করেছে তার মধ্যে ফারাক যত বাড়ে, শনাক্তকরণের মান তত অবনতি ঘটে। নতুনতর জেনারেটর, অস্বাভাবিক শাস্ত্র এবং ইংরেজি ছাড়া অন্যান্য ভাষা, সবই সেই ফারাক বাড়ায়। নিয়ন্ত্রিত বেঞ্চমার্কে মাপা নির্ভুলতা বাস্তব জমা দেওয়া নথির স্তূপের সংস্পর্শে খুব কমই টিকে থাকে, এ কারণেরই এটি একটি অংশ।
Humanize your own paper
Transform your AI-assisted text and make it sound human, without touching important words or citations.
বাণিজ্যিক ডিটেক্টরগুলো উপরে কী যোগ করে
প্রতিষ্ঠানগুলো বাস্তবে যে টুলগুলো কেনে, সেগুলো পাঠ্যপুস্তকধর্মী perplexity চালায় না। Turnitin, GPTZero, Originality এবং অন্যান্য টুল বৃহৎ লেবেলযুক্ত মানব ও যন্ত্র-উৎপাদিত পাঠ্যের সেটের ওপর supervised classifier প্রশিক্ষণ দেয়, যেখানে শৈলীগত বৈশিষ্ট্যের পাশাপাশি পরিসংখ্যানগত বৈশিষ্ট্যও ব্যবহৃত হয়। classifier যা শেখে, তা হলো তার প্রশিক্ষণ ডেটায় এই দুই স্তূপকে যা পৃথক করে, এবং এটি সাধারণভাবে "AI writing" এর তুলনায় বেশি সংকীর্ণ ও বেশি ঐতিহাসিক একটি বিষয়।
প্রশিক্ষণ-নির্ভরতা হলো নীরব সমস্যা। প্রধানত এক প্রজন্মের model output-এর ওপর প্রশিক্ষিত একটি classifier-কে নতুনতর model, অপরিচিত শাস্ত্র, এবং এমন লেখকদের ক্ষেত্রে সাধারণীকরণ করতে হয়, যাদের ইংরেজি তার প্রশিক্ষণ বণ্টনের সঙ্গে সাদৃশ্যপূর্ণ নয়। বিক্রেতারা নিজেদের মূল্যায়ন থেকে নির্ভুলতার পরিসংখ্যান প্রকাশ করে, এবং স্বাধীন বেঞ্চমার্কগুলো নিয়মিতভাবে একই টুলগুলোর ক্ষেত্রে সেই সংখ্যার তুলনায় অনেক নিচে নেমে আসে।
একটি স্কোরকে অতিরিক্ত ব্যাখ্যা না করে পড়া
একটি detector report সাধারণত একটি শতাংশ হিসেবে আসে, এবং সেই শতাংশকে নিয়মিতভাবে ভুলভাবে ব্যাখ্যা করা হয়। এটি আপনার নথির যন্ত্র-লিখিত অংশের অনুপাত নয়। টুলভেদে এটি classifier confidence, অথবা কিছু অভ্যন্তরীণ সীমা অতিক্রম করা বাক্যের অংশ, এবং কোনটি তা নিয়ে বিক্রেতারা প্রায়ই অস্পষ্ট থাকে। একইভাবে ষাট শতাংশ দেখানো দুটি report সম্পূর্ণ ভিন্ন অর্থ বহন করতে পারে।
এটি জানাও মূল্যবান যে, এমন কিছু কারণে একটি স্কোর কেন পরিবর্তিত হয়, যেগুলোর সঙ্গে কে এটি লিখেছে তার কোনো সম্পর্ক নেই। সংক্ষিপ্ত নথি বেশি শব্দপূর্ণ, কারণ গড় মান স্থির হওয়ার জন্য সেখানে কম পাঠ্য থাকে, এবং পাঁচশো শব্দের একটি প্রবন্ধ দুই বা তিনটি অস্বাভাবিক বাক্যের জোরে অনেকটা ওঠানামা করতে পারে। উদ্ধৃত উপাদানও গণ্য হয়, যদি না টুলটি তা বাদ দেয়, তাই block quotes-এ ভরা একটি literature review তার উদ্ধৃত যেকোনো কিছুর পূর্বানুমেয়তা উত্তরাধিকারসূত্রে পায়। মানক পরিভাষায় পরিপূর্ণ একটি প্রযুক্তিগত অনুচ্ছেদও একইভাবে আচরণ করে।
যদি আপনার কাছে কোনো flag আসে, তবে কার্যকর প্রতিক্রিয়া হলো মেট্রিক নিয়ে তর্ক নয়, বরং প্রমাণ। version history, drafts, notes এবং search records, সবই প্রক্রিয়ার সাক্ষ্য দেয়, আর প্রক্রিয়াই হলো এমন কিছু যা একটি misconduct panel বাস্তবে মূল্যায়ন করতে পারে। এমন কোনো threshold নেই, যা কেউ দেখিয়ে বলতে পারে যে তা একজন সতর্ক লেখককে একটি model থেকে আলাদা করে।
কেন detectors এমন লেখা flag করে যা কোনো model তৈরি করেনি
False positives কোনো বিরল ত্রুটি নয়। এগুলো সরাসরি typicality পরিমাপ থেকে আসে। যে কোনো লেখা যা সত্যিই পূর্বানুমেয়, তা পূর্বানুমেয় হিসেবেই score করবে, তা যেই তৈরি করুক না কেন।
Non-native English লেখকেরা সবচেয়ে বেশি প্রভাবিত হন। Stanford গবেষকেরা দেখেছেন যে detectors non-native বক্তাদের বহু প্রবন্ধকে machine-generated হিসেবে ভুল শ্রেণিবদ্ধ করেছে, অথচ native-speaker প্রবন্ধগুলোকে সঠিকভাবে শ্রেণিবদ্ধ করেছে। এর কারণ যান্ত্রিক, বিদ্বেষপূর্ণ নয়, দ্বিতীয় ভাষায় কাজ করা লেখকেরা সাধারণত বহুল ব্যবহৃত গঠন এবং তুলনামূলক সাধারণ শব্দভান্ডারের ওপর নির্ভর করেন। এটিই low perplexity-এর সঠিক প্রোফাইল, আর এই কারণেই ESL writers get flagged for writing carefully.
Academic conventions একই সমস্যা সৃষ্টি করে। একটি methods section-কে সূত্রবদ্ধ হওয়ার কথা। Legal writing, technical documentation এবং clinical reporting, সবই উদ্ভাবনী বাক্যগঠনের চেয়ে মানক phrasing-কে পুরস্কৃত করে। অতিরিক্ত সম্পাদনা এটিকে আরও বাড়িয়ে তোলে, কারণ একটি draft পরিমার্জন করার অর্থ সাধারণত সেই অনিয়মগুলো সরিয়ে ফেলা, যেগুলো আপনার statistical signature বহন করছিল।
প্রতিষ্ঠানগুলো বিষয়টি লক্ষ্য করেছে। Vanderbilt Turnitin-এর AI detection feature নিষ্ক্রিয় করেছে, এমন স্কোরের ভিত্তিতে পদক্ষেপ না নিয়ে যা তারা যাচাই করতে পারেনি, এবং অন্যান্য বিশ্ববিদ্যালয় misconduct proceedings-এ সংখ্যাগুলো কীভাবে ব্যবহার করা যাবে তা সীমিত করেছে। detector score-কে একটি দুর্বল প্রমাণ হিসেবে দেখুন, verdict হিসেবে নয়।
এটি আপনার নিজের লেখার জন্য কী অর্থ বহন করে
mechanics থেকে যে ব্যবহারিক পরামর্শ পাওয়া যায়, তা অদ্ভুত কিছু নয়, এবং এর কোনোটিই কোনো কিছু gaming করার সঙ্গে জড়িত নয়। ইচ্ছাকৃতভাবে sentence length ভিন্ন করুন, কারণ uniformity-ই হলো যা নিবন্ধিত হয়। নির্দিষ্ট বিবরণ ধরে রাখুন, প্রকৃত figure, প্রকৃত limitation, week six-এ কী ভুল হয়েছিল। generic competence-ই machine-made হিসেবে score করে, আর specificity একই সঙ্গে ভালো লেখা এবং আরও শক্তিশালী signal।
আপনার নিজের idiom-ও ধরে রাখুন। যদি কিছু বলার আপনার নিজস্ব ধরন থাকে, তা রেখে দিন। কোনো draft-কে এমনভাবে ঘষেমেজে ফেলার প্রবৃত্তি, যতক্ষণ না তা ক্ষেত্রের অন্য সব paper-এর মতো শোনায়, সেটিই আপনার perplexity কমিয়ে দেয়।
একটি বিষয় এড়িয়ে চলুন, কিছু tool ইচ্ছাকৃতভাবে grammatical errors ঢোকায় perplexity বাড়ানোর জন্য। এটি metric-এর ক্ষেত্রে কাজ করে, এবং graded বা peer-reviewed যেকোনো কিছুর জন্য এটি অত্যন্ত খারাপ ধারণা, কারণ আপনি একটি suspicion-এর বদলে একটি certainty বিনিময় করছেন। লক্ষ্য হলো এমন লেখা যা আপনার লেখা হিসেবে পড়ে, এমন লেখা নয় যা ইচ্ছাকৃতভাবে ক্ষতিগ্রস্ত করা হয়েছে। এটাই rewriting for a human reader এবং scorer-কে বোকা বানাতে text ভেঙে ফেলার মধ্যে পুরো পার্থক্য।
আপনি যদি black box-এর কথায় ভরসা না করে নিজের draft-এর জন্য এই সংখ্যাগুলো দেখতে চান, তাহলে অন্তর্নিহিত measurement গোপন নয়। free text analysis tools আপনাকে দেখাবে আপনার prose কোথায় অবস্থান করছে, এবং আপনি নিজেই সিদ্ধান্ত নিতে পারবেন flat stretch-গুলো সংশোধনযোগ্য stylistic problem কি না।
Frequently Asked Questions
হ্যাঁ, এবং তা প্রত্যাশিতভাবেই। ডিটেক্টর দেখে পাঠ্যটি পরিসংখ্যানগতভাবে কতটা পূর্বানুমানযোগ্য, কে লিখেছে তা নয়, তাই সত্যিই সূত্রবদ্ধ যেকোনো লেখা যন্ত্রনির্মিত হিসেবে স্কোর পায়। স্বাধীন বেঞ্চমার্কগুলো ধারাবাহিকভাবে বিক্রেতাদের দাবির চেয়ে কম নির্ভুলতা দেখায়, এবং কয়েকটি বিশ্ববিদ্যালয় স্কোর কীভাবে ব্যবহার করা যাবে তা সীমিত করেছে।
PhD in natural language processing, with years spent building NLP applications end to end. Moe works on text analysis: lexical and syntactic structure, and what separates machine-generated prose from human prose statistically. He has been experimenting with computational linguistics since the early days of NLTK, spaCy and WordNet, and still writes most of his tooling in Python.