浅谈大模型生成测试用例

大模型应用之基于Langchain的测试用例生成 本文作者通过对AI大模型以及Langchain开源框架的了解,讲述了利用其智能生成测试用例的解决方案,达到提高测试用例编写效率的效果。通过本文可以了解大模型技术在测试用例设计过程中的应用方法以及技术实现方案。 阅读详情
AI摘要

本文探讨了大语言模型(LLM)如何应用于生成单元测试用例,验证了其在提升软件测试效率上的有效性。通过实验,LLM在编译率、测试通过率和覆盖率方面表现良好,但仍有提升空间。此外,介绍了一种基于静态质量指标的强化学习方法来优化LLM生成的测试用例质量。

引言

大语言模型(LLM)在自然语言处理中表现出了卓越的性能,包括问答、翻译、文本生成并且能够处理大规模数据集,并为通用人工智能开辟了新的可能性。

在代码生成领域,LLM已被用于各种编码的相关任务,包括代码生成、代码评审以及单元测试等任务。

本文以LLM生成单元测试用例为切入点,对LLM生成测试用例的有效性和方法进行了简要探讨。

一、LLM生成测试用例的有效性

1.1 大模型:提升软件测试效率的前沿创新

软件测试是一项至关重要的工作,是确保软件产品质量和可靠性的基石。软件测试有助于在开发生命周期的早期识别和解决问题,从而降低维护成本,从而防止出现更严重的复杂情况。

单元测试的目标是验证每个程序单元是否按预期工作并满足指定的要求。单元的意思是指一段可以独立分离和检查的代码。像写代码一样,单元测试不仅要正确,还要满足其他质量属性,例如可维护性和可读性。

软件测试通常会使用软件测试工具,通过软件测试工具来生成测试用例。目前测试工具的研究已经取得了显著的进展,尤其是通过基于搜索、约束和随机等技术生成单元测试的方法,但仍然存在一些挑战,如生成的测试覆盖率和可读性无法完全满足人们的需求,同时全面覆盖仍然是一个难以实现的目标。在面对这些局限性时,研究人员一直在积极探索创新技术,以提高软件测试任务的效率。在这方面,大型语言模型(Large Language Models,LLM)是目前最有前途的方向之一。

1.2 LLM生成测试用例有效性验证方法

论文《An Empirical Study of Using Large Language Models for Unit Test Generation》为软件测试领域的进展提供了重要的实证研究。该研究以三种生成模型(StarCoder、Codex和GPT-3.5-Turbo)为对象,分析它们在单元测试生成任务中的性能。具体而言,研究采用了两个基准测试,分别是HumanEva和Evosuite SF110(Java版本),并通过对编译率、测试正确性以及覆盖率等方面进行评估,深入探讨了这些LLM在生成测试用例方面的有效性。

第一步

论文首先对焦点方法(focal method)进行检索和排除:

  • E1:仅检索非静态方法,且只在公共类中进行检索;

  • E2:排除以is开头、不带参数且返回布尔类型;

  • E3:排除set开头;

  • E4:以get开头且不带参数;

  • E5:覆盖java.lang.Object(toString(),hashCode()等);

三个标准:

  • I1:public类型的函数;

  • I2:有返回值;

  • I3:具有良好的“javadoc”。其中javadoc是指具有描述或者非空@return标签,并且所有方法的参数具有与@param标签相关联的描述。

第二步

设计相对应prompt和上下文结构,如下:

a1fc6cb0413385e23760f7a2b093c909.png

图一

第三步

对LLM生成的output进行启发式处理来自动修复output中代码的错误:

  • H1:它删除在以下任何模式之后找到的任何代码:"\n\n// {CUT_classname}", "\n```\n\n##",""

  • H2:保留反引号之间的内容,删除反引号前后的所有文本,"```code```";

  • H3:它将从生成的单元测试中删除原始提示;

  • H4:在单元测试中找到包声明,并将其重命名为CUT的包(CUT是被测类);

  • H5:如果缺少包声明,则添加该声明;

  • H6:用integer.parseInt(n)替换大整数常量;

  • H7:通过迭代删除行(从下到上)并添加1-2个大括号来修复不完整的代码;

第四步

对output进行分析,论文用Juint5和JaCoCo来运行测试程序来计算覆盖率和正确性指标。覆盖率分为分支覆盖率(Branch Coverage)和行覆盖率(Line Coverage)。

公式如下:

680eb326188180193958ba22e76bbcb7.png

公式一

4b92b022b9dcab106845b62845fb7e5f.png

公式二

1.4 LLM生成测试用例结果分析

1.编译率结果

如Table 1,我们能够发现,经过H1-H7自动修复后,编译率有明显的提升;在HumanEval数据集上表现最好的是StarCoder,高达70.0%,而其他只有不到一半是可编译的;在SF110数据集上,编译率都不高,最高的StarCoder仅有12.7%;启发式修复后,编译率平均提高了41%,Codex(2K)增幅最大,而启发式方法对StarCoder的作用不大,只提高了6.9%的编译率。7afa847b3b6e16ebc175d906756473e2.png

编译错误分析

在HumanEval数据集方面,常出现的编译错误原因是编译器找不到符号、从数据格式转换不兼容等原因;而在SF110数据集方面,常出现的编译错误是编译器找不到符号,或者class是抽象类而无法实例化造成的。

2.测试通过分析

如Table 2,在进行自动修复后,执行了能够通过编译步骤的每个测试。测试正确性方面有两个指标,Correct指的是所有测试方法均能通过;Somewhat Correct指的是至少有通过一个测试方法的测试。

在HumanEval数据集方面,StarCoder表现最好,测试通过率为81.3%,但是ChatGPT的Somewhat Correct的指标高达92.3%。同时增加Codex的Tokens数不能产生更高的正确性。

在SF110数据集方面:表现最好的同样是StarCoder,有51.9%的测试通过率。在Somewhat Correct指标上,Codex(2K)性能最好。与HumanEval相比,所有LLM的两个测试通过率都比较低。

05d2305f5beee7d0ae86aaf77ed220cf.png表二

3.测试覆盖率

如Table 3,分别测量了两个数据集上的试的行覆盖率和分支覆盖率,同时比较了Evosuite生成的测试覆盖率进行了比较,并在HumanEval数据集上,添加了手动创建的测试覆盖率。

在HumanEval数据集方面,LLM的行覆盖率在67%~87.7%,分支覆盖率在69.3~92.8%,但是低于手动测试和Evosuit生成的覆盖率。在SF110数据集方面,比HumanEval的覆盖率要差很多,均不到2%,Evosuite覆盖率分别是27.5%和20.2%。

42042df468b80dd229eb96993b850c62.png

表三
LLM生成测试用例结果分析

本节对比了三种代码生成LLM在单元测试生成方面的能力,根据编译率、测试正确性和覆盖率方面进行了比较,发现尽管LLM无法产生正确的测试,但能够生成一些对输入/输出有用的测试用例。

在HumanEval数据集方面,LLM的能力与当前先进的测试生成工具有比较接近的性能。基于Evosuite的开源项目上,它们的性能很差。虽然启发式方法能够提高编译率,但生成的一些测试还是不能编译。

二、LLM生成测试用例的方法

2.1 概述

本节以论文《Reinforcement Learning from Automatic Feedback for High-Quality Unit Test Generation》中所采用方法进行讲解,主要是微调方面。

文章提出的方法是静态质量指标强化学习(RLSQM),通过使用静态质量指标分析对程序进行评分,将其灌到LLM中,接着训练奖励模型(RM)根据静态质量指标对测试用例进行评分,并使用评分为近端策略优化(PPO)算法提供反馈。来增强LLM能够生成更高质量的测试用例。

2.2 静态质量指标

在前一章节,对生成测试用例的有效性,我们是在编译率、测试通过率以及覆盖率三个方面进行的讲解,这都属于静态质量指标。本节所采用的静态质量指标如下:

e5f375353b70c5c72e86acc0f852a8fe.png

图2-1

其中:

  1. 语法是否正确:根据代码语言的规范,生成的测试用例在语法上应有效;

  2. 是否有断言;

  3. 是否有焦点方法的调用;

  4. 输出的测试用例是否有多余字符;

  5. 是否生成注释/评论;

  6. 是否重复断言;

  7. 是否包含try/catch块、控制语句(if、switch、while)或异常处理;

  8. 是否包含空测试(例如public void TestMethod(){    })。

2.3 实验设计

数据收集是从GitHub上的至少5星的开源C#项目中选取焦点方法来构建的数据集,只考虑了MSTest框架编写的TestMethods为特色的项目。

如下图是对数据prompt的设计。上下文将被截断来适应模型的上下文长度。

8a8aa59deec0e768c41209a412d05918.png图2-2

LLM的常用的微调方法是监督微调(Supervised Fine-Tuning),使用监督微调能够使得模型能够更好地适应特定任务,从而提高任务性能。

关于静态质量指标的分析,论文中,使用树状定位器解析器(tree-sitter)来分析单元测试属性,确保模型可以生成高质量的测试用例。下图是整个的训练流程。

d49005e6ddc7ff540cb49d54b1f32803.png

图2-3

(1)从基础LLM和一组输入提示和高质量单元测试开始,通过标准监督微调(SFT)更新模型权重;

(2)我们使用 SFT 模型生成完成,然后训练奖励模型(RM)来预测质量分数,这些分数由我们的质量分析器自动生成;

(3)我们使用SFT模型权重初始化策略模型(PM),然后对其进行微调以最大化RM预测的奖励。

2.4 实验结果

表中使用个人奖励对RL进行微调后测试集的质量指标。“√”表示应该鼓励的积极特征;“×”表示应该劝阻的负面特征。

与基础模型相比,RL优化模型,使模型提高了21%,并生成了将近100%的语法正确的代码。并且7个指标中的四个指标上优于GPT-4。

强化学习能够将所有质量指标提高到SFT模型之上,表明RLSQM微调能够增强单个质量指标。

933d0aceed28510347a7849ab0250c2d.png

图2-4

三、总结与展望

本文主要介绍了LLM生成测试用例的有效性验证以及微调方法。尽管LLM在单元测试领域还处于起步阶段,但已经表现出了巨大的潜力。

当前评价测试用例的好坏主要是编译率、测试通过率、覆盖率等静态质量指标。评价的测试集有两种,一组是HumanEval,另一组是开源库。前者的指标明显高于后者。当前SFT是主流的微调方法,但强化学习也开始融入微调的过程中,能够有效提高模型的性能。

对于测试用例,每一种语言都有各自的测试框架,目前主要是以单语言来进行训练,并未考虑多语言的情况。

LLM还有许多未知领域等待我们去探索,相信在可见的未来,LLM能够有效提高项目研发的效率和质量,成为每个编程人员必备的工具。

四、参考文献

[1] Software Testing with Large Language Model: Survey, Landscape, and Vision: https://arxiv.org/abs/2307.07221

[2] An Empirical Study of Using Large Language Models for Unit Test Generation: https://arxiv.org/abs/2305.00418

[3] Reinforcement Learning from Automatic Feedback for High-Quality Unit Test Generation: https://arxiv.org/abs/2310.02368

de3e6445c8a3258c50c4272e4db8cd2a.png

基于模型的自动化测试用例设计平台(AutoTCG) 基于模型的测试用例设计工具(AutoTCG),采用基于图形化模型的测试引擎,适用于业务关键、任务关键或安全关键的功能测试。测试人员可以选择因果图模型、组合配对模型或业务流程模型完成测试设计,并自动生成用例;AutoTCG可与Selenium、ETest等主流测试工具集成,实现自动化测试执行,能有效提高测试效率与质量,加快测试进度,降低交付成本,更好保证产品质量。 阅读详情

相关推荐

通过Langchain实现大模型完成测试用例生成的代码(可集成到各种测试平台)

代码中使用的是讯飞spark3.0版本,其中版本在的控制已经封装到了langchain对应的讯飞的iflytek的类中,可以在调用的时候显示控制,默认是spark2.0版本。

Criss@陈磊 2362

利用大模型技术进行测试用例推荐如何实现

此外,购买商用专业训练数据之前,建议你仔细评估数据的质量、准确性和适用性,以确保数据能够有效地用于大模型训练,提高测试用例推荐的准确性和效率。你可以购买其测试计划和套件数据,这些数据包含了丰富的测试用例信息,如测试用例描述、步骤、预期结果等,可以用于训练大模型以推荐新的测试用例。同时,还需要结合具体的测试目标和需求,选择适合的数据类型和方法,以确保生成的测试用例能够覆盖到关键的功能和场景,提高测试的质量和效率。例如,可以定期收集新的测试用例数据并重新训练模型,以提高推荐的质量和准确性。

pfm685757的专栏 3140

腾讯大佬总结的170道 python面试题

简述基于 TCP 协议的套接字通信流程。19.面向对象中`__new__` 和 `__init__` 区别。86. 解释 Python 中的`//`,`%`和`**`运算符。45.isinstance 的作用以及与 type()的区别。3. 简述下 Python 中的字符串、列表、元组和字典。143. 如何高效的找到 redis 中的某个 KEY。140. 如何保证 redis 中的数据都是热点数据。147. redis 中的 watch 的命令的作用。108. 简述 进程、线程、协程的区别以及应用场景。

AudiA6LV6的博客 488

【AltWalker】模型驱动:轻松实现自动化测试用例的生成和组织执行

AltWalker是一个基于图模型的自动化测试框架,用于编写、执行和管理基于模型的测试。它主要用于测试复杂系统,如Web应用程序、移动应用程序等。它支持运行用.NET/C#和Python3编写测试模型用例。通过以上步骤,我们了解了如何使用AltWalker进行模型驱动的自动化测试。AltWalker是一个强大的测试框架,可以帮助我们更高效地编写、执行和管理测试用例。当然,基于模型的测试也有一些局限性,如模型的准确性和完整性对测试结果影响较大,模型构建和维护可能需要额外的成本等。

2301_78834737的博客 905

STM32F103串口接收中断:USART_IT_IDLE和USART_IT_RXNE区别

2:如果是大于1个byte的数据,在不用DMA的情况下,同时使能USART_IT_RXNE,USART_IT_IDLE中断,每收到一个字节在中断中把数据存到缓存中,待收到USART_IT_IDLE中断时,收完整帧数据,然后再解析处理数据。比如:如上图在初始化时,同时开启了两个中断,如果传送8个字节的数据,就会产生8个USART_IT_RXNE,和1个USART_IT_IDLE中断。(如果接收到数据,在1个byte的时间内,没有收到新数据,就认为是数据传送完成,产生空闲USART_IT_IDLE中断)

weixin_66299220的博客 2399

Zephyr RTOS详解

Zephyr 是一个开源的实时操作系统(RTOS),专为资源受限的嵌入式设备设计,支持多种架构(如 ARM Cortex-M、RISC-V、x86 等)。

weixin_43484713的博客 4103

浅谈如何进行LLM应用的测试

传统软件应用的输出会遵循程序员编写的代码逻辑,对确定的输入能生成与之对应的确定输出。然而这个规律在基于LLM的应用中却不那么成立,当我们输入提示给到LLM应用时,它结合上下文提示语及概率参数设置,最终输出就并不是那么可预知的。而且从技术上看LLM应用的正常输出也未必就是准确或者合适的。对于这种非结构化、更多关注用户主观感受的产品,它们的质量如何度量呢?

stingfire的博客 1401

基于51单片机的简易计算器设计(原理图+仿真+源代码+参考论文)

本设计以51单片机为核心,矩阵键盘输入数字,通过1602显示屏显示计算结果,能够实现整数的加、减、乘、除四则运算,具备清除功能。

u012759563的博客 7697

AI大模型测试全攻略:可视化+脚本化,让智能布局告别“翻车现场“

本文分享了AI大模型在智能布局项目中的测试方法。针对AI"愚钝天才"的特点,提出"可视化+规则脚本化"双管齐下的测试策略:将JSON数据转换为直观的2D俯视图,编写硬规则实现自动化测试,大幅提升效率。测试平台化进一步实现全流程自动化,使AI从"物理正确"进化到"设计惊艳",为算法迭代提供可靠支撑。

m0_56255097的博客 1635

PyTorch实战:手把手教你用QAT量化感知训练拯救模型精度(附避坑指南)

本文详细介绍了如何使用PyTorch进行QAT量化感知训练,以提升模型在边缘设备上的推理精度。通过核心原理讲解、实战代码示例和避坑指南,帮助开发者掌握从环境配置、模型训练到边缘部署的全流程,有效解决传统量化方法导致的精度损失问题。

c7d8e的博客 328

基于Simulink进行微电网中DC-DC变换器的仿真建模

微电网:包括可再生能源发电设备、储能系统和负载,可以独立于大电网运行,也可以并网运行。重要性提高能源可靠性:通过本地化供电减少对外部电网的依赖。促进可再生能源利用:支持高效整合多种可再生能源。挑战多源管理:不同类型的能源产生方式各异,需设计灵活的电源管理系统。能量转换效率:需要高效的能量转换装置来确保能源的有效利用。首先明确要模拟的任务内容。设计一个能够在不同输入条件下为微电网提供稳定输出电压的DC-DC变换器。根据微电网的工作状态调整控制策略以维持最佳性能。

amy_mhd的博客 155

浅谈AI的发展对IT行业的影响

技术层:掌握AI工具链(LangChain、MLflow),理解模型局限性(如幻觉问题)。思维层:从“解决问题”转向“定义问题”,利用AI放大创造力。伦理层:建立AI系统的可解释性评估机制,规避算法偏见。AI不是替代IT行业,而是将其推向更高维度的竞争——从“代码实现”升级为“智能设计”。正如Linux之父Linus Torvalds所言:“AI不会取代程序员,但会用AI的程序员会取代不用AI的人。

eso1983的博客 3172

2026年瑞芯微数字IC设计笔试试卷带答案

本文主要考察数字集成电路设计相关知识,包括低功耗设计、时序分析、跨时钟域处理、总线协议等内容。试题分为单选题、多选题、代码设计题和简答题四部分。 单选题涉及门控时钟降低动态功耗、静态时序分析的限制、跨时钟域同步方案、时序违例修复方法、AHB总线信号、异步FIFO设计、半导体工艺电阻特性、二进制数转换、同步/异步复位比较以及分频电路设计等知识点。 多选题重点考查动态功耗优化技术、亚稳态特性、异步FIFO设计规范、Verilog可综合代码编写要求以及AXI总线协议特点等。 代码设计题要求实现一个同步FIFO和3

Open 215

从开发者视角浅谈Taotoken官方价折扣对个人项目的影响

从开发者视角浅谈Taotoken官方价折扣对个人项目的影响 对于个人开发者或小型独立工作室而言,在有限的预算内维持项目的持续运行与原型迭代,成本控制是绕不开的议题。大模型API的调用费用,尤其是高频次的开发、测试与生产调用,常常构成一笔不小的开销。本文将从一个实际使用者的角度,分享在Taotoken平台享受官方价折扣或活动价后,对个人项目成本预算产生的实际影响,以及如何利用平台的用量可观测功能来辅助控制支出。 1. 成本感知:从模糊到清晰 在接触聚合平台之前,个人开发者管理多个模型API的成本往往是分散且模

weixin_33419305的博客 382

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于模型的智能测试

在DevOps盛行的今天,大家越来越关注软件自动化测试。在我的理解里,自动化测试有两种。 由人工编写好各种测试用例,设计各种测试场景,然后通过软件、脚本去自动执行这样的测试。如常见的CI普遍采用这种测试方式。 由人工对软件模型进行描述,由机器自动根据软件模型,生成测试用例,然后自动执行测试。 第一种测试方式比较常见。我们主要讨论第二种测试方式。第二种测试方式,也是开源软件ZStack所采用的测试方式

任杰的博客 1811

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

FittenChat:程序员写代码的最好辅助利器,没有之一

FittenChat:程序员写代码的最好辅助利器,没有之一

乐于分享,共同成长 1875

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

浅谈用Promptfoo做评测,共同学习

promptfoo是批量测试提示词与RAG效果的利器,支持自动跑测试、大模型打分、新旧对比。国内使用需注意:装Node.js 20.x LTS、切换npm为淘宝镜像、避免缓存干扰。推荐用两列CSV(question+expected)做A/B测试,搭配llm-rubric评分,但别用于数学题或固定答案场景。关键坑点:expected不能错、禁止输出代码块、对比时规则必须一致。全程自动化,提升效率,但人工复核不可少。照着配置跑,轻松验证提示词改得好不好。

qq_30868475的博客 292

OpenCode桌面端AI编程助手实战:从安装配置到代码生成与重构

AI编程助手通过集成大语言模型能力,为开发者提供智能代码补全、解释和重构支持,其核心原理是将自然语言指令转化为可执行的代码建议。这项技术能显著提升开发效率,降低理解复杂代码逻辑的门槛,尤其适用于代码审查、快速原型构建和自动化测试生成等场景。OpenCode作为一款开源的桌面端工具,通过本地化部署解决了代码隐私和网络依赖问题,实现了与VSCode等编辑器的深度集成。它支持配置多模型后端,包括DeepSeek API和本地Ollama服务,让开发者能在保护敏感代码的同时,灵活选择云端或本地AI能力,完成从代码解

weixin_34277853的博客 429

开源鸿蒙技术大会2025 | 研究分论坛:探索前沿技术,推动生态繁荣

9月27日,开源鸿蒙技术大会2025研究分论坛在长沙举行,聚焦软件工程与开源生态的前沿技术。论坛汇聚国防科大、清华等多所高校专家,围绕模糊测试、UI测试、API适配等关键技术展开探讨,并展示了神经符号数据库、跨框架测试代码生成等创新成果。会议特别探讨了产学研合作模式,为开源鸿蒙生态发展提供了技术支撑和实践方向,有力推动了基础软件质量提升与产业协同创新。

科技大视野 — 科技大视野,行走科技发展前沿 860

技术文章系列整理(持续更新)

本博客有很多关于性能及测试开发的文章。我试着对你可能感兴趣的一些重要文章进行分类。

7DGroup,让技术更有价值! 1万+

2025 CCF中国软件大会(CCF ChinaSoft)智能化研发智能体技术论坛成功召开

因此,一个能够自动生成、自动优化 Prompt 的框架十分必要。为此,研究提出了“代码属性驱动的智能化软件研发”路径,通过系统性地将代码中的结构化语义属性(如数据类型、接口规约、程序不变式等)引入模型的推理与生成过程,为模型提供精确语义引导,从而桥接高层设计意图与底层实现。围绕研发智能体方向,本次论坛邀请到了业界知名的研究学者共聚一堂,为现场200多名观众全面系统介绍了当前研发智能体领域最新的技术研究与实践,进一步提高了智能开发从业者的研究热情与动机,相信会进一步助推该领域国内相关研究团队间的交流与协作。

华为云官方博客 1858

2025 CCF中国软件大会 “智能化研发智能体技术”论坛成功召开

为此,研究提出了“代码属性驱动的智能化软件研发”路径,通过系统性地将代码中的结构化语义属性(如数据类型、接口规约、程序不变式等)引入模型的推理与生成过程,为模型提供精确语义引导,从而桥接高层设计意图与底层实现。因此,一个能够自动生成、自动优化 Prompt 的框架十分必要。围绕研发智能体方向,本次论坛邀请到了业界知名的研究学者共聚一堂,为现场200多名观众全面系统介绍了当前研发智能体领域最新的技术研究与实践,进一步提高了智能开发从业者的研究热情与动机,相信会进一步助推该领域国内相关研究团队间的交流与协作。

2501_92881825的博客 814

AI幻觉的根源与应对:从RAG技术到工程实践

在人工智能领域,大语言模型基于概率预测生成内容时,常会产生看似合理但不符合事实的‘幻觉’现象。这源于模型训练数据的局限性和缺乏事实核查机制,导致其在知识边界模糊时过度泛化。从技术原理看,幻觉并非系统故障,而是生成式AI核心工作模式带来的固有挑战。其技术价值在于推动我们发展更可靠的AI系统,如在检索增强生成(RAG)架构中,通过实时检索外部知识库来锚定生成内容的事实基础。在AI编程和Agent开发等应用场景中,幻觉管理直接影响代码安全性与系统可靠性。本文聚焦AI幻觉的工程应对,探讨如何构建从输入优化到系统设计

weixin_33827731的博客 487

人工智能||打造垂直领域内容的问答机器人

在大模型问世之后,其中一个最核心的功能就是问答机器人。但是若直接将问题抛给 ChatGPT,仍然解决不了以下限制: 1、相关的关联数据需要联网。 2、相关的关联数据是 GPT 也不知道的私密数据。

伤心的辣条 409

提示词管不住 AI?把 TDD 验收交给 Hooks门控

正如上文所说的,强调先有测试,在通过测试驱动开发人员完成软件开发,即思想上让研发人员具备以终为始的一种软件设计思维,确保在研发开始的时候尽最大化努力按照可量化的标准正确的完成功能落地。所以这也是为什么笔者上文中的测试没有强调单元测试的原因,按照TDD研发人员在功能开发过程中基于自动化测试框架编写的单元测试基于业务要求得出的功能测试按照产品特定标准的软件验收测试。

禅与计算机程序设计的艺术 3861
上一篇: 图文多模态大模型综述
下一篇: SmoothQuant+:可以用于大语言模型的 4-bit 量化算法
Linux基金会AI&Data基金会
博客等级 码龄6年 100粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux基金会AI&Data基金会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值