Git cho dự án AI và Vision: quản lý code, dữ liệu và mô hình
Nên và không nên commit gì, quy trình nhánh, Git LFS, DVC và gắn tag phiên bản mô hình triển khai.
Nội dung bài viết
Dự án AI Vision gồm nhiều thứ hơn code: dữ liệu ảnh, nhãn, file cấu hình, trọng số mô hình, kết quả thí nghiệm. Quản lý không tốt, bạn sẽ gặp cảnh "mô hình tốt nhất tuần trước là file nào?". Bài này hướng dẫn dùng Git đúng cách cho dự án AI và Vision.
Git quản lý gì, không quản lý gì?
| Nên commit vào Git | Không nên commit |
|---|---|
| Mã nguồn, notebook đã dọn kết quả | Thư mục môi trường ảo .venv/ |
| File cấu hình (data.yaml, tham số huấn luyện) | Dataset ảnh hàng GB |
| Danh sách thư viện (requirements, lock file) | Trọng số mô hình lớn (.pt, .onnx) |
| README, tài liệu, script tiện ích | Thư mục kết quả huấn luyện runs/ |
| Bảng chia tập train/val (danh sách tên file) | Mật khẩu, khóa API, địa chỉ IP nội bộ nhạy cảm |
File .gitignore mẫu
.venv/
__pycache__/
*.pyc
data/
runs/
models/*.pt
models/*.onnx
*.engine
.env
Quy trình làm việc cơ bản
git init
git add .
git commit -m "Khởi tạo dự án kiểm tra nắp chai"
git switch -c thu-nghiem-clahe # nhánh cho một thử nghiệm
# ... sửa code ...
git add -p # chọn từng phần thay đổi để commit
git commit -m "Thêm CLAHE trước phân ngưỡng, giảm overkill ca đêm"
git switch main
git merge thu-nghiem-clahe
Thông điệp commit nên ghi vì sao thay đổi, không chỉ thay đổi gì. Nửa năm sau, "giảm overkill ca đêm" có giá trị hơn nhiều so với "sửa code".
Quản lý dữ liệu và mô hình
- Git LFS: lưu file lớn (trọng số mô hình) ngoài kho Git chính nhưng vẫn theo phiên bản. Phù hợp khi số lượng file lớn không quá nhiều.
- DVC (Data Version Control): quản lý phiên bản dataset và pipeline, dữ liệu lưu trên ổ mạng hoặc cloud, Git chỉ lưu file mô tả nhỏ.
- Cách tối thiểu: đặt tên thư mục dữ liệu và mô hình theo phiên bản (
dataset-v3/,model-2026-10-01-map0.91.onnx) và ghi rõ trong README mô hình nào được huấn luyện từ dữ liệu nào, commit nào.
Gắn mô hình với mã nguồn
git tag -a v1.2.0 -m "Mô hình triển khai Line 2: escape 0/500, overkill 1.8%"
git push origin v1.2.0
Mỗi lần triển khai lên máy sản xuất, gắn tag tương ứng. Khi có sự cố, bạn biết chính xác code, cấu hình và mô hình nào đang chạy, và quay lại phiên bản trước nhanh chóng.
Làm việc nhóm
- Dùng GitHub/GitLab với pull request để người khác review trước khi gộp vào nhánh chính.
- Không commit thẳng lên
maincủa phần mềm đang chạy sản xuất. - Đưa kiểm tra tự động (lint, test nhỏ) vào quy trình để phát hiện lỗi sớm.
Mới bắt đầu? Xem thêm cheat sheet Git trong mục Tài nguyên.


