HachimiMT-demo / README_hachimimt_colab.md
ngocdang83's picture
Deploy session-scoped glossary (GitHub 26806a5)
ba02d85 verified
|
Raw
History Blame Contribute Delete
12.7 kB

A newer version of the Gradio SDK is available: 6.26.0

Upgrade

HachimiMT logo

HachimiMT — Dịch truyện Trung → Việt bằng AI, chạy miễn phí trên Colab / Kaggle

Dịch truyện tiên hiệp / huyền huyễn / web-novel Trung → Việt bằng mô hình dịch máy neural (CTranslate2 INT8), cho ra văn đọc trôi chảy như tiếng Việt thật — không phải "convert" sát từng chữ. Chạy ngay trên Google Colab hoặc Kaggle với GPU miễn phí, hoặc cài về máy. Không cần tài khoản trả phí, không cần card đồ họa ở nhà.

Open In Colab Open in Kaggle

🌐 Bản demo online (CPU, dùng ngay không cài gì): ngocdang83/HachimiMT-demo


HachimiMT là gì?

HachimiMT (và biến thể MoxhiMT) là các mô hình dịch máy chuyên cho truyện mạng Trung Quốc — tiên hiệp, huyền huyễn, đô thị, khoa huyễn. Khác với từ điển thay chữ, đây là mạng neural Transformer (kiến trúc Marian) được huấn luyện riêng để dịch nghĩa cả câu, giữ giọng văn tiếng Việt tự nhiên, xử lý thành ngữ / điển cố / cú pháp Hán cổ tốt hơn cách convert truyền thống.

Mô hình rất nhỏ (35–58 MB, lượng tử INT8) nên chạy nhanh kể cả trên GPU miễn phí của Colab/Kaggle — một bộ truyện dài 2–3 triệu chữ Hán dịch xong trong khoảng 1 phút trên GPU. Notebook trong repo này đóng gói sẵn toàn bộ: bấm chạy → mở link → dán văn bản → tải bản dịch.


So với QuickTranslator + Vietphrase

QuickTranslator (QT) cùng bộ từ điển Vietphrase là cách đọc truyện Trung phổ biến nhất nhiều năm nay. HachimiMT không thay thế hoàn toàn QT — mỗi bên mạnh ở chỗ khác nhau. Chọn đúng theo nhu cầu:

QuickTranslator + Vietphrase HachimiMT (notebook này)
Cách dịch Tra từ điển, thay chữ theo bảng Mạng neural, dịch nghĩa cả câu
Văn đọc ra Sát từ gốc, đôi chỗ cứng / Hán-Việt thô Trôi chảy, tự nhiên như tiếng Việt
Thành ngữ, điển cố, cú pháp Hán cổ Thường dịch chữ-đối-chữ, khó hiểu Hiểu và diễn đạt lại mượt hơn
Chạy offline, tức thì ✅ Có, không cần mạng ⚠️ Cần GPU (Colab/Kaggle) để nhanh; bản máy/CPU chậm hơn
Nhất quán tên riêng Bạn pin tên trong từ điển → cố định mãi ⚠️ Tên hiếm có thể dịch lệch giữa các đoạn
Tùy biến từ điển ✅ Sửa, thêm, ghi đè thoải mái ❌ Mô hình cố định, không sửa từ điển
Tốc độ Tức thì (tra bảng) ~40.000 chữ/giây (Colab T4, beam 1) — rất nhanh, nhưng cần khởi động

Tóm lại:

  • Muốn đọc nhanh, mượt, đỡ "lai Hán-Việt" → HachimiMT thắng về độ trôi chảy.
  • Cần offline tuyệt đối, dịch tức thì, hoặc kiểm soát chặt tên riêng / thuật ngữ bằng từ điển tự pin → QuickTranslator vẫn là lựa chọn tốt.
  • Nhiều người dùng cả hai: HachimiMT để đọc trôi chảy, QT khi cần tra đúng một tên riêng cố định.

So sánh ở đây nói về độ trôi chảy của văn dịch, không khẳng định HachimiMT "chính xác hơn" — ở khoản giữ tên riêng nhất quán, từ điển pin tay của QT vẫn có lợi thế (xem mục Hạn chế).


Bắt đầu nhanh (3 cách)

Cách 1 — Google Colab (dễ nhất, khuyên dùng)

Open In Colab

  1. Bấm nút Open In Colab ở trên.
  2. Bật GPU trước (rất nên — nhanh gấp nhiều lần): Runtime → Change runtime type → T4 GPU → Save (Colab tiếng Việt: Thời gian chạy → Thay đổi loại thời gian chạy → T4 GPU → Lưu) ⚠️ Chọn đúng T4 GPUKHÔNG chọn TPU (CTranslate2 không chạy được TPU, sẽ rớt về CPU chậm).
  3. Runtime → Run all (Ctrl+F9) — tiếng Việt: Thời gian chạy → Chạy tất cả.
  4. Đợi cài đặt xong, cell cuối in ra một link công khai *.gradio.live → bấm vào để mở giao diện dịch.

Cách 2 — Kaggle (có 2× GPU T4, nhanh hơn nữa)

Open in Kaggle

  1. Bấm Open in Kaggle → Kaggle tạo notebook từ repo này (cần tài khoản Kaggle).
  2. Phải xác minh số điện thoại để bật GPU; sau đó: Settings (bên phải) → Accelerator → GPU T4 x2, và Internet → On. ⚠️ Tránh P100 (không hỗ trợ kiểu tính INT8 của mô hình) và TPU.
  3. Run All → mở link *.gradio.live ở cell cuối.

Kaggle T4×2 tận dụng cả 2 GPU nên vẫn nhanh nhất khi dịch file dài. Colab T4 1 GPU sau tối ưu window=16 đã tiệm cận hơn: beam 2 chậm hơn Kaggle T4×2 khoảng 1,9×, còn so với Kaggle ép 1 GPU chỉ chậm hơn khoảng 14%.

Cách 3 — Cài về máy (chạy offline bằng CPU)

Tải gói chạy-máy từ Space rồi chạy bằng Python — không cần GPU, nhưng CPU chậm hơn GPU nhiều lần (xem mục Tốc độ). Hướng dẫn chi tiết nằm trong bản demo HF Space (mục "📦 Cài bản local").


Tốc độ (đo thật)

Môi trường Tốc độ đo thật Bộ truyện 2,4 triệu chữ
Colab T4 (1 GPU) ~40.000 chữ Hán/giây (beam 1) · ~28.000 (beam 2) ~1 phút (beam 1) · ~1 phút 30 giây (beam 2)
Kaggle T4 × 2 (2 GPU) ~81.000 chữ/giây (beam 1) · ~54.000 (beam 2) ~35 giây (beam 1) · ~52 giây (beam 2) cho 2,84M chữ
CPU (bản máy / demo) ~500 chữ/giây chậm — chỉ nên dùng cho đoạn ngắn

GPU nhanh hơn CPU hàng chục lần. Vì vậy luôn bật GPU trên Colab/Kaggle. Bản demo HF Space chạy CPU dùng chung nên chỉ hợp dán thử vài đoạn; muốn dịch nguyên bộ thì dùng Colab/Kaggle (GPU) hoặc cài về máy.

beam càng cao dịch càng kỹ nhưng càng chậm; mặc định để 1–2 cho nhanh. Notebook Colab đặt sẵn HACHIMIMT_CT2_WINDOW_MULTIPLIER=16, nhanh hơn window cũ khoảng 25–31% trên T4 x1. Kaggle T4 x2 đặt window 8; nhờ auto multi-GPU, window hiệu dụng là 32x để giữ cả hai GPU bận hơn trên file dài.


Các mô hình có sẵn

App cho chọn 8 mô hình; khi mở app sẵn chọn HachimiMT-60, đổi sang model khác bất cứ lúc nào (tự tải khi cần). Các mô hình ngang hàng — không có cái nào "tốt nhất" cho mọi trường hợp; mỗi cái ra giọng văn hơi khác và mạnh/yếu ở chỗ khác nhau:

Mô hình Cỡ Đặc điểm
HachimiMT-60 57 MB Bản 60M dòng HachimiMT — giọng văn của riêng nó
HachimiMT-60-QT 58 MB Bản HachimiMT-60 đơn giản hóa ngôi xưng kiểu QT (ta/ngươi/hắn/nàng)
HachimiMT-30 35 MB Bản 30M nhẹ trong nhóm Hachimi/Moxhi — hợp máy yếu / cần tốc độ
MoxhiMT-60 58 MB Bản 60M dòng MoxhiMT — giọng văn khác để đối chiếu
MoxhiMT-30 38 MB Bản 30M dòng MoxhiMT — nhỏ, nhanh, giọng văn riêng
MoxhiMT-30-QT 38 MB Bản MoxhiMT-30 đơn giản hóa ngôi xưng kiểu QT (ta/ngươi/hắn/nàng)
HirashibaMT-Medium 62 MB Model tham khảo Hirashiba cỡ vừa, CT2 qua mirror
HirashibaMT-Tiny 17 MB Model tham khảo rất nhẹ, phù hợp thử nhanh

Không có model "đỉnh" tuyệt đối: ví dụ ở khoản giữ tên riêng / xưng hô nhất quán, mấy bản kia có lúc ổn định hơn HachimiMT-60; ngược lại HachimiMT-60 có thể hợp hơn ở đoạn khác. Cách tốt nhất là thử vài model trên cùng một đoạn truyện của bạn rồi chọn cái hợp gu nhất.

Repo mô hình trên Hugging Face: HachimiMT-60 · HachimiMT-60-QT · HachimiMT-30 · MoxhiMT-60 · MoxhiMT-30 · MoxhiMT-30-QT · HirashibaMT-Medium · HirashibaMT-Tiny


Tính năng app

  • 📄 Dán văn bản hoặc tải file .txt (tự nhận mã GB18030 / Big5 / UTF-8, hỗ trợ cả phồn thể lẫn giản thể).
  • ⚙️ Chọn mô hìnhbeam (đánh đổi tốc độ ↔ chất lượng).
  • 📚 Glossary tên riêng/thuật ngữ: nhập cặp Trung → Việt, alias tùy chọn, hỗ trợ nhập/xuất TSV/JSON; cột loại entity không bắt buộc.
  • 🈶 Chuẩn hóa xưng hô Hán-Việt (tùy chọn nâng cao, thử nghiệm): chuyển 哥哥/姐姐… sang ca ca / tỷ tỷ… theo văn phong tiên hiệp, nhận diện bối cảnh cổ trang vs hiện đại. Mặc định tắt — bật khi cần.
  • 💾 Xuất bản dịch ra .txt để đọc offline.
  • ☁️ Trên Colab/Kaggle tự tạo link công khai chia sẻ được tạm thời.

Hạn chế (cần biết trước)

Để công bằng, đây là những chỗ HachimiMT chưa bằng cách dịch cũ:

  • Tên riêng hiếm có thể dịch lệch giữa các đoạn. Mô hình nhỏ nên một số tên ít gặp có thể ra vài biến thể Hán-Việt khác nhau trong cùng truyện. Đây chính là chỗ glossary hỗ trợ chuẩn hóa các alias đã biết. Bản glossary an toàn hiện không tự chèn tên nếu mô hình bỏ hẳn entity.
  • Cần GPU để nhanh. CPU (bản máy / demo HF) chậm hơn nhiều lần; dịch nguyên bộ truyện trên CPU không thực tế.
  • Glossary chưa phải constrained decoding: nó chuẩn hóa alias sau dịch thay vì ép model sinh một entity bằng placeholder.
  • Mô hình nhỏ → đôi khi vẫn có câu khó hiểu ở đoạn quá dài hoặc nội dung hiếm gặp.

Nếu những điểm trên là then chốt với bạn (đọc offline tuyệt đối, kiểm soát chặt thuật ngữ), hãy dùng kèm QuickTranslator. Còn nếu ưu tiên đọc trôi chảy, ít lai Hán-Việt, HachimiMT là một lựa chọn đáng thử.


Liên kết


HachimiMT là mô hình dịch máy neural Trung→Việt chuyên cho truyện mạng, mã nguồn mở trên Hugging Face. Repo này chỉ chứa notebook + hướng dẫn; bản dịch do mô hình sinh tự động và có thể cần biên tập lại trước khi xuất bản.