如何测试大型语言模型

围绕使用AI助手来减少手动工作、通过代码生成器提高软件开发者的生产力,以及利用生成式AI进行创新,这些话题一直为公众所热议。同时,商业机会正推动许多开发团队构建知识库、使用向量数据库,并在其应用中嵌入大型语言模型(LLMs)。

构建具有LLM能力的应用程序的一些通用用例,包括搜索体验、内容生成、文档摘要、聊天机器人和客户支持应用。行业示例包括在医疗保健中开发患者门户、在金融服务中改善初级银行家的工作流程,以及为制造业的未来铺平道路。

投资LLMs的公司面临一些前期障碍,包括改进数据治理、提高数据质量、选择LLM架构、解决安全风险,并制定云基础设施计划。

我对组织如何测试他们的LLM模型和应用程序有更大的担忧。新闻中的问题包括一家航空公司兑现其聊天机器人提供的退款、关于版权侵权的诉讼,以及降低幻觉风险。

Roadz的联合创始人兼首席运营官Amit Jain表示:“测试LLM模型需要一种多方面的方法是超越技术严谨性的。团队应该进行迭代改进,并创建详细的文档以记录模型的开发过程、测试方法和性能指标。与研究社区进行互动,以基准测试和分享最佳实践也是有效的。”

针对嵌入式LLMs的4种测试策略

开发团队需要一个LLM测试策略。作为起点,考虑以下用于测试嵌入自定义应用程序中的LLMs的做法:

1.创建测试数据以扩展软件QA

2.自动化模型质量和性能测试

3.根据用例评估RAG质量

4.开发质量指标和基准

5.创建测试数据以扩展软件QA

大多数开发团队不会创建通用的LLMs,而是为特定的最终用户和用例开发应用程序。为了制定测试策略,团队需要了解用户角色、目标、工作流程和涉及的质量基准。

Mindbreeze的首席技术官Jakob Praher表示:“测试LLMs的第一个要求是了解LLM应该能够解决的任务。”“对于这些任务,人们会构建测试数据集以建立LLM性能的指标。然后,人们可以系统地优化提示或微调模型。”

例如,为客服设计的LLM可能包括常见用户问题和最佳响应的测试数据集。其他LLM用例可能没有直接的方法来评估结果,但开发人员仍然可以使用测试数据进行验证。

Solix Technologies的工程副总裁Kishore Gadiraju表示:“测试LLM最可靠的方法是创建相关的测试数据,但挑战在于创建这样一个数据集的成本和时间。”“像任何其他软件一样,LLM测试包括单元、功能、回归和性能测试。此外,LLM测试需要偏见、公平性、安全性、内容控制和可解释性测试。”

自动化模型质量和性能测试

一旦有了测试数据集,开发团队应该根据质量目标、风险和成本考虑采取几种测试方法。Toloka AI的首席执行官Olga Megorskaya表示:“公司开始向自动化评估方法转变,而不是人类评估,因为它们具有时间和成本效率。”“然而,在关键情况下,公司仍应聘请领域专家,以捕捉自动化系统可能忽视的细微差别。”

对于开发人员或数据科学家来说,找到自动化和人在循环测试之间的正确平衡并不容易。Astronomer的数据和AI高级副总裁Steven Hillion表示:“我们建议对建模过程的每个步骤进行自动化基准测试,然后对端到端系统进行自动化和手动验证的混合”“对于主要应用程序版本,您几乎总是希望对测试集进行最后一轮手动验证。这在您引入了新的嵌入、新模型或新提示,并且您期望提高总体质量水平时尤其如此,因为改进通常是微妙或主观的。”

在有健全的LLM测试平台之前,手动测试是一个谨慎的措施。Relational AI的研究ML副总裁Nikolaos Vasiloglou表示:“没有用于系统测试的最新测试平台。”“当涉及到可靠性和幻觉时,知识图谱问题生成机器人是最好的解决方案。”

Gadiraju分享了以下LLM测试库和工具:

1.AI Fairness 360,一个开源工具包,用于检查、报告和减轻机器学习模型中的歧视和偏见;

2.DeepEval,一个开源的LLM评估框架,类似于Pytest,但专门用于单元测试LLM输出;

3.Baserun,一个帮助调试、测试和迭代改进模型的工具;

4.Nvidia NeMo-Guardrails,一个开源工具包,用于在LLM的输出上添加可编程约束。

IBM Data and AI的数据科学工具和运行时总监Monica Romila分享了企业用例中LLMs的两个测试领域:

1.模型质量评估使用学术和内部数据集评估模型质量,用于分类、提取、摘要、生成和检索增强生成(RAG)等用例。

2.模型性能测试验证模型的延迟(数据传输的经过时间)和吞吐量(在一定时间范围内处理的数据量)。

Romila表示,性能测试取决于两个关键参数:并发请求的数量和生成的令牌数量(模型使用的文本块)。“重要的是要测试各种负载大小和类型,并与现有模型的性能进行比较,以查看是否需要更新。”

DevOps和云架构师应考虑基础设施要求,以进行LLM应用程序的性能和负载测试。SADA解决方案工程董事Heather Sundheim表示:“为大型语言模型部署测试基础设施涉及设置强大的计算资源、存储解决方案和测试框架。”“自动化配置工具如Terraform和版本控制系统如Git在可重复部署和有效协作中发挥关键作用,强调平衡资源、存储、部署策略和协作工具的重要性,以实现可靠的LLM测试。”

根据用例评估RAG质量

提高LLM准确性的一些技术包括集中内容、使用最新数据更新模型,并在查询管道中使用RAG。RAG对于将LLMs的强大功能与公司的专有信息结合起来非常重要。

在一个典型的LLM应用程序中,用户输入一个提示,应用程序将其发送到LLM,然后LLM生成一个响应,应用程序将其发送回用户。使用RAG时,应用程序首先将提示发送到信息数据库,如搜索引擎或向量数据库,以检索相关、主题相关的信息。应用程序将提示和这些上下文信息发送到LLM,后者使用这些信息来制定响应。因此,RAG将LLM的响应限制在相关和上下文信息上。

Pryon的首席执行官和创始人Igor Jablokov表示:“RAG对于企业风格的部署更合理,其中对源内容的可验证归属是必要的,尤其是在关键基础设施中。”

使用RAG与LLM已经显示出可以减少幻觉并提高准确性。然而,使用RAG还增加了一个需要测试其相关性和性能的新组件。测试类型取决于评估RAG和LLM响应的容易程度,以及开发团队在多大程度上可以利用最终用户反馈。

我最近与Forethought的首席执行官Deon Nicholas谈到了他公司生成型客户支持AI中使用的RAG评估选项。他分享了三种不同的方法:

1.黄金标准数据集,或人类标记的正确答案数据集,作为模型性能的基准;

2.强化学习,或在现实世界场景中测试模型,例如在与聊天机器人互动后询问用户的满意度;

3.对抗网络,或训练一个次要LLM来评估主要的性能,这提供了一种不依赖人类反馈的自动化评估。

Nicholas表示:“每种方法都有权衡,平衡了人类努力与忽视错误风险之间的关系。”“最好的系统在系统组件中利用这些方法,以最小化错误,促进健全的AI部署。”

开发质量指标和基准

一旦您有了测试数据、一个新的或更新的LLM和一个测试策略,下一步就是根据既定目标验证质量。

ContractPodAi的首席产品官Atena Reyhani表示:“为了确保开发安全、可靠和值得信赖的AI,创建具体和可衡量的KPI并建立明确的界限非常重要。”“一些需要考虑的标准包括准确性、一致性、速度和与特定领域用例的相关性。开发人员需要评估目标领域中的整个LLM生态系统和运营模型,以确保它提供准确、相关和全面的结果。”

一个学习的工具是Chatbot Arena,一个比较LLM结果的开放环境。它使用Elo评分系统,这是一种经常用于排名竞技游戏中玩家的算法,但当一个人评估来自不同LLM算法或版本的响应时,它效果很好。

Immuta的研究副总裁Joe Regensburger表示:“人类评估是测试的核心部分,特别是在‘野外’环境中强化LLM。”

“Chatbot Arena是众包测试的一个例子,这些类型的人类评估研究可以提供一个重要的反馈循环,以纳入用户反馈。”                                                                                         

IBM Data and AI的Romila根据LLM的用例分享了三个需要考虑的指标。

1.F1分数是精确度和召回率的综合分数,适用于LLM用于分类或预测的情况。例如,客户支持LLM可以根据其推荐行动方案的能力进行评估。

2.RougeL可用于测试RAG和LLM的摘要用例,但这通常需要一个人类创建的摘要来基准测试结果。

3.sacreBLEU是用于定量评估LLM响应的方法之一,最初用于测试语言翻译,现在与其他方法如TER、ChrF和BERTScore一起使用。

一些行业有质量和风险指标需要考虑。Aisera的产品管理和市场营销副总裁Karthik Sj表示:“在教育中,评估适龄性和避免毒性至关重要,但在面向消费者的应用程序中,优先考虑响应的相关性和延迟。”

一旦模型部署,测试就不会结束,数据科学家应该寻找最终用户的反应、性能指标和其他反馈来改进模型。Amplitude的工程和CISO副总裁Dustin Pearce表示:“部署后,将结果与行为分析集成变得至关重要,提供快速反馈和更清晰的模型性能度量。”

准备生产的一个重要步骤是在应用程序中使用功能标志。AI技术公司Anthropic、Character.ai、Notion和Brex在构建其产品时使用功能标志,以协作地测试应用程序,缓慢地向大型群体引入能力,并将实验针对不同的用户细分。

虽然有新兴技术来验证LLM应用程序,但这些技术都不容易实施,也不能提供明确的结果。就目前而言,仅仅构建一个具有RAG和LLM集成的应用程序可能是相对容易的部分,与测试它和支持增强所需的工作相比。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/17344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

console.log——NPM库

前期回顾 Vue3 TS 项目实战 - 后台管理系统 - 按钮权限_vue3ts后台管理-CSDN博客 目录 🚩不使用NPM插件的方式 第一步:创建log函数-源码 第二步:注册到window上 第三步:扩展Window接口 第四步:确保类型文件…

南卡、韶音、Cleer开放式耳机如何选?全面对比测评拒绝智商税!

随着开放式耳机在生活中日益流行,市场上的多样化选择有时也伴随着质量参差不齐的问题,部分产品因成本控制而牺牲了材质和音质,给消费者在寻找高质量耳机时增添了困扰。 作为一名耳机评测领域的从业者,近期我投入大量精力对多款开…

Softing线上研讨会 | 使用Softing smartLink SW-HT将AB PLC下的HART设备连接到艾默生AMS设备管理器

| (免费) 线上研讨会时间:2024年6月25日 14:00~14:45 / 22:30~23:15 艾默生AMS设备管理器凭借其全面功能、优秀诊断能力、兼容性以及远程监控和管理功能,在过程工业中被证明是一款先进的工厂资产管理工具,可用于设备配置、诊断和监控、仪表校…

2023年信息素养大赛小学组C++智能算法复赛真题

今天给大家分享2023年全国青少年信息素养大赛小学组C智能算法挑战赛复赛里面的一套真题,希望有助于大家了解复赛的难度及备考。 其他真题下载:网盘-真题-信息素养大赛

clocking wizard IP核通过AXI4-Lite接口实现动态重新配置应用实例

在最近的FPGA应用中,应用到了基于Zynq 7000的Uart串口设计,为了让串口的时钟更精确,采用了外部时钟模式,如下图所示。外部时钟连接到了Clocking Wizard IP核的输出端。 在串口通信时,发现串口有错码出现。例如&#xf…

triton之paged attention

一 原理 图解大模型计算加速系列之:vLLM核心技术PagedAttention原理 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/691038809 二 源码分析 1 测试参数设置 test_paged_attention(num_seqs32,num_heads(64, 64),head_size64,block_size16,dtypetorch.float16,…

奇门遁甲古籍1《奇门秘术》(双页版)PDF电子书

《奇门秘术》 全书共102页 时间有限,仅上传部分图片,结缘私!

数据结构—队列(C语言实现)

文章目录 前言一、队列的概念二、队列的实现Queue.hQueue.c 三、设计循环队列问题数组实现链表实现 总结 前言 嗨喽喽!!小伙伴们,大家好哇,欢迎来到我的博客! 今天将要分享的是另一种数据结构—队列,以及…

汇编原理(三)编程

源程序: 汇编指令:有对应的机器码与其对应 伪指令:无对应的机器码,是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作。 ex1:XXX segment、XXX ends这两个是一对成对使用的伪指令,且必须会被用…

打工人好用的大模型问答,还需要一款可靠的文档解析工具

如果说三四年前,我们对AI的展望还停留在科幻片的话,现在,通向AI智能的路径已经初现端倪。各行各业的朋友们不约而同地嗅到了大模型带来的生产方式变革气息。 LLM宣布了AI时代的正式到来。 2022年11月30日,ChatGPT发布&#xff0…

“智能体时代:探索无限可能——零代码构建智能教练智能体“

随着智能体技术的飞速发展,各个领域正经历着空前的变革和新的发展机遇。作为人工智能的一个关键组成部分,智能体以其自我驱动、智能响应和适应能力,逐渐深入到我们日常生活的各个层面,成为促进社会发展和科技进步的新引擎。 顺应这…

30V MOS管 60VMOS管 100VMOS管 150VMOS管推荐

MOS管,即金属氧化物半导体场效应管,其工作原理是:在P型半导体与N型半导体之间形成PN结,当加在MOS管栅极上的电压改变时,PN结之间的沟道内载流子的数量会随之改变,沟道电阻也会发生改变,进而改变…

【JavaEE精炼宝库】多线程(3)线程安全 | synchronized

目录 一、线程安全 1.1 经典线程不安全案例: 1.2 线程安全的概念: 1.3 线程不安全的原因: 1.3.1 案例刨析: 1.3.2 线程不安全的名词解释: 1.3.3 Java 内存模型 (JMM): 1.3.4 解决线程不安全问题: 二…

工业AI的崛起,中国自主创新的新机遇

我们都知道,互联网已经深刻地改变了我们的生活方式,催生了无数的新型商业模式和创新产业,推动了社会的经济变革。中国在互联网领域的发展取得了举世瞩目的成就,建成了全球规模最大、技术领先的5G网络,互联网应用的普及…

linux文件编程api: creat

1.基本信息 功能 创建新文件 头文件 #include<fcntl.h> 函数形式 int creat(const char *pathname, mode_t mode); 返回值 如果成功&#xff0c;则返回文件描述符号 如果失败&#xff0c;则返回-1 参数 pathname: 创建的文件名 mode: 新建文件时&#xff0c;文件权限…

Django革新者:突破传统,构建下一代Web应用

书接上文 —— 家园建筑师&#xff1a;用Django打造你的Web帝国&#xff0c;从前面的学习中&#xff0c;咱们我们经历了一个完整的Django Web开发之旅&#xff0c;涵盖了从基础概念到高级特性的各个方面&#xff1a; 引言&#xff1a;介绍了企业级Web框架的需求&#xff0c;并概…

牛客NC67 汉诺塔问题【中等 递归 Java/Go/PHP/C++】 lintcode 169 · 汉诺塔

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/7d6cab7d435048c4b05251bf44e9f185 https://www.lintcode.com/problem/169/ 思路 相传在古印度圣庙中&#xff0c;有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上&#xff0c;有三根杆(编号A、B、C…

使用Python操作Jenkins

大家好&#xff0c;Python作为一种简洁、灵活且功能丰富的编程语言&#xff0c;可以与各种API轻松集成&#xff0c;Jenkins的API也不例外。借助于Python中的python-jenkins模块&#xff0c;我们可以轻松地编写脚本来连接到Jenkins服务器&#xff0c;并执行各种操作&#xff0c;…

拌合楼系统开发(二十)解决海康DS-TVL224系列屏幕显示二维码思路

前言&#xff1a; 需求是想在通过程序动态控制显示屏显示二维码&#xff0c;最开始有些担心led这种点阵屏会不会对二维码显示出来后无法识别&#xff0c;实际测时候发现是没问题的。对于显示文字和语音播报&#xff0c;csdn上已经有大神有完整的代码。 海康威视道闸进出口LED屏…

100个 Unity小游戏系列三 -Unity 抽奖游戏专题二 水果机游戏

一、演示效果 二、知识点 2.1 布局 private void CreateItems(){for (int i 0; i < rewardDatas.Length; i){var reward_data rewardDatas[i];GameObject fruitOjb;if (i < itemRoot.childCount){fruitOjb itemRoot.GetChild(i).gameObject;}else{fruitOjb Instant…