Hugging Face là gì? Tìm và chạy model AI bằng Python cho người mới (2026)
Trong bài này
- Hugging Face là gì?
- Cần chuẩn bị
- Bước 1: Mở Hugging Face và làm quen giao diện
- Bước 2: Tìm model theo tác vụ và ngôn ngữ
- Bước 3: Đọc model card trước khi dùng
- Bước 4: Lấy code mẫu từ nút "Use this model"
- Bước 5: Cài Python, transformers và PyTorch bản CPU
- Bước 6: Chạy pipeline đầu tiên, và vì sao phải chọn model
- Bước 7: Tìm và tải model bằng lệnh hf
- Bước 8: Chat tiếng Việt với Qwen3.5-0.8B trên CPU
- Bước 9: Thử ứng dụng AI có sẵn trên Spaces
- Lỗi thường gặp
- Thiếu Torchvision và PIL khi nạp Qwen3.5
- Access denied ... requires approval (model gated)
- Cảnh báo "You are sending unauthenticated requests"
- Câu hỏi thường gặp
- Dùng Hugging Face có mất tiền không?
- Máy không có GPU có chạy được không?
- Model tải về nằm ở đâu, xóa thế nào?
- Dùng model trên Hugging Face cho đồ án được không?
- Hugging Face khác gì Ollama?
- Nguồn tham khảo
Khi học AI, các bạn sẽ gặp cái tên Hugging Face ở khắp nơi: trong bài hướng dẫn, trong code mẫu, trong cả Ollama và LM Studio. Bài này giải thích Hugging Face là gì, rồi hướng dẫn từng bước để các bạn tự tìm một model, đọc thông tin của nó và chạy thử bằng Python trên máy không có GPU: phân loại cảm xúc câu tiếng Việt và chat với model Qwen3.5-0.8B.
Mọi lệnh trong bài mình chạy thật ngày 11/11/2026 với Python 3.12, transformers 5.22.2 (bản mới nhất trên PyPI, phát hành 06/11/2026), PyTorch 2.15 bản CPU và huggingface_hub 2.4.0. Làm theo hết bài mất khoảng 30–45 phút, phần lớn là thời gian tải thư viện và model.
Hugging Face là gì?
Hiểu đơn giản, Hugging Face là "GitHub của AI". Đây là nơi các công ty và cá nhân đăng model, bộ dữ liệu và ứng dụng demo để mọi người tải về hoặc dùng thử. Hugging Face cũng làm ra thư viện Python transformers, thư viện phổ biến nhất để tải và chạy các model này. Trang web có ba khu vực chính:
- Models: kho model (trang chủ ghi hơn 2 triệu model), mỗi model là một repo có file trọng số, cấu hình và trang mô tả.
- Datasets: bộ dữ liệu để huấn luyện và đánh giá model.
- Spaces: ứng dụng demo chạy ngay trên trình duyệt.
Cần chuẩn bị
- Máy tính Windows, macOS hoặc Linux, RAM từ 8 GB trở lên. Không cần GPU.
- Python 3.11 trở lên. Trang PyPI ghi
transformersbản 5.x yêu cầu Python >= 3.11. - Khoảng 3–4 GB ổ cứng trống cho thư viện và model.
- Không cần tài khoản Hugging Face cho các model công khai trong bài. Chỉ model "gated" mới cần đăng nhập (xem phần lỗi).
Bước 1: Mở Hugging Face và làm quen giao diện
Vào huggingface.co. Thanh menu trên cùng có Models, Datasets, Spaces và Docs. Chưa cần đăng ký.

Bước 2: Tìm model theo tác vụ và ngôn ngữ
Bấm Models. Cột trái có tab Tasks để lọc theo tác vụ (ví dụ Text Classification là phân loại văn bản). Ô tìm kiếm phía trên danh sách lọc theo tên, mình gõ vietnamese. Nút Sort nên chọn Most downloads để model được nhiều người dùng nhất lên đầu. Hôm mình chụp, có 83 model phân loại văn bản khớp từ khóa này.

Bước 3: Đọc model card trước khi dùng
Bấm vào một model để mở model card (trang mô tả). Ví dụ với Qwen/Qwen3.5-0.8B, các bạn để ý ba chỗ: License (giấy phép, ở đây là apache-2.0, dùng được cả cho mục đích thương mại), Model size (0.9B tham số, đủ nhỏ cho CPU) và Downloads last month (hơn 3,4 triệu lượt, nghĩa là được dùng nhiều).

Tab Files and versions cho biết model nặng bao nhiêu khi tải về. Ở đây file trọng số model.safetensors nặng 1,75 GB, cả repo là 1,77 GB.

Bước 4: Lấy code mẫu từ nút "Use this model"
Bấm nút Use this model ở góc phải, chọn Transformers trong mục Libraries. Menu này cũng có Google Colab, Kaggle và các ứng dụng chạy local như vLLM.

Hộp thoại hiện hai cách dùng: pipeline (gọn, dễ dùng) và nạp trực tiếp bằng AutoProcessor và AutoModelForMultimodalLM. Ở bước 8 mình sẽ dùng cách thứ hai.

Bước 5: Cài Python, transformers và PyTorch bản CPU
Tạo môi trường ảo cho riêng dự án, rồi cài PyTorch và transformers. Mình chạy trên Linux nên dùng kho PyTorch bản CPU để khỏi tải bản CUDA rất nặng. Trên Windows hoặc macOS, các bạn lấy đúng lệnh cài PyTorch cho máy mình ở trang PyTorch Get Started.
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install torch --index-url https://download.pytorch.org/whl/cpu
pip install transformers accelerate
Kiểm tra lại phiên bản bằng một file kiem_tra.py nhỏ:
import sys, torch, transformers, huggingface_hub
print("Python ", sys.version.split()[0])
print("transformers", transformers.__version__)
print("torch ", torch.__version__)
print("hf_hub ", huggingface_hub.__version__)

Gói huggingface_hub được cài kèm và có sẵn lệnh hf dùng ở bước 7.
Bước 6: Chạy pipeline đầu tiên, và vì sao phải chọn model
pipeline() là cách ngắn nhất để dùng một model. Thử viết file cam_xuc.py mà không ghi tên model:
from transformers import pipeline
# Không ghi model: transformers tự chọn model mặc định cho tác vụ
clf = pipeline("sentiment-analysis")
cau = [
"This course is really useful for beginners.",
"Môn này khó quá, mình không hiểu gì cả.",
"Thầy giảng dễ hiểu, bài tập vừa sức.",
]
for c in cau:
print(c, "->", clf(c))
Chương trình chạy được, nhưng transformers cảnh báo nó tự lấy model mặc định distilbert-base-uncased-finetuned-sst-2-english, một model chỉ học tiếng Anh. Kết quả là câu khen "Thầy giảng dễ hiểu, bài tập vừa sức" bị chấm NEGATIVE.

Vì vậy luôn ghi rõ tên model. Mình đổi sang tabularisai/multilingual-sentiment-analysis, model mà model card ghi là có hỗ trợ tiếng Việt (file cam_xuc_da_ngon_ngu.py):
from transformers import pipeline
clf = pipeline("text-classification", model="tabularisai/multilingual-sentiment-analysis")
for c in ["Môn này khó quá, mình không hiểu gì cả.",
"Thầy giảng dễ hiểu, bài tập vừa sức.",
"Hôm nay lớp học bình thường."]:
print(c, "->", clf(c))

Lần này cả ba câu đều đúng: Negative, Positive và Neutral. Lưu ý model này dùng giấy phép CC-BY-NC-4.0, tức chỉ dùng cho mục đích phi thương mại. Làm bài tập và đồ án ở trường thì được, còn làm sản phẩm bán thì không.
Bước 7: Tìm và tải model bằng lệnh hf
Ngoài trang web, các bạn có thể tìm model ngay trong terminal. Lệnh dưới đây làm đúng việc của bước 2:
hf models ls --search vietnamese --pipeline-tag text-classification \
--sort downloads --limit 6 --expand downloads,pipeline_tag --no-truncate

hf models ls, kết quả giống trên web.Để tải sẵn model về máy, dùng hf download. Model được lưu vào thư mục cache .cache/huggingface/hub trong thư mục người dùng, lần sau Python nạp thẳng từ đây chứ không tải lại. Lệnh hf cache ls cho biết các model đang chiếm bao nhiêu ổ cứng. Ở máy mình, 1,7 GB của Qwen3.5-0.8B tải xong trong khoảng 5 giây.
hf download Qwen/Qwen3.5-0.8B
hf cache ls

hf download, xem dung lượng bằng hf cache ls.Bước 8: Chat tiếng Việt với Qwen3.5-0.8B trên CPU
Qwen3.5-0.8B là model chat kiêm đọc ảnh (Image-Text-to-Text), nên mình dùng đúng các lớp trong code mẫu ở bước 4 và chỉ gửi văn bản. File chat_qwen.py:
import time
from transformers import AutoProcessor, AutoModelForMultimodalLM
model_id = "Qwen/Qwen3.5-0.8B"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(model_id, device_map="auto")
messages = [{"role": "user", "content": [
{"type": "text", "text": "Giải thích ngắn gọn cho sinh viên năm nhất: biến trong lập trình là gì? "
"Trả lời bằng tiếng Việt, tối đa 3 câu."}
]}]
inputs = processor.apply_chat_template(
messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt"
).to(model.device)
t1 = time.time()
outputs = model.generate(**inputs, max_new_tokens=150)
answer = processor.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
print("Trả lời:", answer.strip())
n = outputs.shape[-1] - inputs["input_ids"].shape[-1]
print(f"Sinh {n} token trong {time.time() - t1:.1f} giây (CPU 4 nhân)")

Câu trả lời đúng ý chính nhưng diễn đạt hơi vụng ("tên các tên gọi"), đó là giới hạn của model chưa tới 1 tỉ tham số. Tốc độ khoảng 3 token mỗi giây, đủ để học và thử nghiệm. Các dòng cảnh báo falling back to its reference PyTorch implementation chỉ báo là đang dùng code dự phòng chậm hơn, kết quả vẫn đúng.
Bước 9: Thử ứng dụng AI có sẵn trên Spaces
Muốn thử model mà không cài gì thì vào Spaces: các ứng dụng demo cộng đồng dựng sẵn, chạy trên máy chủ của Hugging Face. Mục Spaces of the week gom các app nổi bật trong tuần.

Lỗi thường gặp
Thiếu Torchvision và PIL khi nạp Qwen3.5
Lần đầu chạy chat_qwen.py, mình gặp ImportError: Qwen2VLImageProcessor requires the Torchvision library và lỗi tương tự cho PIL. Lý do là Qwen3.5 có phần xử lý ảnh, mà lệnh pip install transformers không cài sẵn hai thư viện này. Cách sửa: cài thêm torchvision và pillow (cùng nguồn với torch đã cài), rồi chạy lại.
pip install torchvision pillow --index-url https://download.pytorch.org/whl/cpu

Access denied ... requires approval (model gated)
Một số model như meta-llama/Llama-3.2-1B-Instruct là model gated: tác giả bắt người dùng đồng ý điều khoản trước khi tải. Chạy hf download khi chưa đăng nhập sẽ báo Error: Access denied ... requires approval.

Mở trang model sẽ thấy khung "You need to agree to share your Hugging Face information to access this model". Theo tài liệu chính thức, các bạn phải đăng nhập, gửi yêu cầu truy cập ngay trên trình duyệt. Tùy tác giả cài đặt, yêu cầu được duyệt tự động hoặc phải chờ duyệt tay. Sau khi được duyệt, chạy hf auth login và dán token tạo ở trang Settings → Access Tokens thì mới tải được. Không bao giờ dán token vào code rồi đẩy lên GitHub.

Cảnh báo "You are sending unauthenticated requests"
Chỉ là cảnh báo: chưa có token thì giới hạn tải thấp hơn. Với vài model nhỏ như trong bài vẫn tải bình thường. Tải nhiều thì đăng nhập bằng hf auth login.
Câu hỏi thường gặp
Dùng Hugging Face có mất tiền không?
Xem và tải model công khai thì miễn phí, không cần tài khoản, toàn bộ phần thực hành trong bài mình làm không đăng nhập. Các gói trả phí (PRO, Inference Endpoints...) xem ở trang Pricing.
Máy không có GPU có chạy được không?
Được, với model nhỏ. Model phân loại cảm xúc khoảng 0.1B tham số chạy gần như tức thì. Qwen3.5-0.8B sinh khoảng 3 token mỗi giây trên CPU 4 nhân. Model từ vài tỉ tham số trở lên thì CPU sẽ rất chậm, nên dùng bản lượng tử hóa (GGUF) qua Ollama hoặc LM Studio.
Model tải về nằm ở đâu, xóa thế nào?
Mặc định nằm trong .cache/huggingface/hub ở thư mục người dùng. Lệnh hf cache ls liệt kê từng model và dung lượng. Muốn dọn dẹp thì xem các lệnh con bằng hf cache --help.
Dùng model trên Hugging Face cho đồ án được không?
Được, nhưng phải đọc mục License. Trong bài này, Qwen3.5-0.8B dùng apache-2.0 (thoải mái), model cảm xúc dùng CC-BY-NC-4.0 (chỉ phi thương mại), còn Llama 3.2 có giấy phép riêng của Meta. Trong báo cáo đồ án, các bạn nên ghi rõ tên model và giấy phép.
Hugging Face khác gì Ollama?
Hugging Face là kho model và thư viện để chạy model bằng code. Ollama là phần mềm chạy model trên máy, thường dùng bản GGUF lấy từ Hugging Face. Hai thứ bổ sung cho nhau. Muốn cho trợ lý AI gọi code của mình thì xem thêm bài MCP server là gì.
Nguồn tham khảo
- Hugging Face Hub: Models (tài liệu chính thức)
- Tài liệu Transformers và transformers trên PyPI (5.22.2, Python >= 3.11)
- Hướng dẫn lệnh hf (huggingface_hub CLI)
- Gated models: cách xin quyền truy cập và tải bằng token
- Model card Qwen/Qwen3.5-0.8B
- Model card tabularisai/multilingual-sentiment-analysis
- PyTorch Get Started (lệnh cài cho từng hệ điều hành)
Ảnh chụp và thử nghiệm ngày 11/11/2026.