Xây dựng với AI

Tinh chỉnh các mô hình trình duyệt nhỏ để có câu trả lời RAG đáng tin cậy

Một nhà phát triển đã giảm hiện tượng ảo giác (hallucination) ở mô hình 0,6 tỷ tham số bằng cách tinh chỉnh phong cách dữ liệu huấn luyện thay vì tăng kích thước mô hình, qua đó đạt được tỷ lệ từ chối trả lời tốt hơn trong tìm kiếm trên trình duyệt.

Một khối thủy tinh nhỏ chứa mạch điện bên trong đặt trên bàn cạnh các tờ giấy và kính lúp
Minh họa được tạo riêng cho bài viết này

Được dịch tự động từ bản gốc tiếng Anh.

Bart de Goede gần đây đã công bố kết quả từ một thí nghiệm tinh chỉnh một mô hình ngôn ngữ nhỏ nhằm cải thiện quy trình tạo sinh tăng cường truy xuất (RAG) trực tiếp trên trình duyệt. Bằng cách lặp lại quá trình với bốn bộ dữ liệu huấn luyện khác nhau trên máy Mac cục bộ, anh ấy đã biến đổi một mô hình 0,6 tỷ tham số dễ bị ảo giác thành một trợ lý đáng tin cậy hơn, biết cách từ chối chính xác những câu hỏi không thể trả lời. Mô hình cuối cùng, Qwen3-0.6B, hiện đang cung cấp sức mạnh cho chức năng tìm kiếm trên blog của anh ấy với số lượng lỗi ít hơn đáng kể so với phiên bản gốc.

Chuyện gì đã xảy ra

Nỗ lực ban đầu sử dụng các mô hình ngôn ngữ nhỏ để tóm tắt kết quả tìm kiếm ngữ nghĩa đã thất bại vì các mô hình này thường xuyên bịa đặt chi tiết không có trong văn bản nguồn. De Goede giả thuyết rằng việc tinh chỉnh có thể dạy mô hình tuân thủ nghiêm ngặt các đoạn văn được cung cấp hoặc tuyên bố rõ ràng khi thông tin bị thiếu. Anh bắt tay vào xây dựng một bộ dữ liệu sử dụng các bài viết kỹ thuật được cấp phép mở từ cộng đồng Go, Rust và Python, tránh dùng các bài đăng trên blog cá nhân để ngăn chặn rò rỉ dữ liệu trong quá trình đánh giá.

Quy trình bao gồm bốn vòng huấn luyện, mỗi vòng phơi bày những cạm bẫy cụ thể trong cách các mô hình nhỏ học từ dữ liệu tổng hợp. Phiên bản đầu tiên làm giảm hiệu suất do bắt chước phong cách dài dòng của mô hình giáo viên, trong khi các lần lặp lại sau đó điều chỉnh định dạng câu trả lời ngắn gọn và giàu tính thực tế hơn. Phiên bản thứ ba nổi lên như sự cân bằng hiệu quả nhất, giảm hai phần ba số câu trả lời sai so với mô hình cơ sở, mặc dù đôi khi nó từ chối trả lời những câu hỏi mà về mặt kỹ thuật nó có thể giải quyết được.

Toàn bộ mã nguồn, bộ dữ liệu và trọng số mô hình cuối cùng đều được công khai. Điều này cho phép các nhà phát triển khác sao chép thiết lập, thử nghiệm trên tài liệu riêng của họ hoặc huấn luyện lại mô hình với các prompt hệ thống tùy chỉnh. Toàn bộ pipeline huấn luyện chạy cục bộ trên một chiếc M4 Mac mini, chứng minh rằng việc tinh chỉnh chất lượng cao cho các tác vụ RAG cụ thể không đòi hỏi tài nguyên điện toán đám mây khổng lồ.

Cách thức hoạt động

Hệ thống sử dụng cơ chế truy xuất chia nhỏ tài liệu và nhúng chúng để phục vụ tìm kiếm ngữ nghĩa. Khi người dùng đặt câu hỏi, hệ thống sẽ truy xuất bốn đoạn văn liên quan nhất. Các đoạn văn này, cùng với một prompt hệ thống nghiêm ngặt, được đưa vào mô hình Qwen3-0.6B chạy trên trình duyệt thông qua WebGPU hoặc WebAssembly. Prompt hướng dẫn mô hình trả lời tối đa hai câu chỉ dựa trên văn bản được cung cấp hoặc từ chối trả lời nếu các đoạn văn không đủ thông tin.

Quá trình huấn luyện dựa trên phương pháp chưng cất (distillation), trong đó một mô hình lớn hơn, Claude Opus 5.5, tạo ra các phản hồi lý tưởng cho hàng nghìn câu hỏi tổng hợp. De Goede sử dụng LoRA (Low-Rank Adaptation) với thư viện mlx-lm để tinh chỉnh mô hình nhỏ. Mỗi lần chạy huấn luyện gồm một epoch trên 4.500 ví dụ, mất khoảng 80 phút. Insight quan trọng là mô hình nhỏ không thể tổng hợp thông tin từ nhiều đoạn văn; nó chỉ có thể trích xuất các sự kiện cụ thể từ từng đoạn văn đơn lẻ hoặc từ chối trả lời.

Chi tiết chính

  • Mô hình cuối cùng là Qwen3-0.6B, được tinh chỉnh đặc biệt để trích xuất thông tin từ bốn đoạn văn được truy xuất.
  • Quá trình huấn luyện sử dụng 2.193 tài liệu từ các blog Go, Rust và Python theo giấy phép thoáng (permissive licenses).
  • Phiên bản 3 đạt được 16 câu trả lời trung thực trong số 30 câu, khớp với độ chính xác của mô hình cơ sở nhưng giảm số câu trả lời sai từ chín xuống còn ba.
  • Mô hình đã từ chối trả lời đúng cách tất cả 15 câu hỏi không được đề cập trong tài liệu nguồn.
  • Mỗi vòng lặp huấn luyện mất khoảng 1 giờ 20 phút trên một chiếc M4 Mac mini với 24 GB RAM.
  • Bộ dữ liệu và mã nguồn được công khai, cho phép người khác huấn luyện lại mô hình cho các lĩnh vực khác như trang web tài liệu.

Tại sao điều này quan trọng

Đối với các kỹ sư xây dựng hệ thống RAG, thí nghiệm này nhấn mạnh rằng kích thước mô hình ít quan trọng hơn chất lượng dữ liệu đối với các tác vụ trích xuất cụ thể. Các mô hình nhỏ chạy trên trình duyệt mang lại lợi ích về quyền riêng tư và độ trễ thấp, nhưng chúng thiếu khả năng suy luận để tổng hợp các câu trả lời phức tạp. Bằng cách giới hạn nhiệm vụ vào trích xuất đơn giản và từ chối, các nhà phát triển có thể triển khai các mô hình nhẹ nhàng chống chịu tốt với hiện tượng ảo giác mà không cần suy luận tốn kém phía máy chủ.

Việc hàm mất mát kiểm tra (validation loss) không dự đoán được hiệu suất thực tế là một bài học quan trọng khác. Các chỉ số tiêu chuẩn cho thấy sự cải thiện trong khi tính hữu ích thực tế của mô hình lại suy giảm, chứng minh rằng các đường cong mất mát tự động không thể thay thế đánh giá thủ công trên tập kiểm tra giữ lại (held-out test sets). Các nhà phát triển phải đánh giá các checkpoint dựa trên hành vi cụ thể họ mong muốn, chẳng hạn như từ chối đúng cách, thay vì sự trôi chảy ngôn ngữ chung.

Cách tiếp cận này cũng dân chủ hóa việc tinh chỉnh. Bằng cách chứng minh rằng các mô hình hiệu quả có thể được huấn luyện trên phần cứng tiêu dùng trong chưa đầy hai giờ, nó hạ thấp rào cản cho các nhóm tùy chỉnh các mô hình mã nguồn mở cho cơ sở tri thức cụ thể của họ. Nó chuyển trọng tâm từ việc mua các mô hình lớn hơn sang thiết kế dữ liệu huấn luyện tốt hơn phù hợp với giới hạn nhận thức của các kiến trúc nhỏ hơn.

Bạn có thể làm gì

  • Tải xuống mô hình bartdegoede/qwen3-0.6b-small-rag từ Hugging Face để sử dụng ngay trong các ứng dụng dựa trên trình duyệt.
  • Tạo một tập đánh giá nhỏ gồm 30 đến 50 câu hỏi về tài liệu của riêng bạn, bao gồm một số câu không thể trả lời, để kiểm tra hiệu suất cơ bản.
  • Tạo dữ liệu huấn luyện tổng hợp bằng cách sử dụng một mô hình ngôn ngữ lớn, đảm bảo các câu trả lời ngắn gọn, giàu tính thực tế và được rút ra từ các đoạn văn đơn lẻ.
  • Loại bỏ các cụm từ dè dặt như "văn bản không nói" khỏi các ví dụ huấn luyện tích cực để ngăn mô hình học sự dài dòng không cần thiết.
  • Theo dõi hiệu suất checkpoint thủ công trên tập kiểm tra cụ thể của bạn thay vì chỉ dựa vào các chỉ số validation loss trong quá trình huấn luyện.
  • Cân nhắc huấn luyện lại mô hình với các prompt hệ thống tùy chỉnh nếu ứng dụng của bạn tham chiếu đến "tài liệu" thay vì "blog" để cải thiện sự phù hợp về ngữ cảnh.
  • #rag
  • #fine-tuning
  • #small language models
  • #browser ai
  • #machine learning

Công cụ từ cửa hàng Bytechap

Đọc tiếp

Tất cả bài viết