跳转到主要内容

UpTrain - 评估LLM应用在事实准确性、响应质量、检索质量、语调等方面的工具。

项目描述

Logo of UpTrain - an open-source platform to evaluate and improve LLM applications

Try out Evaluation Read Docs Slack Community Request New Feature Daily Monitoring

GitHub Release GitHub commit activity GitHub License PyPI - Downloads

UpTrain是一个开源的统一平台,用于评估和改进生成式AI应用。我们提供了20多个预配置评估(涵盖语言、代码、嵌入用例),对失败案例进行根本原因分析,并提供如何解决它们的见解。


关键特性 🔑

Interactive Dashboards

UpTrain仪表板是一个基于Web的界面,在您的本地计算机上运行。您可以使用仪表板来评估您的LLM应用,查看结果,并进行根本原因分析。

20+ Pre-configured Evaluations

支持20多个预配置评估,例如响应完整性、事实准确性、上下文简洁性等。

Data Security

所有评估和分析都在您的系统上本地运行,确保数据永远不会离开您的安全环境(使用模型评分检查时的LLM调用除外)。

Experimentation

尝试不同的嵌入模型,例如 text-embedding-3-large/small、text-embedding-3-ada、baai/bge-large 等。UpTrain 支持HuggingFace模型、Replicate端点或托管在您端点的自定义模型。

Root Cause Analysis

您可以对具有负面用户反馈或低评估分数的案例进行 根本原因分析,以了解LLM管道的哪个部分产生了次优结果。查看支持的RCA模板。

Select from a Variety of Evaluation LLMs

我们允许您使用任何OpenAI、Anthropic、Mistral、Azure的Openai端点或托管在Anyscale上的开源LLM作为评估器。

Customize Evaluations

UpTrain提供了多种方式来 自定义评估。您可以自定义评估方法(思维链 vs 分类)、少样本示例和场景描述。您还可以创建自定义评估器。

即将推出

  1. 与您的团队合作
  2. 通过UMAP和聚类进行嵌入可视化
  3. 失败案例中的模式识别
  4. 提示改进建议

开始使用 🙌

方法 1:使用本地托管仪表板

UpTrain仪表板是一个基于Web的界面,允许您评估您的LLM应用程序。这是一个自托管的仪表板,在您的本地机器上运行。您不需要编写任何代码即可使用仪表板。您可以使用仪表板评估您的LLM应用程序、查看结果并执行根本原因分析。

在开始之前,请确保您的机器上已安装Docker。如果没有,您可以从这里安装。

以下命令将下载UpTrain仪表板并在您的本地机器上启动它。

# Clone the repository
git clone https://github.com/uptrain-ai/uptrain
cd uptrain

# Run UpTrain
bash run_uptrain.sh

注意:UpTrain仪表板目前处于 Beta版本。我们非常希望听到您的反馈以改进它。

方法 2:使用UpTrain包

如果您是开发者,希望将UpTrain评估集成到您的应用程序中,您可以使用UpTrain包。这允许以更程序化的方式评估您的LLM应用程序。

通过pip安装包

pip install uptrain

如何使用UpTrain

您可以通过提供OpenAI API密钥来运行评估,通过开源版本评估您的响应。

from uptrain import EvalLLM, Evals
import json

OPENAI_API_KEY = "sk-***************"

data = [{
    'question': 'Which is the most popular global sport?',
    'context': "The popularity of sports can be measured in various ways, including TV viewership, social media presence, number of participants, and economic impact. Football is undoubtedly the world's most popular sport with major events like the FIFA World Cup and sports personalities like Ronaldo and Messi, drawing a followership of more than 4 billion people. Cricket is particularly popular in countries like India, Pakistan, Australia, and England. The ICC Cricket World Cup and Indian Premier League (IPL) have substantial viewership. The NBA has made basketball popular worldwide, especially in countries like the USA, Canada, China, and the Philippines. Major tennis tournaments like Wimbledon, the US Open, French Open, and Australian Open have large global audiences. Players like Roger Federer, Serena Williams, and Rafael Nadal have boosted the sport's popularity. Field Hockey is very popular in countries like India, Netherlands, and Australia. It has a considerable following in many parts of the world.",
    'response': 'Football is the most popular sport with around 4 billion followers worldwide'
}]

eval_llm = EvalLLM(openai_api_key=OPENAI_API_KEY)

results = eval_llm.evaluate(
    data=data,
    checks=[Evals.CONTEXT_RELEVANCE, Evals.FACTUAL_ACCURACY, Evals.RESPONSE_COMPLETENESS]
)

print(json.dumps(results, indent=3))

如果您有任何问题,请加入我们的Slack社区

通过在此预约通话直接与UpTrain的维护者交流。


我们提供的预构建评估 📝

quality of your responses
评估 描述
响应完整性 判断响应是否回答了指定问题中的所有方面。
响应简洁性 判断生成的响应是否简洁,或者是否包含与问题无关的额外信息。
响应相关性 判断生成的上下文与指定问题的相关性。
响应有效性 判断生成的响应是否有效。如果响应包含任何信息,则视为有效。
响应一致性 判断响应与所提问题的上下文是否一致。
quality of retrieved context and response groundedness
评估 描述
上下文相关性 判断上下文与指定问题的相关性。
上下文利用 判断根据上下文中提供的信息,生成的响应是否完整。
事实准确性 判断生成的响应是否基于上下文的事实正确。
上下文简洁性 评估从原始上下文中引用的简洁上下文中的无关信息。
上下文重新排序 评估重新排序的上下文与原始上下文相比的效率。
language quality of the response
评估 描述
语言特征 评估响应中语言的质量和有效性,重点关注清晰度、连贯性、简洁性和整体沟通。
语调 判断生成的响应是否与所需角色相符的语调。
language quality of the response
评估 描述
代码幻觉 评估生成的响应中包含的代码是否由上下文支撑。
conversation as a whole
评估 描述
用户满意度 评估用户关注的问题是否得到妥善解决,并根据提供的对话评估其满意度。
custom evaluations and others
评估 描述
自定义指南 允许您指定指南,并评估LLM在提供响应时遵守指南的程度。
自定义提示 允许您创建自己的评估集。
compare responses with ground truth
评估 描述
响应匹配 比较并评估LLM生成的响应与提供的真实情况的一致性。
safeguard system prompts and avoid LLM mis-use
评估 描述
提示注入 评估用户提示是否是尝试让LLM揭露其系统提示。
越狱检测 评估用户提示是否是尝试越狱(即生成非法或有害的响应)。
evaluate the clarity of user queries
评估 描述
子查询完整性 评估用户查询生成的所有子查询是否涵盖了用户查询的所有方面。
多查询准确性 评估生成的变体是否准确代表了原始查询。

集成 🤝

评估框架 LLM提供商 LLM包 服务框架 LLM可观测性 矢量数据库
OpenAI评估 OpenAI LlamaIndex Ollama Langfuse Qdrant
Azure Together AI Helicone FAISS
Claude Anyscale Zeno Chroma
Mistral Replicate
HuggingFace

更多集成即将推出。如果您有特定的集成想法,请通过创建问题告诉我们。


在LLM中监控提示漂移:UpTrain基准

最受欢迎的LLM如GPT-4、GPT-3.5-turbo、Claude-2.1等都是闭源,即通过API暴露,对内部发生的事情几乎无法看到。已经有许多关于提示漂移(或GPT-4变得懒惰)的报道和研究工作探索了模型质量的退化。这个基准试图通过评估其在固定数据集上的响应来跟踪模型行为的改变。

image

您可以在这里找到基准。

资源 💡

  1. 如何评估您的LLM应用
  2. 如何检测越狱
  3. 处理幻觉

为什么我们在构建UpTrain 🤔

在过去8年中,我们一直在与机器学习和NLP模型合作,不断地对我们模型中的许多隐藏故障感到沮丧,这促使我们构建了UpTrain。UpTrain最初是一个机器学习可观测性工具,具有检查准确率回归的功能。

然而,我们很快意识到LLM开发者面临着一个更大的问题——没有很好的方法来衡量LLM应用的准确率,更不用说识别回归。

我们还发布了OpenAI评估,他们提出了使用LLM来评估模型响应的方法。此外,我们在阅读Anthropic如何利用RLAIF后获得了信心,直接投入到LLM评估研究(我们很快将发布一个优秀评估研究仓库)。

因此,今天,UpTrain是我们尝试将LLM混乱秩序化的尝试,并为社区做出贡献。虽然大多数开发者仍然依赖于直觉,并通过审查几个案例来生产化提示更改,但我们已经听到了足够多的回归故事,相信“评估和改进”将是LLM生态系统成熟后的关键部分。

  1. 稳健的评估允许您系统地实验不同的配置,并通过帮助客观地选择最佳选择来防止任何回归。

  2. 它帮助您了解系统在哪里出错,找到根本原因并修复它们——在您的最终用户抱怨和可能流失之前。

  3. 像提示注入和越狱检测这样的评估对于维护LLM应用的安全性和安全性至关重要。

  4. 评估有助于您提供透明度,并与您的最终用户建立信任——如果您正在向企业销售,这一点尤为重要。


为什么是开源的?

  1. 我们明白,在评估方面并没有一个适合所有情况的解决方案。我们越来越多地看到开发者希望修改评估提示或选择集,或是一些少量示例等。我们相信,最好的开发者体验在于开源,而不是暴露20个不同的参数。

  2. 促进创新:LLM评估领域和将LLM作为裁判的使用还处于起步阶段。我们几乎每天都在看到令人兴奋的研究成果,而开源为我们和我们的社区提供了一个合适的平台,以更快地实施这些技术并进行创新。


如何帮助 🙏

我们不断努力提升UpTrain,您可以通过以下几种方式做出贡献

  1. 发现任何问题或改进领域:如果您发现任何错误或对改进有想法,请在我们GitHub仓库中创建问题

  2. 直接贡献:如果您看到可以修复的问题或想提出代码改进,请直接向仓库做出贡献。

  3. 请求定制评估:如果您应用程序需要定制评估,请告诉我们,我们将将其添加到仓库。

  4. 与您的工具集成:需要与现有工具集成?联系我们,我们将着手处理。

  5. 评估帮助:如果您需要评估帮助,请在我们Slack频道上发布您的查询,我们将迅速解决。

  6. 展示您的支持:通过在GitHub上给我们加星⭐来跟踪我们的进展,展示您的支持。

  7. 传播消息:如果您喜欢我们所构建的,请在Twitter上给我们留言!

非常感谢您的贡献和支持!感谢您成为UpTrain之旅的一部分。


许可证 💻

本仓库根据Apache 2.0许可证发布,我们致力于为UpTrain开源仓库添加更多功能。如果您希望有一个更简单的体验,我们还有一个托管版本。请在此预订演示通话


提供反馈(越严厉越好 😉)

我们在公共场合构建UpTrain。请通过在此提供反馈来帮助我们改进。


贡献者 🖥️

我们欢迎对UpTrain的贡献。请参阅我们的贡献指南以获取详细信息。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

uptrain-0.7.1.tar.gz (178.8 kB 查看哈希值)

上传时间

构建分布

uptrain-0.7.1-py3-none-any.whl (190.2 kB 查看哈希值)

上传时间 Python 3

由以下组织支持