মূল কনটেন্টে যান
এআই টিউটোরিয়াল

চীনা AI টেক্সট ডিটেক্টর টিউটোরিয়াল: স্থানীয় ইনফারেন্স, মডেল প্রশিক্ষণ ও ফলাফল যাচাই

এই টিউটোরিয়ালে Chinese Guba AI Detector ইনস্টল, স্থানীয় মডেল কনফিগার, CSV টেক্সট ব্যাচে পরীক্ষা, আউটপুট ফিল্ড বোঝা এবং বৈধ ডেটা ব্যবহারের অনুমতি পাওয়ার পর মডেল প্রশিক্ষণ ও যাচাই করার পদ্ধতি দেখানো হয়েছে।

চীনা AI টেক্সট ডিটেক্টর: ইনফারেন্স, প্রশিক্ষণ ও যাচাই

প্রকল্প পরিচিতি

Chinese Guba AI Detector একটি চীনা AI টেক্সট বাইনারি শ্রেণিবিন্যাসের টুল। প্রকল্পটি hfl/chinese-roberta-wwm-ext-এর ওপর ভিত্তি করে তৈরি এবং C-ReD করপাস ব্যবহার করে ফাইন-টিউন করা হয়েছে। এটি আগে Guba-এর টেক্সট নিয়ে গবেষণামূলক পরিমাপে ব্যবহৃত হয়েছে। বর্তমান রিপোজিটরিতে প্রশিক্ষণ, ইনফারেন্স ও পরীক্ষার স্ক্রিপ্ট এবং সংশ্লিষ্ট নির্দেশনা প্রকাশ করা হয়েছে।

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

গুরুত্বপূর্ণ সীমাবদ্ধতা: এটি C-ReD-এর অফিসিয়াল মডেল নয়। এই ফাইন-টিউনিংয়ে Guba পোস্ট ব্যবহার করা হয়নি এবং আর্থিক ফোরাম ক্ষেত্রে মানব-লেবেলযুক্ত পরীক্ষাও করা হয়নি। মডেলের স্কোর টেক্সটের প্রকৃত লেখকের পরিচয় প্রমাণ করে না। ব্যক্তির পরিচয় নির্ধারণ বা কনটেন্ট শাস্তির একমাত্র ভিত্তি হিসেবে এটি ব্যবহার করা উচিত নয়।

প্রধান বৈশিষ্ট্য

  • UTF-8 CSV-এর চীনা টেক্সটকে AI ও মানব-রচিত টেক্সট হিসেবে বাইনারি শ্রেণিবিন্যাস করা।
  • AI শ্রেণির softmax স্কোর এবং থ্রেশহোল্ড-ভিত্তিক শ্রেণিবিন্যাসের ফলাফল দেখানো।
  • ডিফল্টভাবে 帖子内容文本 পড়ে; কাস্টম টেক্সট কলাম ও স্টক কোড কলামও সমর্থন করে।
  • 股吧代码-কে ছয় অঙ্কের টেক্সট হিসেবে মানসম্মত করে এবং শুরুর শূন্য ধরে রাখে।
  • ইনপুট ফাইলের অন্যান্য কলাম সংরক্ষণ করে এবং ইচ্ছাকৃতভাবে তাদের টেক্সট পরিবর্তন করে না।
  • অস্থায়ী ফাইল ও অ্যাটমিক রিপ্লেসমেন্টের মাধ্যমে আউটপুট ফাইল ক্ষতিগ্রস্ত হওয়ার ঝুঁকি কমায়।
  • ইন্টেগ্রিটি যাচাই, ওভাররাইট করে পুনর্গণনা এবং একক-প্রসেসে লেখার সুরক্ষা সমর্থন করে।
  • প্রশিক্ষণ, ইউনিট টেস্ট এবং প্রকাশ্য কনটেন্ট অডিটের স্ক্রিপ্ট সরবরাহ করে।

ইনস্টলেশন ও রানটাইম পরিবেশ

1. Python ও PyTorch প্রস্তুত করা

প্রকল্পটির পরীক্ষিত পরিবেশ Python 3.10। আলাদা ভার্চুয়াল পরিবেশ ব্যবহারের পরামর্শ দেওয়া হয়। CPU বা CUDA ডিভাইস অনুযায়ী, প্রথমে PyTorch-এর অফিসিয়াল নির্দেশনা অনুসরণ করে উপযুক্ত PyTorch 2.5.1 ইনস্টল করুন।

Windows PowerShell-এ রিপোজিটরির রুট ডিরেক্টরিতে যান, তারপর ভার্চুয়াল পরিবেশ তৈরি ও সক্রিয় করুন:

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt

CPU-তে ইনফারেন্স চালানো যায়, তবে CUDA GPU সাধারণত দ্রুততর। মেমোরি অপর্যাপ্ত হলে প্রথমে --batch-size-এর ডিফল্ট বা বড় মান কমিয়ে 8 অথবা 4 করুন।

2. স্থানীয় মডেল প্রস্তুত করা

বৈধভাবে সংগৃহীত প্রশিক্ষিত মডেল models/detector-এ রাখুন। এই ডিরেক্টরিতে নিচের ফাইলগুলো থাকতে হবে:

  • model.safetensors
  • config.json
  • tokenizer.json
  • tokenizer_config.json
  • special_tokens_map.json
  • vocab.txt

এই ওজন ও টোকেনাইজার ফাইলগুলো প্রকাশ্য রিপোজিটরিতে অন্তর্ভুক্ত নয়। ডিরেক্টরি অসম্পূর্ণ হলে ইনফারেন্স স্ক্রিপ্ট মডেলটি স্বাভাবিকভাবে লোড করতে পারবে না।

প্রথম পরীক্ষা চালানো

1. ইনপুট CSV প্রস্তুত করা

ইনপুট ফাইলটি অবশ্যই UTF-8 CSV হতে হবে। ডিফল্ট টেক্সট কলামের নাম 帖子内容文本 এবং ডিফল্ট স্টক কোড কলামের নাম 股吧代码। রিপোজিটরির উদাহরণগুলো কাল্পনিক টেক্সট ব্যবহার করে; এতে প্রকৃত ব্যবহারকারী, প্রকৃত পোস্ট বা মানব ও AI-এর প্রকৃত লেবেল নেই।

2. ব্যাচ ইনফারেন্স চালানো

মডেল প্রস্তুত হলে রিপোজিটরির রুট ডিরেক্টরি থেকে চালান:

python scripts/predict.py --model-dir models/detector --input examples/synthetic_posts.csv --output outputs/demo.csv --batch-size 32

কমান্ডটি models/detector থেকে স্থানীয় মডেল লোড করবে, উদাহরণ CSV পড়বে এবং পরীক্ষার ফলাফল outputs/demo.csv-এ লিখবে। পুরো পরীক্ষার প্রক্রিয়ায় কোনো বাহ্যিক API কল করা হয় না।

3. আউটপুট ফিল্ড বোঝা

আউটপুট ফাইল মূল কলামগুলো সংরক্ষণ করবে এবং নিচের ফিল্ডগুলো যোগ করবে:

  • AI দ্বারা তৈরি কি না: রাউন্ড না-করা মডেল স্কোর থ্রেশহোল্ডের সমান বা বেশি হলে 1, অন্যথায় 0; খালি টেক্সট খালিই থাকবে।
  • AI তৈরির সম্ভাবনা: AI শ্রেণির softmax স্কোর। এই স্কোরটি সম্ভাবনা হিসেবে ক্যালিব্রেট করা হয়নি, তাই সরাসরি প্রকৃত সম্ভাবনা হিসেবে বিবেচনা করা যাবে না।
  • AI ডিটেকশন মডেল: প্রকাশ্য মডেল শনাক্তকারী; এতে স্থানীয় মডেলের পথ লেখা হবে না।
  • AI ডিটেকশন থ্রেশহোল্ড: ডিফল্ট মান 0.7। এটি প্রকল্পের কনফিগারেশন, কোনো গবেষণাপত্রে নির্ধারিত সর্বোত্তম থ্রেশহোল্ড নয়।
  • AI ডিটেকশন স্ট্যাটাস: ok বোঝায় পরীক্ষা সম্পন্ন হয়েছে, empty_text বোঝায় ইনপুট টেক্সট খালি।

কাস্টম CSV কলাম ব্যবহার

টেক্সট কলামের নাম text এবং স্টক কোড কলামের নাম id হলে স্পষ্টভাবে নির্ধারণ করা যায়:

python scripts/predict.py --model-dir models/detector --input input.csv --output outputs/result.csv --text-column text --stock-column id

ইনপুট ফাইলে স্টক কোড কলাম না থাকলে খালি স্ট্রিং দিন:

python scripts/predict.py --model-dir models/detector --input input.csv --output outputs/result.csv --text-column text --stock-column ""

স্টক কোড কলাম থাকলে প্রোগ্রামটি সেটিকে ছয় অঙ্কের টেক্সট হিসেবে মানসম্মত করবে এবং শুরুর শূন্য ধরে রাখবে। ইনপুটের অন্যান্য কলাম টেক্সট হিসেবে অপরিবর্তিত থাকবে।

ওভাররাইট, যাচাই ও সমান্তরাল প্রক্রিয়াকরণ

সম্পূর্ণ ফলাফল পুনরায় তৈরি

ইনফারেন্সের ফলাফল প্রথমে একটি অস্থায়ী ফাইলে লেখা হয়, সফল হলে টার্গেট ফাইলটি অ্যাটমিকভাবে প্রতিস্থাপিত হয়। একই কমান্ড পুনরায় চালালে ইনপুট, মডেল, প্যারামিটার এবং সম্পূর্ণ আউটপুটের যাচাইমান একসঙ্গে মিলে গেলেই প্রোগ্রামটি বিদ্যমান ফলাফল এড়িয়ে যাবে।

বিদ্যমান ফলাফল উপেক্ষা করে সম্পূর্ণ ফাইল পুনরায় তৈরি করতে --overwrite যোগ করুন:

python scripts/predict.py --model-dir models/detector --input examples/synthetic_posts.csv --output outputs/demo.csv --batch-size 32 --overwrite

প্রক্রিয়া বাধাগ্রস্ত হওয়া ও সমান্তরাল কাজ

প্রক্রিয়া বাধাগ্রস্ত হলে প্রোগ্রামটি ওই ফাইলের শুরু থেকে পুনরায় গণনা করবে; বিদ্যমান সারির সংখ্যা দেখে অন্ধভাবে চালিয়ে যাবে না। একই সময়ে একটি আউটপুট পাথে কেবল একটি প্রসেস লিখতে পারবে। সমান্তরালভাবে কাজ করতে হলে প্রতিটি প্রসেসকে আলাদা ইনপুট ও আউটপুট ফাইল দিন।

দৈর্ঘ্য সীমা ও ফলাফল ব্যাখ্যা

ডিফল্টভাবে প্রতিটি টেক্সট থেকে সর্বাধিক 256টি token ইনপুট নেওয়া হয়; অতিরিক্ত অংশ কেটে দেওয়া হয়। token-এর সংখ্যা চীনা অক্ষরের সংখ্যার সমান নয়, তাই এই সীমাকে 256টি চীনা অক্ষর হিসেবে বোঝা যাবে না।

মূল গবেষণার কিছু Guba পোস্টের মূল অংশে প্রায় 203টি অক্ষরের সংগৃহীত খণ্ড ছিল। তাই পরীক্ষার বিষয়টি মূল টেক্সটের কেবল একটি অংশ হতে পারে। ফলাফল ব্যাখ্যার সময় টেক্সট কাটা পড়া, ক্ষেত্রভেদে পার্থক্য এবং প্রসঙ্গের অনুপস্থিতি বিবেচনা করা উচিত।

AI生成概率 হলো ক্যালিব্রেশনহীন softmax স্কোর, আর ডিফল্ট থ্রেশহোল্ড 0.7 কেবল প্রকল্পের সেটিং। থ্রেশহোল্ড পরিবর্তন করলে বাইনারি শ্রেণিবিন্যাসের ফল বদলাবে, তবে README কোনো থ্রেশহোল্ডকে গবেষণাপত্রে যাচাইকৃত সর্বোত্তম মান হিসেবে ঘোষণা করে না।

C-ReD ডেটা ব্যবহার করে মডেল প্রশিক্ষণ

লাইসেন্সের পূর্বশর্ত

প্রশিক্ষণের আগে C-ReD ডেটা আইনসম্মতভাবে ব্যবহারের অনুমতি নিজে যাচাই করে সংগ্রহ করতে হবে। আপস্ট্রিম রিপোজিটরিতে স্পষ্ট কোনো লাইসেন্স পাওয়া যায়নি। গবেষণাপত্র উদ্ধৃত করা ডেটা ব্যবহার বা পুনর্বিতরণের অনুমতি পাওয়ার সমান নয়। এই প্রকল্প C-ReD ডেটার মিরর সরবরাহ করে না এবং রিপোজিটরির MIT লাইসেন্স C-ReD ডেটা বা তা থেকে তৈরি ওজনের ক্ষেত্রে প্রযোজ্য নয়।

প্রশিক্ষণের নির্ভরতা ইনস্টল করা

python -m pip install -r requirements-train.txt

প্রশিক্ষণ শুরু করা

বৈধভাবে সংগৃহীত ডেটা data/C-ReD-এ রাখা হয়েছে ধরে নিয়ে চালান:

python scripts/train.py --data-root data/C-ReD --output-dir models/detector --epochs 3 --batch-size 8 --eval-batch-size 16 --no-fp16

প্রশিক্ষণ প্রোগ্রামটি ফাইলের নামে CReD_ থাকা CSV পড়বে এবং সেখানকার text ও label কলাম ব্যবহার করবে। উৎস ডেটার লেবেল হলো 0=AI, 1=মানব; প্রশিক্ষণের সময় তা 0=মানব, 1=AI-এ রূপান্তরিত হবে।

প্রশিক্ষণ প্রোটোকল ও ঐতিহাসিক মেট্রিক MODEL_CARD.md-এ নথিভুক্ত আছে। পুনরায় প্রশিক্ষণের সময় পূর্ণ র‍্যান্ডম সিড দিয়ে ইনিশিয়ালাইজ করা হবে, তবে আগের প্রশিক্ষণে মডেল ইনিশিয়ালাইজ করার আগে গ্লোবাল সিড স্পষ্টভাবে সেট করা হয়নি। তাই পুরোনো ওজন বিট-প্রতি-বিট পুনরুৎপাদনের নিশ্চয়তা নেই।

পরীক্ষা ও প্রকাশনা অডিট

সব ইউনিট টেস্ট চালাতে:

python -m unittest discover -s tests -v

ইউনিট টেস্টে কাল্পনিক ডেটা ও সিমুলেটেড প্রেডিকশন ব্যবহার করা হয়, তাই মডেল ডাউনলোডের প্রয়োজন নেই। প্রকৃত মডেলের স্মোক টেস্ট কেবল দেখাতে পারে যে মডেল লোড করে ইনফারেন্স চালানো যায়; এটি পূর্বাভাস সঠিক হওয়ার প্রমাণ নয়।

প্রকাশ্য কনটেন্ট অডিট চালাতে:

python scripts/audit_release.py

প্রকাশ্য রিপোজিটরিতে অনুমোদিত ফাইলের তালিকা এবং সংবেদনশীল তথ্যের প্যাটার্ন দিয়ে পরীক্ষা করা হয়। Guba-এর মূল CSV, প্রকাশকারীর ID, ডাকনাম, IP, পোস্ট URL, গবেষণাপত্রের প্যানেল, বাণিজ্যিক ডেটাবেস, ক্যাশ, লগ, Notebook আউটপুট, প্রশিক্ষণের মধ্যবর্তী চেকপয়েন্ট এবং পুরোনো Git রেকর্ড কোনোভাবেই রিপোজিটরিতে থাকা উচিত নয়। নির্দিষ্ট ডেটা-অজ্ঞাতকরণ সীমা PRIVACY.md-এ এবং প্রকাশনা প্রক্রিয়া docs/PUBLISHING.md-এ দেখুন।

উন্নত ব্যবহারের পরামর্শ

  1. প্রথমে কাল্পনিক ডেটা দিয়ে প্রক্রিয়া যাচাই করুন: নিজের বৈধ ডেটা প্রক্রিয়াকরণের আগে পরিবেশ, কলামের নাম, মডেল ডিরেক্টরি ও আউটপুট পাথ সঠিক কি না নিশ্চিত করুন।
  2. মেমোরি অপর্যাপ্ত হলে ব্যাচ ছোট করুন: প্রথমে --batch-size 8 অথবা --batch-size 4 চেষ্টা করুন।
  3. শেয়ার করা আউটপুট পাথ এড়িয়ে চলুন: একক-প্রসেসে লেখার সীমা সক্রিয় না করতে সমান্তরাল কাজগুলোতে আলাদা আউটপুট ফাইল ব্যবহার করুন।
  4. রান প্যারামিটার সংরক্ষণ করুন: মডেল, ইনপুট, প্যারামিটার ও আউটপুটের যাচাইমান ফলাফল পুনর্ব্যবহারে প্রভাব ফেলে। যেকোনো একটি পরিবর্তন করলে আউটপুট পুনরায় পরীক্ষা করুন।
  5. দীর্ঘ টেক্সট সতর্কতার সঙ্গে ব্যাখ্যা করুন: 256 token-এর বেশি কনটেন্ট কেটে দেওয়া হবে, ফলে মডেল শেষের অংশটি নাও দেখতে পারে।
  6. স্কোরকে পরিচয়ের প্রমাণ হিসেবে ব্যবহার করবেন না: softmax স্কোর ক্যালিব্রেট করা হয়নি এবং প্রকল্পটিতে আর্থিক ফোরাম ক্ষেত্রের মানব-লেবেলযুক্ত যাচাই নেই।
  7. ওজন প্রকাশের আগে অনুমতি নিশ্চিত করুন: কোড ও ডকুমেন্ট MIT লাইসেন্সে এবং বেস মডেল Apache-2.0 লাইসেন্সে প্রকাশিত, তবে C-ReD ডেটা ও তা থেকে তৈরি ওজনের জন্য আলাদাভাবে অনুমতি যাচাই করতে হবে।

উপসংহার

Chinese Guba AI Detector স্থানীয়ভাবে চালানো যায় এমন একটি চীনা AI টেক্সট শ্রেণিবিন্যাস প্রক্রিয়া সরবরাহ করে, যাতে CSV ইনফারেন্স, মডেল প্রশিক্ষণ, ইউনিট টেস্ট ও প্রকাশনা অডিট অন্তর্ভুক্ত। বাস্তব ব্যবহারের আগে বৈধভাবে মডেল বা প্রশিক্ষণ ডেটা সংগ্রহ করা উচিত এবং আউটপুটকে গবেষণামূলক মডেল স্কোর হিসেবে বিবেচনা করা উচিত, টেক্সটের লেখকের পরিচয়ের নিশ্চিত প্রমাণ হিসেবে নয়।