使用LlamaIndex和中专API进行批量评估

在本篇文章中,我将介绍如何使用LlamaIndex、GPT-4和中专API进行批量评估。我们将探讨如何设置环境、生成问题、运行批量评估并检验输出结果。本文将以Python代码为例,详细描述每一阶段的具体步骤。

环境设置

首先,我们需要安装所需的依赖包。确保你已经安装了llama-index-llms-openaillama-index-embeddings-openai

%pip install llama-index-llms-openai llama-index-embeddings-openai

接下来,我们需要附加到同一个事件循环,并设置API key。

import nest_asyncio

nest_asyncio.apply()

import os
import openai

os.environ["OPENAI_API_KEY"] = "你的API密钥"
# openai.api_key = os.environ["OPENAI_API_KEY"]

数据加载和索引创建

我们将使用SimpleDirectoryReader来加载文档数据,并创建一个向量索引。

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Response
from llama_index.llms.openai import OpenAI
from llama_index.core.node_parser import SentenceSplitter

# 加载数据
documents = SimpleDirectoryReader("./test_wiki_data/").load_data()

# 创建向量索引
llm = OpenAI(temperature=0.3, model="gpt-3.5-turbo")
splitter = SentenceSplitter(chunk_size=512)
vector_index = VectorStoreIndex.from_documents(
    documents, transformations=[splitter]
)

问题生成

为了运行批量评估,我们需要生成一些问题。可以使用DatasetGenerator来生成问题集。

%pip install spacy datasets span-marker scikit-learn
from llama_index.core.evaluation import DatasetGenerator

dataset_generator = DatasetGenerator.from_documents(documents, llm=llm)

qas = dataset_generator.generate_dataset_from_nodes(num=3)

运行批量评估

定义批量评估运行器,并运行评估。

from llama_index.core.evaluation import BatchEvalRunner, FaithfulnessEvaluator, RelevancyEvaluator

# 使用GPT-4评价
gpt4 = OpenAI(temperature=0, model="gpt-4")
faithfulness_gpt4 = FaithfulnessEvaluator(llm=gpt4)
relevancy_gpt4 = RelevancyEvaluator(llm=gpt4)

runner = BatchEvalRunner(
    {"faithfulness": faithfulness_gpt4, "relevancy": relevancy_gpt4},
    workers=8,
)

eval_results = await runner.aevaluate_queries(
    vector_index.as_query_engine(llm=llm), queries=qas.questions
)

检查输出结果

我们可以检查评估结果的详细信息,并报告总得分。

# 检查评估结果的键值
print(eval_results.keys())

# 打印具体的评价结果
print(eval_results["faithfulness"][0].dict().keys())
print(eval_results["faithfulness"][0].passing)
print(eval_results["faithfulness"][0].response)
print(eval_results["faithfulness"][0].contexts)

# 计算评估得分
def get_eval_results(key, eval_results):
    results = eval_results[key]
    correct = 0
    for result in results:
        if result.passing:
            correct += 1
    score = correct / len(results)
    print(f"{key} Score: {score}")
    return score

# 获取评估得分
score = get_eval_results("faithfulness", eval_results)
faithfulness Score: 1.0

score = get_eval_results("relevancy", eval_results)
relevancy Score: 1.0

可能遇到的错误

  1. API调用限制: 在使用中专API时,务必确认你有足够的调用额度。如果遇到频率限制,可以联系中专API提供方解决。
  2. 数据加载问题: 确保数据目录存在且文件格式正确,否则可能会导致加载失败。
  3. Evaluation失败: 如果评估过程中发生错误,建议检查API调用参数及传入的数据是否符合预期格式。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Llamaindex是一个开源的搜索引擎,可以用于快速搜索和索引大型数据集。为了在本地部署Llamaindex,您需要按照以下步骤进行操作。 首先,您需要从Llamaindex的官方GitHub页面上下载源代码。确保您的计算机已安装了Git系统,然后使用命令行工具输入以下命令来克隆代码库: ``` git clone https://github.com/llama-lab/llamaindex.git ``` 下载完成后,进入项目文件夹并创建一个Python虚拟环境。使用以下命令可以创建一个虚拟环境: ``` python3 -m venv llama-env ``` 然后需要激活虚拟环境。在Mac和Linux系统下,使用以下命令: ``` source llama-env/bin/activate ``` 在Windows系统下,使用以下命令: ``` llama-env\Scripts\activate ``` 接下来,安装Llamaindex的依赖项。在虚拟环境中运行以下命令: ``` pip install -r requirements.txt ``` 等待依赖项安装完成后,可以开始配置Llamaindex。编辑`config.yaml`文件,根据您的需求进行相应的修改。您可以设置数据集的路径、索引文件的位置和其他相关参数。 完成配置后,运行以下命令来创建索引: ``` python3 llama.py -f path/to/dataset ``` 上述命令中的`path/to/dataset`应替换为实际的数据集路径。运行该命令后,Llamaindex会开始索引数据集。 当索引完成后,您可以使用以下命令来搜索索引中的数据: ``` python3 llama.py -s "your search query" ``` 您可以将`"your search query"`替换为实际的搜索关键字。Llamaindex将返回与关键字匹配的结果。 以上就是在本地部署Llamaindex的步骤。祝您在使用Llamaindex时取得成功!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值