Kiến thức

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.

Git cho dự án AI và Vision: quản lý code, dữ liệu và mô hình
Nội dung bài viết
  1. Git quản lý gì, không quản lý gì?
  2. File .gitignore mẫu
  3. Quy trình làm việc cơ bản
  4. Quản lý dữ liệu và mô hình
  5. Gắn mô hình với mã nguồn
  6. Làm việc nhóm

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 GitKhô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 íchThư 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 main củ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.

Ban biên tập HọcFree

Chúng tôi viết những bài hướng dẫn dễ hiểu, thực tế để ai cũng có thể tự học lập trình và ngoại ngữ, hoàn toàn miễn phí.