Techsy
Liên hệ
Bắt đầu
Quay lại Blog
comparisons

Framework Đánh Giá LLM Mã Nguồn Mở Tốt Nhất 2026 (Một Cái Không Thực Sự Mã Nguồn Mở)

Viết bởi Mert Batur
Aug 4, 2026
23 phút đọc
Mục lục
Framework Đánh Giá LLM Mã Nguồn Mở Tốt Nhất 2026 (Một Cái Không Thực Sự Mã Nguồn Mở)

Framework Đánh Giá LLM Mã Nguồn Mở Tốt Nhất 2026 (Một Cái Không Thực Sự Mã Nguồn Mở)

Dòng đầu tiên trong file LICENSE của repo Arize Phoenix ghi "Elastic License 2.0 (ELv2)". Không phải Apache. Không phải MIT. Một framework đánh giá LLM mã nguồn mở được khuyên dùng rộng rãi lại không phải mã nguồn mở theo định nghĩa của OSI, và gần như mọi trang xếp hạng cho truy vấn này vẫn lặp lại tuyên bố đó. Trang của chúng tôi cũng từng như vậy, cho đến hôm nay. Vào ngày 2026-08-04 chúng tôi đã đọc thủ công file giấy phép và log commit trên nhánh mặc định của tám framework, cộng thêm ba framework khác mà các trang xếp hạng đầu vẫn đang khuyên dùng, sau đó cài đặt sáu framework và chạy cùng 10 case qua từng cái. Chúng tôi không bán framework đánh giá nào, vì vậy không có nhận định nào dưới đây bảo vệ cho một sản phẩm.

Những Điểm Chính

  • Arize Phoenix chạy dưới Elastic License 2.0, giấy phép mà OSI không công nhận là mã nguồn mở.
  • Commit cuối cùng của UpTrain vào nhánh main là ngày 2024-07-29. Đừng bắt đầu dự án mới trên nó.
  • pip install promptfoo cho bạn một wrapper của bên thứ ba. Dự án thật được phát hành trên npm.
  • Ragas không có commit nào kể từ 2026-02-24 và đã chuyển tổ chức GitHub sang vibrantlabsai.

Nên Cài Framework Đánh Giá LLM Mã Nguồn Mở Nào Trong Năm 2026?

Chọn theo ràng buộc thực tế, không theo bảng xếp hạng. Với các assertion kiểu pytest bên trong bộ test có sẵn, hãy cài DeepEval. Với cấu hình YAML và CLI phù hợp với mọi ngôn ngữ, hãy cài promptfoo. Với sự phân tách rõ ràng nhất giữa câu trả lời tốt và xấu mà chúng tôi đo được, hãy cài Opik. Cả ba đều dùng giấy phép Apache-2.0 hoặc MIT.

Đây là kết quả kiểm tra. Tám framework nằm trong phạm vi, cộng thêm ba framework khác mà các trang xếp hạng đầu cho truy vấn này vẫn khuyên dùng.

FrameworkGiấy phép (xác minh ngày 2026-08-04)Phát hành gần nhấtCommit cuối trên mainCài đặtKiểu giao diệnMạnh nhất ởChi phí chuyển đổi
DeepEvalApache-2.0v4.1.5 (2026-07-29)2026-08-03pip install deepevalassertion kiểu pytestgate cho bộ test Pythonthấp, các chỉ số là object đơn giản
PromptfooMIT0.121.20 (2026-07-31)2026-08-04npm install promptfoocấu hình YAML cộng CLIkiểm thử prompt không phụ thuộc ngôn ngữtrung bình, định dạng cấu hình đặc thù cho promptfoo
OpikApache-2.02.2.17 (2026-08-04)2026-08-04pip install opikgọi .score() độc lậpcó điểm số dùng được với ít dòng nhấtthấp, các chỉ số chạy không cần nền tảng
Arize PhoenixElastic License 2.0, không được OSI công nhậnv19.15.0 (2026-08-03)2026-08-04pip install arize-phoenix-evalsevaluator dựng sẵn trên dataframenhãn pass/fail nhị phânthấp cho eval, ràng buộc giấy phép nếu bán lại
RagasApache-2.0v0.4.3 (2026-01-13)2026-02-24pip install ragasevaluate() bất đồng bộ trên datasetchỉ số truy xuất RAGthấp, các hàng là dict đơn giản
EvidentlyApache-2.0v0.7.21 (2026-03-10)2026-05-02pip install evidentlydescriptor cộng báo cáo HTMLbáo cáo hàng loạt trên nhiều dòngcao, thang điểm bị đảo ngược
Inspect AIMIT0.3.252 (2026-08-04)2026-08-04pip install inspect-aifile task Python cộng CLIbenchmark một mô hìnhcao, các task đặc thù cho Inspect
GiskardApache-2.02.19.2 trên PyPI (2026-07-06), dòng v22026-08-04pip install giskardscan APIquét lỗ hổng tự độngtrung bình, đầu ra scan đặc thù cho Giskard
lm-evaluation-harnessMITv0.4.12 (2026-05-11)2026-07-13pip install lm-evalCLI trên định nghĩa taskbenchmark mô hình chuẩncao, định nghĩa task đặc thù cho harness
UpTrainApache-2.0v0.7.1 (2024-05-14)2024-07-29pip install uptraintoán tử kiểm tra Pythonkhông có gì chúng tôi muốn bắt đầu hôm nayn/a
DeepchecksGitHub không phát hiện được0.19.1 (2024-12-15)2025-11-24pip install deepchecksobject suite và checkkiểm định dữ liệu dạng bảng và MLcao, các suite đặc thù cho Deepchecks

Ngày tháng là commit cuối trên nhánh mặc định của mỗi dự án tính đến 2026-08-04. Trang repo của GitHub hiển thị lần push cuối lên bất kỳ nhánh nào, muộn hơn với hai dự án ở đây: UpTrain 2024-08-18 và Deepchecks 2025-12-28. Không repo nào bị archive.

Cột chi phí chuyển đổi là cột mọi người hay bỏ qua rồi sau đó hối hận. Điểm số chỉ là con số, nên chuyển giữa DeepEval, Ragas, Opik và phoenix-evals chủ yếu chỉ là viết lại một vòng lặp. Chuyển khỏi promptfoo hoặc Inspect AI nghĩa là viết lại định dạng cấu hình hoặc task mà không có gì tương đương ở nơi khác, còn chuyển khỏi Evidently nghĩa là phải rà lại từng ngưỡng bạn từng viết, vì thang điểm của nó chạy theo chiều ngược lại. Hai trong số các framework mà các trang xếp hạng đầu vẫn khuyên dùng đã không phát hành bản mới nào kể từ 2024.

Muốn xem các tier, nền tảng có trả phí và một bảng xếp hạng rõ ràng? Đó là một việc khác, và chúng tôi đã làm rồi trong bảng so sánh xếp hạng công cụ đánh giá LLM bao gồm cả nền tảng trả phí.

Tám Framework Đánh Giá LLM, Phân Nhóm Theo Cách Cài Đặt

Hình thức cài đặt là thứ bạn phải sống chung, nên đó là cách chúng tôi phân nhóm.

Thư viện Python bạn import vào test

DeepEval (pip install deepeval, Apache-2.0) bọc các chỉ số LLM trong assertion kiểu pytest: xây một LLMTestCase, đưa nó cho assert_test, và test sẽ fail nếu dưới ngưỡng bạn đặt. Mạnh nhất khi đặt một cổng chất lượng ngay cạnh các unit test mà đội bạn đã chạy sẵn. Chọn cái này nếu eval của bạn thuộc về cùng CI job với mọi thứ khác.

Một tiết lộ, nói một lần: DeepEval được xây dựng bởi Confident AI, đối tác trả phí trên hai bài viết khác trên trang này, bao gồm cả bảng so sánh xếp hạng mà trang này liên kết tới. Nó không nhận được ưu ái nào ở đây, và mọi liên kết DeepEval trên trang này đều trỏ tới repo GitHub.

Ragas (pip install ragas, Apache-2.0) là lựa chọn chuyên cho RAG: evaluate() nhận các hàng câu hỏi, ngữ cảnh và câu trả lời, rồi trả về điểm theo từng chỉ số một cách bất đồng bộ. Mạnh nhất khi đo chất lượng truy xuất bên trong pipeline Python. Repo của nó đã chuyển từ explodinggradients sang vibrantlabsai, bản phát hành cuối là v0.4.3 vào ngày 2026-01-13, và không có commit nào kể từ 2026-02-24. Chọn cái này nếu chỉ số RAG là toàn bộ công việc và một repo im ắng vẫn chấp nhận được, và xem thêm bộ công cụ RAG rộng hơn.

Opik (pip install opik, Apache-2.0, từ Comet) cung cấp các chỉ số bạn có thể gọi độc lập. Đặt OPIK_TRACK_DISABLE=true và AnswerRelevance().score() chạy được mà không cần tài khoản, không cần server local, không cần file cấu hình — điều mà cách quảng bá sản phẩm không nhắc tới. Mạnh nhất khi cần một điểm số thật với ít dòng code nhất. Chọn cái này nếu bạn muốn có chỉ số ngay bây giờ và nền tảng thì để sau.

Evidently (pip install evidently, Apache-2.0) coi eval là các descriptor trên một dataset và ghi ra báo cáo HTML như một hiệu ứng phụ. Mạnh nhất khi báo cáo hàng loạt trên nhiều dòng thay vì một cổng nhị phân. Điểm số LLM của nó bị đảo ngược: 1.0 nghĩa là không trung thực (unfaithful). Chọn cái này nếu thứ bạn nợ ai đó là một báo cáo có thể chia sẻ, không phải một build đỏ.

Giskard (pip install giskard, Apache-2.0) quét một mô hình để tìm lỗ hổng thay vì chấm điểm một dataset bạn tự viết. Gói PyPI phân giải về dòng v2, và README của chính dự án này ghi rõ rằng v2 "không còn được bảo trì tích cực". Mạnh nhất khi quét kiểu red-team tự động. Chọn cái này nếu bạn muốn lỗ hổng được tìm ra giúp bạn thay vì tự định nghĩa chỉ số LLM-as-a-judge.

Công cụ CLI-và-cấu-hình bạn chạy trên file YAML

promptfoo (npm install promptfoo, MIT) là một CLI đọc file YAML: khai báo provider, test case và assertion, chạy npx promptfoo eval, rồi nhận kết quả pass/fail cho từng case cộng một UI kết quả local. Mạnh nhất khi đánh giá prompt lúc ứng dụng của bạn không viết bằng Python. Chọn cái này nếu cổng chất lượng của bạn nên là một file cấu hình mà đồng đội không rành Python cũng sửa được.

Nhóm harness và nhóm đóng gói nền tảng

Inspect AI (pip install inspect-ai, MIT) đến từ UK AI Safety Institute và đánh giá mô hình dựa trên các task bạn tự định nghĩa bằng Python, với các abstraction solver và scorer thật cùng một run viewer. Mạnh nhất khi benchmark ở cấp mô hình với các định nghĩa task có thể tái lập. Chọn cái này nếu thứ đang được kiểm thử là một mô hình chứ không phải ứng dụng của bạn.

Arize Phoenix (pip install arize-phoenix-evals) cho bạn các evaluator dựng sẵn như FaithfulnessEvaluator và CorrectnessEvaluator, trả về một nhãn nhị phân cộng một điểm số. Mạnh nhất khi cần nhãn tất định mà bạn có thể gate mà không phải chọn ngưỡng cắt. Giấy phép của nó là lý do bài viết này có một cụm trong ngoặc ở tiêu đề, và điều đó có phần riêng ngay sau đây.

Arize Phoenix Có Phải Là Mã Nguồn Mở Không?

Không, không theo định nghĩa mà Open Source Initiative duy trì. Arize Phoenix chạy dưới Elastic License 2.0 (ELv2). Dòng đầu tiên trong file LICENSE của repo ghi rõ điều đó, và PyPI độc lập khai báo license: Elastic-2.0 trên v19.15.0. Mã nguồn có thể đọc, fork và tự host được. Chỉ một cách dùng bị hạn chế.

Hạn chế quan trọng: ELv2 cấm cung cấp phần mềm cho bên thứ ba dưới dạng dịch vụ được host hoặc quản lý. Hãy đọc kỹ, vì nó chỉ ràng buộc một số ít người hơn nhiều so với vẻ ngoài của nó. Nếu bạn cài arize-phoenix-evals để chấm điểm ứng dụng của chính mình, ELv2 không đụng tới bạn. Nếu bạn là một công ty tư vấn hoặc một đội nền tảng đóng gói Phoenix thành dịch vụ eval bán cho khách hàng bên ngoài, nó có đụng tới. Đó là toàn bộ khác biệt, và Open Source Definition chính là thứ mà ELv2 không đạt, cụ thể là các điều khoản về hạn chế lĩnh vực sử dụng (field-of-use).

Giấy phépOSI công nhận?Tự host được?Cung cấp như dịch vụ quản lý được?Framework trong danh sách này
Apache-2.0cócócóDeepEval, Ragas, Opik, Evidently, Giskard, UpTrain
MITcócócópromptfoo, Inspect AI, lm-evaluation-harness
Elastic License 2.0khôngcókhôngArize Phoenix

Mọi trang hiện đang xếp hạng cho truy vấn này đều xếp Phoenix vào "mã nguồn mở", và chúng tôi cũng từng vậy. Bảng so sánh xếp hạng công cụ đánh giá LLM của chính chúng tôi mô tả Phoenix là hoàn toàn mã nguồn mở, điều đó sai, và đang được sửa lại. Phoenix là source-available, không phải mã nguồn mở, và sự khác biệt này chỉ thực sự quan trọng nếu bạn định bán nó như một dịch vụ. Nếu thứ bạn thực sự cần là tracing chứ không phải chấm điểm, điều đó thuộc về nền tảng observability AI, không phải bài viết này.

Cái Nào Trong Số Này Vẫn Đang Được Bảo Trì Tích Cực?

Hầu hết đều còn. Sáu trong số mười một repo chúng tôi kiểm tra có commit vào main vào ngày 2026-08-03 hoặc 2026-08-04: DeepEval, promptfoo, Opik, Arize Phoenix, Inspect AI và Giskard. Hai cái không phát hành bản mới nào kể từ 2024. Một cái đã im ắng trong năm 2026 sau khi đổi tổ chức GitHub.

Các framework chúng tôi sẽ không bắt đầu dự án mới trong năm 2026

UpTrain đã chết. Commit cuối cùng vào main là ngày 2024-07-29 và bản phát hành cuối, v0.7.1, là ngày 2024-05-14, khiến nó nguội lạnh hai năm theo cả hai thước đo. Repo vẫn còn đó và vẫn dùng Apache-2.0, nên không có gì ngăn cản bạn, nhưng bắt đầu công việc mới trên một thư viện đánh giá bị bỏ rơi là quyết định bạn sẽ phải giải thích sau này.

Deepchecks xứng đáng được nói chính xác. Nó không có bản phát hành nào kể từ 0.19.1 vào ngày 2024-12-15, dù repo vẫn nhận commit, với commit cuối trên main vào ngày 2025-11-24. Người ta vẫn đang làm việc trên nó; chỉ là chưa ai cắt một phiên bản mới trong hơn mười tám tháng qua. Cả UpTrain lẫn Deepchecks đều không bị archive trên GitHub, và cả hai đều chưa đóng cửa với đóng góp.

Ragas chỉ nhận ngày tháng, không gì khác. Bản phát hành cuối v0.4.3 vào ngày 2026-01-13, không có commit nào kể từ 2026-02-24, và repo đã chuyển từ explodinggradients sang vibrantlabsai. Chúng tôi không tìm thấy lý giải nào có thể xác minh được về lý do đổi tổ chức, nên chúng tôi sẽ không bịa ra một cái. Một repo im ắng không có nghĩa là hỏng: mã Apache-2.0 tính điểm faithfulness hôm nay vẫn sẽ tính đúng như vậy vào năm sau. Rủi ro nằm ở các dependency chưa được vá, chính là điều đã gây khó cho chúng tôi trong phần test bên dưới.

Các trang khác ở trang một cho truy vấn này vẫn khuyên dùng cả UpTrain lẫn Deepchecks, không kèm ngày tháng nào cho khuyến nghị đó. Một framework không phát hành bản mới nào kể từ tháng 12/2024 là quyết định về dependency, không phải quyết định về tính năng.

Bạn Cần Một Eval Framework Hay Một Eval Harness?

Một application eval framework chấm điểm đầu ra của chính ứng dụng bạn trên dữ liệu của chính bạn. DeepEval, Ragas, promptfoo, Opik, phoenix-evals và Evidently đều làm việc đó. Một model eval harness (harness đánh giá mô hình) thì benchmark một mô hình theo các task công khai tiêu chuẩn thay vì vậy. lm-evaluation-harness và Inspect AI làm việc đó. Chọn sai loại là sai lầm tốn kém nhất trên trang này.

Khía cạnhApplication eval frameworkModel eval harness
Bạn đang test gìprompt, truy xuất và đầu ra của bạnmột checkpoint hoặc endpoint mô hình
Bạn cung cấp gìcâu hỏi, ngữ cảnh và câu trả lời của riêng bạntên một task từ bộ chuẩn
Đầu ra thường thấyđiểm theo từng chỉ số cho mỗi hàng, cộng pass/failđộ chính xác trên một benchmark đã công bố
Chạy ở đâuCI của bạn, trên mỗi pull requestchạy một lần cho mỗi mô hình hoặc mỗi lần fine-tune
Ví dụDeepEval, Ragas, promptfoo, Opik, Evidently, phoenix-evalslm-evaluation-harness, Inspect AI

Kiểu lỗi này rất cụ thể. Ai đó nối lm-evaluation-harness vào để test chatbot RAG của họ, nhận về một loạt điểm MMLU, và không học được gì về việc retriever của họ có trả đúng đoạn văn hay không. Điểm số là thật. Chúng đang đo mô hình nền, thứ mà chẳng ai lo lắng cả.

Hình dạng của Inspect AI xuất phát từ nguồn gốc của nó: nó được xây tại UK AI Safety Institute dưới giấy phép MIT để đánh giá các mô hình frontier, nên solver, scorer và task là công dân hạng nhất còn ứng dụng của bạn không phải là một khái niệm mà nó có. Đó là lý do chính đáng để dùng nó cho đúng việc của nó. Nếu vấn đề của bạn là agent chứ không phải các lượt đơn, đánh giá agent trong production là một chuyên môn khác hẳn, và các server tool-calling có riêng một bài trong hướng dẫn đánh giá MCP server và tool của chúng tôi.

Chuyện Gì Xảy Ra Khi Chúng Tôi Cài Sáu Cái Và Chạy Cùng 10 Case

Vào ngày 2026-08-04 chúng tôi cài sáu framework này trong các venv Python 3.11.14 mới (cộng npm cho promptfoo) và chấm điểm cùng một bộ 10 mục RAG với cùng một giám khảo, openai/gpt-4o-mini qua OpenRouter ở temperature 0. Bảy mục đúng. Ba mục sai theo ba cách khác nhau: một mâu thuẫn với ngữ cảnh, một bịa ra chi tiết cụ thể, một là văn xuôi trôi chảy nhưng không bao giờ trả lời câu hỏi. Mỗi framework chạy hai lần, liên tiếp.

Framework (10 mục, giám khảo openai/gpt-4o-mini, chạy 2026-08-04)Cài đặtSố dòng đến điểm đầu tiênThời gian chạy, lần 1 / lần 2Lỗi bắt được trên chỉ số groundingMục trôi qua 2 lần chạy
DeepEval 4.1.526.6 s21126.8 s / 134.1 s2/3, bỏ sót câu trả lời lạc đề0/10
Ragas 0.4.356.1 s cộng một version pin2321.2 s / 25.7 s3/31/10
promptfoo 0.121.20337.9 s14 cộng 40 dataset34.3 s / 44.4 s3/32/10
Opik 2.2.17142.3 s1554.1 s / 44.8 s3/34/10
Phoenix evals 3.3.08.7 s1841.2 s / 44.0 s3/30/10
Evidently 0.7.2142.6 s cộng openai259.9 s / 9.7 s3/34/10

Năm trong sáu chỉ số grounding bắt được cả ba lỗi. Ba phát hiện dưới đây là lý do phần này tồn tại.

Chỉ số relevance không phải là chỉ số chất lượng, và hai trong số đó đã chấm một lời nói dối tự tin cao hơn một câu trả lời đúng. Ragas ResponseRelevancy chấm mục khẳng định rằng HTTP 404 là lỗi server 5xx ở mức 0.777, cao hơn hai trong bảy câu trả lời đúng, và mục bịa ra giới hạn rate limit ở mức 0.813, cao hơn bốn câu. promptfoo answer-relevance cũng làm y hệt: 0.800 cho mục 404, một pass sạch so với ngưỡng 0.7, trong khi lại fail câu q01 đúng ở mức 0.679. Không phải bug. Một câu trả lời sai nhưng tự tin vẫn giải quyết đúng câu hỏi một cách hoàn hảo. Nhưng nếu relevance là con số trên dashboard của bạn, một ảo giác trôi chảy sẽ trông như đầu ra tốt nhất của bạn.

Một cổng chỉ dựa trên faithfulness sẽ bỏ sót câu trả lời lạc đề. DeepEval chấm mục không bao giờ trả lời câu hỏi ở mức 1.000 faithfulness, một pass sạch, điều này có thể biện minh được: một câu trả lời không khẳng định gì về ngữ cảnh thì cũng không mâu thuẫn gì với nó. Chỉ có relevancy bắt được nó, ở mức 0.000. Đó là lần bỏ sót grounding duy nhất trong bảng trên. Mỗi chỉ số đứng riêng đều có lỗ hổng; cặp đôi che phủ cả hai.

Các evaluator nhị phân ổn định ở temperature 0. Các evaluator có điểm theo thang thì không. Phoenix và DeepEval không xê dịch mục nào trong mười mục qua hai lần chạy giống hệt nhau. Opik xê dịch bốn mục, tất cả trên AnswerRelevance, trên lưới 0.05; Evidently cũng xê dịch bốn mục. Không có trôi dạt nào lật ngược verdict ở đây, nhưng câu q01 đúng của promptfoo rơi vào 0.679 rồi 0.642 so với ngưỡng 0.700, đúng hình dạng của một cổng CI chập chờn.

Hai ghi chú nhỏ hơn: ba trong sáu (DeepEval, Opik, Phoenix) cài đặt và chạy sạch ngay lần đầu, trong khi Ragas không import được cho đến khi chúng tôi pin langchain-community<0.4. Chỉ promptfoo báo cáo mức dùng token của giám khảo, 16.011 token assertion ở lần chạy 1 và 16.010 ở lần chạy 2.

Giới hạn của bài test này, nói thẳng. n = 10 là smoke test, không phải benchmark: nó cho bạn biết về trải nghiệm sử dụng và điểm mù, không phải độ chính xác của chỉ số. Một mô hình giám khảo duy nhất chấm mọi thứ, và một giám khảo lớn hơn sẽ làm thay đổi mọi con số, có lẽ bao gồm cả hai false positive mà DeepEval và Ragas cùng tạo ra trên cùng một mục đúng. Hai lần chạy chứng minh có trôi dạt nhưng không thể mô tả đặc điểm của nó. Các câu trả lời đã được viết sẵn từ trước, nên không có gì ở đây kiểm thử phần generation, tracing hay quản lý dataset, điều này khiến 337.9 giây cài đặt của promptfoo trông tệ hơn thực tế đáng có. "Tốt nhất" luôn có nghĩa là tốt nhất cho một ràng buộc cụ thể: một cổng CI, chỉ số RAG hay một UI đều thay đổi câu trả lời, cũng như sự khác biệt giữa đánh giá offline và online.

Cùng Một Kiểm Tra, Viết Theo Ba Cách

Cách nhanh nhất để chọn kiểu giao diện là đọc cùng một assertion ba lần. Đây là một kiểm tra grounding trên một mục trong DeepEval, Ragas và promptfoo, được cắt gọn từ các script chúng tôi thực sự đã chạy. Tên chỉ số khác nhau; chúng tôi liên kết tới cách các chỉ số LLM-as-a-judge thực sự hoạt động thay vì định nghĩa lại chúng ở đây.

python
# DeepEval 4.1.5: kiểu pytest, test fail nếu dưới ngưỡng
from deepeval import assert_test
from deepeval.models import GPTModel
from deepeval.metrics import FaithfulnessMetric
from deepeval.test_case import LLMTestCase

judge = GPTModel(
    model="openai/gpt-4o-mini",
    base_url="https://openrouter.ai/api/v1",
    api_key=OPENROUTER_KEY,
)

def test_faithfulness():
    case = LLMTestCase(
        input=question,
        actual_output=answer,
        retrieval_context=[context],
    )
    assert_test(case, [FaithfulnessMetric(threshold=0.7, model=judge)])
python
# Ragas 0.4.3: chú ý đường dẫn import. `from ragas.metrics import Faithfulness`
# raise ImportError ở phiên bản này; chỉ số cụ thể đã di chuyển.
from ragas import evaluate, EvaluationDataset
from ragas.metrics._faithfulness import Faithfulness
from ragas.llms import LangchainLLMWrapper
from langchain_openai import ChatOpenAI

judge = LangchainLLMWrapper(
    ChatOpenAI(model="openai/gpt-4o-mini",
               base_url="https://openrouter.ai/api/v1")
)

result = evaluate(
    dataset=EvaluationDataset.from_list(rows),
    metrics=[Faithfulness(llm=judge)],
)
yaml
# promptfoo 0.121.20: npm install promptfoo, sau đó npx promptfoo eval
providers:
  - id: echo          # chúng tôi chấm điểm câu trả lời viết sẵn thay vì tạo mới
defaultTest:
  assert:
    - type: context-faithfulness
      threshold: 0.7
tests:
  - vars:
      query: "Is HTTP 404 a client error or a server error?"
      context: "HTTP 404 Not Found is in the 4xx class, which denotes client errors."
      output: "HTTP 404 is a server error in the 5xx class."

Các dòng cài đặt chứa nhiều bẫy hơn cả code, và mỗi comment dưới đây là thứ đã tốn thời gian của chúng tôi vào ngày 2026-08-04:

bash
# promptfoo thật được phát hành trên npm. Gói PyPI cùng tên là một
# wrapper của bên thứ ba: https://pypi.org/project/promptfoo/ so với
# https://www.npmjs.com/package/promptfoo
npm install promptfoo

# pip install giskard phân giải về dòng v2, thứ mà README của chính dự án
# đánh dấu là không còn được bảo trì tích cực.
pip install giskard

# lm-evaluation-harness được cài dưới tên gói lm-eval.
pip install lm-eval

# Evidently không kéo theo openai, và giám khảo crash lúc gọi hàm chứ
# không phải lúc import, sau khi bạn đã xây xong dataset.
pip install evidently openai

# Ragas 0.4.3 sẽ không import được với langchain-community 0.4.x.
pip install ragas "langchain-community<0.4"

Bạn Có Thể Làm Build Fail Dựa Trên Điểm Eval Không?

Có. Mọi framework ở đây đều trả về một điểm số hoặc nhãn nhị phân, và mỗi cái sẽ thoát với mã khác 0 khi một assertion ngưỡng fail, đó là tất cả những gì GitHub Actions cần để biến một build thành đỏ. Nối dây exit code là phần dễ. Chọn một ngưỡng mà mô hình giám khảo của bạn sẽ không vô tình vượt qua mới là phần tốn cả tuần.

Đây là hình dạng workflow chúng tôi chạy, pin theo các phiên bản từ bài test ngày 2026-08-04:

yaml
name: evals
on: [pull_request]

jobs:
  eval:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11.14"
      - run: pip install deepeval==4.1.5

      - name: Chấm bộ dữ liệu golden
        env:
          # Pin giám khảo. Nâng cấp mô hình giữa quý sẽ làm thay đổi mọi điểm số.
          JUDGE_MODEL: openai/gpt-4o-mini
          # Ngưỡng nằm ở một nơi duy nhất, được đọc bởi constructor của chỉ số.
          EVAL_THRESHOLD: "0.7"
          OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
        run: deepeval test run tests/evals/

Hai bẫy cắn bạn trước cả khi ngưỡng kịp cắn. Đầu tiên, các cuộc gọi giám khảo là network call: lần chạy DeepEval 10 mục của chúng tôi mất 126.8 giây vì .measure() chạy tuần tự, và một golden set 200 mục trên cùng đường code đó là một giờ giải lao cà phê trên mỗi pull request. Mọi framework khác trong bài test đều song song hóa mặc định, đây là đòn bẩy đơn lẻ lớn nhất lên thời gian CI thực tế.

Thứ hai, sự chập chờn. Ở temperature 0, Opik và Evidently mỗi cái xê dịch bốn trong mười mục giữa hai lần chạy liên tiếp, và câu trả lời đúng của promptfoo nằm ở 0.679 rồi 0.642 so với cổng 0.700. Các biện pháp giảm thiểu đơn giản và có hiệu quả: chạy một golden dataset cố định chỉ thay đổi theo pull request, pin mô hình giám khảo, ưu tiên evaluator nhị phân ở nơi một nhãn là đủ, và gate theo delta thay vì một mức sàn tuyệt đối. Điều cuối cùng đó quan trọng nhất với đánh giá đa lượt, nơi một cuộc hội thoại tạo ra nhiều điểm số mà mỗi cái đều có thể xê dịch.

Về quy mô: khảo sát State of Agent Engineering của LangChain (1.340 phản hồi, thu thập từ 18 tháng 11 đến 2 tháng 12 năm 2025, công bố ngày 12 tháng 6 năm 2026) cho thấy 89% tổ chức đã triển khai một hình thức observability nào đó cho agent của họ, trong khi chỉ 52.4% chạy đánh giá offline trên bộ test. Theo dõi thì phổ biến. Gate thì không.

Chúng Tôi Sẽ Cài Gì Trong Tuần Này

Bốn điều cần nhớ. Arize Phoenix là source-available theo Elastic License 2.0 và không được OSI công nhận là mã nguồn mở, điều này không thay đổi gì với hầu hết độc giả nhưng thay đổi mọi thứ nếu bạn bán lại công cụ eval. UpTrain đã chết, và các trang không ghi ngày tháng vẫn khuyên dùng nó. Deepchecks cũng chưa cắt bản phát hành nào kể từ tháng 12/2024, dù repo của nó vẫn nhận commit. Một chỉ số grounding và một chỉ số relevance mỗi cái đều có một lỗ hổng mà cái kia che phủ, nên hãy gate trên cả hai. Và điểm số theo thang trôi dạt ở temperature 0, nên hãy pin giám khảo của bạn và cho ngưỡng thêm khoảng dư.

Nếu tôi bắt đầu một bộ eval mới trong tuần này, tôi sẽ cài DeepEval cho cổng CI vì assertion thuộc về ngay cạnh test (tiết lộ ở trên), và thêm các chỉ số độc lập của Opik cho sự phân tách rõ ràng nhất mà chúng tôi đo được. Nếu stack của chúng tôi không phải Python, thì promptfoo, không do dự. Nếu bạn muốn ai đó khác nối dây golden set và workflow giúp bạn, đó là cuộc trò chuyện chúng tôi rất sẵn lòng có.

Câu Hỏi Thường Gặp

Framework đánh giá LLM mã nguồn mở tốt nhất là gì?

Không có một người chiến thắng duy nhất, chỉ có sự phù hợp tốt nhất cho từng ràng buộc. Với một cổng pass/fail bên trong bộ test Python, DeepEval. Với thiết lập YAML và CLI không phụ thuộc ngôn ngữ, promptfoo. Với chỉ số truy xuất RAG, Ragas, nếu bạn chấp nhận một repo không có commit nào kể từ 2026-02-24. Với sự phân tách rõ ràng nhất giữa câu trả lời tốt và xấu trong bài test 2026-08-04 của chúng tôi, Opik.

Arize Phoenix có phải là mã nguồn mở không?

Không, theo định nghĩa của Open Source Initiative. Arize Phoenix chạy dưới Elastic License 2.0, thứ mà PyPI khai báo là license: Elastic-2.0 trên v19.15.0 và dòng đầu tiên trong file LICENSE của repo ghi rõ trực tiếp. Nó là source-available: bạn có thể đọc, fork, sửa và tự host nó. Hạn chế duy nhất là cung cấp phần mềm cho bên thứ ba dưới dạng dịch vụ được host hoặc quản lý.

Ragas có còn được bảo trì không?

Các sự thật có thể xác minh, tính đến 2026-08-04: bản phát hành cuối là v0.4.3 vào ngày 2026-01-13, không có commit nào kể từ 2026-02-24, và repo đã chuyển từ tổ chức explodinggradients sang vibrantlabsai. Repo không bị archive. Chúng tôi không tìm thấy lời giải thích công khai đáng tin cậy nào cho việc đổi tổ chức và sẽ không suy đoán về nó. Mã Apache-2.0 vẫn chạy tốt; rủi ro nằm ở các dependency chưa được vá.

Tôi cần một eval framework hay một nền tảng observability?

Cả hai, cuối cùng thì vậy, nhưng chúng trả lời những câu hỏi khác nhau. Một eval framework cho bạn biết một thay đổi có làm đầu ra của bạn tốt hơn hay tệ hơn trước khi bạn ship nó, trên một dataset bạn kiểm soát. Một nền tảng observability cho bạn biết điều gì thực sự đã xảy ra trên production sau khi bạn ship. Bắt đầu với eval framework nếu bạn có pipeline CI; xem nền tảng observability AI cho phía production.

Tôi có thể chạy LLM eval trong CI/CD không?

Có. Mọi framework được đề cập ở đây đều thoát với mã khác 0 khi một assertion ngưỡng fail, đó là tất cả những gì một job GitHub Actions cần. Các ràng buộc thực tế là thời gian thực thi (các cuộc gọi giám khảo là network call, và lần chạy DeepEval tuần tự của chúng tôi mất 126.8 giây cho 10 mục) và tính không tất định của giám khảo. Hình dạng workflow và các biện pháp giảm thiểu nằm trong phần CI ở trên.

Sự khác biệt giữa DeepEval và Ragas là gì?

Kiểu giao diện và phạm vi, không phải chất lượng. DeepEval có kiểu pytest và mục đích chung: bạn viết test case và assert trên các ngưỡng chỉ số, và nó bao phủ đầu ra ứng dụng thuộc nhiều loại. Ragas là một thư viện chuyên cho RAG mà evaluate() chạy bất đồng bộ trên một dataset gồm các hàng câu hỏi, ngữ cảnh và câu trả lời. DeepEval phù hợp hơn với cổng CI một cách tự nhiên; Ragas đi sâu hơn về truy xuất.

Tại sao pip install promptfoo lại cho tôi gói sai?

Vì promptfoo là một dự án Node. Dự án thật được phát hành trên npm dưới giấy phép MIT và cài bằng npm install promptfoo. Gói PyPI cùng tên là một wrapper của bên thứ ba, không phải dự án gốc, và cài nó là một cách phổ biến để bạn phải debug một CLI không phải cái mà tài liệu mô tả.

lm-evaluation-harness có phải là một framework đánh giá LLM không?

Nó là một harness đánh giá mô hình, một công việc liên quan nhưng khác. lm-evaluation-harness (cài đặt dưới tên pip install lm-eval) benchmark một mô hình theo các task công khai tiêu chuẩn như MMLU. Nó sẽ không cho bạn biết pipeline truy xuất của bạn có trả về đúng đoạn văn hay không, vì ứng dụng của bạn không phải là một khái niệm mà nó có. Xem phần framework-so-với-harness ở trên để biết sự khác biệt.

Các framework này có miễn phí sử dụng không?

Về mặt giấy phép, có. DeepEval, Ragas, Opik, Evidently và Giskard dùng Apache-2.0; promptfoo, Inspect AI và lm-evaluation-harness dùng MIT. Cả hai giấy phép đều cho phép dùng thương mại, sửa đổi và phân phối lại. Arize Phoenix là ngoại lệ: Elastic License 2.0 cho phép tự host nhưng không cho phép cung cấp phần mềm cho bên thứ ba dưới dạng dịch vụ quản lý. Chi phí sử dụng API mô hình giám khảo được nhà cung cấp của bạn tính riêng.

Thẻ

framework đánh giá llm mã nguồn mởdeepevalragaspromptfooarize phoenixopikđánh giá llm

Chia sẻ bài viết này

Bài viết liên quan

Thêm từ chuyên mục comparisons

comparisons
Jul 30, 2026

Tìm kiếm Hybrid: BM25 vs Vector (và vì sao bạn cần cả hai)

BM25 tìm ra SKU và mã lỗi của bạn; vector search tìm ra câu hỏi đã được diễn giải lại mà không hề dùng đúng những từ đó. Đây là cách Reciprocal Rank Fusion kết hợp cả hai, kèm số liệu benchmark thực tế 2025-2026 và code Python không phụ thuộc nhà cung cấp.

13 phút đọc phút đọc
Đọc
comparisons
Jul 21, 2026

RPA so với AI so với Hybrid: Giải pháp tự động hóa nào chiến thắng cho quy trình doanh nghiệp năm 2026?

RPA tuân theo quy tắc, AI đưa ra phán đoán, và vào năm 2026, giải pháp tự động hóa quy trình kinh doanh thông minh nhất là sự kết hợp của cả hai. Hướng dẫn trung lập này cung cấp cho bạn khung ra quyết định 3 chiều, chi phí Năm 1 so với Năm 3, và dữ liệu xây dựng thực tế để lựa chọn RPA, AI hoặc hybrid.

11 min read phút đọc
Đọc
comparisons
Apr 20, 2026

Vercel Bị Hack (Tháng 4/2026): Quy Trình Khẩn Cấp 60 Phút Mà Mọi Developer Cần Thực Hiện Ngay

Vercel xác nhận vụ vi phạm vào ngày 19/4/2026 — các biến môi trường không được đánh dấu là 'nhạy cảm' đã bị lộ. Dưới đây là chính xác những gì cần làm trong 60 phút tới, kèm danh sách kiểm tra xoay vòng theo cấp độ và lệnh quét bí mật.

9 min read phút đọc
Đọc
Xem tất cả bài viết
Khởi động dự án của bạn

Sẵn sàng tạo nên điều gì đó đột phá?

Hãy biến tầm nhìn của bạn thành hiện thực. Đội ngũ của chúng tôi sẵn sàng đồng hành cùng bạn tạo ra phần mềm tạo nên sự khác biệt.

Đặt lịch gọi ý tưởng 30 phútXem dự án của chúng tôi

Công cụ hot trong kho

Claude Skills

Xem tất cả
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Tự động hoá AI

Xem tất cả
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Công cụ hot trong kho

Claude Skills

Xem tất cả
  • New Post

    Full SEO blog pipeline: research, brief, write, validate, image, translate, publish to Sanity. Autonomous from start to finish.

  • Content Refresh

    Audit a stale post, find decay drivers, and ship a SERP-aligned refresh without losing existing rankings.

  • SEO Audit

    Site-wide SEO audit with prioritized fix list: technical, on-page, and EEAT signals.

Tự động hoá AI

Xem tất cả
  • Security Auditor

    Weekly SCA + IaC scan with prioritized fix PRs.

  • Cold Email Writer

    Generates first-touch emails grounded in one specific public detail.

  • Lead Research Agent

    Enrich an email into a profile, score fit, alert in Slack.

Dịch vụ

  • Giải pháp doanh nghiệp
  • Ứng dụng di động
  • Ứng dụng web

Giải pháp

  • Hệ thống CRM
  • Tích hợp AI
  • Giải pháp ERP
  • Voice Agent
  • Tự động hóa quy trình
  • Bảo mật thông tin

Thư viện

  • Blog
  • Dự án

Cộng đồng

  • Tự động hoá AI
  • Claude Skills

Công cụ

  • Tính phí làm ứng dụng mobile
  • Tính phí dùng OpenAI / LLM API
  • Tính phí làm MVP
  • Tính phí làm Voice AI Agent

Công ty

  • Giới thiệu
  • Cộng sự
  • Liên hệ

Pháp lý

  • Chính sách quyền riêng tư
  • Điều khoản dịch vụ
  • Chính sách cookie

Dịch vụ

  • Giải pháp doanh nghiệp
  • Ứng dụng di động
  • Ứng dụng web

Giải pháp

  • Hệ thống CRM
  • Tích hợp AI
  • Giải pháp ERP
  • Voice Agent
  • Tự động hóa quy trình
  • Bảo mật thông tin

Thư viện

  • Blog
  • Dự án

Cộng đồng

  • Tự động hoá AI
  • Claude Skills

Công cụ

  • Tính phí làm ứng dụng mobile
  • Tính phí dùng OpenAI / LLM API
  • Tính phí làm MVP
  • Tính phí làm Voice AI Agent

Công ty

  • Giới thiệu
  • Cộng sự
  • Liên hệ
Pháp lýChính sách quyền riêng tưĐiều khoản dịch vụChính sách cookie
TECHSY
© 2026 Techsy. Bảo lưu mọi quyền.