算法测试
测试目的
主要目的是为了确保算法的正确性,同时也可以对算法的性能进行评估。
-
确保正确性:通过测试,可以验证算法是否按照预期的方式运行,并产生正确的结果。这是验证算法实现是否正确的关键步骤,也是软件开发的基本要求。
-
评估性能:通过测试,可以评估算法的执行时间、内存使用情况等性能指标。这有助于了解算法在不同情况下的表现,以及在何种情况下可能需要进行优化。
-
发现和修复错误:测试过程中,如果发现算法的输出结果不正确,或者运行时间过长,那么就可以认为该算法存在错误。通过分析测试结果,可以找出并修复这些错误。
-
验证特性:测试还可以验证算法是否具有所需的特性。
-
验证边界条件:测试还可以用来验证算法在极端条件下的表现。例如,可以尝试使用非常大的输入数据,或者使用可能导致异常的输入数据(如空指针、无效数据等),来看算法如何处理这些情况。
-
比较和选择:通过对不同的算法进行测试,可以比较它们的性能和正确性,从而在需要时选择最适合的算法。
测试流程
算法任务和模型选择
- 算法任务包含对话、多模态对话、意图识别、文档生成、SQL生成等。
- 一个任务可以由一个模型或者多个模型完成。
数据集制作
- 业务数据集(产品和研发这边)
- 通用数据集 (开源数据集)
- 测试数据集 (测试构造自己私有数据集)
- 边界数据集(空输入、超长文本)
- 随机数据集 (随机生成或者摘录)
测试脚本编写
接口测试
参考接口文档
本地模型测试
参考每个模型使用说明,选型比较时用到
运行测试脚本
挂在后台任务运行
测试报告和接口
-
用脚本自动生成excel 报告,不同模型横向对比,不同数据集纵向对比。
-
报告包含:
- 模型在数据集上用例表现
- 模型推理速度
- 模型异常
- 模型推理并发 TOKEN/s