ngocdang83 commited on
Commit
c6ba81c
·
verified ·
1 Parent(s): 95aaea6

notebook Kaggle

Browse files
Files changed (1) hide show
  1. HachimiMT_Kaggle.ipynb +78 -0
HachimiMT_Kaggle.ipynb ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": "# HachimiMT — Dịch Trung → Việt (Kaggle, GPU T4 miễn phí)\n\nChạy app dịch truyện **HachimiMT / MoxhiMT** (CTranslate2) trên Kaggle — GPU T4 miễn phí (~30 giờ/tuần), không cần cài gì trên máy.\n\n## ⚡ Trước khi chạy — bật GPU + Internet\n1. **`Settings → Accelerator → GPU T4 x2`** (app tự dùng các GPU CUDA khả dụng; T4 x2 thường nhanh hơn 1 T4 khi văn bản đủ dài).\n2. **`Settings → Internet → on`** (BẮT BUỘC — để tải code + model và tạo link công khai).\n3. Rồi **`Run All`**.\n\n> ⚠️ **Chọn `GPU T4 x2`** — **KHÔNG chọn `GPU P100`**: P100 (kiến trúc cũ) không hỗ trợ kiểu tính `int8_float16` của model nên app sẽ rớt về CPU (chậm ~50×). Cũng **không chọn TPU** (CTranslate2 không dùng được TPU).\n\n**Tốc độ T4** (đo thật): **~27.000 chữ Hán/giây** — 1 triệu chữ ~37 giây, cả bộ truyện 2,4 triệu chữ ~1 phút 30 giây. Với T4 x2, mức tăng còn phụ thuộc độ dài văn bản và batch/window.\n\nCell cuối in ra **link công khai** (`*.gradio.live`) — bấm vào đó để mở giao diện dịch.\n\nMã nguồn: HF Space [ngocdang83/HachimiMT-demo](https://huggingface.co/spaces/ngocdang83/HachimiMT-demo)."
7
+ },
8
+ {
9
+ "cell_type": "markdown",
10
+ "metadata": {},
11
+ "source": [
12
+ "### 1. Tải mã nguồn app (từ HF Space, ~75 KB)"
13
+ ]
14
+ },
15
+ {
16
+ "cell_type": "code",
17
+ "execution_count": null,
18
+ "metadata": {},
19
+ "outputs": [],
20
+ "source": [
21
+ "import urllib.request, zipfile, os, shutil\n",
22
+ "\n",
23
+ "ZIP_URL = \"https://huggingface.co/spaces/ngocdang83/HachimiMT-demo/resolve/main/hachimimt-local.zip\"\n",
24
+ "urllib.request.urlretrieve(ZIP_URL, \"hachimimt-local.zip\")\n",
25
+ "shutil.rmtree(\"hachimimt\", ignore_errors=True) # xóa bản cũ nếu chạy lại\n",
26
+ "with zipfile.ZipFile(\"hachimimt-local.zip\") as z:\n",
27
+ " z.extractall(\".\")\n",
28
+ "print(\"Đã tải + giải nén:\", sorted(os.listdir(\"hachimimt\")))"
29
+ ]
30
+ },
31
+ {
32
+ "cell_type": "markdown",
33
+ "metadata": {},
34
+ "source": [
35
+ "### 2. Cài thư viện (CTranslate2 + Gradio + tokenizer) — ~1 phút\n",
36
+ "\n",
37
+ "> Nếu thấy vài dòng đỏ `ERROR: pip's dependency resolver ...` về gói Kaggle cài sẵn — **vô hại**, cứ chạy tiếp."
38
+ ]
39
+ },
40
+ {
41
+ "cell_type": "code",
42
+ "execution_count": null,
43
+ "metadata": {},
44
+ "outputs": [],
45
+ "source": [
46
+ "!pip install -q -r hachimimt/requirements.txt"
47
+ ]
48
+ },
49
+ {
50
+ "cell_type": "markdown",
51
+ "metadata": {},
52
+ "source": [
53
+ "### 3. Chạy app — đợi link `*.gradio.live` hiện ra rồi bấm vào\n",
54
+ "\n",
55
+ "Lần dịch đầu sẽ tự tải model (~57 MB) từ Hugging Face."
56
+ ]
57
+ },
58
+ {
59
+ "cell_type": "code",
60
+ "execution_count": null,
61
+ "metadata": {},
62
+ "outputs": [],
63
+ "source": "import os, sys\n\n# Bật link share công khai (gradio.live) — app đọc cờ này (cần Internet=on).\nos.environ[\"HACHIMIMT_SHARE\"] = \"1\"\n# Kaggle T4 x2 đồng cấu hình: cho app tự dùng cả 2 GPU nếu có.\nos.environ[\"HACHIMIMT_AUTO_ALL_GPUS\"] = \"1\"\nsys.path.insert(0, os.path.abspath(\"hachimimt/src\"))\n\n# Báo rõ đang chạy GPU hay CPU.\nfrom hardware import detect_hardware_profile\n_hw = detect_hardware_profile()\nif _hw.has_cuda:\n print(f\"✅ Đang dùng GPU: {_hw.gpu_name} — nhanh! ({_hw.summary})\")\nelse:\n print(\"⚠️ Đang chạy CPU (chậm ~50× GPU). Kiểm tra:\\n\"\n \" • Settings → Accelerator → GPU T4 x2 (KHÔNG chọn P100 — không tương thích, \"\n \"sẽ rớt CPU)\\n\"\n \" • Settings → Internet → on\\n\"\n \" rồi Run All lại.\")\n\nimport app\napp.main()"
64
+ }
65
+ ],
66
+ "metadata": {
67
+ "kernelspec": {
68
+ "display_name": "Python 3",
69
+ "language": "python",
70
+ "name": "python3"
71
+ },
72
+ "language_info": {
73
+ "name": "python"
74
+ }
75
+ },
76
+ "nbformat": 4,
77
+ "nbformat_minor": 4
78
+ }