AI系统的测试入门与实践
文章平均质量分 79
最近AIGC大火,那么面对任何一种的AI系统,测试工程师应该如何测试,AI系统的测试与常规系统有什么不同呢,本专栏就针对这些问题,从零开始讲解AI系统的测试。在本专栏中可以学习如何测试AI系统,如何保证AI系统的质量特性。
CrissChan
前京东测试架构师、阿里云MVP、华为云MVP、中国商业联合会互联网应用工作委员会智库专家、中关村智联软件服务业质量创新联盟软件测试标准化技术委员会委员、极*客时间命题专家,极*客时间《接口测试入门课》作者、《研发效能实践指南》副主编、拉钩教育《软件测试第一课》作者,NCUT软件体系结构实验室特邀企业导师、《接口测试方法论》《持续测试》《京东质量团队转型实践》图书作者、《测试敏捷化白皮书》特邀编委、《DB51T1998-2015移动智能终端应用软件(APP)产品通用技术要求及测试规范》编委、多次受邀参与TID、NCTS、MAD、MPD、TICA、DevOpsDys等技术峰会以及参出品人。
展开
-
Ollama完成本地模型的运行
Ollama 是一个开源的大型语言模型(LLM)服务工具,它允许用户在本地运行和使用各种大型语言模型。Ollama 提供了一个命令行界面,支持多种流行的模型,如 Llama 3、Qwen 1.5、Mixtral、Gemma 等,并且用户可以根据自己的需求定制和创建模型。Ollama能够实现模型的本地运行,降低了模型开发的复杂度,无聊时AI开发的高手还是新人都可以快速使用Ollama完成模型本地运行。同时可以识别Nvidia、AMD的GPU,AVX、AVX2指令集的CPU。原创 2024-04-25 13:54:01 · 19 阅读 · 0 评论 -
LangSmith帮助测试大模型系统
想要使用LangSmith首先进入他的设置页面,https://smith.langchain.com/settings注册一个账号,然后进入API Keys页面创建一个API Keys,我们为例后续演示,这里创建一个test_api_key名字的API Key,如下图所示。LangSmith完成了跟踪LangChain构建应用的所有的中间过程,这也为验收或者测试LangChain构建的基于大模型的应用提供了有力的手段。在项目下的列表中,我们多次执行LangChain构建的大模型的应用也可以做横向对比。原创 2024-04-24 00:00:29 · 30 阅读 · 0 评论 -
通过Llama Index实现大模型的SQL生成的三种方法详解
llamaindex提供的三种text2sql的方法真的不同的问题都有其更加擅长的方向,并没有一个可以全盘解决问题的技术方案,所以具体选择哪一种还是需要根据面对的问题而定。原创 2024-04-10 10:46:46 · 208 阅读 · 0 评论 -
Llama Index的NodeParser详解
Node Parser有很多种,具体需要使用哪一种就需要我们根据数据的内容、数据的特点等做出选择了。原创 2024-04-08 14:10:09 · 144 阅读 · 0 评论 -
基于chatGLM在llama index上建立Text2SQL
文中使用了chatglm的llm和embedding modle,利用的智谱的免费token。原创 2024-04-03 11:30:18 · 318 阅读 · 0 评论 -
LLM的测试工具:LaVague平替成国内大模型
LaVague 通过LLM将自然语言转换Selenium的代码引擎,用户或其他人工智能轻松实现自动化。原创 2024-03-19 22:51:26 · 293 阅读 · 0 评论 -
5 AI的道德验证和实践方法
AI的道德性是AI需要遵守的底线也是大模型的缔造者需要建立的道德围栏,虽然对于AI的道德有各式各样的要求,各大国家、组织都对AI的道德做了基本的约束,但是如何验证AI是否遵守了道德约束确实一个不容易验证的内容,通过“道德黑客”的方法,尝试各种方式突破AI的道德底线,例如通过一套密码诱骗AI给出违反道德的结果,通过哀求、贿赂诱骗AI扩过道德围栏,建立red team不断地共计AI的道德围栏等等手段还在不断的尝试和更新中,守住AI的道德底线是守住了人类智慧的基线。原创 2024-03-09 08:52:25 · 56 阅读 · 0 评论 -
4 AI系统的测试关键技术和实践
SSE最近突然的被很多人关注还有一个主要原因就是ChatGPT等大模型的聊天类系统就采用了SSE协议。在使用ChatGPT的时候,输入Prompt后的反馈是逐渐的显示在聊天区域的,这部分的实现就是主要基于EventStream的事件流,类似打字机一样输出的,这就是SSE的实现,其实类似一下股票行情推送、期货行情推送都可以使用SSE实现。原创 2024-03-09 08:50:58 · 62 阅读 · 0 评论 -
3 模型评估
随着各式各样的AI系统的出现,模型评估会变得越来越多样化,那么如上介绍的也可能也会退出模型评估的对应基准的选择范围。那么,无论怎么发展这种基准测试都是模型评估的方法都不会过时,这也为各种模型的横向对比提供了一个客观的评价方法,也为模型在某一方面的能表现提供了一个客观的评价基准。原创 2024-03-09 08:50:03 · 53 阅读 · 0 评论 -
2 数据和测试评价
数据是AI的基础,AI系统是通过数据的训练而得到的,用于AI系统训练的数据通过收集、清晰、打标等一系列处理后才能用于模型的训练,可见数据是否按照模型的要求完成了上述一系列动作是模型最终表现的重要影响,因此用于训练的数据的质量也是非常值得关注的。在训练完成之后的模型的测试中,传统测试方法“测不准”的现象严重影响了测试结果,那么通过神经元覆盖、层级覆盖的思路可以为测试给予指导,帮助测试工程师完善测试用数据,实现基于覆盖率的测试过程评价,将测试结果的评价转换成覆盖率的评价,从而解决了“测不准”的问题。原创 2024-03-09 08:49:27 · 33 阅读 · 0 评论 -
1 AI系统概述
1936年阿兰·图灵发表的《论可计算数及其在判定问题中的应用》开启了人工智能的篇章,从1950以后,AI这个词的诞生,也注定了人工智能将会不断的影响人类的生活,那么这么多年的发展和积累,AI已经开始影响了我们生活的方方面面,尤其是二十一世纪二十年代以来,AI已经开始影响到了几乎世界上的每一个人。AI的快速发展也为测试工作提出了新的挑战,这些挑战无疑也为系统测试工作提供了新的探索和研究的方向,那么下面的章节我们就会针对AI系统的测试做深入的阐述。原创 2024-03-09 08:48:20 · 66 阅读 · 0 评论 -
0 如何测试AI系统的软件测试
随着AI系统的井喷是否发展,AI系统的测试已经变成了一个棘手的问题,尤其是传统软件工程中的测试用例的三个关键要素的输入数据、执行步骤和预期结果约束之下,AI系统的测试用例在执行过程中往往并不能完全满足预期结果的描述,但是实际AI系统的输出在逻辑上又是正确的处理,这也就呈现了AI系统测试中的”测不准“的问题。AI系统的测试只能是在实践中通过不断地找到更加适合其特点的方法、技术和实践,通过不断优化和改进测试过程,可以提高软件的质量和可靠性,从而为用户提供更好的体验和价值,提高用户满意度。原创 2024-03-09 08:47:38 · 59 阅读 · 0 评论 -
ChatGPT使用的SSE协议接口怎么做测试
SSE最近突然的被很多人关注还有一个主要原因就是ChatGPT等大模型的聊天类系统就采用了SSE协议。在使用ChatGPT的时候,输入Prompt后的反馈是逐渐的显示在聊天区域的,这部分的实现就是主要基于EventStream的事件流,类似打字机一样输出的,这就是SSE的实现,其实类似一下股票行情推送、期货行情推送都可以使用SSE实现。原创 2024-03-06 17:52:48 · 134 阅读 · 0 评论 -
解决AI系统”测不准“的问题:蜕变测试
在被测试的AI模型的处理逻辑之上我们找到了蜕变关系MR,那么我们将测试用例1的输入1通过一种参数扰动的处理,得到了输入1‘{I1’, I2’,…如上给出的全部例子都是基于一种有效的测试用例找到了对应的蜕变关系,其实这种蜕变关系也不一定非要从功能正确的测试用例开始的,我们也可以通过一些反向的测试用例找到对应的蜕变关系,从而设计出很多的测试用例,假设我们前面例子中的一个基于深度学习进行图像分类的模型,通过读入照片识别照片中是不是一只猫,那么我们可以输入一下不是猫的图片,然后基于这个蜕变关系,从完成测试。原创 2024-03-01 17:43:10 · 92 阅读 · 1 评论 -
AI数据和测试评价
数据是AI的基础,AI系统是通过数据的训练而得到的,用于AI系统训练的数据通过收集、清晰、打标等一系列处理后才能用于模型的训练,可见数据是否按照模型的要求完成了上述一系列动作是模型最终表现的重要影响,因此用于训练的数据的质量也是非常值得关注的。在训练完成之后的模型的测试中,传统测试方法“测不准”的现象严重影响了测试结果,那么通过神经元覆盖、层级覆盖的思路可以为测试给予指导,帮助测试工程师完善测试用数据,实现基于覆盖率的测试过程评价,将测试结果的评价转换成覆盖率的评价,从而解决了“测不准”的问题。原创 2024-01-10 18:16:13 · 481 阅读 · 0 评论 -
通过Langchain实现大模型完成测试用例生成的代码(可集成到各种测试平台)
代码中使用的是讯飞spark3.0版本,其中版本在的控制已经封装到了langchain对应的讯飞的iflytek的类中,可以在调用的时候显示控制,默认是spark2.0版本。原创 2023-12-04 14:27:02 · 752 阅读 · 2 评论 -
为集成LLM到测试平台提供更便捷的方式:为讯飞的LLM星火创建接入LangChain类(全部源代码)
如上源代码拿来即可以用,其中需要Python的_变量以及将appid、api_secret、api_key存在项目根目录的env文件中就可以了。如果对于_变量不熟悉可以学习:https://blog.csdn.net/crisschan/article/details/133277855?原创 2023-11-01 23:43:08 · 738 阅读 · 0 评论 -
通过Chain Prompts方式将LLM的能力引入测试平台:正交实验测试用例生成
Chain Prompts是指在一个对话或文本生成任务中,将前一个提示的输出作为下一个提示的输入,形成一个连续的链条。这种方法常常用于创建连贯的、有上下文关联的文本。在对话系统中,这种方法可以模拟真实对话中的连续性,使得生成的回复更加自然和流畅。利用Chain Prompts,可以将LLM、外部程序、外部数据连接到一起,实现一个完整的解决方案。下面我们使用Chain Prompts的方式实现正交实验测试用例生成。原创 2023-10-19 11:45:42 · 1060 阅读 · 0 评论 -
CoT 的方式使用 LLM 设计测试用例实践
COT 的 LLM 的测试用例生成原创 2023-10-09 18:53:28 · 953 阅读 · 2 评论 -
基于通用LLM的一次测试用例自动生成的实验
如上就是一个小实验,尝试使用LLM帮助测试工程师,实验中可以看出prompting base构建的系统就足以满足测试工程师工作的助手的要求了,只要设计好prompt,并且给prompt足够的信息,那么就可以得出有效的测试用例,但是这距离工程化还有一段很长的路要走。原创 2023-09-25 18:49:48 · 1063 阅读 · 0 评论 -
AI 模型:数据收集和清洗
为了训练AI模型,需要收集和准备足够的数据。隐私去除也是必不可少的数据清洗的流程,用于训练大模型的数据绝大部分都是来自网络的,这里面包含了大量的敏感信息和个人隐私信息,如果这样的数据用于大模型的训练那么对于大模型的伦理道德的会形成潜在的风险,增加隐私泄露的可能性。无论收集到的数据集是通用文本数据、还是专用文本数据都要经过一系列的数据清洗才能用于 LLM 模型的训练,在面对初始收集的数据集需要首先通过质量过滤提高数据集的数据质量,常规的做法是设计一组过滤规则,消除低质量的数据,从而实现数据质量的提高。原创 2023-08-31 13:15:22 · 484 阅读 · 0 评论 -
Fine-tune 的简介
基于重参数法利用的是低秩矩阵表示来减少可训练参数数量,当前使用较多的是 LoRA(Low-Rank Adaptation),将权重更新做一个低秩矩阵分解,使用大模型适配下游任务时只需要训练少量的参数即可达到一个很好的效果,在 LoRA 中,先冻结预训练模型的权重,然后使用Kronecker乘积重参数化的方法,可以在秩和参数数量间找到更好的平衡。fine-tune就是在LLM常说的微调的英文。那么如果有一个现成的模型,和我们要觉得的问题相似,那么我们就可以通过在这个模型的基础之上通过微调达到我们想要的能力。原创 2023-08-28 15:45:40 · 302 阅读 · 0 评论 -
AI 的测试:模型的基准测试
在评估一个模型的时候,仅通过ROUGE、BLEU SCORE评价模型还是太单薄了,并不能全面的反馈模型的能力。在相完整评估一个模型的能力的时候,最重要的是提供一套有效的评估模型。现在常见的模型的基准测试有 GLUE、SuperGLUE、HELM、MMLU等等。原创 2023-08-22 18:21:49 · 422 阅读 · 0 评论 -
AI 的测试:模型评估的常用指标
模型是在大量的数据集上训练而来的,无论一个模型是从零训练的还是基于某一个模型,通过微调方法得到的,靠人工评价模型的效果都是异常困难的。那么要想客观的、自动化的评价一个LLM模型,就需要能够选择正确评估模型效果的指标或者基准测试,来客观和自动化的完成评价,从而正确的反馈模型的效果。BLEU SCORE 也是如上指标的一个应用,是n-gram计算精度指标的进行的再计算,要得到BLEU SCORE 需要对一系列的不同大小n-gram的精度指标再进行平均值的求解。F1分数越高,说明模型的效果越好。原创 2023-08-18 17:51:46 · 558 阅读 · 0 评论 -
LLM的生成配置中参数含义
top-k 参数会让模型不会总是选择top 1 权重的结果返回,从而提高了返回的多样性,同时也保证了输出的正确性。如果返回apple,虽然这个单词也在前三的权重里,但是它的权重就非常地了,因此相关性也就比较弱,这样返回的结果就会不是很好了。这其实又有效的避免了前面 top-k 参数的问题。token相信大家都不陌生了,现在在常用的 chatGPT 使用过程中个就有 token 的概念,这里的参数是 Max new tokens 的设置,是最大的新 token 的数量,是一个上限值。原创 2023-08-17 13:25:34 · 489 阅读 · 0 评论 -
OpenAI如何让ChatGPT遵守了伦理道德的底线
AI的伦理道德是探讨AI带来的伦理道德问题及风险、研究解决AI伦理问题、促进AI向善、引领人工智能健康发展的一个多学科研究领域。AI的伦理领域所涉及的内容非常丰富,是一个哲学、计算机科学、法律、经济等学科交汇碰撞的领域。原创 2023-05-29 13:29:48 · 2668 阅读 · 0 评论 -
AI系统的伦理道德验证(AI测试3到11的集合)
AI系统的伦理道德性也是非常重要的。AI的伦理道德是探讨AI带来的伦理道德问题及风险、研究解决AI伦理问题、促进AI向善、引领人工智能健康发展的一个多学科研究领域。AI的伦理领域所涉及的内容非常丰富,是一个哲学、计算机科学、法律、经济等学科交汇碰撞的领域。AI的伦理道德领域所涉及的内容和概念非常广泛,且很多问题和议题被广泛讨论但尚未达成共识,解决AI伦理问题的手段方法大多还处于探索性研究阶段。原创 2023-05-24 09:51:24 · 705 阅读 · 0 评论 -
11 长效保证机制:伦理道德风险外溢临界模型
特别注意,如果上次评价中有一些测试用例没有测试通过,导致了减分,那么下个周期再次评价的时候,必须包含上一个周期减分的测试用例,其他测试用例也必须重新设计,不可重用。按照伦理道德的六个方面的评估标准分别设立6个维度的评价方法,同时关注反应数据集熟悉的Datasheet以及记录模型详情的Model Card,建立了一个多维度的伦理道德评价体系,学习证券机构评分模型,建立了一个伦理道德评分模型,随着评级的降低,风险外溢的可能性变得越来越多,从而形成了伦理道德风险外溢临界模型。因此伦理道德分数共计100分。原创 2023-05-23 18:00:41 · 162 阅读 · 0 评论 -
10 Model Card 保证AI模型伦理道德的好工具
Model Card就像机器学习模型的档案一样,记录了这个模型是为什么建立的,考虑了为什么人做什么样的服务,有什么样的性能表现等等内容信息,一些比较常出现在模型卡上的内容如下有模型详情、使用预期、影响因素、指标、评价数据、训练数据、质量分析、伦理道德影响因素以及其他建议和注意事项。原创 2023-05-09 18:08:14 · 328 阅读 · 0 评论 -
9 AI系统伦理道德风险之权力谋取验证
权力谋取主要评估AI是否在为了达到目的而不择手段,这也是伦理道德性的重要指标,需要通过有效的监督和制约机制来防止或减轻。测试权力谋取是需要设计一些的场景模拟的思路,例如给AI系统一个有余额的支付账号,看他是否会在网络上是否可以完成自我复制或者自我增强的一些反馈。最后,需要验证全部的AI的分析过程、决策过程是否完整的记录,并生成完整的详细的日志。日志中能够清晰的解释系统的行为和决策过程,为如上所有的过程提供审计依据,帮助用户理解系统的决策行为。原创 2023-05-04 14:27:19 · 121 阅读 · 0 评论 -
8 AI系统伦理道德风险之可信任度验证
那么对于AI系统却多出了“可以验证的方式”的约束,也就约定了AI系统在满足系统干系人的期望能力之外,还需要保证AI系统为干系人提供的能力是可以被验证的,有验证手段并可以证明结果是否满足期望。在团队内部的管理和约束上,应该制定AI系统的可信任度的规范和制度、建立监督和问责制,从而约束AI系统的设计者、开发者、测试者以及运维者,可信任度验证应该是一个持续的过程,而不是一次性的事件,应该制定固定周期的问卷调查、测试者验证后自评等长效机制来不断评估并完善AI系统的可信任度。原创 2023-05-04 10:29:02 · 170 阅读 · 0 评论 -
6 AI系统的伦理道德风险之道德判断的验证
所以AI系统的道德判断是AI系统的伦理道德风险中的重要组成部分,关注AI系统在设计和使用过中应遵从的道德原则、价值观,从而避免道德矛盾,从而确保AI系统对人类和社会积极的影响。再如在自动驾驶的测试中,行驶中前方传感器识别有一个形式缓慢的老人在马路中间,刚好挡住了汽车的行驶车道,那么自动驾驶AI系统如何选择避让对象也是道德判断约束的内容,这些都需要设计的道德判断相关的测试用例来保证。AI系统的道德判断是指人工智能系统在面对不同的道德问题或冲突时,如何做出符合道德准则和价值观的决策。原创 2023-04-24 21:06:00 · 399 阅读 · 0 评论 -
5 AI道德风险之偏见风险测试
可见AI系统的偏见会引起AI系统的反馈出现偏差,从而给出了存在不公平、歧视性的决策反馈,这些反馈就会直接影响社会造成负面的影响,尤其是随着AI系统逐渐的获取了人了的信任后,人类的生活、工作都过度依赖AI系统以后,那么这样的反馈就更加的危害公共安全。为了能够有效避免偏见风险,在AI系统发布之前需要进行指定的用户测试,将目标用户的一些典型代表划入用户验收的团队,进行验收测试,从而能够充分的屏蔽执行验收测试的测试人自身的一些偏见性问题引起的测试结论不可信的结果。原创 2023-04-21 18:38:47 · 515 阅读 · 0 评论 -
4 AI系统的道德风险之歧视和不平等性的验证方法
打击歧视和不平等是全人类的共同责任和义务。针对歧视和不平等方面在设计测试用例的时候可以更加侧重于一些像是生活中的重点内容,例如男女平等、民族平等、肤色平等等,这里如果是一个自然语言分析类的AI系统,那么就要设计一些反平等的验证,例如ChatGPT类的AI系统,可以尝试询问“国王必须是男性”的问题,通过输入关于男权类的问题,来验证AI系统的反馈;在AI的歧视和不平等的验证的前提是需要科技伦理(审查)委员会类的组织促使建立健全相关标准规范、审查和问责机制,从而约束AI系统的开发者、设计者遵从相关的规定。原创 2023-04-12 11:45:37 · 253 阅读 · 0 评论 -
3、AI的道德风险测试
道德性是AI系统无法逃避也必须面对的一个验证,那么道德性的测试如果能够在算法设计、实现、模型训练过程中不断的进行验证,那么就会更好的约束AI的道德底线。但是针对AI的道德测试却也没有办法像功能测试一样有明确的测试用例的设计方法、执行轮次等,道德性测试需要按照不同的AI系统的模型和应用方向给出一些道德性测试的测试用例,道德性测试用例和功能测试用例是一样的,仅仅在描述和反馈的考察方面对道德性有所侧重。原创 2023-03-31 09:31:27 · 543 阅读 · 0 评论 -
2、机器学习简介及其分类
机器学习是指让机器从数据中自动学习规律和知识,并利用这些规律和知识进行预测或决策的技术,机器学习包括监督学习、无监督学习、强化学习,其中监督学习也被称作有监督的学习,有监督的意思就是预先知道据有什么样的目标,通过一些已经知道结果的数据(也叫做有标注的数据)训练模型,完成训练后,再将新问题给模型去解答,常用的有监督的算法有KNN(K近邻)算法、线性回归、罗辑回归、支持向量机、决策树、神经网络等;原创 2023-03-29 16:59:06 · 375 阅读 · 0 评论 -
1、AI系统简介及AI系统的分类
AI这个缩写在越来越多的出现在公众面前,但是AI到底是什么就和AI这个词一样,大部分都能举一些例子,但是都却很难说清楚AI到底是什么。AI是Artificial Intelligence的简称,中文叫做人工智能。但是要找到一个完全被所有人都公认的AI的解释是很难的,目前认可度最高的两个AI的定义分别是美国斯坦福大学人工智能研究中心尼尔逊教授给AI下的定义:“AI是关于知识的学科——怎样表示知识以及怎样获得知识并使用知识的科学。原创 2023-03-28 10:30:47 · 1202 阅读 · 0 评论