第78讲:模型选型策略——探索用Vibe、量产用Spec

专栏地址:


前言:为什么需要根据场景选择模型和范式?

为什么重要?

不同开发场景需要不同的AI模型和编程范式:

  • 原型验证阶段:需要快速生成、允许试错、宽松约束
  • 功能开发阶段:需要准确生成、适度约束、接口稳定
  • 量产固化阶段:需要严格生成、完全约束、符合规范

如果选错模型或范式:

  • Vibe用于量产:代码质量差、隐患多、无法通过审查
  • Spec用于原型:约束过严、迭代慢、浪费时间
  • 模型不匹配:生成质量差、理解偏差、修正成本高

模型选型的作用:根据开发场景选择合适的AI模型和编程范式,提高效率、保证质量。

新手常见困惑

困惑1:“不同AI模型有什么区别?如何选择?”

困惑2:“什么时候用Vibe?什么时候用Spec?”

困惑3:“模型和范式如何搭配使用?”

困惑4:“开发过程中如何切换模型和范式?”

本文结构

本文结构

入门阶段

进阶阶段

高级阶段

AI模型对比

范式选择原则

基础选型策略

场景化选型

模型范式搭配

切换时机判断

动态切换策略

选型效果评估

选型经验总结


第一部分:入门阶段——建立整体认知

1.1 AI模型对比

主流AI模型对比
模型上下文窗口推理能力代码质量适用场景
GPT-3.54K token中等中等简单任务、快速生成
GPT-48K token强高复杂任务、准确生成
GPT-4 Turbo128K token强高大型工程、长上下文
Claude 3200K token很强很高复杂推理、长上下文
DeepSeek64K token强高代码专用、性价比高
模型选择原则

简单

中等

复杂

短

长

模型选择

任务复杂度

GPT-3.5
快速生成

GPT-4
平衡质量与速度

Claude 3
高质量生成

上下文需求

上下文长度

GPT-4

GPT-4 Turbo / Claude 3

1.2 范式选择原则

Vibe vs Spec范式对比
维度Vibe范式Spec范式
目标快速验证量产交付
约束宽松严格
迭代多轮快速迭代一次性准确生成
代码质量功能优先质量优先
适用场景原型验证、问题定位量产开发、固件交付
范式选择决策树

否

是

否

是

是

否

开发任务

是否需要量产

是否需要快速验证

Vibe范式

Spec范式
(提高质量)

是否有完整Spec

Spec范式

先Vibe验证
再Spec固化

1.3 基础选型策略

策略一:按开发阶段选型
【按开发阶段选型】

阶段一:需求探索阶段
- 模型:GPT-3.5或GPT-4
- 范式:Vibe
- 目标:快速验证想法,找到可行方案
- 约束:宽松,允许试错

阶段二:功能开发阶段
- 模型:GPT-4
- 范式:Vibe + Spec混合
- 目标:实现功能,保证接口稳定
- 约束:中等,锁定接口

阶段三:量产固化阶段
- 模型:GPT-4或Claude 3
- 范式:Spec
- 目标:代码符合规范,可量产交付
- 约束:严格,完全符合Spec
策略二:按任务类型选型
【按任务类型选型】

任务类型一:新外设驱动开发
- 初次开发:Vibe范式,快速试错
- 验证通过:切换Spec范式,固化代码

任务类型二:BUG修复
- 问题定位:Vibe范式,快速生成调试代码
- 根治修复:Spec范式,保证修复质量

任务类型三:协议实现
- 协议理解:Vibe范式,快速验证协议理解
- 协议实现:Spec范式,严格按协议Spec实现

任务类型四:代码重构
- 重构方案:Vibe范式,探索重构方案
- 重构执行:Spec范式,保证重构质量

第二部分:进阶阶段——深入理解原理

2.1 场景化选型

场景一:原型验证
【场景:原型验证】

场景描述:
- 需要快速验证硬件功能
- 不确定最优方案
- 时间紧迫

选型策略:
- 模型:GPT-3.5(快速生成)或GPT-4(质量更好)
- 范式:Vibe
- Prompt:宽松约束,允许试错

Prompt示例:

【Vibe模式】
你是嵌入式原型开发工程师,当前需要快速验证硬件功能。

【宽松约束】

  • 允许修改外设配置参数
  • 允许添加临时调试代码
  • 允许多次迭代修改
  • 优先功能实现,代码美观次要

【目标】
快速验证[具体功能],找到可行方案。


适用任务:
- 新外设首次驱动
- 时序问题调试
- 硬件问题定位
- 快速原型搭建
场景二:功能开发
【场景:功能开发】

场景描述:
- 已完成原型验证
- 需要实现完整功能
- 接口需要稳定

选型策略:
- 模型:GPT-4
- 范式:Vibe + Spec混合
- Prompt:中等约束,锁定接口

Prompt示例:

【混合模式】
你是嵌入式工程师,当前处于功能开发阶段。

【中等约束】

  • 禁止修改已锁定的接口
  • 必须添加错误处理
  • 必须添加必要注释
  • 允许修改实现细节

【接口锁定】
以下接口已锁定,禁止修改:

  • [接口列表]

【目标】
在接口锁定的情况下,实现[具体功能]。


适用任务:
- 功能完善
- 接口稳定
- 错误处理添加
- 代码优化
场景三:量产固化
【场景:量产固化】

场景描述:
- 功能已稳定
- 需要符合量产规范
- 需要通过Code Review

选型策略:
- 模型:GPT-4或Claude 3(高质量生成)
- 范式:Spec
- Prompt:严格约束,完全符合Spec

Prompt示例:

【Spec模式】
你是嵌入式量产工程师,当前处于量产固化阶段。

【严格约束】

  • 必须符合MISRA-C 2012规范
  • 必须包含完整Doxygen注释
  • 必须包含完整错误处理
  • 必须通过静态检查
  • 禁止任何临时代码

【Spec契约】
[粘贴完整Spec契约]

【目标】
生成符合Spec契约的量产级代码。


适用任务:
- 量产代码生成
- 规范检查修复
- Code Review准备
- 固件交付

2.2 模型范式搭配

搭配策略一:Vibe + Spec顺序搭配
【Vibe + Spec顺序搭配】

适用场景:新功能开发

流程:
1. Vibe阶段:快速验证
   - 使用GPT-3.5或GPT-4
   - 宽松约束,快速生成
   - 多轮迭代,找到可行方案
   
2. Spec阶段:固化代码
   - 使用GPT-4或Claude 3
   - 严格约束,按Spec生成
   - 一次性准确生成

示例:开发USART驱动
1. Vibe阶段:
   - 快速生成USART初始化代码
   - 测试通信是否正常
   - 调整波特率、配置参数
   - 验证收发功能
   
2. Spec阶段:
   - 编写USART驱动Spec
   - 按Spec生成量产代码
   - 添加完整错误处理
   - 添加完整注释
搭配策略二:Vibe + Spec混合搭配
【Vibe + Spec混合搭配】

适用场景:功能迭代开发

策略:
- 接口层:Spec范式(接口稳定)
- 实现层:Vibe范式(灵活实现)

示例:开发协议层
1. 接口层(Spec):
   - 定义协议接口:protocol_init()、protocol_send()、protocol_recv()
   - 接口锁定,不修改
   
2. 实现层(Vibe):
   - 实现协议帧组装:灵活调整
   - 实现协议帧解析:灵活调整
   - 允许修改实现细节
   
3. 最终固化(Spec):
   - 将Vibe代码升级为Spec标准
   - 添加完整错误处理
   - 添加完整注释

2.3 切换时机判断

切换信号

是

否

开发过程

是否满足切换条件

切换范式

继续当前范式

Vibe→Spec

Spec→Vibe

功能稳定、测试通过

发现新问题、需要探索

Vibe→Spec切换条件
【Vibe→Spec切换条件】

切换信号:
1. 功能已稳定
   - 所有功能测试通过
   - 无明显BUG
   - 性能满足要求

2. 需要量产
   - 有量产需求
   - 有交付期限
   - 有规范要求

3. 有时间优化
   - 不急于交付
   - 有时间提升代码质量
   - 有时间添加注释和错误处理

4. 团队要求
   - 团队要求符合规范
   - Code Review要求
   - 静态检查要求

切换动作:
1. 编写Spec契约
2. 使用Spec范式重新生成
3. 验证符合Spec
4. 集成到工程
Spec→Vibe切换条件
【Spec→Vibe切换条件】

切换信号:
1. 发现新问题
   - Spec实现有问题
   - 需要探索新方案
   - Spec定义需要调整

2. 需求变化
   - 需求发生重大变化
   - Spec需要重新定义
   - 接口需要调整

3. 时间紧迫
   - 交付期限临近
   - 无时间严格按Spec
   - 需要快速实现

切换动作:
1. 放宽约束
2. 使用Vibe范式快速调整
3. 验证功能
4. 根据情况决定是否重新Spec

第三部分:高级阶段——掌握复杂应用

3.1 动态切换策略

自动切换机制
【自动切换机制】

切换触发条件:
1. 功能测试结果
   - 测试通过率 > 90% → 建议切换Spec
   - 测试通过率 < 50% → 保持Vibe

2. 代码质量检查
   - MISRA-C违规 < 5条 → 建议切换Spec
   - MISRA-C违规 > 20条 → 保持Vibe

3. 开发时间
   - 距交付 > 2周 → 建议Spec
   - 距交付 < 3天 → 保持Vibe

切换建议Prompt:

【切换建议】

当前状态:

  • 范式:Vibe
  • 测试通过率:85%
  • MISRA-C违规:8条
  • 距交付时间:1周

建议:建议切换到Spec范式

原因:

  • 测试通过率较高,功能基本稳定
  • MISRA-C违规较少,容易修复
  • 距交付时间充足,有时间优化

是否切换?

3.2 选型效果评估

评估指标
【选型效果评估】

一、效率指标
- 生成时间:从Prompt到生成完成的时间
- 迭代次数:达到目标需要的迭代次数
- 修正次数:需要修正的次数

二、质量指标
- 编译通过率:一次编译通过的比例
- 测试通过率:功能测试通过的比例
- 规范符合率:符合编码规范的比例

三、成本指标
- API调用次数:调用AI API的次数
- Token消耗:消耗的Token数量
- 人力投入:人工介入的时间

四、综合评估
选型效果 = (质量指标 × 权重1) / (成本指标 × 权重2)

3.3 选型经验总结

经验总结
【选型经验总结】

一、模型选择经验
1. 简单任务:GPT-3.5足够,速度快、成本低
2. 复杂任务:GPT-4或Claude 3,质量高、理解准
3. 长上下文:GPT-4 Turbo或Claude 3,上下文长

二、范式选择经验
1. 原型阶段:必须用Vibe,快速验证
2. 开发阶段:Vibe+Spec混合,平衡效率和质量
3. 量产阶段:必须用Spec,保证质量

三、切换经验
1. 不要过早切换Spec:功能未稳定时切换会浪费时间
2. 不要过晚切换Spec:距交付太近会来不及优化
3. 切换时机:功能稳定、有时间优化、有量产需求

四、搭配经验
1. Vibe→Spec:最常用搭配,先验证后固化
2. Vibe+Spec混合:功能迭代开发时使用
3. Spec→Vibe:特殊情况,如发现新问题

五、避免错误
1. 不要用Vibe做量产:代码质量不够
2. 不要用Spec做原型:约束过严、浪费时间
3. 不要频繁切换:每次切换有成本

总结

入门要点

  1. AI模型对比:GPT-3.5、GPT-4、Claude 3各有特点,根据需求选择
  2. 范式选择原则:Vibe快速验证、Spec量产交付
  3. 基础策略:按开发阶段选型、按任务类型选型

进阶要点

  1. 场景化选型:原型验证、功能开发、量产固化各有策略
  2. 模型范式搭配:Vibe+Spec顺序搭配、Vibe+Spec混合搭配
  3. 切换时机:Vibe→Spec切换条件、Spec→Vibe切换条件

高级要点

  1. 动态切换:自动切换机制、切换建议Prompt
  2. 效果评估:效率指标、质量指标、成本指标
  3. 经验总结:模型选择、范式选择、切换时机、搭配策略

记住这些原则

  • 匹配场景:根据开发场景选择模型和范式
  • 灵活切换:开发过程中根据情况灵活切换
  • 评估效果:选型后评估效果,优化选型策略
  • 总结经验:积累选型经验,形成最佳实践

下一讲预告:第79讲将深入讲解"输出净化:剔除AI废话,只保留纯净C代码",学习如何从AI输出中提取纯净的C代码,剔除多余的解释和废话。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐