Chuyển đến nội dung chính

Chưng cất mô hình OpenAI: Hướng dẫn kèm ví dụ

Tìm hiểu cách chưng cất LLM với công cụ chưng cất của OpenAI. Hướng dẫn này cung cấp quy trình từng bước dùng GPT-4o và GPT-4o-mini để tạo lệnh Git.
Đã cập nhật 5 thg 10, 2026  · 8 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Tôi đã thử OpenAI's công cụ chưng cất mô hình mới—it yêu cầu rất ít mã và cho phép chúng ta quản lý toàn bộ quy trình chưng cất trên một nền tảng, từ tạo bộ dữ liệu đến tinh chỉnh mô hình và đánh giá hiệu năng.

Trong hướng dẫn này, tôi sẽ giúp bạn bắt đầu với công cụ chưng cất mô hình của OpenAI. Trước hết, chúng ta sẽ điểm qua những điều cơ bản về chưng cất mô hình, sau đó sẽ làm một dự án minh họa bằng cách dùng API của OpenAI.

Chưng cất mô hình là gì?

Hãy tưởng tượng một giáo viên giỏi, học vấn cao truyền đạt cách tư duy và kiến thức cho học sinh. Đó là nguyên lý cơ bản của cách chưng cất mô hình hoạt động.

Trong kỹ thuật này, giáo viên là một mô hình lớn đã được huấn luyện trước, còn học sinh là một mô hình nhỏ hơn học cách tái tạo đầu ra của giáo viên. Điều này cho phép học sinh thực hiện các tác vụ cụ thể ở mức độ tương đương với giáo viên nhưng cần ít tài nguyên hơn.

Chưng cất mô hình có nhiều biến thể, mỗi loại có phương pháp và mục tiêu riêng. Có trường hợp chúng ta chỉ cần học sinh bắt chước đầu ra của mô hình lớn. Có trường hợp khác, chúng ta muốn truyền cách tiếp cận giải quyết vấn đề của giáo viên vào mô hình nhỏ hơn. Cuối cùng, mục tiêu là tận dụng năng lực của mô hình lớn thông qua một mô hình hiệu quả.

Chưng cất tri thức

Một phương pháp phổ biến để chuyển tri thức từ mô hình "giáo viên" sang mô hình "học sinh" là tinh chỉnh mô hình học sinh trên một bộ dữ liệu gồm các đầu vào và đầu ra tương ứng do giáo viên tạo ra.

Trong quá trình học có giám sát này, mô hình học sinh học cách lặp lại phản hồi của giáo viên khi được đưa các đầu vào tương tự.

Lợi ích của chưng cất mô hình

Quy trình chưng cất mang lại nhiều lợi thế:

  • Giảm chi phí: Mô hình nhỏ rẻ hơn khi sử dụng.
  • Phản hồi nhanh hơn: Trải nghiệm người dùng được cải thiện nhờ đầu ra nhanh hơn từ các mô hình nhỏ.
  • Khả năng tiếp cận: Mô hình có thể dùng trong môi trường hạn chế tài nguyên tính toán, chẳng hạn như nền tảng biên hoặc thiết bị di động.

Để tìm hiểu thêm về chưng cất, bạn có thể đọc bài viết: Giải thích về chưng cất LLM.

Cách triển khai chưng cất mô hình với OpenAI API

Trong phần này, chúng ta sẽ khám phá một ví dụ về chưng cất mô hình trên nền tảng OpenAI. Trọng tâm chính là tạo các lệnh Git theo yêu cầu của người dùng.

Đầu tiên, chúng ta sẽ tạo bộ dữ liệu bằng GPT-4o mini (học sinh) của OpenAI và đánh giá các đầu ra.

Tiếp theo, chúng ta dùng GPT-4o (giáo viên) để dịch cùng các câu đó và tinh chỉnh mô hình học sinh trên bộ dữ liệu do giáo viên tạo ra.

Cuối cùng, chúng ta cần đánh giá mô hình học sinh và xem xét mức cải thiện.

Tóm lại, các bước chúng ta sẽ thực hiện là:

  1. Chọn mô hình giáo viên và học sinh
  2. Chuẩn bị bộ dữ liệu
  3. Tạo cặp đầu vào/đầu ra cho học sinh
  4. Đánh giá hiệu năng của học sinh
  5. Tạo cặp đầu vào/đầu ra cho giáo viên
  6. Tinh chỉnh mô hình học sinh trên bộ dữ liệu của giáo viên
  7. Đánh giá mô hình đã tinh chỉnh

Bước 1: Chọn mô hình giáo viên và học sinh

Bước đầu tiên của chưng cất mô hình là chọn giáo viên và học sinh, được quyết định bởi tác vụ dự định và ngân sách tính toán của bạn.

Khi làm việc với các mô hình mã nguồn mở, có nhiều LLM với năng lực và kích thước khác nhau. Trên nền tảng của OpenAI, lựa chọn có phần hạn chế.

Bảng tổng quan các mô hình của OpenAI, bao gồm tên, mô tả và khả năng.

Trong ví dụ này, chúng ta sẽ chọn GPT-4o mini làm mô hình học sinh nhỏ hơn và GPT-4o làm mô hình giáo viên.

GPT-4o-mini là một mô hình tương đối nhỏ và là ứng viên phù hợp cho vai trò học sinh. GPT-4o tương đối lớn hơn nhưng mạnh hơn nhiều và có thể là giáo viên hiệu quả cho học sinh.

Có những lựa chọn khác, và việc thay đổi mô hình sẽ chỉ cần tối thiểu công sức trong dự án chưng cất của chúng ta.

Bước 2: Chuẩn bị bộ dữ liệu

Bộ dữ liệu cho tác vụ này cần đủ thách thức với mô hình học sinh nhưng không quá khó với giáo viên. Những phẩm chất của một bộ dữ liệu tốt như đa dạng, đại diện hay chính xác vẫn rất quan trọng trong chưng cất mô hình.

Việc có một bộ dữ liệu đủ lớn để tác động đến mô hình học sinh là rất quan trọng. Không có câu trả lời dứt khoát cho “Bộ dữ liệu chưng cất nên lớn cỡ nào?” vì còn tùy thuộc vào độ phức tạp của tác vụ mục tiêu và các mô hình bạn chọn làm giáo viên và học sinh.

Theo tài liệu của OpenAI, vài trăm mẫu có thể là đủ, nhưng một tập đa dạng gồm hàng nghìn mẫu đôi khi mang lại kết quả tốt hơn.

Bộ dữ liệu trong bài viết này gồm 386 yêu cầu của người dùng được lưu trong một tệp JSON (bạn cũng có thể lưu dưới dạng một danh sách Python).

{    
    "requests": [
      "Initialize a new Git repository in the current directory.",
      "Clone the repository from GitHub to my local machine.",
      "Create a new branch called 'feature-login'.",
			...
      "Show the differences between the working directory and the staging area.",
      "Stage all modified and deleted files for commit.",
      ]
}

Bước 3: Tạo cặp đầu vào/đầu ra cho học sinh (tùy chọn)

Hiện bộ dữ liệu của chúng ta chỉ gồm đầu vào, và chúng ta nên tạo cả đầu ra. Đầu ra của học sinh không bắt buộc cho chưng cất, nhưng chúng ta cần chúng để có đường cơ sở cho độ chính xác của mô hình học sinh (bước 4).

Chúng ta dùng đoạn mã dưới đây để lặp qua bộ dữ liệu đầu vào và tạo một đầu ra cho mỗi mục:

def generate_responses():
    with open(JSON_PATH, 'r') as file:
        user_messages = json.load(file)
    
    for sentence in user_messages['requests']:
        # Call the OpenAI model gpt-4o-mini and store the response
        response = client.chat.completions.create(
            model="gpt-4o-mini",
            messages=[
                {"role": "system", "content": system_prompt},
                {
                    "role": "user",
                    "content": sentence
                },
            ],
            store=True,
            metadata={
                "task": "git"
            }
        )

generate_responses()

Lưu ý chúng ta dùng store=True khi gọi mô hình OpenAI. Tham số này sẽ lưu các cặp đầu vào/đầu ra trong bảng điều khiển OpenAI của chúng ta, nên ta không cần lưu đầu ra bằng mã.

Để sau này nhận diện và lọc các chat completion này, đừng quên thêm metadata khi gọi hàm client.chat.completions.create. Các tham số metadata là tùy ý.

Các đầu ra được tạo có thể tìm thấy trong mục Chat Completions của bảng điều khiển OpenAI.

Ảnh chụp màn hình mục Chat Completions trong bảng điều khiển OpenAI, hiển thị danh sách tương tác chat trước đó.

Bước 4: Đánh giá hiệu năng của học sinh (tùy chọn)

Một công cụ khác của OpenAI hữu ích cho chưng cất mô hình là Evaluations. Chúng ta dùng công cụ này để đánh giá hiệu năng của mô hình học sinh trước khi huấn luyện như một chỉ số cơ sở. Chúng ta cũng sẽ dùng lại khi đánh giá mô hình học sinh đã tinh chỉnh.

Sau khi lọc các chat completion ở bước trước, hãy nhấp vào nút Evaluate. Bây giờ chúng ta cần thêm tiêu chí kiểm thử.

Ảnh chụp màn hình giao diện công cụ Evaluations của OpenAI, hiển thị các tùy chọn thêm tiêu chí kiểm thử.

Có nhiều phương pháp để đánh giá các cặp đầu vào/đầu ra. Lưu ý bộ dữ liệu hiện tại của chúng ta được tạo tự động bởi chat completions của OpenAI và chỉ chứa đầu vào và đầu ra. Tuy nhiên, một số tiêu chí còn yêu cầu một đáp án tham chiếu để so sánh.

Đáp án tham chiếu này có thể là đầu ra do mô hình tinh vi hơn tạo ra, như GPT-4o hoặc o1-preview. Do việc lưu chat tự động lên OpenAI không cho phép chúng ta cung cấp tham chiếu như vậy, nên chúng ta bị giới hạn ở phương pháp Criteria match hoặc Custom prompt, vốn chỉ cần đầu vào và đầu ra.

Nếu bạn cần dùng các phương pháp khác, bạn không thể dùng chat completions của OpenAI và phải tạo tệp JSON của riêng bạn bằng mã. Điều này không phức tạp, nhưng chúng ta sẽ không đi sâu trong bài viết này.

Ảnh chụp màn hình giao diện GUI của OpenAI cho cấu hình tiêu chí

Khi chạy đánh giá, bạn sẽ nhận được kết quả trong thời gian ngắn.

Bước 5: Tạo cặp đầu vào/đầu ra cho giáo viên

Để tinh chỉnh mô hình học sinh, chúng ta cần một bộ dữ liệu chất lượng cao do giáo viên tạo. Bước này gần như giống bước 3—bạn chỉ cần đổi tham số model từ gpt-4o-mini sang gpt-4o.

Bước 6: Tinh chỉnh mô hình học sinh

Một lần nữa, trong Chat Completions, hãy lọc theo mô hình giáo viên và metadata. Tiếp theo, chọn nút Distill. Tính năng distill của OpenAI về bản chất chính là công cụ tinh chỉnh.

Ảnh chụp màn hình giao diện công cụ tinh chỉnh của OpenAI, hiển thị tùy chọn chọn mô hình nền tảng và siêu tham số.

Với mô hình nền tảng, chúng ta chọn mô hình học sinh. Các siêu tham số cần được thử nghiệm và tinh chỉnh để đạt kết quả tốt nhất—hãy đặt ở chế độ tự động. Cuối cùng, chọn Create và chờ quá trình tinh chỉnh hoàn tất.

Bước 7: Đánh giá mô hình đã tinh chỉnh

Khi hoàn tất, chúng ta sẽ dùng lại đoạn mã ở bước 3, lần này dùng mô hình đã tinh chỉnh làm tham số model. Tên mô hình đã tinh chỉnh được hiển thị là “Output model” trên trang tinh chỉnh của bạn.

def generate_responses():
    with open(JSON_PATH, 'r') as file:
        user_messages = json.load(file)

    for sentence in user_messages['requests']:
        # Call the OpenAI model gpt-4o-mini and store the response
        response = client.chat.completions.create(
            model="ft:gpt-4o-mini-2024-07-18:personal:git:AF7QSF0m",
            messages=[
                {"role": "system", "content": system_prompt},
                {
                    "role": "user",
                    "content": sentence
                },
            ],
            store=True,
            metadata={
                "task": "git"
            }
        )

generate_responses()

Sau khi tạo xong các đầu ra, hãy dùng công cụ đánh giá để đo lường khả năng của mô hình mới trên các đầu vào.

Kết luận

Công thức chưng cất của OpenAI đơn giản nhưng rõ ràng. Nó đặc biệt hữu ích vì bạn không cần tự lo tinh chỉnh mô hình hay dùng mã để đánh giá kết quả.

Các mô hình của OpenAI, ngay cả mô hình nhỏ, cũng đã khá tinh vi. Hãy chắc chắn thử nghiệm các siêu tham số trước khi tinh chỉnh mô hình, chuẩn bị các prompt đủ và có tính thách thức cho cả giáo viên lẫn học sinh, và so sánh kết quả đánh giá sau tinh chỉnh với đánh giá cơ sở.

Trước khi tự tay thực hiện chưng cất mô hình, tôi khuyên bạn đọc hai tài nguyên của OpenAI: Chưng cất mô hình OpenAI trong API và Tài liệu về chưng cất mô hình.


Hesam Sheikh Hassani's photo
Author
Hesam Sheikh Hassani
LinkedIn
Twitter

Học viên cao học ngành Trí tuệ nhân tạo và chuyên viên biên tập kỹ thuật AI. Tôi chia sẻ những góc nhìn về công nghệ AI mới nhất, giúp phổ biến nghiên cứu ML và đơn giản hóa các chủ đề AI phức tạp để bạn luôn đi đầu.

Chủ đề
Trí tuệ Nhân tạo
OpenAI
Mô hình Ngôn ngữ Lớn

Học cách xây dựng ứng dụng AI!

Lộ trình

Phát triển các ứng dụng trí tuệ nhân tạo

21 giờ
Học cách phát triển các ứng dụng được hỗ trợ bởi trí tuệ nhân tạo (AI) bằng cách sử dụng các công cụ phát triển AI mới nhất, bao gồm API OpenAI, Hugging Face và LangChain.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm