AI Detection

AI সনাক্তকরণে টোকেন সম্ভাবনা এবং লগ-সম্ভাব্যতা

Perplexity মনোযোগ পায়, কিন্তু এর অন্তর্নিহিত গণিত হলো টোকেন সম্ভাবনা: মডেলের পরবর্তী শব্দের ওপর বণ্টন আসলে কী ধারণ করে, কেন detection গণিত raw probability-এর বদলে log space-এ চলে, এবং কীভাবে per-token score-এর একটি ধারাবাহিকতা একটি সংখ্যায় পরিণত হয়।

সর্বশেষ আপডেট করা হয়েছে 6 min
Diagram illustrating token probability ai detection: a language model's next-token distribution turning into a log-likelihood score

আপনি যদি কোনো detector-কে জিজ্ঞেস করেন, এটি কীভাবে সেই স্কোরে পৌঁছাল, তবে এর user interfaces-এর বেশিরভাগই আপনাকে একই উত্তর দেবে: একটি অনুচ্ছেদ, যেখানে কিছু শব্দ অন্যগুলোর তুলনায় গাঢ়ভাবে ছায়াঙ্কিত। এই ছায়াঙ্কন কোনো অনুমান নয়। এটি passage-এর প্রতিটি token-এর সঙ্গে যুক্ত একটি সংখ্যা থেকে আসে, যা detector perplexity, burstiness, বা একটি চূড়ান্ত শতাংশে হাত দেওয়ার আগেই গণনা করা হয়।

এটি একটি token probability, এবং প্রতিটি token probability ai detection তার ওপরই ভিত্তি করে, একেবারে ভিত্তি থেকে। detector যে কোনো সংখ্যক metrics রিপোর্ট করবে, যার মধ্যে এই সাইটের অন্যত্র আমরা যে দুটি নিয়ে আলোচনা করেছি সেগুলিও আছে, তা কেবল এই সংখ্যাগুলোর একটি ধারার ওপর করা গাণিতিক হিসাব। যে স্তরের নিচে অধিকাংশ ব্যাখ্যা থেমে যায়, সেই স্তরেই আপনাকে ভাবতে হয় একটি token আসলে কী, model-এর তার ওপর distribution-এর অর্থ কী, এবং কেন এই গাণিতিক হিসাব raw probability-এর বদলে log space-এ চলে। অধিকাংশ ব্যাখ্যা সেখানেই থেমে যায়।

এর কোনোটিকেই অস্পষ্ট হয়ে থাকতে হয় না। একটি token, একটি probability distribution এবং একটি logarithm সাধারণ সরঞ্জাম, কোনো মালিকানাধীন গোপন বিষয় নয়, এবং এই একই তিনটি ধারণা AI detectors actually work কীভাবে কাজ করে তা ব্যাখ্যা করে, raw text থেকে report-এর একটি একক সংখ্যায় পৌঁছানো পর্যন্ত।

Token Probability AI Detection: Distribution থেকে Score পর্যন্ত

Token probability ai detection তিনটি ধাপে কাজ করে। একটি language model তার আগে কী এসেছে তার ভিত্তিতে প্রতিটি সম্ভাব্য পরবর্তী token-এর জন্য একটি probability নির্ধারণ করে। এই per-token probabilities-কে logarithm-এ রূপান্তর করা হয় এবং passage জুড়ে যোগ করা হয়, যা raw multiplication যে numerical problem-এর মুখে প্রায় সঙ্গে সঙ্গেই পড়ে, তা এড়িয়ে যায়। এর ফলে যে যোগফল পাওয়া যায়, সেটিকে average করে এবং rescale করে শেষ পর্যন্ত perplexity figure হিসেবে উপস্থাপন করা হয় বা classifier-এর সিদ্ধান্তে ব্যবহৃত হয়। প্রতিটি ধাপই নির্দিষ্ট, যাচাইযোগ্য গাণিতিক হিসাব, কোনো black box নয়।

একটি Token আসলে কী

একটি টোকেন একটি শব্দ নয়। আধুনিক ভাষা মডেল byte-pair encoding-এর মতো একটি অ্যালগরিদম ব্যবহার করে পাঠ্যকে subword অংশে ভাগ করে, তাই 'the' এর মতো একটি সাধারণ শব্দ সাধারণত একটি টোকেন, 'perplexity' এর মতো কম প্রচলিত শব্দ দুই বা তিনটি অংশে বিভক্ত হয়, এবং একটি অপরিচিত নাম পৃথক অক্ষর পর্যন্ত ভেঙে যেতে পারে। সাধারণ ইংরেজির একটি অনুচ্ছেদ নির্ভরযোগ্যভাবে তার শব্দসংখ্যার চেয়ে বেশি অংশে tokenizes হয়, যা কোনো টুল আপনাকে যে word count ফেরত দেয় তা বিশ্বাস করার আগে জানা মূল্যবান।

মডেল কখনোই শব্দকে পাঠকের মতো দেখে না। এটি পূর্ণসংখ্যার একটি ক্রম দেখে, যার প্রতিটি একটি স্থির vocabulary-এর একটি সূচক, যেটি দিয়ে মডেলটি প্রশিক্ষিত হয়েছিল। token probability ai detection এই বিন্দুর পর থেকে যা কিছু করে, তা সেই পূর্ণসংখ্যার ক্রমের ওপর কাজ করে, মূল অক্ষরসমষ্টির ওপর নয়, এবং এটাই আংশিকভাবে কারণ যে একটি detector-এর অভ্যন্তরীণ কার্যপ্রণালী একজন মানুষ বাস্তবে কীভাবে একটি বাক্য পড়ে তার সঙ্গে বিচ্ছিন্ন মনে হতে পারে।

পরবর্তী টোকেনের ওপর মডেলের বণ্টন

একটি ক্রমের প্রতিটি অবস্থানে, একটি autoregressive ভাষা মডেল একটি মাত্র পূর্বাভাস দেয় না। এটি তার সম্পূর্ণ vocabulary জুড়ে একটি পূর্ণ সম্ভাব্যতা বণ্টন আউটপুট করে, দশ হাজারেরও বেশি সংখ্যার একটি সেট যা একত্রে 1 হয়, এবং তার আগে যা কিছু এসেছে তার ভিত্তিতে সবচেয়ে সম্ভাব্য থেকে সবচেয়ে কম সম্ভাব্য পর্যন্ত প্রতিটি সম্ভাব্য পরবর্তী টোকেনকে ক্রমবিন্যাস করে। একটি মডেলে 'the results of the' বাক্যাংশটি দিলে এটি সেই সম্ভাব্যতা ভরের বেশির ভাগ অংশ কয়েকটি সম্ভাব্য বিশেষ্যের মধ্যে বণ্টন করে, যেমন 'study,' 'experiment,' 'analysis,' আর 'marmalade' এর মতো কিছুর জন্য অত্যন্ত ক্ষুদ্র একটি অংশ বরাদ্দ করে।

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

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

আপনার নিজস্ব পেপারকে মানবসদৃশ করুন

আপনার AI-সহায়তাপ্রাপ্ত লেখাকে রূপান্তর করুন এবং গুরুত্বপূর্ণ শব্দ বা উদ্ধৃতি স্পর্শ না করে সেটিকে মানবসদৃশ শোনান।

বিনামূল্যে শুরু করুন

কেন Log-Likelihood কাঁচা সম্ভাবনাকে প্রতিস্থাপন করে

সম্ভাবনাগুলোকে একসঙ্গে গুণ করা গাণিতিকভাবে সঠিক, কিন্তু কয়েক ডজন token-এর পর বাস্তবে প্রায় অকেজো। প্রতিটি পৃথক সম্ভাবনা একের কম একটি ভগ্নাংশ, তাই চলমান গুণফল প্রতিবার আরেকটি token গুণ হলে ছোট হতে থাকে, এবং তা দ্রুত ছোট হয়। কয়েকশ token পরে, কাঁচা গুণফল কম্পিউটার যে ক্ষুদ্রতম সংখ্যা উপস্থাপন করতে পারে তার চেয়েও এত নিচে নেমে যেতে পারে যে তা ঠিক শূন্যে round down হয়ে যায়, এই ব্যর্থতার ধরনকে underflow বলা হয়।

একবার তা ঘটলে, সংখ্যাটির আর কোনো তথ্য থাকে না। কেবলমাত্র সম্ভাবনাহীন একটি নথি এবং অত্যন্ত, বিশৃঙ্খলভাবে সম্ভাবনাহীন একটি নথি উভয়ই একই শূন্যে ভেঙে পড়ে, পরে তাদের আলাদা করার কোনো উপায় থাকে না। Logarithm এই সমস্যা সমাধান করে, কারণ একটি গুণফলের logarithm তার logarithmগুলোর যোগফলের সমান, যা মৌলিক বীজগণিতের একটি পরিচিত সমতা। সাধারণ ঋণাত্মক সংখ্যার একটি ধারার যোগফল, ছোট ভগ্নাংশের একটি ধারাকে গুণ করার মতো underflow করে না, এবং উপরন্তু এটি গণনা করাও সস্তা।

অনুচ্ছেদের দৈর্ঘ্য, উদাহরণস্বরূপকাঁচা সম্ভাবনা, একটি চলমান গুণফলlog-probability-এর যোগফল
উদাহরণস্বরূপ প্রতিটি 0.1 করে 12 token1 x 10 to the power of -12, এখনও উপস্থাপনযোগ্যপ্রায় -27.6
উদাহরণস্বরূপ প্রতিটি 0.1 করে 350 token1 x 10 to the power of -350, ঠিক 0-তে underflow করেপ্রায় -805.9

এটি একটি সরলীকৃত উদাহরণ। বাস্তব per-token সম্ভাবনাগুলি 0.1-এর সমতল মানে স্থির না থেকে অত্যন্ত ব্যাপকভাবে পরিবর্তিত হয়, কিন্তু সমস্যার দিকটি একেবারে সঠিক। একবার কোনো কাঁচা গুণফল underflow হয়ে শূন্যে নেমে গেলে, detector-এর যে তুলনাটি আসলে দরকার, এই নথিটি কি সেইটির তুলনায় বেশি বা কম প্রত্যাশিত ছিল, তা নির্ণয় করা অসম্ভব হয়ে যায়। log-probabilities-এর যোগফল এভাবে কখনও ব্যর্থ হয় না। এটি একটি নির্ভুল, সাধারণ, তুলনাযোগ্য সংখ্যা হিসেবেই থাকে, অনুচ্ছেদ যত দীর্ঘই হোক না কেন, আর detectability-কে raw probability space-এর বদলে log space-এ মাপার প্রকৃত কারণও এটিই।

Per-Token স্কোর থেকে একটি Detection স্কোরে

একটি অনুচ্ছেদ জুড়ে log-probabilities যোগ করলে reference model-এর অধীনে নথিটির মোট log-likelihood পাওয়া যায়। token-এর সংখ্যা দিয়ে ভাগ করলে দৈর্ঘ্যের প্রভাব দূর হয় এবং token প্রতি গড় log-likelihood থেকে যায়, যা অবশেষে পাঁচশো শব্দের একটি প্রবন্ধ এবং পাঁচ হাজার শব্দের একটি thesis অধ্যায়ের মধ্যে তুলনাযোগ্য একটি সংখ্যা। সেই গড়কে ঋণাত্মক করে exponentiate করলে perplexity score পাওয়া যায়, একটি মেট্রিক যা এই ক্লাস্টারটি perplexity আসলে কী মাপে সে বিষয়ে পৃথক আলোচনায় পূর্ণভাবে ব্যাখ্যা করে।

একই per-sentence পরিসংখ্যান, যা একটি গড়ে সমতল না করে একটি নথি জুড়ে তার তারতম্য অনুসরণ করে, সেগুলি burstiness কী থেকে গঠিত, এর ভিত্তি, যা perplexity-এর সঙ্গে সম্পর্কিত কিন্তু পৃথক একটি সংকেত। উভয়ই উপরে বর্ণিত অভিন্ন per-token সংখ্যাগুলি থেকে শুরু করে। তারা কেবল সেগুলির ওপর ভিন্ন গণিত প্রয়োগ করে।

এই কাঁচামাল ব্যবহারের একমাত্র উপায় একটি সরল গড় নয়, এবং গবেষণা ইতিমধ্যে তার অনেক দূর এগিয়ে গেছে। DetectGPT, যা ICML 2023-এ Mitchell, Lee, Khazatsky, Manning এবং Finn দ্বারা প্রকাশিত হয়েছিল, একই সম্ভাবনা ফাংশনের একটি ভিন্ন বৈশিষ্ট্য থেকে কাজ করে, language model থেকে নমুনা নেওয়া পাঠ্য এমন একটি অঞ্চলে অবস্থান করতে থাকে যেখানে সামান্য পুনর্লিখন log-probability-কে বাড়ানোর বদলে কমিয়ে দেয়, paperটি এই pattern-কে negative curvature বলে।

একটি classifier প্রশিক্ষণ দেওয়া বা watermark ব্যবহার করার পরিবর্তে, এই পদ্ধতি একটি passage-কে perturb করে, rewording-এর ধরনে সামান্য variation তৈরি করে, এবং তারপর একই model দিয়ে প্রতিটি variation আবার score করে। paperটি এটিকে সেরা zero-shot baseline-এর সঙ্গে তুলনা করে এবং দেখতে পায় যে, 20-billion-parameter model দ্বারা generated text-এর ক্ষেত্রে, এই পদ্ধতি 0.95 AUROC অর্জন করে, যেখানে সেরা zero-shot baseline 0.81 AUROC অর্জন করে।

একই distribution, detect করার বদলে watermark করার জন্য ব্যবহৃত

এ পর্যন্ত সবকিছু probability distribution-কে এমন কিছু হিসেবে দেখেছে যা পরে পড়া হয়। generation-এর মুহূর্তেও এটিকে স্পর্শ করা যায়, যা সমস্যাটিকে সম্পূর্ণভাবে উল্টে দেয়। Kirchenbauer, Geiping, Wen, Katz, Miers and Goldstein-এর 2023 সালের একটি method, প্রতিটি word উৎপন্ন হওয়ার আগে, আগের অংশের একটি hash-এর ভিত্তিতে, অনুমোদিত token-এর একটি randomized shortlist নির্বাচন করে, এবং sampling-কে নরমভাবে সেই shortlist-এর দিকে steer করে। এই bias পাঠকের কাছে অদৃশ্য, এবং পরে text-এর একটি ছোট span-এর ওপর statistical test ব্যবহার করে তা পুনরুদ্ধার করা যায়, original model-এ access ছাড়াই।

Google DeepMind-এর SynthID এই ধারণার একটি version production-এ প্রয়োগ করে, এটি generation time-এ next-token probability scores adjust করে এবং আজ Gemini app ও web experience-এ live আছে। OpenAI একটি comparable system তৈরি করেছে এবং তা ship করেনি। reporting অনুযায়ী, এই সিদ্ধান্ত আংশিকভাবে একটি survey-এর কারণে, যেখানে প্রায় 30 percent ChatGPT users বলেছেন watermarking তাদের product কম ব্যবহার করতে বাধ্য করবে, এবং সেইসঙ্গে এই উদ্বেগও ছিল যে একটি watermark paraphrasing-এর মধ্যে দিয়ে কতটা টিকে থাকবে।

একটি detector-এর report একটি shaded word বা একটি single percentage দেখায় এবং সেখানেই থেমে যায়, কখনও সেই distribution দেখায় না যেখান থেকে এগুলোর উৎপত্তি। TextPulse-এর free perplexity checker আপনার নিজের draft-এর বিরুদ্ধে একই per-token scoring-এর একটি simplified version চালায়, যা verdict দ্বিতীয় হাত থেকে পড়ার চেয়ে একটি passage কোথায় অবস্থান করছে তা দেখার আরও সরাসরি উপায়।

দুটি পার্শ্ববর্তী পৃষ্ঠা এটি তুলে ধরে। ডিটেক্টরগুলো এখনও burstiness-এর ওপর নির্ভর করে কি না 2023 থেকে পরিবর্তিত হয়েছে, এবং GPTZero কীভাবে এই একই সম্ভাবনাগুলোকে একটি স্কোরে রূপান্তর করে তা তার নিজস্ব পৃষ্ঠায় বর্ণনা করা হয়েছে।

এটি TextPulse-এর বাকি free tools-এর সঙ্গে অবস্থান করে, তাই একই খসড়া ছন্দ ও গঠন, পাশাপাশি শব্দ-স্তরের পূর্বানুমেয়তার জন্যও পরীক্ষা করা যায়, তা করতে এক ডজন আলাদা ট্যাব খোলার প্রয়োজন হয় না।

XLinkedInFacebook

সচরাচর জিজ্ঞাসিত প্রশ্ন

token probability ai detection হলো প্রতিটি অন্য detection metric-এর নিচের স্তর। একটি language model একটি sequence-এ প্রতিটি token-কে একটি probability প্রদান করে, একেকবারে একেকটি word-piece, তার আগে যা কিছু এসেছে তার ভিত্তিতে। Perplexity, classifier score এবং report-এর শতাংশ, এগুলো সবই পরে সেই সংখ্যার sequence-এর ওপর করা arithmetic, পৃথক, স্বাধীন কোনো measurement নয়।

Moe

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.

AI মানবিককরণ সম্পর্কে আপডেট থাকুন

একাডেমিক লেখা, AI শনাক্তকরণ, এবং মানবিককরণ নিয়ে টিপস আপনার ইনবক্সে পান।

স্প্যাম নয়। যেকোনো সময় আনসাবস্ক্রাইব করতে পারেন।