ngocdang83 commited on
Commit
47ed9bb
·
verified ·
1 Parent(s): 98bb457

feat(space): add MoxhiMT-30-QT and rebuild zip

Browse files
HachimiMT_Benchmark_Profile.ipynb CHANGED
@@ -136,7 +136,7 @@
136
  "# Đổi các biến ở đây rồi chạy lại cell benchmark bên dưới.\n",
137
  "import os\n",
138
  "\n",
139
- "MODEL = \"HachimiMT-60\" # HachimiMT-60, HachimiMT-30, MoxhiMT-60, MoxhiMT-30, HirashibaMT-Medium, HirashibaMT-Tiny\n",
140
  "BEAM = 2 # 1 nhanh hơn, 2 thường cân bằng hơn\n",
141
  "CHUNK_MODE = \"sentence\" # sentence hoặc paragraph\n",
142
  "NORMALIZE = \"auto\" # auto, t2s, none\n",
 
136
  "# Đổi các biến ở đây rồi chạy lại cell benchmark bên dưới.\n",
137
  "import os\n",
138
  "\n",
139
+ "MODEL = \"HachimiMT-60\" # HachimiMT-60, HachimiMT-30, MoxhiMT-60, MoxhiMT-30, MoxhiMT-30-QT, HirashibaMT-Medium, HirashibaMT-Tiny\n",
140
  "BEAM = 2 # 1 nhanh hơn, 2 thường cân bằng hơn\n",
141
  "CHUNK_MODE = \"sentence\" # sentence hoặc paragraph\n",
142
  "NORMALIZE = \"auto\" # auto, t2s, none\n",
README_hachimimt_colab.md CHANGED
@@ -1,194 +1,203 @@
1
- <p align="center">
2
- <img src="assets/hachimimt-logo.png" alt="HachimiMT logo" width="180">
3
- </p>
4
-
5
- # HachimiMT — Dịch truyện Trung → Việt bằng AI, chạy miễn phí trên Colab / Kaggle
6
-
7
- > **Dịch truyện tiên hiệp / huyền huyễn / web-novel Trung → Việt** bằng mô hình
8
- > dịch máy neural (CTranslate2 INT8), cho ra văn **đọc trôi chảy như tiếng Việt
9
- > thật** — không phải "convert" sát từng chữ. Chạy ngay trên **Google Colab** hoặc
10
- > **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
11
- > cần card đồ họa ở nhà.
12
-
13
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Colab.ipynb)
14
- [![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/kernels/welcome?src=https://github.com/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Kaggle.ipynb)
15
-
16
- 🌐 **Bản demo online (CPU, dùng ngay không cài gì):**
17
- [ngocdang83/HachimiMT-demo](https://huggingface.co/spaces/ngocdang83/HachimiMT-demo)
18
-
19
- ---
20
-
21
- ## HachimiMT là gì?
22
-
23
- HachimiMT (và biến thể MoxhiMT) là các **mô hình dịch máy chuyên cho truyện mạng
24
- Trung Quốc** — tiên hiệp, huyền huyễn, đô thị, khoa huyễn. Khác với từ điển thay
25
- chữ, đây là mạng neural Transformer (kiến trúc Marian) được huấn luyện riêng để
26
- **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ố
27
- / cú pháp Hán cổ tốt hơn cách convert truyền thống.
28
-
29
- 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í
30
- 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
31
- phút** trên GPU. Notebook trong repo này đóng gói sẵn toàn bộ: bấm chạy → mở link →
32
- dán văn bản → tải bản dịch.
33
-
34
- ---
35
-
36
- ## So với QuickTranslator + Vietphrase
37
-
38
- QuickTranslator (QT) cùng bộ từ điển Vietphrase là cách đọc truyện Trung phổ biến
39
- nhất nhiều năm nay. HachimiMT **không thay thế hoàn toàn** QT — mỗi bên mạnh ở chỗ
40
- khác nhau. Chọn đúng theo nhu cầu:
41
-
42
- | | **QuickTranslator + Vietphrase** | **HachimiMT (notebook này)** |
43
- |---|---|---|
44
- | **Cách dịch** | Tra từ điển, thay chữ theo bảng | Mạng neural, dịch nghĩa cả câu |
45
- | **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** |
46
- | **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 |
47
- | **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 |
48
- | **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 |
49
- | **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 |
50
- | **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 |
51
-
52
- **Tóm lại:**
53
- - Muốn **đọc nhanh, mượt, đỡ "lai Hán-Việt"** → HachimiMT thắng về độ trôi chảy.
54
- - 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ữ
55
- bằng từ điển tự pin** → QuickTranslator vẫn là lựa chọn tốt.
56
- - Nhiều người dùng **cả hai**: HachimiMT để đọc trôi chảy, QT khi cần tra đúng một
57
- tên riêng cố định.
58
-
59
- > So sánh ở đây nói về **độ trôi chảy của văn dịch**, không khẳng định HachimiMT
60
- > "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ó
61
- > lợi thế (xem mục [Hạn chế](#hạn-chế-cần-biết-trước)).
62
-
63
- ---
64
-
65
- ## Bắt đầu nhanh (3 cách)
66
-
67
- ### Cách 1 — Google Colab (dễ nhất, khuyên dùng)
68
-
69
- [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Colab.ipynb)
70
-
71
- 1. Bấm nút **Open In Colab** ở trên.
72
- 2. **Bật GPU trước** (rất nên — nhanh gấp nhiều lần):
73
- **`Runtime → Change runtime type → T4 GPU → Save`**
74
- *(Colab tiếng Việt: `Thời gian chạy → Thay đổi loại thời gian chạy → T4 GPU → Lưu`)*
75
- ⚠️ Chọn đúng **T4 GPU** — **KHÔNG** chọn **TPU** (CTranslate2 không chạy được TPU,
76
- sẽ rớt về CPU chậm).
77
- 3. **`Runtime → Run all`** (Ctrl+F9) — *tiếng Việt: `Thời gian chạy → Chạy tất cả`*.
78
- 4. Đợi cài đặt xong, cell cuối in ra một **link công khai `*.gradio.live`** → bấm
79
- vào để mở giao diện dịch.
80
-
81
- ### Cách 2 — Kaggle (có 2× GPU T4, nhanh hơn nữa)
82
-
83
- [![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/kernels/welcome?src=https://github.com/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Kaggle.ipynb)
84
-
85
- 1. Bấm **Open in Kaggle** → Kaggle tạo notebook từ repo này (cần tài khoản Kaggle).
86
- 2. Phải xác minh số điện thoại để bật GPU; sau đó:
87
- **Settings (bên phải) → Accelerator → `GPU T4 x2`**, và **Internet → On**.
88
- ⚠️ **Tránh P100** (không hỗ trợ kiểu tính INT8 của mô hình) và **TPU**.
89
- 3. **`Run All`** → mở link `*.gradio.live` ở cell cuối.
90
-
91
- 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
92
- 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
93
- 1,9×, còn so với Kaggle ép 1 GPU chỉ chậm hơn khoảng 14%.
94
-
95
- ### Cách 3 — Cài về máy (chạy offline bằng CPU)
96
-
97
- 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
98
- GPU nhiều lần (xem mục Tốc độ). Hướng dẫn chi tiết nằm trong
99
- [bản demo HF Space](https://huggingface.co/spaces/ngocdang83/HachimiMT-demo)
100
- (mục "📦 Cài bản local").
101
-
102
- ---
103
-
104
- ## Tốc độ (đo thật)
105
-
106
- | Môi trường | Tốc độ đo thật | Bộ truyện 2,4 triệu chữ |
107
- |---|---|---|
108
- | **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) |
109
- | **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ữ |
110
- | **CPU (bản máy / demo)** | ~500 chữ/giây | chậm — chỉ nên dùng cho đoạn ngắn |
111
-
112
- > **GPU nhanh hơn CPU hàng chục lần.** Vì vậy luôn **bật GPU** trên Colab/Kaggle.
113
- > 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
114
- > nguyên bộ thì dùng Colab/Kaggle (GPU) hoặc cài về máy.
115
- >
116
- > *beam* càng cao dịch càng kỹ nhưng càng chậm; mặc định để 1–2 cho nhanh. Notebook
117
- > Colab đặt sẵn `HACHIMIMT_CT2_WINDOW_MULTIPLIER=16`, nhanh hơn window cũ khoảng
118
- > 25–31% trên T4 x1. Kaggle T4 x2 đặt window 8; nhờ auto multi-GPU, window hiệu dụng
119
- > là 32x để giữ cả hai GPU bận hơn trên file dài.
120
-
121
- ---
122
-
123
- ## Các mô hình có sẵn
124
-
125
- App cho chọn 4 mô hình; khi mở app sẵn chọn **HachimiMT-60**, đổi sang model khác
126
- bất cứ lúc nào (tự tải khi cần). Bốn mô hình **ngang hàng** — không có cái nào "tốt
127
- 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:
128
-
129
- | Mô hình | Cỡ | Đặc điểm |
130
- |---|---|---|
131
- | **HachimiMT-60** | 57 MB | Bản 60M dòng HachimiMT — giọng văn của riêng nó |
132
- | **HachimiMT-30** | 35 MB | Bản 30M, nhỏ & nhanh nhất — hợp máy yếu / cần tốc độ |
133
- | **MoxhiMT-60** | 58 MB | Bản 60M dòng MoxhiMT — giọng văn khác để đối chiếu |
134
- | **MoxhiMT-30** | 38 MB | Bản 30M dòng MoxhiMT — nhỏ, nhanh, giọng văn riêng |
135
-
136
- > Không model "đỉnh" tuyệt đối: dụ khoản **giữ tên riêng / xưng hô nhất
137
- > quán**, mấy bản kia lúc ổn định hơn HachimiMT-60; ngược lại HachimiMT-60 thể
138
- > hợp hơn ở đoạn khác. **Cách tốt nhất là thử cả 4 trên cùng một đoạn truyện của bạn
139
- > rồi chọn cái hợp gu nhất.**
140
-
141
- Repo hình trên Hugging Face:
142
- [HachimiMT-60](https://huggingface.co/ngocdang83/HachimiMT-60-zh-vi) ·
143
- [HachimiMT-30](https://huggingface.co/ngocdang83/HachimiMT-30-zh-vi) ·
144
- [MoxhiMT-60](https://huggingface.co/DanVP/MoxhiMT-60) ·
145
- [MoxhiMT-30](https://huggingface.co/DanVP/MoxhiMT-30)
146
-
147
- ---
148
-
149
- ## Tính năng app
150
-
151
- - 📄 **Dán văn bản hoặc tải file `.txt`** (tự nhận mã GB18030 / Big5 / UTF-8, hỗ
152
- trợ cả phồn thể lẫn giản thể).
153
- - ⚙️ **Chọn mô hình** và **beam** (đánh đổi tốc độ ↔ chất lượng).
154
- - 🈶 **Chuẩn hóa xưng hô Hán-Việt** (tùy chọn nâng cao, thử nghiệm): chuyển 哥哥/姐姐…
155
- 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
156
- đại. Mặc định tắt — bật khi cần.
157
- - 💾 **Xuất bản dịch ra `.txt`** để đọc offline.
158
- - ☁️ Trên Colab/Kaggle tự tạo **link công khai** chia sẻ được tạm thời.
159
-
160
- ---
161
-
162
- ## Hạn chế (cần biết trước)
163
-
164
- Để công bằng, đây những chỗ HachimiMT **chưa bằng** cách dịch cũ:
165
-
166
- - **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
167
- 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ỗ
168
- **từ điển pin tay của QuickTranslator vẫn nhỉnh hơn** — bạn cố định một tên là cố
169
- định mãi. (HachimiMT không cho sửa từ điển.)
170
- - **Cần GPU để nhanh.** CPU (bản máy / demo HF) chậm hơn nhiều lần; dịch nguyên bộ
171
- truyện trên CPU không thực tế.
172
- - ** hình cố định**, không tùy biến thuật ngữ / không thêm từ điển riêng.
173
- - hình nhỏ đôi khi vẫn câu khó hiểu đoạn quá dài hoặc nội dung hiếm gặp.
174
-
175
- 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
176
- thuật ngữ), hãy dùng kèm QuickTranslator. Còn nếu ưu tiên **đọc trôi chảy, ít lai
177
- Hán-Việt**, HachimiMT một lựa chọn đáng thử.
178
-
179
- ---
180
-
181
- ## Liên kết
182
-
183
- - 🌐 Demo online (CPU): https://huggingface.co/spaces/ngocdang83/HachimiMT-demo
184
- - 🤖 Mô hình: [HachimiMT-60](https://huggingface.co/ngocdang83/HachimiMT-60-zh-vi) ·
185
- [HachimiMT-30](https://huggingface.co/ngocdang83/HachimiMT-30-zh-vi) ·
186
- [MoxhiMT-60](https://huggingface.co/DanVP/MoxhiMT-60) ·
187
- [MoxhiMT-30](https://huggingface.co/DanVP/MoxhiMT-30)
188
- - 📓 Notebook: [Colab](HachimiMT_Colab.ipynb) · [Kaggle](HachimiMT_Kaggle.ipynb)
189
-
190
- ---
191
-
192
- *HachimiMT là mô hình dịch máy neural Trung→Việt chuyên cho truyện mạng, mã nguồn
193
- mở trên Hugging Face. Repo này chỉ chứa notebook + hướng dẫn; bản dịch do mô hình
194
- sinh tự động và có thể cần biên tập lại trước khi xuất bản.*
 
 
 
 
 
 
 
 
 
 
1
+ <p align="center">
2
+ <img src="assets/hachimimt-logo.png" alt="HachimiMT logo" width="180">
3
+ </p>
4
+
5
+ # HachimiMT — Dịch truyện Trung → Việt bằng AI, chạy miễn phí trên Colab / Kaggle
6
+
7
+ > **Dịch truyện tiên hiệp / huyền huyễn / web-novel Trung → Việt** bằng mô hình
8
+ > dịch máy neural (CTranslate2 INT8), cho ra văn **đọc trôi chảy như tiếng Việt
9
+ > thật** — không phải "convert" sát từng chữ. Chạy ngay trên **Google Colab** hoặc
10
+ > **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
11
+ > cần card đồ họa ở nhà.
12
+
13
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Colab.ipynb)
14
+ [![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/kernels/welcome?src=https://github.com/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Kaggle.ipynb)
15
+
16
+ 🌐 **Bản demo online (CPU, dùng ngay không cài gì):**
17
+ [ngocdang83/HachimiMT-demo](https://huggingface.co/spaces/ngocdang83/HachimiMT-demo)
18
+
19
+ ---
20
+
21
+ ## HachimiMT là gì?
22
+
23
+ HachimiMT (và biến thể MoxhiMT) là các **mô hình dịch máy chuyên cho truyện mạng
24
+ Trung Quốc** — tiên hiệp, huyền huyễn, đô thị, khoa huyễn. Khác với từ điển thay
25
+ chữ, đây là mạng neural Transformer (kiến trúc Marian) được huấn luyện riêng để
26
+ **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ố
27
+ / cú pháp Hán cổ tốt hơn cách convert truyền thống.
28
+
29
+ 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í
30
+ 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
31
+ phút** trên GPU. Notebook trong repo này đóng gói sẵn toàn bộ: bấm chạy → mở link →
32
+ dán văn bản → tải bản dịch.
33
+
34
+ ---
35
+
36
+ ## So với QuickTranslator + Vietphrase
37
+
38
+ QuickTranslator (QT) cùng bộ từ điển Vietphrase là cách đọc truyện Trung phổ biến
39
+ nhất nhiều năm nay. HachimiMT **không thay thế hoàn toàn** QT — mỗi bên mạnh ở chỗ
40
+ khác nhau. Chọn đúng theo nhu cầu:
41
+
42
+ | | **QuickTranslator + Vietphrase** | **HachimiMT (notebook này)** |
43
+ |---|---|---|
44
+ | **Cách dịch** | Tra từ điển, thay chữ theo bảng | Mạng neural, dịch nghĩa cả câu |
45
+ | **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** |
46
+ | **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 |
47
+ | **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 |
48
+ | **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 |
49
+ | **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 |
50
+ | **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 |
51
+
52
+ **Tóm lại:**
53
+ - Muốn **đọc nhanh, mượt, đỡ "lai Hán-Việt"** → HachimiMT thắng về độ trôi chảy.
54
+ - 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ữ
55
+ bằng từ điển tự pin** → QuickTranslator vẫn là lựa chọn tốt.
56
+ - Nhiều người dùng **cả hai**: HachimiMT để đọc trôi chảy, QT khi cần tra đúng một
57
+ tên riêng cố định.
58
+
59
+ > So sánh ở đây nói về **độ trôi chảy của văn dịch**, không khẳng định HachimiMT
60
+ > "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ó
61
+ > lợi thế (xem mục [Hạn chế](#hạn-chế-cần-biết-trước)).
62
+
63
+ ---
64
+
65
+ ## Bắt đầu nhanh (3 cách)
66
+
67
+ ### Cách 1 — Google Colab (dễ nhất, khuyên dùng)
68
+
69
+ [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Colab.ipynb)
70
+
71
+ 1. Bấm nút **Open In Colab** ở trên.
72
+ 2. **Bật GPU trước** (rất nên — nhanh gấp nhiều lần):
73
+ **`Runtime → Change runtime type → T4 GPU → Save`**
74
+ *(Colab tiếng Việt: `Thời gian chạy → Thay đổi loại thời gian chạy → T4 GPU → Lưu`)*
75
+ ⚠️ Chọn đúng **T4 GPU** — **KHÔNG** chọn **TPU** (CTranslate2 không chạy được TPU,
76
+ sẽ rớt về CPU chậm).
77
+ 3. **`Runtime → Run all`** (Ctrl+F9) — *tiếng Việt: `Thời gian chạy → Chạy tất cả`*.
78
+ 4. Đợi cài đặt xong, cell cuối in ra một **link công khai `*.gradio.live`** → bấm
79
+ vào để mở giao diện dịch.
80
+
81
+ ### Cách 2 — Kaggle (có 2× GPU T4, nhanh hơn nữa)
82
+
83
+ [![Open in Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/kernels/welcome?src=https://github.com/ngocdang8311/hachimimt-colab/blob/master/HachimiMT_Kaggle.ipynb)
84
+
85
+ 1. Bấm **Open in Kaggle** → Kaggle tạo notebook từ repo này (cần tài khoản Kaggle).
86
+ 2. Phải xác minh số điện thoại để bật GPU; sau đó:
87
+ **Settings (bên phải) → Accelerator → `GPU T4 x2`**, và **Internet → On**.
88
+ ⚠️ **Tránh P100** (không hỗ trợ kiểu tính INT8 của mô hình) và **TPU**.
89
+ 3. **`Run All`** → mở link `*.gradio.live` ở cell cuối.
90
+
91
+ 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
92
+ 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
93
+ 1,9×, còn so với Kaggle ép 1 GPU chỉ chậm hơn khoảng 14%.
94
+
95
+ ### Cách 3 — Cài về máy (chạy offline bằng CPU)
96
+
97
+ 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
98
+ GPU nhiều lần (xem mục Tốc độ). Hướng dẫn chi tiết nằm trong
99
+ [bản demo HF Space](https://huggingface.co/spaces/ngocdang83/HachimiMT-demo)
100
+ (mục "📦 Cài bản local").
101
+
102
+ ---
103
+
104
+ ## Tốc độ (đo thật)
105
+
106
+ | Môi trường | Tốc độ đo thật | Bộ truyện 2,4 triệu chữ |
107
+ |---|---|---|
108
+ | **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) |
109
+ | **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ữ |
110
+ | **CPU (bản máy / demo)** | ~500 chữ/giây | chậm — chỉ nên dùng cho đoạn ngắn |
111
+
112
+ > **GPU nhanh hơn CPU hàng chục lần.** Vì vậy luôn **bật GPU** trên Colab/Kaggle.
113
+ > 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
114
+ > nguyên bộ thì dùng Colab/Kaggle (GPU) hoặc cài về máy.
115
+ >
116
+ > *beam* càng cao dịch càng kỹ nhưng càng chậm; mặc định để 1–2 cho nhanh. Notebook
117
+ > Colab đặt sẵn `HACHIMIMT_CT2_WINDOW_MULTIPLIER=16`, nhanh hơn window cũ khoảng
118
+ > 25–31% trên T4 x1. Kaggle T4 x2 đặt window 8; nhờ auto multi-GPU, window hiệu dụng
119
+ > là 32x để giữ cả hai GPU bận hơn trên file dài.
120
+
121
+ ---
122
+
123
+ ## Các mô hình có sẵn
124
+
125
+ App cho chọn 7 mô hình; khi mở app sẵn chọn **HachimiMT-60**, đổi sang model khác
126
+ 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
127
+ 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:
128
+
129
+ | Mô hình | Cỡ | Đặc điểm |
130
+ |---|---|---|
131
+ | **HachimiMT-60** | 57 MB | Bản 60M dòng HachimiMT — giọng văn của riêng nó |
132
+ | **HachimiMT-30** | 35 MB | Bản 30M nhẹ trong nhóm Hachimi/Moxhi — hợp máy yếu / cần tốc độ |
133
+ | **MoxhiMT-60** | 58 MB | Bản 60M dòng MoxhiMT — giọng văn khác để đối chiếu |
134
+ | **MoxhiMT-30** | 38 MB | Bản 30M dòng MoxhiMT — nhỏ, nhanh, giọng văn riêng |
135
+ | **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`) |
136
+ | **HirashibaMT-Medium** | 62 MB | Model tham khảo Hirashiba cỡ vừa, CT2 qua mirror |
137
+ | **HirashibaMT-Tiny** | 17 MB | Model tham khảo rất nhẹ, phù hợp thử nhanh |
138
+
139
+ > Không model "đỉnh" tuyệt đối: ví dụ ở khoản **giữ tên riêng / xưng hô nhất
140
+ > quán**, mấy bản kia có lúc ổn định hơn HachimiMT-60; ngược lại HachimiMT-60 có thể
141
+ > 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
142
+ > rồi chọn cái hợp gu nhất.**
143
+
144
+ Repo mô hình trên Hugging Face:
145
+ [HachimiMT-60](https://huggingface.co/ngocdang83/HachimiMT-60-zh-vi) ·
146
+ [HachimiMT-30](https://huggingface.co/ngocdang83/HachimiMT-30-zh-vi) ·
147
+ [MoxhiMT-60](https://huggingface.co/DanVP/MoxhiMT-60) ·
148
+ [MoxhiMT-30](https://huggingface.co/DanVP/MoxhiMT-30) ·
149
+ [MoxhiMT-30-QT](https://huggingface.co/DanVP/MoxhiMT-30-QT) ·
150
+ [HirashibaMT-Medium](https://huggingface.co/Moleys/hirashiba-mt-medium) ·
151
+ [HirashibaMT-Tiny](https://huggingface.co/chi-vi/hirashiba-mt-tiny-zh-vi)
152
+
153
+ ---
154
+
155
+ ## Tính năng app
156
+
157
+ - 📄 **Dán văn bản hoặc tải file `.txt`** (tự nhận mã GB18030 / Big5 / UTF-8, hỗ
158
+ trợ cả phồn thể lẫn giản thể).
159
+ - ⚙️ **Chọn mô hình** và **beam** (đánh đổi tốc độ ↔ chất lượng).
160
+ - 🈶 **Chuẩn hóa xưng hô Hán-Việt** (tùy chọn nâng cao, thử nghiệm): chuyển 哥哥/姐姐…
161
+ 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
162
+ đại. Mặc định tắt bật khi cần.
163
+ - 💾 **Xuất bản dịch ra `.txt`** để đọc offline.
164
+ - ☁️ Trên Colab/Kaggle tự tạo **link công khai** chia sẻ được tạm thời.
165
+
166
+ ---
167
+
168
+ ## Hạn chế (cần biết trước)
169
+
170
+ Để công bằng, đây những chỗ HachimiMT **chưa bằng** cách dịch cũ:
171
+
172
+ - **Tên riêng hiếm thể dịch lệch giữa các đoạn.** hình nhỏ nên một số tên ít
173
+ gặp thể ra vài biến thể Hán-Việt khác nhau trong cùng truyện. Đây chính chỗ
174
+ **từ điển pin tay của QuickTranslator vẫn nhỉnh hơn** — bạn cố định một tên là cố
175
+ định mãi. (HachimiMT không cho sửa từ điển.)
176
+ - **Cần GPU để nhanh.** CPU (bản máy / demo HF) chậm hơn nhiều lần; dịch nguyên bộ
177
+ truyện trên CPU không thực tế.
178
+ - **Mô hình cố định**, không tùy biến thuật ngữ / không thêm từ điển riêng.
179
+ - 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.
180
+
181
+ 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
182
+ thuật ngữ), hãy dùng kèm QuickTranslator. Còn nếu ưu tiên **đọc trôi chảy, ít lai
183
+ Hán-Việt**, HachimiMT một lựa chọn đáng thử.
184
+
185
+ ---
186
+
187
+ ## Liên kết
188
+
189
+ - 🌐 Demo online (CPU): https://huggingface.co/spaces/ngocdang83/HachimiMT-demo
190
+ - 🤖 Mô hình: [HachimiMT-60](https://huggingface.co/ngocdang83/HachimiMT-60-zh-vi) ·
191
+ [HachimiMT-30](https://huggingface.co/ngocdang83/HachimiMT-30-zh-vi) ·
192
+ [MoxhiMT-60](https://huggingface.co/DanVP/MoxhiMT-60) ·
193
+ [MoxhiMT-30](https://huggingface.co/DanVP/MoxhiMT-30) ·
194
+ [MoxhiMT-30-QT](https://huggingface.co/DanVP/MoxhiMT-30-QT) ·
195
+ [HirashibaMT-Medium](https://huggingface.co/Moleys/hirashiba-mt-medium) ·
196
+ [HirashibaMT-Tiny](https://huggingface.co/chi-vi/hirashiba-mt-tiny-zh-vi)
197
+ - 📓 Notebook: [Colab](HachimiMT_Colab.ipynb) · [Kaggle](HachimiMT_Kaggle.ipynb)
198
+
199
+ ---
200
+
201
+ *HachimiMT là mô hình dịch máy neural Trung→Việt chuyên cho truyện mạng, mã nguồn
202
+ mở trên Hugging Face. Repo này chỉ chứa notebook + hướng dẫn; bản dịch do mô hình
203
+ sinh tự động và có thể cần biên tập lại trước khi xuất bản.*
hachimimt-local.zip CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:2aef88fb410eaf54f9bd7d3363e02b484db1c35a1af6009a4cbd7fdc3497076f
3
- size 126534
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8fd3fcbc0f4876e9247120221e121f6e95976b4814eb01d76a92cabc1345a660
3
+ size 128835
src/app.py CHANGED
@@ -1978,8 +1978,8 @@ mục `hachimimt`, chạy `setup.bat` (cài thư viện + tải model mặc đ
1978
 
1979
  - **GPU NVIDIA**: app mặc định chạy CPU; có nút **“Cài torch để bật GPU”** ngay trong
1980
  app (tải ~2–3 GB, một lần) → nhanh hơn nhiều lần với văn bản dài.
1981
- - Model (HachimiMT/MoxhiMT) tự tải từ Hugging Face lần đầu, sau đó chạy **offline**.
1982
- - Bản local mở khoá: chọn 4 model, dịch file `.txt`, không giới hạn CPU như Space.""",
1983
  elem_classes=["info-card"],
1984
  )
1985
 
 
1978
 
1979
  - **GPU NVIDIA**: app mặc định chạy CPU; có nút **“Cài torch để bật GPU”** ngay trong
1980
  app (tải ~2–3 GB, một lần) → nhanh hơn nhiều lần với văn bản dài.
1981
+ - Các model tự tải từ Hugging Face lần đầu, sau đó chạy **offline**.
1982
+ - Bản local mở khoá: chọn 7 model, dịch file `.txt`, không giới hạn CPU như Space.""",
1983
  elem_classes=["info-card"],
1984
  )
1985
 
src/translator.py CHANGED
@@ -163,6 +163,25 @@ MODELS: dict[str, ModelConfig] = {
163
  default_beam=2,
164
  ct2_size_mb=38,
165
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
166
  "HirashibaMT-Medium": ModelConfig(
167
  label="HirashibaMT-Medium",
168
  model_id="Moleys/hirashiba-mt-medium",
 
163
  default_beam=2,
164
  ct2_size_mb=38,
165
  ),
166
+ "MoxhiMT-30-QT": ModelConfig(
167
+ label="MoxhiMT-30-QT",
168
+ model_id="DanVP/MoxhiMT-30-QT",
169
+ use_marian_class=True,
170
+ generate_kwargs={
171
+ "max_new_tokens": 300,
172
+ # QT-register variant: same 37M Marian family as MoxhiMT-30, but
173
+ # targets are normalized toward ta/nguoi/han/nang. Keep the short
174
+ # 30M input cap and DO NOT add no_repeat_ngram_size: 711d70e showed
175
+ # no_repeat causes duplicate-name entity drift. repetition_penalty
176
+ # was isolated as safe there. Default beam stays 1 because this model
177
+ # is meant as a simple stable-pronoun option.
178
+ "repetition_penalty": 1.2,
179
+ },
180
+ ct2_max_input_tokens=160,
181
+ ct2_max_output_tokens=512,
182
+ default_beam=1,
183
+ ct2_size_mb=38,
184
+ ),
185
  "HirashibaMT-Medium": ModelConfig(
186
  label="HirashibaMT-Medium",
187
  model_id="Moleys/hirashiba-mt-medium",