Chuyển đến nội dung chính
Hướng dẫn AI

Hướng dẫn trình phát hiện văn bản AI tiếng Trung: suy luận cục bộ, huấn luyện mô hình và xác minh kết quả

Hướng dẫn này trình bày cách cài đặt Chinese Guba AI Detector, cấu hình mô hình cục bộ, kiểm tra hàng loạt văn bản CSV, hiểu các trường đầu ra, đồng thời huấn luyện và xác minh mô hình sau khi có quyền sử dụng dữ liệu hợp pháp.

Hướng dẫn phát hiện văn bản AI tiếng Trung: suy luận cục bộ và huấn luyện mô hình

Giới thiệu dự án

Chinese Guba AI Detector là công cụ phân loại nhị phân văn bản AI tiếng Trung. Dự án dựa trên hfl/chinese-roberta-wwm-ext và được tinh chỉnh bằng ngữ liệu C-ReD, từng được sử dụng để đo lường nghiên cứu đối với văn bản trên các diễn đàn chứng khoán. Kho lưu trữ hiện công khai các tập lệnh huấn luyện, suy luận, kiểm thử và tài liệu hướng dẫn liên quan.

Công cụ tải mô hình cục bộ và không gọi API bên ngoài. Cần lưu ý rằng kho hiện không cung cấp trọng số và tệp bộ tách từ sau huấn luyện; người dùng phải tự thu thập mô hình hợp pháp và đặt vào thư mục được chỉ định.

Hạn chế quan trọng: Đây không phải là mô hình chính thức của C-ReD; quá trình tinh chỉnh này không sử dụng bài đăng trên các diễn đàn chứng khoán và chưa được kiểm thử bằng dữ liệu gán nhãn thủ công trong lĩnh vực diễn đàn tài chính. Điểm số của mô hình không thể chứng minh danh tính thực của tác giả văn bản và không nên được dùng làm căn cứ duy nhất để xác định danh tính cá nhân hoặc xử phạt nội dung.

Tính năng chính

  • Phân loại nhị phân văn bản AI và văn bản do con người viết trong CSV UTF-8.
  • Xuất điểm softmax của lớp AI và kết quả phân loại dựa trên ngưỡng.
  • Mặc định đọc 帖子内容文本, đồng thời hỗ trợ tùy chỉnh cột văn bản và cột mã cổ phiếu.
  • Chuẩn hóa 股吧代码 thành văn bản sáu chữ số và giữ lại các số 0 ở đầu.
  • Giữ nguyên các cột khác trong tệp đầu vào, không chủ động thay đổi nội dung văn bản.
  • Giảm rủi ro hỏng tệp đầu ra thông qua tệp tạm và thay thế nguyên tử.
  • Hỗ trợ kiểm tra tính toàn vẹn, tính toán lại khi ghi đè và bảo vệ ghi bởi một tiến trình.
  • Cung cấp tập lệnh huấn luyện, kiểm thử đơn vị và kiểm toán nội dung công khai.

Cài đặt môi trường chạy

1. Chuẩn bị Python và PyTorch

Môi trường kiểm thử của dự án là Python 3.10. Nên sử dụng môi trường ảo riêng và, tùy theo thiết bị CPU hoặc CUDA, cài đặt PyTorch 2.5.1 phù hợp với thiết bị theo hướng dẫn chính thức của PyTorch.

Trong Windows PowerShell, chuyển đến thư mục gốc của kho, sau đó tạo và kích hoạt môi trường ảo:

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

CPU có thể chạy suy luận, nhưng GPU CUDA thường nhanh hơn. Nếu xảy ra lỗi thiếu bộ nhớ GPU, trước tiên hãy giảm --batch-size từ giá trị mặc định hoặc giá trị lớn xuống 8 hoặc 4.

2. Chuẩn bị mô hình cục bộ

Đặt mô hình đã huấn luyện và thu thập hợp pháp vào models/detector. Thư mục này cần chứa các tệp sau:

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

Các tệp trọng số và bộ tách từ này không được bao gồm trong kho công khai. Nếu thư mục không đầy đủ, tập lệnh suy luận sẽ không thể tải mô hình bình thường.

Chạy lần kiểm tra đầu tiên

1. Chuẩn bị CSV đầu vào

Tệp đầu vào phải là CSV UTF-8. Tên cột văn bản mặc định là 帖子内容文本, tên cột mã cổ phiếu mặc định là 股吧代码. Các ví dụ do kho cung cấp đều là văn bản hư cấu, không chứa người dùng thật, bài đăng thật hoặc nhãn sự thật do con người và AI tạo ra.

2. Thực hiện suy luận hàng loạt

Sau khi chuẩn bị xong mô hình, chạy lệnh sau trong thư mục gốc của kho:

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

Lệnh sẽ tải mô hình cục bộ từ models/detector, đọc CSV mẫu và ghi kết quả phát hiện vào outputs/demo.csv. Toàn bộ quá trình kiểm tra không gọi API bên ngoài.

3. Hiểu các trường đầu ra

Tệp đầu ra giữ lại các cột ban đầu và thêm các trường sau:

  • Có phải do AI tạo: là 1 khi điểm số mô hình chưa làm tròn lớn hơn hoặc bằng ngưỡng, ngược lại là 0; văn bản trống được giữ nguyên là trống.
  • Xác suất do AI tạo: điểm softmax của lớp AI. Điểm này chưa được hiệu chỉnh xác suất, nên không thể xem trực tiếp là xác suất thực.
  • Mô hình phát hiện AI: mã định danh mô hình công khai, không ghi đường dẫn mô hình trên máy cục bộ.
  • Ngưỡng phát hiện AI: giá trị mặc định là 0.7. Đây là cấu hình của dự án, không phải ngưỡng tối ưu được nghiên cứu xác nhận.
  • Trạng thái phát hiện AI: ok nghĩa là đã hoàn tất phát hiện, empty_text nghĩa là văn bản đầu vào trống.

Sử dụng các cột CSV tùy chỉnh

Nếu tên cột văn bản là text và tên cột mã cổ phiếu là id, có thể chỉ định rõ:

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

Nếu tệp đầu vào không có cột mã cổ phiếu, hãy truyền vào chuỗi rỗng:

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

Khi cột mã cổ phiếu tồn tại, chương trình sẽ chuẩn hóa cột này thành văn bản sáu chữ số và giữ lại các số 0 ở đầu. Các cột khác trong đầu vào sẽ được giữ nguyên dưới dạng văn bản.

Ghi đè, kiểm tra và xử lý song song

Tạo lại kết quả đầy đủ

Kết quả suy luận trước tiên được ghi vào tệp tạm, sau khi thành công mới thay thế nguyên tử tệp đích. Khi chạy lại cùng một lệnh, chương trình chỉ bỏ qua kết quả hiện có nếu giá trị kiểm tra của đầu vào, mô hình, tham số và đầu ra đầy đủ đều khớp.

Nếu cần bỏ qua kết quả hiện có và tạo lại toàn bộ tệp, hãy thêm --overwrite:

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

Gián đoạn và tác vụ song song

Sau khi bị gián đoạn, chương trình sẽ tính toán lại từ đầu tệp thay vì tiếp tục ghi một cách mù quáng dựa trên số dòng hiện có. Cùng một đường dẫn đầu ra chỉ cho phép một tiến trình ghi tại một thời điểm. Nếu cần xử lý song song, hãy phân bổ tệp đầu vào và tệp đầu ra khác nhau cho mỗi tiến trình.

Giới hạn độ dài và diễn giải kết quả

Theo mặc định, mỗi văn bản chỉ được nhập tối đa 256 token; phần vượt quá sẽ bị cắt. Số token không tương đương với số chữ Hán, vì vậy không nên hiểu giới hạn này là 256 chữ Hán.

Một phần nội dung bài đăng trên diễn đàn chứng khoán trong nghiên cứu ban đầu chỉ bao gồm các đoạn đã thu thập dài khoảng 203 ký tự, vì vậy đối tượng được kiểm tra có thể chỉ là một phần nội dung gốc. Khi diễn giải kết quả, cần đồng thời xem xét việc cắt văn bản, khác biệt lĩnh vực và thiếu ngữ cảnh.

Xác suất do AI tạo là điểm softmax chưa được hiệu chỉnh, còn ngưỡng mặc định 0.7 chỉ là thiết lập của dự án. Thay đổi ngưỡng sẽ làm thay đổi kết quả phân loại nhị phân, nhưng README không tuyên bố bất kỳ ngưỡng nào là giá trị tối ưu đã được luận văn xác minh.

Huấn luyện mô hình bằng dữ liệu C-ReD

Điều kiện cấp phép

Trước khi huấn luyện, phải tự xác minh và có được quyền sử dụng hợp pháp dữ liệu C-ReD. Kho thượng nguồn không có giấy phép rõ ràng; việc trích dẫn bài nghiên cứu không đồng nghĩa với việc được cấp quyền sử dụng hoặc phân phối lại dữ liệu. Dự án này không sao chép dữ liệu C-ReD, và giấy phép MIT của kho không áp dụng cho dữ liệu C-ReD cùng các trọng số phái sinh.

Cài đặt phần phụ thuộc huấn luyện

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

Khởi động huấn luyện

Giả sử dữ liệu đã được thu thập hợp pháp và đặt tại data/C-ReD, có thể chạy:

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

Chương trình huấn luyện đọc các tệp CSV có tên chứa CReD_ và sử dụng các cột text và label trong đó. Nhãn dữ liệu nguồn được định nghĩa là 0=AI, 1=con người; khi huấn luyện sẽ được chuyển thành 0=con người, 1=AI.

Quy trình huấn luyện và các chỉ số lịch sử được ghi trong MODEL_CARD.md. Khi huấn luyện lại, chương trình sẽ khởi tạo bằng hạt giống ngẫu nhiên đầy đủ, nhưng các lần huấn luyện trước đây không thiết lập rõ hạt giống toàn cục trước khi khởi tạo mô hình, nên không thể đảm bảo tái tạo từng bit của trọng số cũ.

Kiểm thử và kiểm toán phát hành

Chạy toàn bộ kiểm thử đơn vị:

python -m unittest discover -s tests -v

Kiểm thử đơn vị sử dụng dữ liệu hư cấu và dự đoán mô phỏng, nên không cần tải mô hình. Kiểm thử khói với mô hình thật chỉ cho biết mô hình có thể được tải và thực hiện suy luận, không chứng minh kết quả dự đoán là chính xác.

Chạy kiểm toán nội dung công khai:

python scripts/audit_release.py

Kho công khai được kiểm tra bằng danh sách cho phép tệp và các mẫu thông tin nhạy cảm. CSV gốc từ diễn đàn chứng khoán, ID người đăng, biệt danh, IP, URL bài đăng, bảng dữ liệu của bài nghiên cứu, cơ sở dữ liệu thương mại, bộ nhớ đệm, nhật ký, đầu ra Notebook, điểm kiểm tra trung gian khi huấn luyện và lịch sử Git không được đưa vào kho. Phạm vi khử nhận dạng cụ thể xem tại PRIVACY.md; quy trình phát hành xem tại docs/PUBLISHING.md.

Khuyến nghị sử dụng nâng cao

  1. Xác minh quy trình bằng dữ liệu hư cấu trước: sau khi xác nhận môi trường, tên cột, thư mục mô hình và đường dẫn đầu ra chính xác, mới xử lý dữ liệu hợp pháp của bạn.
  2. Giảm kích thước lô khi thiếu bộ nhớ GPU: trước tiên hãy thử --batch-size 8 hoặc --batch-size 4.
  3. Tránh dùng chung đường dẫn đầu ra: tác vụ song song phải sử dụng các tệp đầu ra khác nhau để không kích hoạt giới hạn ghi bởi một tiến trình.
  4. Lưu tham số chạy: mô hình, đầu vào, tham số và giá trị kiểm tra đầu ra ảnh hưởng đến việc tái sử dụng kết quả; sau khi điều chỉnh bất kỳ mục nào, cần kiểm tra lại đầu ra.
  5. Thận trọng khi diễn giải văn bản dài: nội dung vượt quá 256 token sẽ bị cắt, nên mô hình có thể không nhìn thấy phần cuối.
  6. Không xem điểm số là bằng chứng nhận dạng: điểm softmax chưa được hiệu chỉnh và dự án thiếu kiểm chứng bằng dữ liệu gán nhãn thủ công trong lĩnh vực diễn đàn tài chính.
  7. Xác nhận giấy phép trước khi phát hành trọng số: mã nguồn và tài liệu sử dụng giấy phép MIT, mô hình nền sử dụng Apache-2.0, nhưng dữ liệu C-ReD và trọng số phái sinh cần được cấp phép riêng.

Kết luận

Chinese Guba AI Detector cung cấp quy trình phân loại văn bản AI tiếng Trung có thể chạy cục bộ, bao gồm suy luận CSV, huấn luyện mô hình, kiểm thử đơn vị và kiểm toán phát hành. Khi sử dụng thực tế, trước tiên cần thu thập hợp pháp mô hình hoặc dữ liệu huấn luyện, đồng thời xem đầu ra là điểm số mô hình phục vụ nghiên cứu, không phải bằng chứng chắc chắn về danh tính tác giả văn bản.