LangChain: Blog
85

Nghiên cứu

Đánh giá OpenWiki với WikiBench: Liệu tài liệu Wiki có giúp AI lập trình thông minh hơn?

(giờ Việt Nam)

Tóm tắt AI

LangChain giới thiệu WikiBench để kiểm chứng hiệu quả của tài liệu Wiki đối với các tác nhân AI lập trình. Kết quả cho thấy việc kết hợp Wiki với mã nguồn giúp cải thiện hiệu suất đáng kể và tối ưu chi phí so với chỉ sử dụng mã nguồn đơn thuần.

Bản dịch AI

Evaluating OpenWiki with WikiBench

OpenWiki là tác nhân (agent) mã nguồn mở của chúng tôi dùng để tạo và duy trì tài liệu codebase. Trong quá trình cải tiến OpenWiki, chúng tôi cần đo lường hai yếu tố:

Chúng tôi đã xây dựng WikiBench để giải đáp cả hai câu hỏi đó. Công cụ này đánh giá các wiki được tạo ra bằng cách sử dụng các câu hỏi dựa trên codebase nền tảng. Việc này cho phép chúng tôi đo lường sự khác biệt về chất lượng giữa các wiki khác nhau cũng như mức độ hữu ích thực tế của wiki đó.

WikiBench chạy trên Harbor

Chúng tôi xây dựng bộ benchmark này trong Harbor, một framework dùng để đánh giá các tác nhân trên các tác vụ chạy dài hạn. Các tác vụ trong Harbor có ba thành phần:

Trong WikiBench, môi trường là một repository được checkout tại một commit cố định. Tác nhân sẽ chạy quá trình khởi tạo OpenWiki trên repository đó và tạo ra wiki ban đầu. Bộ kiểm chứng (verifier) sẽ đánh giá wiki được tạo ra bằng cách sử dụng các câu hỏi về repository đó.

Bộ kiểm chứng

Bộ kiểm chứng là một trong những phần thú vị nhất của WikiBench. Để đánh giá wiki, bộ kiểm chứng sử dụng một “reader agent” (tác nhân đọc). “Reader agent” này cố gắng trả lời các câu hỏi về repository nền tảng bằng cách sử dụng wiki (đôi khi kèm theo mã nguồn, đôi khi tự thực hiện). Điều này cho phép chúng tôi đánh giá wiki dựa trên mức độ hữu ích thực tế của nó đối với các tác vụ thực tế.

Để xây dựng WikiBench một cách hiệu quả, chúng tôi tạo các câu hỏi một cách tự động. Chúng tôi tạo hai loại câu hỏi: câu hỏi “bao quát” (coverage) và câu hỏi “truy xuất” (retrieval). Để làm điều này, chúng tôi kiểm tra repository tại một commit cố định và xác định các lĩnh vực chủ đề lớn hơn như các gói (packages) hoặc các hệ thống con (subsystems).

Các câu hỏi “bao quát” sử dụng một mẫu chung:

Các câu hỏi “truy xuất” được viết riêng biệt xoay quanh các hành vi cụ thể:

Cùng với mỗi câu hỏi, chúng tôi tạo ra một tệp json đóng vai trò là bảng tiêu chí chấm điểm cho câu trả lời. Tệp json này chứa danh sách các sự kiện (facts) mà câu trả lời cần phải có.

Khi đến lúc chấm điểm câu trả lời, chúng tôi sử dụng một loạt các LLM judges để chấm điểm từng sự kiện nằm trong tệp json. Một judge kiểm tra xem sự kiện đó có xuất hiện trong câu trả lời hay không. Một judge thứ hai kiểm tra xem sự kiện được tạo ra có dựa trên các trang mà tác nhân đã đọc hay không. Điều này đảm bảo chúng tôi chỉ tính điểm cho một câu hỏi nếu tác nhân phản hồi chính xác và có căn cứ.

Mỗi câu trả lời sau đó sẽ nhận được điểm tổng thể dựa trên các sự kiện mà nó trả lời đúng. Ví dụ, nếu một câu trả lời yêu cầu 5 sự kiện mà chỉ đưa ra được 3, nó sẽ nhận được số điểm là 0.6.

Đó là cách chúng tôi chấm điểm một câu hỏi đơn lẻ. Để chấm điểm toàn bộ wiki, chúng tôi tính điểm trung bình của tất cả các câu trả lời.

Một lợi ích của việc thiết lập bộ kiểm chứng theo cách này là nó cho phép chúng tôi kiểm tra xem wiki có thực sự hữu ích hay không, vì chúng tôi có thể cung cấp cho “reader agent” mã nguồn thô và yêu cầu nó trả lời trực tiếp các câu hỏi. Vì vậy, bộ benchmark này hữu ích hơn nhiều so với việc chỉ so sánh hai phiên bản wiki khác nhau.

Kết quả

Chúng tôi sử dụng bộ benchmark này để kiểm thử các wiki trên nhiều harness và mô hình khác nhau. Chúng tôi đã thực hiện một vài thử nghiệm:

Đánh giá các harness khác nhau

Lần chạy đầu tiên so sánh ba harness: Bare DeepAgents, OpenWiki 0.2.5 và OpenWiki 0.3.0. Cả ba harness đều sử dụng cùng một mô hình (Luna).

Bảng xếp hạng này phù hợp với kỳ vọng của chúng tôi. Deep Agents là một harness tác nhân đa năng, không được tinh chỉnh cho việc tạo wiki, nên không có gì ngạc nhiên khi nó đạt kết quả thấp nhất. OpenWiki 0.3.0 đã có những cải tiến đáng kể trong cách tạo wiki, vì vậy cũng không ngạc nhiên khi nó hoạt động tốt hơn các phiên bản trước đó.

Cụ thể, OpenWiki 0.3.0 chú trọng hơn vào việc lập kế hoạch thông qua system prompt và một subagent chuyên dụng. Chúng tôi kỳ vọng điều này sẽ tạo ra một wiki rộng hơn. Hầu hết các cải tiến đến từ hiệu suất tốt hơn trong các câu hỏi “bao quát”, điều này nhất quán với giả thuyết đó. Vì chúng tôi tập trung ít hơn vào việc cải thiện khả năng soạn thảo trang, hiệu suất đối với các câu hỏi “truy xuất” cải thiện ít hơn.

Đánh giá các mô hình khác nhau

Sau đó, chúng tôi chạy OpenWiki 0.3.0 với một vài mô hình khác nhau.

Chúng ta thấy rằng cả DeepSeek Flash và GLM 5.2 đều hoạt động rất tốt, nhưng ở các mức chi phí khác nhau - DeepSeek Flash có chi phí chỉ bằng khoảng một phần sáu so với GLM 5.2.

Nhìn chung, có sự khác biệt lớn giữa các lần chạy này - không chỉ về hiệu suất mà còn về chi phí ($9.18 cho GLM 5.2, $0.44 cho Luna) và thời gian (11 phút cho Terra, 50 phút cho GLM 5.2).

Chi phí và thời gian tăng thêm đó đi đâu? Nếu xem xét những gì tác nhân thực hiện, chúng ta có thể bắt đầu hiểu ra:

So với Luna, DeepSeek và GLM đọc số lượng tệp nhiều gấp khoảng ba lần nhưng chỉ viết số lượng trang nhiều gấp 1.2–1.5 lần. Công việc bổ sung của chúng chủ yếu nằm ở việc hiểu sâu hơn về repository, chứ không phải tạo ra nhiều đầu ra hơn.

Wiki có hữu ích không?

Chúng tôi cũng muốn hiểu liệu wiki có thực sự giúp đưa ra câu trả lời tốt hơn hay không. Để hiểu điều này, chúng tôi đã chạy reader agent (hay còn gọi là bộ kiểm chứng) trên ba thiết lập khác nhau.

Kết hợp wiki với mã nguồn mang lại điểm trung bình cao nhất với chi phí thấp hơn so với việc chỉ sử dụng mã nguồn. Wiki đóng vai trò như một chỉ mục: nó cung cấp cho người đọc một điểm bắt đầu thay vì buộc họ phải tái cấu trúc lại repository từ đầu.

Wiki đơn lẻ hoạt động kém hơn nhiều, cho thấy nó hoạt động tốt nhất như một hướng dẫn thay vì là sự thay thế cho mã nguồn. Khi kết hợp, wiki và mã nguồn giúp người đọc chính xác hơn và tiết kiệm chi phí hơn.

Cải thiện OpenWiki

WikiBench hoạt động bằng cách sử dụng một “reader agent” để cố gắng trả lời các câu hỏi. Điểm số của một wiki trên một tác vụ chính là mức độ hiệu quả của reader agent đó.

Sử dụng thiết lập này, chúng tôi chứng minh rằng các wiki cho phép các tác nhân trả lời câu hỏi tốt hơn và hiệu quả hơn so với các tác nhân chỉ sử dụng mã nguồn thô. Nó cũng cho phép chúng tôi đánh giá các harness và mô hình khác nhau. Chúng tôi đang tích cực sử dụng điều này để định hướng sự phát triển của OpenWiki.

Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ LangChain: Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.