Ai cũng có ý kiến riêng về việc fine-tuning so với RAG. Lướt qua bất kỳ diễn đàn AI nào, bạn cũng sẽ thấy những cuộc tranh luận nảy lửa đầy rẫy các sơ đồ kiến trúc và các tuyên bố về benchmark. Hầu hết những người viết các bình luận đó chưa bao giờ tự huấn luyện một mô hình trên dữ liệu của riêng họ hoặc chứng kiến một pipeline RAG thất bại âm thầm trong môi trường production.

Tôi đã dành nhiều tháng để thực hiện các thử nghiệm. Chính xác là mười hai thử nghiệm. Tôi đã fine-tune các LLM. Tôi đã fine-tune các embedder. Tôi đã xây dựng sáu cấu hình RAG khác nhau. Lĩnh vực là dự đoán tài chính, cụ thể là cố gắng dự báo các kết quả thị trường nhiễu từ dữ liệu lịch sử hỗn loạn. Tôi đã áp dụng các tiêu chuẩn thống kê nghiêm ngặt vì tôi muốn có câu trả lời thực sự, chứ không phải những tuyên bố trên blog.

Hầu hết các thử nghiệm đều thất bại. Những thất bại đó hóa ra lại hữu ích hơn nhiều so với bất kỳ thành công may mắn nào.

Sự thật phũ phàng về Tín hiệu (Signal)

Trước khi đi sâu vào chi tiết, đây là bài học gắn kết mọi thứ lại với nhau. Fine-tuning và RAG là các công cụ để thay đổi những gì một mô hình biết hoặc những gì nó thấy. Chúng không phải là những cây gậy phép có thể tạo ra tín hiệu từ hư không. Nếu dữ liệu nền tảng của bạn không chứa một mô hình (pattern) thực sự có thể khai thác được, các kỹ thuật này sẽ không tạo ra được nó. Chúng sẽ chỉ giúp bạn xây dựng một câu chuyện thuyết phục hơn xung quanh những nhiễu loạn ngẫu nhiên.

Trong dự đoán tài chính, cái bẫy này đặc biệt nguy hiểm. Thị trường vốn dĩ đã nhiễu. Khi bạn gắn một LLM mạnh mẽ vào dữ liệu giá lịch sử và thêm vào khả năng truy xuất (retrieval) hoặc fine-tuning, bạn không tự động có được lợi thế. Bạn chỉ có một cách diễn đạt trau chuốt hơn để hợp lý hóa những cú tung đồng xu may rủi. Nếu không có tín hiệu, mô hình sẽ trở nên rất giỏi trong việc nói dối bạn. Bạn cần phải kiểm tra điều đó trước tiên.

Khi mô hình lớn hơn chỉ học thuộc lòng thay vì học hỏi

Sai lầm lớn đầu tiên của tôi là giả định rằng quy mô (scale) sẽ giải quyết được mọi thứ. Tôi đã thử nghiệm một mô hình 14 tỷ tham số so với mô hình 7 tỷ tham số trên đúng 777 ví dụ huấn luyện. Mô hình lớn hơn đạt được eval_loss tốt hơn đáng kể. Độ rối loạn (perplexity) của nó giảm xuống. Trên lý thuyết, nó đang học.

Sau đó, tôi nhìn vào tỷ lệ thắng (win rate), tỷ lệ thực tế mà mô hình đưa ra các dự đoán chính xác. Mô hình 14B hoạt động kém hơn đáng kể so với mô hình 7B. Nó đã học thuộc lòng các nhiễu trong quá trình huấn luyện. Với ít hơn 3.000 ví dụ, mô hình lớn hơn có đủ khả năng để overfitting (quá khớp) vào các mối tương quan giả tạo và những biến động ngẫu nhiên trong dữ liệu. Về cơ bản, nó đã xây dựng một bảng tra cứu (lookup table) của các nhiễu loạn.

Mô hình 7B, bị giới hạn bởi dung lượng nhỏ hơn, buộc phải học các mô hình rộng hơn. Nó không thể cho phép mình học thuộc lòng mọi đặc điểm riêng biệt. Nếu bạn đang làm việc với các tập dữ liệu nhỏ, hãy bắt đầu với các mô hình nhỏ hơn. Quy mô không hề miễn phí. Nó có thể gây hại trực tiếp cho bạn khi dữ liệu mỏng.

Đừng tin vào đường cong mất mát (Loss Curve)

Tôi đã học được cách ngừng nhìn chằm chằm vào các đường cong mất mát. Một mô hình có thể cải thiện cross-entropy ở cấp độ token trong khi lại trở nên tệ hơn trong quyết định kinh doanh thực tế mà bạn quan tâm. Điều này xảy ra vì mất mát của mô hình ngôn ngữ (language modeling loss) sẽ thưởng cho việc dự đoán chính xác token tiếp theo. Trong nhiều lĩnh vực, đặc biệt là tài chính, quyết định đúng đắn và token tiếp theo có khả năng xảy ra nhất không phải là một.

Tôi đã thấy những mô hình tái hiện văn phong huấn luyện một cách tuyệt đẹp nhưng lại chọn sai hướng đặt cược mọi lúc. Mất mát giảm xuống. Số vốn cũng giảm theo. Hãy chọn chỉ số đánh giá dựa trên nhiệm vụ thực tế. Nếu bạn đang xếp hạng tài liệu, hãy đo lường chất lượng xếp hạng. Nếu bạn đang dự đoán kết quả, hãy đo lường độ chính xác của quyết định. Đừng bao giờ để eval_loss chọn mô hình thay cho bạn.

Fine-Tuning chỉ tỏa sáng với từ vựng lạ

Tôi đã thực hiện các thử nghiệm fine-tuning embedder trên hai loại văn bản khác nhau. Loại đầu tiên sử dụng tin tức tài chính tiêu chuẩn và các hồ sơ công khai. Embedder được fine-tune và phiên bản có sẵn (off-the-shelf) hoạt động giống hệt nhau. Mô hình cơ sở đã biết ngôn ngữ này rồi. Tôi đang tinh chỉnh trên vùng đất quen thuộc.

Tập dữ liệu thứ hai đầy rẫy các thuật ngữ chuyên môn riêng tư, mật danh nội bộ và các từ viết tắt đặc thù của ngành mà chưa bao giờ xuất hiện trên internet công cộng. Ở đây, fine-tuning đã cải thiện độ chính xác truy xuất lên 79%. Mô hình cơ sở đơn giản là không biết những thuật ngữ này có nghĩa là gì. Fine-tuning đã dạy nó từ vựng địa phương.

Điều này đã định nghĩa lại toàn bộ bài tập đối với tôi. Fine-tuning không phải là làm cho mô hình thông minh hơn theo một nghĩa tổng quát nào đó. Đó là việc dạy cho nó một từ vựng mới, một định dạng mới hoặc một phong cách trình bày nhất định. Nếu dữ liệu của bạn trông giống như internet, hãy bỏ qua fine-tuning. Nếu dữ liệu của bạn nói một ngôn ngữ mà mô hình cơ sở chưa từng thấy, fine-tuning trở nên thiết yếu.

RAG mang lại cho bạn sự chắc chắn, không phải sự thật

Tôi đã thử nghiệm tám cấu hình RAG riêng biệt cho các tác vụ dự đoán. Nhìn chung, việc thêm truy xuất đã làm thay đổi khoảng 30% các quyết định của mô hình. Nghe có vẻ có tác động lớn. Nhưng thực tế thì không. Những thay đổi đó hoàn toàn là nhiễu. Độ chính xác tổng thể không hề cải thiện. Thứ duy nhất thay đổi là sự tự tin của mô hình. RAG khiến hệ thống nghe có vẻ chắc chắn hơn, trích dẫn nhiều nguồn hơn và đưa ra các lập luận dài hơn. Trong khi vẫn sai sót như cũ.

Sự tự tin thái quá này là một rủi ro về sản phẩm. Người dùng nhìn thấy các trích dẫn và cho rằng mô hình đã nghiên cứu kỹ lưỡng. Trong thực tế, nó chỉ đang thực hiện những phán đoán mò mẫm nhưng trông có vẻ tinh vi.

Bài học đau đớn nhất đến từ việc backtesting một biến thể RAG. Nó cho thấy mức lợi nhuận hàng năm là 11%. Nhìn bề ngoài, đó có vẻ là một chiến lược chiến thắng. Nhưng chỉ số AUC của nó — diện tích dưới đường cong ROC và là thước đo kỹ năng phân loại — chỉ là 0,486. Con số này còn tệ hơn cả việc tung đồng xu (vốn ở mức 0,500). Lợi nhuận đó chỉ là sự may mắn nhất thời của một giai đoạn thị trường cụ thể, chứ không phải là một lợi thế có thể lặp lại. Chỉ sử dụng P&L làm thước đo là rất nguy hiểm. Thị trường luôn ban phát những chuỗi may mắn. Bạn cần các chỉ số kỹ năng thống kê để phân biệt giữa sự may mắn nhất thời và năng lực thực sự.

Hiểu rõ chức năng thực sự của từng công cụ

Vậy điều này để lại cho chúng ta bài học gì? Hãy sử dụng fine-tuning khi mô hình cần học các từ mới, các định dạng cụ thể hoặc một phong cách riêng biệt. Hãy sử dụng RAG khi mô hình cần truy cập vào các sự thật, kho lưu trữ mã nguồn hoặc kiến thức nội bộ nằm ngoài các trọng số của nó. Đừng sử dụng bất kỳ công cụ nào trong hai loại này để tìm kiếm tín hiệu trong một tập dữ liệu vốn không có tín hiệu. Nếu mô hình nền tảng không tồn tại, việc truy xuất và fine-tuning sẽ chỉ giúp bạn khoác lên lớp nhiễu một bộ vest sắc sảo hơn.

Nút thắt thực sự

Hạ tầng cho fine-tuning và RAG chưa bao giờ dễ thiết lập đến thế. Bạn có thể dựng lên một quy trình chỉ trong một buổi chiều. Kỹ thuật không còn là nút thắt nữa. Đánh giá mới là nút thắt. Hầu hết các đội ngũ đều bỏ qua các công việc thống kê khó khăn và thay vào đó lại ăn mừng các chỉ số ảo. Họ tung ra những hệ thống nghe có vẻ thông minh nhưng lại thất bại một cách âm thầm.

Hãy thực hiện các bài kiểm tra trung thực trước khi chi tiền. Hãy đặt câu hỏi về các chỉ số của bạn. Kiểm tra xem có bị overfitting hay không. Hãy đảm bảo rằng mô hình thực sự tốt hơn,