评估中
评估与基准测试是LLM开发中的关键概念。要提升LLM应用(RAG、智能体)的性能,必须要有相应的衡量方法。
LlamaIndex 提供核心模块来评估生成结果的质量。我们还提供核心模块来评估检索质量。您可以在我们的模块指南中了解更多关于 LlamaIndex 评估机制的工作原理。
该回答是否与检索到的上下文匹配?是否也与查询匹配?是否与参考答案或指南匹配?以下是一个简单示例,用于评估单个回答的忠实度,即回答是否与上下文一致,例如是否避免出现幻觉:
from llama_index.core import VectorStoreIndexfrom llama_index.llms.openai import OpenAIfrom llama_index.core.evaluation import FaithfulnessEvaluator
# create llmllm = OpenAI(model="gpt-4", temperature=0.0)
# build index...vector_index = VectorStoreIndex(...)
# define evaluatorevaluator = FaithfulnessEvaluator(llm=llm)
# query indexquery_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,您可能对分析应用程序成本感兴趣。