跳转到内容

评估中

评估与基准测试是LLM开发中的关键概念。要提升LLM应用(RAG、智能体)的性能,必须要有相应的衡量方法。

LlamaIndex 提供核心模块来评估生成结果的质量。我们还提供核心模块来评估检索质量。您可以在我们的模块指南中了解更多关于 LlamaIndex 评估机制的工作原理。

该回答是否与检索到的上下文匹配?是否也与查询匹配?是否与参考答案或指南匹配?以下是一个简单示例,用于评估单个回答的忠实度,即回答是否与上下文一致,例如是否避免出现幻觉:

from llama_index.core import VectorStoreIndex
from llama_index.llms.openai import OpenAI
from llama_index.core.evaluation import FaithfulnessEvaluator
# create llm
llm = OpenAI(model="gpt-4", temperature=0.0)
# build index
...
vector_index = VectorStoreIndex(...)
# define evaluator
evaluator = FaithfulnessEvaluator(llm=llm)
# query index
query_engine = vector_index.as_query_engine()
response = query_engine.query(
"What battles took place in New York City in the American Revolution?"
)
eval_result = evaluator.evaluate_response(response=response)
print(str(eval_result.passing))

响应包含生成的回答及其来源;评估器对两者进行比较,并判断回答是否忠实于来源。

您可以在我们的模块指南中了解更多关于响应评估的内容。

检索到的来源是否与查询相关?这是一个评估单个检索的简单示例:

from llama_index.core.evaluation import RetrieverEvaluator
# define retriever somewhere (e.g. from index)
# retriever = index.as_retriever(similarity_top_k=2)
retriever = ...
retriever_evaluator = RetrieverEvaluator.from_metric_names(
["mrr", "hit_rate"], retriever=retriever
)
retriever_evaluator.evaluate(
query="query", expected_ids=["node_id1", "node_id2"]
)

这将查询实际检索到的内容与预期应被检索的节点集合进行比较。

实际上,您可能希望评估整批检索结果;您可以在我们的检索评估模块指南中了解如何执行此操作。

如果您正在调用托管式远程LLM,您可能对分析应用程序成本感兴趣。