Dùng AI

Tải về và chạy một dự án AI từ GitHub (môi trường ảo, thư viện)

Chạy một dự án AI từ GitHub gồm năm bước: clone kho về, đọc README, tạo môi trường ảo riêng cho dự án, cài thư viện theo requirements.txt, rồi chạy một ví dụ nhỏ trước. Phần lớn lỗi đến từ sai phiên bản Python, thiếu thư viện hoặc thiếu tệp mô hình, và đều có cách kiểm trước khi chạy.

Ý chính
  • Đọc README trước khi chạy bất cứ lệnh nào: phiên bản Python, có cần GPU không, có phải tải tệp mô hình riêng không.
  • Mỗi dự án một môi trường ảo (python -m venv .venv), cài bằng python -m pip install -r requirements.txt. Theo tài liệu Python, không đưa thư mục môi trường ảo vào git; muốn có lại thì tạo mới từ tệp requirements.
  • Kiểm môi trường trước khi chạy: thiếu gói nào, gói nào sai phiên bản. Mã của người lạ là mã chưa kiểm, nên đọc trước và chạy trong môi trường riêng.

Bài này dựa trên tài liệu chính thức của Python (venv, importlib.metadata) và pip, đọc ngày 11/11/2026. Ví dụ dùng Python; dự án viết bằng ngôn ngữ khác có các bước tương tự với công cụ riêng của ngôn ngữ đó.

Bước 1: clone và đọc README

Tải kho về máy bằng git clone <địa chỉ kho> rồi vào thư mục vừa tạo. Nếu chưa dùng Git, xem Git và GitHub là gì. Trước khi gõ lệnh cài đặt nào, mở README và tìm bốn thông tin:

Cần tìm Vì sao
Phiên bản Python yêu cầu Thư viện AI thường chỉ hỗ trợ một số phiên bản Python; quá mới hay quá cũ đều có thể cài lỗi
Có cần GPU không Nhiều mô hình chạy được trên CPU nhưng rất chậm; có dự án chỉ chạy với GPU của một hãng cụ thể
Tệp mô hình hay dữ liệu tải riêng Trọng số mô hình thường lớn nên không nằm trong kho; README chỉ chỗ tải
Lệnh chạy ví dụ Chạy đúng lệnh mẫu trước, rồi mới sửa theo ý mình

Đọc cả phần giấy phép (LICENSE) nếu bạn định dùng code cho đồ án hay công việc; xem đọc README và LICENSE.

Chạy dự án AI từ GitHub Mỗi dự án một môi trường ảo riêng 1. Clonegit cloneđọc README 2. venvpython -m venvkích hoạt 3. Càipip install -rrequirements.txt 4. ChạyVí dụ nhỏTHIẾU torch? Không đưa thư mục môi trường ảo lên git
Chạy dự án AI từ GitHub 1. Clonegit cloneđọc README 2. venvpython -m venvkích hoạt 3. Càipip install -rrequirements.txt 4. ChạyVí dụ nhỏTHIẾU torch? Không đưa thư mục môi trường ảo lên git
Hình 1. Các bước chạy một dự án AI từ GitHub: clone và đọc README, tạo môi trường ảo bằng python -m venv và kích hoạt, cài thư viện bằng pip install -r requirements.txt, rồi chạy một ví dụ nhỏ (và kiểm xem có thiếu gói như torch không). Không đưa thư mục môi trường ảo lên git.

Bước 2: tạo môi trường ảo cho riêng dự án

Tài liệu Python định nghĩa môi trường ảo là một môi trường Python nhẹ, tách biệt, có bộ gói riêng; mặc định chỉ những gói cài vào nó mới dùng được. Nhờ vậy dự án A cần numpy bản này và dự án B cần bản khác không giẫm chân nhau, và bạn không làm rối Python của cả máy.

Tạo môi trường ảo tên .venv trong thư mục dự án:

python -m venv .venv

Kích hoạt, theo tài liệu:

Hệ điều hành, shell Lệnh
macOS, Linux (bash, zsh) source .venv/bin/activate
Windows cmd .venv\Scripts\activate.bat
Windows PowerShell .venv\Scripts\Activate.ps1

Sau khi kích hoạt, dấu nhắc lệnh thường hiện tên môi trường. Tài liệu Python còn lưu ý hai điều quan trọng: môi trường ảo không nên đưa vào hệ quản lý mã nguồn như Git, vì nó được tạo ra để bỏ đi và tạo lại từ đầu, ví dụ từ tệp requirements; và môi trường ảo nhìn chung không mang sang máy khác được, vì các script bên trong chứa đường dẫn tuyệt đối. Thêm .venv/ vào .gitignore của bạn.

Bước 3: cài thư viện

Với dự án có tệp requirements.txt, tài liệu pip hướng dẫn:

python -m pip install -r requirements.txt

Trên Windows có thể thay python bằng py. Gọi pip qua python -m pip bảo đảm cài vào đúng Python của môi trường ảo đang kích hoạt, tránh tình huống cài vào một Python khác trên máy.

Tệp requirements là danh sách tham số cho pip install, mục đích chính là cài lặp lại được: nó ghi lại phiên bản các gói để người khác dựng lại đúng môi trường đó. Khi dự án của bạn chạy ổn, tạo tệp này bằng python -m pip freeze > requirements.txt để người khác cũng chạy được.

Một số dự án dùng pyproject.toml thay cho requirements.txt; khi đó README thường hướng dẫn cài bằng pip install với đường dẫn thư mục dự án. Làm đúng theo README của dự án đó.

Bước 4: kiểm môi trường trước khi chạy

Thay vì chạy rồi gặp ModuleNotFoundError giữa chừng, bạn có thể so tệp requirements với các gói đã cài. Đoạn Python dưới đây làm việc đó bằng importlib.metadata có sẵn trong Python: đọc từng dòng yêu cầu (hiểu các dạng ==, >=, <, ~=), chuẩn hóa tên gói (scikit_learn và scikit-learn là một), rồi báo gói nào đủ, thiếu hay sai phiên bản. Nó chỉ đọc, không cài gì. Khi chạy không kèm tham số, đoạn code dùng một danh sách mẫu để minh họa; chạy kèm đường dẫn tệp requirements thì kiểm môi trường thật.

"""So tệp requirements.txt của một dự án với các gói đã cài, để biết thiếu gì trước khi chạy.

Chạy với môi trường thật: python soat_moi_truong.py requirements.txt
Chỉ đọc, không cài gì. Hiểu các dạng thường gặp: ten, ten==1.2, ten>=1.2, ten<2, ten~=1.2, ten[extra]>=1.0.
"""
import re
import sys
from importlib import metadata

MAU = re.compile(r"^([A-Za-z0-9][A-Za-z0-9._-]*)(?:\[[^\]]*\])?\s*(==|>=|<=|~=|>|<)?\s*([0-9][0-9A-Za-z.*+-]*)?")


def chuan_ten(ten):
    return re.sub(r"[-_.]+", "-", ten).lower()


def so(phien_ban):
    return tuple(int(x) for x in re.findall(r"\d+", phien_ban)[:3])


def doc_yeu_cau(van_ban):
    ds = []
    for dong in van_ban.splitlines():
        dong = dong.split("#", 1)[0].strip()
        if not dong or dong.startswith(("-", "git+", "http")):
            continue  # bỏ qua tùy chọn pip và cài từ địa chỉ: cần xem bằng tay
        m = MAU.match(dong)
        if m:
            ds.append((chuan_ten(m.group(1)), m.group(2), m.group(3), dong))
    return ds


def dat(da_co, phep, can):
    a, b = so(da_co), so(can)
    return {"==": a == b, ">=": a >= b, "<=": a <= b, ">": a > b, "<": a < b, "~=": a >= b and a[:1] == b[:1]}[phep]


def so_khop(yeu_cau, da_cai):
    ket_qua = []
    for ten, phep, can, dong in yeu_cau:
        co = da_cai.get(ten)
        if co is None:
            ket_qua.append(f"THIẾU      {dong}")
        elif phep and can and not dat(co, phep, can):
            ket_qua.append(f"SAI PHIÊN  {dong} (đang có {co})")
        else:
            ket_qua.append(f"OK         {dong} (đang có {co})")
    return ket_qua


def da_cai_that():
    return {chuan_ten(d.metadata["Name"]): d.version for d in metadata.distributions() if d.metadata["Name"]}


MAU_YEU_CAU = """# requirements.txt của một dự án phân loại ảnh
numpy>=1.26
pandas==2.2.3
torch>=2.4   # cần GPU? xem README
scikit_learn~=1.5
-r requirements-dev.txt
"""
MAU_DA_CAI = {"numpy": "2.1.0", "pandas": "2.1.4", "scikit-learn": "1.6.1"}


def chay_thu():
    kq = so_khop(doc_yeu_cau(MAU_YEU_CAU), MAU_DA_CAI)
    print("\n".join(kq))
    return kq


if __name__ == "__main__":
    if len(sys.argv) > 1:
        with open(sys.argv[1], encoding="utf-8") as f:
            print("\n".join(so_khop(doc_yeu_cau(f.read()), da_cai_that())))
    else:
        chay_thu()

Kết quả với danh sách mẫu:

OK         numpy>=1.26 (đang có 2.1.0)
SAI PHIÊN  pandas==2.2.3 (đang có 2.1.4)
THIẾU      torch>=2.4
OK         scikit_learn~=1.5 (đang có 1.6.1)

Chú ý cách so phiên bản: so theo từng con số, không theo chữ, nên 2.10 lớn hơn 2.9. So theo chữ sẽ cho kết quả ngược. Dòng -r requirements-dev.txt trong tệp mẫu bị bỏ qua có chủ đích; dòng cài từ địa chỉ git hay tùy chọn của pip cần xem bằng tay.

Bước 5: chạy ví dụ nhỏ nhất trước

Chạy đúng lệnh ví dụ trong README, với dữ liệu mẫu nhỏ nhất. Mục tiêu của lần chạy đầu không phải kết quả đẹp mà là biết môi trường đã đúng. Khi ví dụ chạy được, mới đổi sang dữ liệu của bạn, đổi tham số, sửa code.

Chạy lệnh từ thư mục gốc của dự án: nhiều dự án đọc tệp theo đường dẫn tương đối, chạy từ thư mục khác sẽ báo không tìm thấy tệp.

Ghi lại cách bạn đã chạy được

Khi dự án đã chạy, dành vài phút ghi lại, vì ba tuần sau chính bạn sẽ quên. Một tệp ghi chú ngắn trong thư mục dự án nên có:

  • phiên bản Python đã dùng (in bằng python --version);
  • danh sách gói chính xác, lưu bằng python -m pip freeze > da-chay-duoc.txt (đặt tên khác requirements.txt để không ghi đè tệp gốc của tác giả);
  • lệnh đã chạy và dữ liệu mẫu đã dùng;
  • những chỗ bạn phải sửa so với README, ví dụ phải hạ phiên bản một gói hay đổi một đường dẫn.

Nếu bạn sửa code để dự án chạy được, đó là lúc nên fork kho về tài khoản của mình và commit thay đổi, kèm lời mô tả nói rõ đã sửa gì. Nếu chỗ sửa có ích cho người khác (ví dụ README thiếu một bước), bạn có thể gửi đề xuất cho tác giả; bài đóng góp cho dự án AI mã nguồn mở chỉ cách bắt đầu.

Lỗi hay gặp và cách xử lý

Triệu chứng Nguyên nhân hay gặp Cách xử lý
ModuleNotFoundError Chưa cài gói, hoặc chưa kích hoạt môi trường ảo Kích hoạt môi trường, cài lại theo requirements
Cài báo không có bản phù hợp Phiên bản Python không được gói hỗ trợ Dùng đúng phiên bản Python README yêu cầu, tạo môi trường mới
Chạy được nhưng rất chậm Không có GPU hoặc thư viện không nhận GPU Thử mô hình nhỏ hơn, hoặc làm theo hướng dẫn GPU trong README
Không tìm thấy tệp mô hình Trọng số chưa được tải Làm theo mục tải mô hình trong README, nhiều dự án dùng Hugging Face
Lỗi đường dẫn trên Windows Code viết cho macOS, Linux Chạy từ đúng thư mục gốc, kiểm dấu gạch chéo trong đường dẫn

Với tệp mô hình, xem Hugging Face là gì: đó là nơi phần lớn dự án AI mở để trọng số.

Chạy mã của người lạ an toàn

Một kho trên GitHub là mã chưa ai kiểm cho bạn. Vài thói quen tối thiểu:

  • Chọn kho có người duy trì rõ ràng, còn được cập nhật, có issue được trả lời; bài tìm repo AI hay chỉ cách đánh giá.
  • Đọc lướt các script cài đặt và tệp chạy chính trước khi chạy, nhất là các đoạn tải tệp từ mạng hay chạy lệnh hệ thống.
  • Luôn cài trong môi trường ảo, không cài thư viện của dự án lạ vào Python của cả máy, và không chạy bằng quyền quản trị.
  • Không đặt khóa API thật vào dự án thử nghiệm của người khác cho tới khi bạn hiểu code dùng khóa đó thế nào.
Cẩn thận
  • Cài thẳng vào Python của cả máy, sau vài dự án các phiên bản đá nhau.
  • Quên kích hoạt môi trường ảo trước khi cài hay chạy.
  • Đưa thư mục .venv lên git, hoặc chép môi trường ảo sang máy khác thay vì tạo lại.
  • Bỏ qua README rồi mất nhiều giờ sửa lỗi phiên bản Python.
  • Chạy ngay toàn bộ dự án với dữ liệu lớn trước khi chạy được ví dụ nhỏ nhất.
  • Chạy mã lạ với quyền quản trị hay với khóa API thật.

Câu hỏi thường gặp

Dùng venv hay conda?

Cả hai đều tạo môi trường riêng. venv có sẵn trong Python và đủ cho phần lớn dự án; nếu README của dự án hướng dẫn bằng conda thì làm theo README để khớp phiên bản.

Máy không có GPU có chạy được dự án AI không?

Nhiều dự án chạy được trên CPU, chỉ chậm hơn; README thường ghi rõ. Với mô hình lớn, tìm phiên bản nhỏ hơn của mô hình hoặc dùng dịch vụ chạy trên mây nếu dự án hỗ trợ.

Đã cài đúng mà vẫn báo thiếu thư viện?

Thường là đang chạy bằng một Python khác với Python của môi trường ảo. Kích hoạt lại môi trường, dùng python -m pip để cài, và chạy chương trình trong cùng cửa sổ terminal đó.

Có nên sửa code của dự án tải về không?

Được, đó là cách học tốt. Nên tạo nhánh git riêng hoặc fork để giữ bản gốc, và đọc giấy phép nếu định chia sẻ bản đã sửa.

Học tiếp

Nếu bạn muốn học Python và AI bài bản cùng giảng viên, tham khảo khóa học AI của Big-O Coding.

Muốn học bài bản cùng giảng viên?

Khóa AI – Introduction to Machine Learning: nền tảng Máy học từ thuật toán cơ bản đến Neural Networks và LLM, học bằng Python. Học thử buổi 1 miễn phí.

Xem Khóa AI

Nguồn tham khảo

Chia sẻ: Facebook LinkedIn
Nhắn Zalo tư vấnZalo Gọi 0937 401 483