hainc commited on
Commit
2445d45
·
1 Parent(s): d33d341

Improve Colab notebook: add environment check, better error handling, troubleshooting guide

Browse files
Files changed (1) hide show
  1. run_app_colab.ipynb +170 -31
run_app_colab.ipynb CHANGED
@@ -31,7 +31,82 @@
31
  "outputs": [],
32
  "source": [
33
  "# Cài đặt các thư viện cần thiết (đầy đủ dependencies)\n",
34
- "%pip install -q gradio>=5.42.0 transformers>=4.51.0 torch>=2.0.0 accelerate huggingface_hub faster-whisper edge-tts numpy scipy pydub bitsandbytes flash-attn optimum\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  ]
36
  },
37
  {
@@ -49,12 +124,24 @@
49
  "source": [
50
  "# Download app.py từ repository\n",
51
  "import urllib.request\n",
 
52
  "\n",
53
  "# Download app.py từ Hugging Face Spaces\n",
54
  "app_url = \"https://huggingface.co/spaces/hainguyen306201/banking2b/resolve/main/app.py\"\n",
55
- "urllib.request.urlretrieve(app_url, \"app.py\")\n",
56
  "\n",
57
- "print(\" Đã download app.py\")\n"
 
 
 
 
 
 
 
 
 
 
 
 
58
  ]
59
  },
60
  {
@@ -98,23 +185,43 @@
98
  "outputs": [],
99
  "source": [
100
  "# Đọc và sửa app.py để chạy trên Colab\n",
101
- "with open('app.py', 'r') as f:\n",
102
- " app_code = f.read()\n",
103
- "\n",
104
- "# Sửa demo.launch() để có share link cho Colab\n",
105
- "# Tìm và thay thế phần launch\n",
106
  "import re\n",
107
- "app_code = re.sub(\n",
108
- " r'demo\\.launch\\(\\s*server_name=\"127\\.0\\.0\\.1\",\\s*server_port=7860,\\s*share=False\\s*\\)',\n",
109
- " 'demo.launch(server_name=\"0.0.0.0\", server_port=7860, share=True)',\n",
110
- " app_code\n",
111
- ")\n",
112
- "\n",
113
- "# Chạy app\n",
114
- "# Lưu ý: Quá trình tải model có thể mất vài phút (5-10 phút)\n",
115
- "print(\"🚀 Đang khởi động app...\")\n",
116
- "print(\"⏳ Quá trình tải model thể mất 5-10 phút, vui lòng đợi...\")\n",
117
- "exec(app_code)\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  ]
119
  },
120
  {
@@ -143,22 +250,54 @@
143
  "cell_type": "markdown",
144
  "metadata": {},
145
  "source": [
146
- "## Lưu ý\n",
147
  "\n",
148
- "-**GPU**: Colab sẽ tự động sử dụng GPU nếu có (T4 hoặc A100)\n",
149
- "- ⏱️ **Thời gian tải model**: 5-10 phút tùy thuộc vào kết nối internet\n",
150
- "- 💾 **Memory**: Model size ~1.7B parameters, cần ít nhất 4GB GPU memory\n",
151
- "- 🔗 **Public URL**: App sẽ tự động tạo public link để chia sẻ\n",
152
- "- ⚠️ **Session timeout**: Nếu Colab session bị ngắt, cần chạy lại từ đầu\n",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
153
  "\n",
154
  "## ⚡ Tối ưu hiệu suất đã được bật\n",
155
  "\n",
156
- "- **faster-whisper**: STT nhanh hơn 4-5x so với openai-whisper\n",
157
- "- **torch.compile**: LLM nhanh hơn 20-30%\n",
158
- "- **SDPA Attention**: Tối ưu attention mechanism\n",
159
- "- **Flash Attention**: Tối ưu memory và tốc độ\n",
160
- "- **Pre-warm model**: Giảm latency cho request đầu tiên\n",
161
- "- **Half precision**: Tối ưu memory và tốc độ\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
162
  ]
163
  }
164
  ],
 
31
  "outputs": [],
32
  "source": [
33
  "# Cài đặt các thư viện cần thiết (đầy đủ dependencies)\n",
34
+ "# Cài đặt tất cả packages cần thiết cho app\n",
35
+ "%pip install -q gradio>=5.42.0 transformers>=4.51.0 torch>=2.0.0 accelerate huggingface_hub faster-whisper edge-tts numpy scipy pydub bitsandbytes flash-attn optimum openai-whisper\n",
36
+ "\n",
37
+ "print(\"✅ Đã cài đặt tất cả dependencies!\")\n",
38
+ "print(\"\\n📦 Packages đã cài:\")\n",
39
+ "print(\" - gradio: UI framework\")\n",
40
+ "print(\" - transformers: Hugging Face transformers\")\n",
41
+ "print(\" - torch: PyTorch\")\n",
42
+ "print(\" - faster-whisper: STT nhanh (fallback: openai-whisper)\")\n",
43
+ "print(\" - edge-tts: Text-to-Speech\")\n",
44
+ "print(\" - accelerate: Model acceleration\")\n",
45
+ "print(\" - huggingface_hub: Hugging Face Hub\")\n",
46
+ "print(\" - numpy, scipy: Scientific computing\")\n",
47
+ "print(\" - pydub: Audio processing\")\n",
48
+ "print(\" - bitsandbytes: Quantization (optional)\")\n",
49
+ "print(\" - flash-attn: Flash Attention (optional)\")\n",
50
+ "print(\" - optimum: Optimization (optional)\")\n"
51
+ ]
52
+ },
53
+ {
54
+ "cell_type": "markdown",
55
+ "metadata": {},
56
+ "source": [
57
+ "## Bước 1.5: Kiểm tra GPU và môi trường\n"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": null,
63
+ "metadata": {},
64
+ "outputs": [],
65
+ "source": [
66
+ "# Kiểm tra GPU và môi trường\n",
67
+ "import torch\n",
68
+ "import sys\n",
69
+ "\n",
70
+ "print(\"🔍 Kiểm tra môi trường...\")\n",
71
+ "print(f\"Python version: {sys.version}\")\n",
72
+ "print(f\"PyTorch version: {torch.__version__}\")\n",
73
+ "\n",
74
+ "# Kiểm tra GPU\n",
75
+ "if torch.cuda.is_available():\n",
76
+ " print(f\"\\n✅ GPU có sẵn!\")\n",
77
+ " print(f\" - GPU: {torch.cuda.get_device_name(0)}\")\n",
78
+ " print(f\" - GPU Memory: {torch.cuda.get_device_properties(0).total_memory / 1024**3:.2f} GB\")\n",
79
+ " print(f\" - CUDA version: {torch.version.cuda}\")\n",
80
+ "else:\n",
81
+ " print(\"\\n⚠️ Không có GPU, app sẽ chạy trên CPU (chậm hơn)\")\n",
82
+ "\n",
83
+ "# Kiểm tra các packages quan trọng\n",
84
+ "print(\"\\n📦 Kiểm tra packages:\")\n",
85
+ "try:\n",
86
+ " import gradio\n",
87
+ " print(f\" ✅ gradio: {gradio.__version__}\")\n",
88
+ "except ImportError:\n",
89
+ " print(\" ❌ gradio: Chưa cài\")\n",
90
+ "\n",
91
+ "try:\n",
92
+ " import transformers\n",
93
+ " print(f\" ✅ transformers: {transformers.__version__}\")\n",
94
+ "except ImportError:\n",
95
+ " print(\" ❌ transformers: Chưa cài\")\n",
96
+ "\n",
97
+ "try:\n",
98
+ " from faster_whisper import WhisperModel\n",
99
+ " print(\" ✅ faster-whisper: Đã cài\")\n",
100
+ "except ImportError:\n",
101
+ " print(\" ⚠️ faster-whisper: Chưa cài (sẽ dùng openai-whisper)\")\n",
102
+ "\n",
103
+ "try:\n",
104
+ " import edge_tts\n",
105
+ " print(\" ✅ edge-tts: Đã cài\")\n",
106
+ "except ImportError:\n",
107
+ " print(\" ❌ edge-tts: Chưa cài\")\n",
108
+ "\n",
109
+ "print(\"\\n✅ Kiểm tra hoàn tất!\")\n"
110
  ]
111
  },
112
  {
 
124
  "source": [
125
  "# Download app.py từ repository\n",
126
  "import urllib.request\n",
127
+ "import os\n",
128
  "\n",
129
  "# Download app.py từ Hugging Face Spaces\n",
130
  "app_url = \"https://huggingface.co/spaces/hainguyen306201/banking2b/resolve/main/app.py\"\n",
 
131
  "\n",
132
+ "print(\"📥 Đang download app.py...\")\n",
133
+ "try:\n",
134
+ " urllib.request.urlretrieve(app_url, \"app.py\")\n",
135
+ " \n",
136
+ " # Kiểm tra file đã download\n",
137
+ " if os.path.exists(\"app.py\"):\n",
138
+ " file_size = os.path.getsize(\"app.py\") / 1024 # KB\n",
139
+ " print(f\"✅ Đã download app.py thành công ({file_size:.1f} KB)\")\n",
140
+ " else:\n",
141
+ " print(\"❌ Lỗi: File app.py không tồn tại sau khi download\")\n",
142
+ "except Exception as e:\n",
143
+ " print(f\"❌ Lỗi khi download app.py: {e}\")\n",
144
+ " print(\"💡 Thử lại hoặc kiểm tra kết nối internet\")\n"
145
  ]
146
  },
147
  {
 
185
  "outputs": [],
186
  "source": [
187
  "# Đọc và sửa app.py để chạy trên Colab\n",
188
+ "import os\n",
 
 
 
 
189
  "import re\n",
190
+ "\n",
191
+ "if not os.path.exists(\"app.py\"):\n",
192
+ " print(\"❌ Lỗi: File app.py không tồn tại. Vui lòng chạy cell download trước.\")\n",
193
+ "else:\n",
194
+ " print(\"📖 Đang đọc app.py...\")\n",
195
+ " with open('app.py', 'r', encoding='utf-8') as f:\n",
196
+ " app_code = f.read()\n",
197
+ " \n",
198
+ " print(\"🔧 Đang sửa app.py cho Colab...\")\n",
199
+ " # Sửa demo.launch() đểshare link cho Colab\n",
200
+ " # Tìm và thay thế phần launch\n",
201
+ " app_code = re.sub(\n",
202
+ " r'demo\\.launch\\(\\s*server_name=\"127\\.0\\.0\\.1\",\\s*server_port=7860,\\s*share=False\\s*\\)',\n",
203
+ " 'demo.launch(server_name=\"0.0.0.0\", server_port=7860, share=True)',\n",
204
+ " app_code\n",
205
+ " )\n",
206
+ " \n",
207
+ " # Cũng sửa phần Spaces launch nếu có\n",
208
+ " app_code = re.sub(\n",
209
+ " r'demo\\.launch\\(\\s*show_api=False,\\s*show_error=True\\s*\\)',\n",
210
+ " 'demo.launch(server_name=\"0.0.0.0\", server_port=7860, share=True, show_api=False, show_error=True)',\n",
211
+ " app_code\n",
212
+ " )\n",
213
+ " \n",
214
+ " print(\"✅ Đã sửa app.py cho Colab\")\n",
215
+ " print(\"\\n🚀 Đang khởi động app...\")\n",
216
+ " print(\"⏳ Quá trình tải model có thể mất 5-10 phút, vui lòng đợi...\")\n",
217
+ " print(\"📝 Lưu ý:\")\n",
218
+ " print(\" - Model sẽ được tải từ Hugging Face\")\n",
219
+ " print(\" - Whisper model sẽ được tải tự động\")\n",
220
+ " print(\" - Sau khi tải xong, bạn sẽ thấy Gradio interface\")\n",
221
+ " print(\" - Click vào link 'Running on public URL' để truy cập app\\n\")\n",
222
+ " \n",
223
+ " # Chạy app\n",
224
+ " exec(app_code)\n"
225
  ]
226
  },
227
  {
 
250
  "cell_type": "markdown",
251
  "metadata": {},
252
  "source": [
253
+ "## 📋 Lưu ý quan trọng\n",
254
  "\n",
255
+ "###Yêu cầu hệ thống\n",
256
+ "- **GPU**: Colab sẽ tự động sử dụng GPU nếu có (T4 hoặc A100)\n",
257
+ "- **Memory**: Model size ~1.7B parameters, cần ít nhất 4GB GPU memory\n",
258
+ "- **Internet**: Cần kết nối internet ổn định để tải model\n",
259
+ "\n",
260
+ "### ⏱️ Thời gian\n",
261
+ "- **Tải model**: 5-10 phút tùy thuộc vào kết nối internet\n",
262
+ "- **Khởi động app**: 1-2 phút sau khi tải model xong\n",
263
+ "- **Inference**: ~1-3 giây cho mỗi câu trả lời\n",
264
+ "\n",
265
+ "### 🔗 Truy cập app\n",
266
+ "- **Local URL**: App sẽ chạy trên `http://localhost:7860`\n",
267
+ "- **Public URL**: App sẽ tự động tạo public link (share=True)\n",
268
+ "- **Click vào link \"Running on public URL\"** để truy cập app từ bên ngoài\n",
269
+ "\n",
270
+ "### ⚠️ Cảnh báo\n",
271
+ "- **Session timeout**: Nếu Colab session bị ngắt, cần chạy lại từ đầu\n",
272
+ "- **GPU timeout**: Colab free có thể giới hạn thời gian sử dụng GPU\n",
273
+ "- **Memory**: Nếu hết memory, cần restart runtime\n",
274
  "\n",
275
  "## ⚡ Tối ưu hiệu suất đã được bật\n",
276
  "\n",
277
+ "- **faster-whisper**: STT nhanh hơn 4-5x so với openai-whisper\n",
278
+ "- **SDPA Attention**: Tối ưu attention mechanism\n",
279
+ "- **Half precision (bfloat16)**: Tối ưu memory và tốc độ\n",
280
+ "- **CUDA optimizations**: Tối ưu cuDNN, cuBLAS\n",
281
+ "- **Memory optimization**: Tận dụng tối đa GPU RAM\n",
282
+ "\n",
283
+ "## 🐛 Troubleshooting\n",
284
+ "\n",
285
+ "### Lỗi \"Out of memory\"\n",
286
+ "- Restart runtime và chạy lại\n",
287
+ "- Giảm `max_tokens` trong settings\n",
288
+ "\n",
289
+ "### Lỗi \"Model not found\"\n",
290
+ "- Kiểm tra kết nối internet\n",
291
+ "- Đảm bảo đã đăng nhập Hugging Face (nếu model private)\n",
292
+ "\n",
293
+ "### Lỗi \"Whisper model not loaded\"\n",
294
+ "- Đợi thêm vài phút để model tải xong\n",
295
+ "- Kiểm tra log để xem lỗi chi tiết\n",
296
+ "\n",
297
+ "### App không phát audio\n",
298
+ "- Kiểm tra browser có cho phép autoplay không\n",
299
+ "- Thử refresh trang\n",
300
+ "- Kiểm tra console log để xem lỗi TTS\n"
301
  ]
302
  }
303
  ],