<

完善测评方法 保障患者安全

——浅析人工智能医疗器械软件可靠性测评方法

2021-11-04   04●大视野   中国医药报  

随着计算机技术在医疗领域的广泛应用,软件在医疗服务中的地位越来越重要,对公众生命、健康、财产、信息安全的影响也越来越大。同时,人工智能技术与医疗器械软件的结合,使产品的有效性与安全性评估日趋复杂。

可靠性是衡量人工智能医疗器械软件质量的一个重要维度。一方面,目前的软件功能及其内部架构日趋复杂,计算框架、组件、数据变化较快,保障产品可靠性的难度越来越大。根据国外公布的数据,每年都会发生由于软件问题导致的医疗器械召回事件,影响临床对产品的接受度,同时也为监管和质量评价敲响警钟。另一方面,临床应用场景对软件运行可靠性的要求越来越高,随着软件智能化、自主化程度的提升,软件可靠性对患者和操作者的安全及权益的影响越来越大。可靠性测评已经成为人工智能医疗器械软件质量评价的重要环节之一。

□ 王晨希 李佳戈 李静莉

软件可靠性概念

根据中国食品药品检定研究院2020年发布的行业标准草案《人工智能医疗器械质量要求和评价 第1部分:术语(征求意见稿)》中的定义,可靠性是指在规定的条件下和规定的时间内,系统或部件执行所要求功能的能力。人工智能医疗器械软件的可靠性关注产品在规定的条件下和规定的时间区间完成指定临床功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,统称为软件运行时的外部输入条件;规定的时间是指软件的实际运行时间区间;指定临床功能是指为用户提供指定的医疗服务。

人工智能医疗器械软件功能的可靠性包含成熟性、可用性、容错性、可恢复性等方面。成熟性是指软件产品在满足要求的软/硬件环境或其他特殊条件下(如一定负载压力下)使用时,为用户提供相应服务的能力,如软件的故障密度、缺陷严重程度、完整性级别等。可用性是指软件在使用时能够进行操作和访问的程度,它由成熟性、容错性和可恢复性共同决定。容错性是指软件在由于非法数据、非法操作、误操作等原因导致无法正常运行和参数传递错误等情况下,为用户提供相应临床功能服务的能力。可恢复性是指软件在失效情况下,采取措施重建为用户提供相应临床服务和恢复直接受影响医疗器械数据的能力。

人工智能医疗器械算法的可靠性强调算法在规定条件下的可重复性,即对同一输入的响应和输出保持不变。根据相关文献,聚类分析、深度学习等算法分支都报道过可重复性方面的问题,因此在测试阶段需要引起重视。

可靠性的技术实现

人工智能医疗器械软件可靠性建立在以下四方面活动和有关技术基础上。

软件可靠性分析

进行软件可靠性的需求分析、指标分配、故障树分析、故障模式和影响分析、软件开发过程中有关软件可靠性的特性分析等。

软件可靠性设计和实现

进行防错设计、容错设计、检错设计、纠错设计、故障恢复设计等。

软件可靠性测量、测试和评估

在软件生存周期各阶段进行有关软件可靠性的设计、制造和管理方面的属性测量,进行软件可靠性测试、软件可靠性预计、软件可靠性估计、软件可靠性验证等。

软件可靠性管理

确定影响软件可靠性的因素,制定必要的设计和实现准则,确定软件开发各阶段影响可靠性的相关过程和对产品的要求,对有关测试数据和分析结果进行控制并改进开发过程,通过考虑安全性等技术风险进行风险管理,对第三方软件进行可靠性管理等。

上述活动还包括对人工智能算法模型的可靠性评价。制造商需要根据临床应用场景,在研发和产品验证阶段评估人工智能算法正确执行临床功能的运行时间和运行条件,积累先验数据。

可靠性的测试路径

人工智能医疗器械软件的可靠性验证是为验证在给定的统计置信度下,软件的可靠性水平是否满足临床用户的要求而进行的测试。可靠性验证方法一般在软件验收阶段进行,在软件需求方的参与下实施。其主要过程是根据实际临床使用场景测试故障情况,利用供需双方都认可的可靠性验收模型进行可靠性定量评价,以判断该软件是否达到其需要的可靠度。

人工智能软件可靠性测试活动包括:构造运行剖面、选取测试用例、测试环境准备、可靠性测试运行、数据收集、数据分析和失效纠正等步骤。

构造运行剖面

软件的运行剖面一般是指对软件使用条件的定义,把软件的输入按时间的分布或按它们在可能输入范围内出现概率的分布来定义。由于人工智能算法具有特殊性,软件的输入样本需要考虑数据格式、内容、对算力的消耗及其临床典型性,兼顾阴性样本、阳性样本和流行病学统计。

粗略地说,运行剖面是用来描述软件实际使用情况的。运行剖面是否能代表、刻画软件的实际使用取决于可靠性工程人员对软件的系统模式、功能、任务需求及相应输入激励的分析,取决于他们对用户使用这些系统模式、功能、任务概率的了解。运行剖面构造的质量将对测试、分析结果是否可信产生最直接的影响。

选取测试用例

软件可靠性测试采用的是按照运行剖面对软件进行可靠性测试的方法。因此,可靠性测试所用的测试用例是根据运行剖面随机选取得到的,宜依托标准化测试集进行抽样。

测试环境准备

为了得到尽可能真实的可靠性测试结果,可靠性测试应尽量在真实的临床环境下进行,但是在许多情况下,在真实环境下进行软件的可靠性测试存在一定困难,因此需要开发软件可靠性仿真测试环境。

可靠性测试运行

可靠性测试运行即在真实的测试环境中或可靠性仿真测试环境中,用按照运行剖面生成的测试用例对软件进行测试。

数据收集

收集的数据包括软件的输入数据、输出结果,以便进行失效分析和进行回归测试;软件运行时间数据可以是中央处理器(CPU)执行时间、日历时间、时钟时间等;可靠性失效数据包括每次失效发生的时长或一段时间内发生的失效数,失效数据既可以通过实时分析得到,也可以通过事后分析得到。收集数据的质量对于最终的可靠性分析结果有着很大的影响,应尽可能采用自动化手段进行数据收集,以提高效率、准确性和完整性。

数据分析

数据分析主要包括失效分析和可靠性分析。失效分析是根据运行结果判断软件是否失效,以及失效的后果、原因等;可靠性分析主要是指根据失效数据估计软件的可靠性水平,预计可能达到的水平,评价产品是否已经达到要求的可靠性水平。

失效纠正

如果软件的运行结果与需求不一致,则称软件发生失效。通过失效分析,找到并纠正引起失效的程序缺陷,从而实现软件可靠性的增长。软件可靠性增长测试是为了满足用户对软件的可靠性要求、提高软件可靠性水平而对软件进行的测试,是为了满足软件的可靠性指标要求,对软件进行测试、可靠性分析、修改、再测试、再分析、再修改的循环过程。

可靠性测试面临的挑战

开展人工智能医疗器械软件可靠性测试的关键是要建立测试模型,但目前尚未形成统一规范的测试模型。到目前为止,软件可靠性模型已有几十年的研究历史,国内外已发表软件可靠性模型近百种;但由于对软件可靠性模型的研究还处在起步阶段,软件可靠性模型的分类方法很多。笔者采用综合模型的假设、测试环境以及数理统计的分类方法,将已有模型大致分为随机过程模型和非随机过程模型。随机过程模型包括马尔可夫过程二项模型、非齐次泊松过程模型等分支。非随机过程模型包括运用贝叶斯估计的模型、基于输入域的模型和其他方法模型。对于具体的人工智能产品,软件的固有错误数、错误之间的关联性、错误发生的间隔时间、软件失效率等关键参数还在研究积累过程中,可靠性测试的理论模型目前不唯一,属于质量评价的薄弱环节。软件可靠性模型的不完善也使得软件可靠性模型并不能完全描述软件的故障行为。

由于人工智能算法具有复杂性和随机性,软件的故障具有离散性和偶发性,部分软件产品的测试缺乏直观的测试准则。此时对可靠性的评价可借助蜕变测试等手段,把输入、输出之间的关系作为依据,用于验证和捕捉算法的缺陷,作为对前述方法的补充。

人工智能医疗器械软件的可靠性是保障产品安全有效的关键要素之一,影响产品临床使用。未来,在人工智能医疗器械软件产品的质量研究过程中,可靠性测评规范的建立与实施将进一步完善。

(作者单位:中国食品药品检定研究院)

最新评论 发表评论