摘要
大语言模型(LLM)平台的软件开发,与传统企业软件有本质差异。传统软件工作量估算主要依赖功能点、用例点,假设"输入越多、功能越多,工作量越大"。但 LLM 平台的工作量,不仅取决于功能数量,还取决于算法复杂度、分布式训练难度、推理性能要求、数据标注规模、配置部署复杂度。单一的功能点方法会严重低估这类项目。
本文提出一个四分类工作量度量框架,把 LLM 平台开发工作拆为四类:规模敏感型代码开发、复杂度敏感型代码开发、配置部署型实施、数据文档型人工整理。前两类需要写代码,后两类不需要写代码。从估算驱动看,三类由输入规模驱动,一类由输出复杂度驱动。本文给出每类的估算公式、典型功能、风险点,并以一个通用 LLM 平台的功能模块为例,说明如何落地应用。
一、为什么传统功能点方法不够用
1.1 传统方法的假设
功能点分析、用例点估算,核心假设是:
软件工作量*≈* 功能数量*×*单位功能工作量
这套方法适合业务管理系统,比如 OA、CRM、ERP。因为这些系统的工作量,主要随页面、接口、报表、流程数量线性增长。
1.2 LLM 平台的现实
LLM 平台不是这样。比如:
- "支持多机多卡训练"只是一个需求,但背后涉及分布式通信、容错、性能调优,可能比 100 个普通页面还难。
- "支持断点续训"只是一个功能,但涉及 checkpoint 一致性、状态恢复、分布式协调。
- "数据回流"只是一个模块,但涉及流式通道、高吞吐、数据不落地。
- "数字人合成"只是一个场景,但涉及计算机视觉、图形学、实时渲染。
这些工作的工作量,不取决于输入有多少,而取决于输出有多难。
1.3 结论
LLM 平台需要一个新的度量框架,同时考虑:
- 输入规模
- 输出复杂度
- 代码开发
- 配置部署
- 数据标注
- 文档整理
二、四分类框架
2.1 分类维度
第一维度:是否写代码。
- 需要写代码:研发工作。
- 不需要写代码:实施、配置、数据、文档工作。
第二维度:工作量由什么驱动。
- 输入规模驱动:量越大越累。
- 输出复杂度驱动:越难越累。
2.2 四类工作
|--------|------------|-----------|----------|------------------|
| 类别 | 名称 | 是否写代码 | 估算驱动 | 估算基础 |
| 1 类 | 规模敏感型代码开发 | 是 | 输入规模 | 功能点、接口数、模型数 |
| 2 类 | 复杂度敏感型代码开发 | 是 | 输出复杂度 | 算法难度、性能指标、分布式复杂度 |
| 3 类 | 配置部署型实施 | 否 | 输入规模 | 配置项数、节点数、策略数 |
| 4 类 | 数据文档型人工整理 | 否 | 输入规模 | 数据量、标注条数、文档页数 |
2.3 第二层抽象
从估算驱动看:
基于输入规模估算:1 类、3 类、4 类
基于输出复杂度估算:2 类
这个抽象很关键。它说明:
- 大部分工作,仍然可以用"量 × 单位工作量"估算。
- 但有一类工作,必须用复杂度因子估算。
- 如果只算 1 类,会漏掉 2、3、4 类。
- 如果只算代码,会漏掉配置、数据、文档。
三、四类工作的估算方法
3.1 第 1 类:规模敏感型代码开发
定义:需要写代码,工作量主要随功能数量、接口数量、模型数量线性增长。
估算公式:
工作量 = 功能点数 × 单位功能点人天 × 规模调整因子
或:
工作量 = 接口数 × 单接口人天
-
页面数 × 单页面人天
-
模型接入数 × 单模型人天
-
策略数 × 单策略人天
规模变量:
- 功能点数量
- 接口数量
- 页面数量
- 模型接入数量
- 策略数量
- 指标数量
- 适配器数量
- 纳管节点数量
典型功能:
- 模型接入适配
- 统一服务协议
- 策略管理
- 指标管理
- 工具市场
- 统一适配器
- 纳管信息展示
- 计量服务
特点:
- 输入越多,工作量线性增长。
- 适合功能点、用例点。
- 可以用历史数据类比。
- 风险中等。
3.2 第 2 类:复杂度敏感型代码开发
定义:需要写代码,工作量主要取决于算法难度、性能要求、分布式复杂度、实时性要求,而不是功能数量。
估算公式:
工作量 = 基础工作量 × 复杂度因子 × 不确定性因子
或:
工作量 = 算法难度系数 × 实验次数 × 调优人天
复杂度因子:
- 算法复杂度
- 分布式复杂度
- 性能要求
- 实时性要求
- 集成复杂度
- 安全合规要求
- 技术成熟度
- 团队经验
典型功能:
- 量化微调
- 编码式微调
- 增量微调
- 偏好对齐训练
- 强化学习对齐
- 多机多卡训练
- 断点续训
- 训练任务自动重提
- 算力队列调度
- 推理加速
- 批量推理
- 多模型协同编排
- 流式数据回流
- 可观测系统
- 数字人合成
- 多模态交互
特点:
- 输入可能只是一个需求,但输出极难。
- 工作量不随输入数量线性增长。
- 需要专家判断、原型验证、类比估算。
- 风险高,容易低估。
- 需要预留实验和调优时间。
3.3 第 3 类:配置部署型实施
定义:不需要写代码,工作量主要随配置项数量、部署节点数量增长。
估算公式:
工作量 = 配置项数量 × 单位配置人天
- 部署节点数 × 单位部署人天
规模变量:
- 配置项数量
- 策略数量
- 词库数量
- 节点数量
- 套餐数量
- 大屏配置项数量
- 模型注册数量
典型功能:
- 审核策略配置
- 黑白名单词库配置
- 回流策略配置
- 训练参数配置
- 套餐配置
- 大屏配置
- 省端部署
- 集团纳管配置
- 模型注册配置
特点:
- 输入是配置项数量。
- 工作量随配置项数量增长。
- 看起来简单,但配置项多了也很耗时。
- 容易在估算中被忽略。
- 风险低,但工作量大。
3.4 第 4 类:数据文档型人工整理
定义:不需要写代码,工作量主要随数据量、标注条数、文档页数增长。
估算公式:
工作量 = 数据量 × 单位处理人天
-
标注条数 × 单位标注人天
-
文档页数 × 单位文档人天
规模变量:
- 训练数据量
- 标注条数
- 评测集条数
- 词库条数
- 知识文档数
- 模板数量
- 素材数量
- 文档页数
典型功能:
- 训练数据清洗
- 偏好数据标注
- 评测集标注
- 词库整理
- 知识库整理
- 提示词模板整理
- 素材整理
- 视频模板整理
- 操作指引编写
- 接口文档编写
- 评估指标定义
特点:
- 输入是数据量、文档量。
- 工作量随数据量线性增长。
- 质量要求越高,单位人天越大。
- 最容易在项目估算中被低估。
- 在 LLM 平台中,可能占总工作量 30%--50%。
四、四类工作对比
|--------|-------------|-------------|-------------|-------------|
| 维度 | 1 类 | 2 类 | 3 类 | 4 类 |
| 是否写代码 | 是 | 是 | 否 | 否 |
| 估算驱动 | 输入规模 | 输出复杂度 | 输入规模 | 输入规模 |
| 规模变量 | 功能点、接口、模型数 | 算法难度、性能指标 | 配置项、节点数 | 数据量、文档量 |
| 估算方法 | 功能点、用例点 | 复杂度因子、专家判断 | 配置项 × 人天 | 数据量 × 人天 |
| 风险 | 中 | 高 | 低 | 中 |
| 容易低估 | 否 | 是 | 是 | 是 |
| 典型代表 | 模型接入、策略管理 | 多机多卡、推理加速 | 策略配置、部署 | 数据标注、文档 |
五 、估算流程建议
5 .1 第一步:拆分功能
把平台拆到子功能级别,每个子功能能独立估算。
5 .2 第二步:打标签
给每个子功能打上 1/2/3/4 类标签。
- 1 类:写代码,规模敏感。
- 2 类:写代码,复杂度敏感。
- 3 类:不写代码,配置部署。
- 4 类:不写代码,数据文档。
5 .3 第三步:分别估算
- 1 类:功能点 × 单位人天。
- 2 类:复杂度因子 × 基础工作量。
- 3 类:配置项 × 单位人天。
- 4 类:数据量 × 单位人天。
5 .4 第四步:汇总
总工作量 = 1 类 + 2 类 + 3 类 + 4 类
5 .5 第五步:加风险储备
- 2 类风险最高,建议加 30%--50% 储备。
- 4 类容易低估,建议加 20%--30% 储备。
- 3 类配置项容易漏,建议加 10%--20% 储备。
- 1 类相对可控,建议加 10% 储备。
六 、常见误区
6 .1 只算代码
LLM 平台中,代码可能只占一半。配置、数据、文档占另一半。
6 .2 用功能点估算一切
复杂度敏感型功能,功能点会严重低估。
6 .3 忽略数据标注
训练数据、偏好数据、评测集,工作量巨大。
6 .4 忽略配置部署
策略配置、节点部署、套餐配置,看起来简单,量大也很耗时。
6 .5 忽略文档
操作指引、接口文档、评估指标定义,都是工作量。
七 、结论
LLM 开发类软件的工作量度量,不能只用功能点。本文提出四分类框架:
- 规模敏感型代码开发:输入规模驱动,功能点估算。
- 复杂度敏感型代码开发:输出复杂度驱动,复杂度因子估算。
- 配置部署型实施:输入规模驱动,配置项估算。
- 数据文档型人工整理:输入规模驱动,数据量估算。
从估算驱动看:
基于输入规模:1 类、3 类、4 类
基于输出复杂度:2 类
这个框架的价值在于:
- 区分了"量越大越累"和"越难越累"。
- 区分了代码和非代码工作。
- 避免只算代码、只算功能点。
- 可用于 LLM 平台的完整工作量估算。
一句话总结:
LLM 平台的工作量 = 规模敏感代码 + 复杂度敏感代码 + 配置部署 + 数据文档。前三类看输入规模,第二类看输出复杂度。只算功能点,一定低估。
附录:四类工作速查表
|--------|-----------|----------|----------|------------|
| 类别 | 是否写代码 | 估算驱动 | 估算单位 | 典型工作 |
| 1 类 | 是 | 输入规模 | 功能点、接口数 | 模型接入、策略管理 |
| 2 类 | 是 | 输出复杂度 | 复杂度因子 | 分布式训练、推理加速 |
| 3 类 | 否 | 输入规模 | 配置项、节点数 | 策略配置、部署 |
| 4 类 | 否 | 输入规模 | 数据量、文档页数 | 数据标注、文档编写 |