v2.0.0 — 重大重构
发布日期: 2026年3月9日
完整变更: v1.0.0 → v2.0.0
⚠️ 破坏性变更
KVCache API 重新设计
问题: 之前的 appendKV() 实现存在脆弱的层序依赖,如果层以不同顺序调用可能导致错误的缓存写入。
解决方案: 新的无状态设计,显式推进长度。
之前 (v1.x)
class="highlight">
1
2
3
// 第 0 层会更新 current_len,其他层需要补偿
// 如果层序改变会崩溃
kv_cache.appendKV(seq_id, layer_idx, k, v, num_tokens);
之后 (v2.0+)
class="highlight">1
2
3
4
5
6
// appendKV 无状态 - 所有层都写入 current_len
for (int i = 0; i < num_layers; i++) {
layers[i]->forward(hidden_states, kv_cache, seq_id, position, stream);
}
// 所有层完成后显式推进长度
kv_cache.advanceSeqLen(seq_id, num_tokens);
迁移: 任何直接使用 KVCacheManager 的代码都需要更新。参见下方的 迁移指南。
🟢 新增
CI/CD 改进
- GitHub Actions 持续集成工作流
- 自动
clang-format 检查 - Pull Request 格式验证
CMake 现代化
特性 之前 之后 版本 1.0.0 2.0.0 CUDA 架构 手动 自动检测(原生或回退) Include 全局 target_include_directories() Target 导出 无 tiny_llm::tiny_llm 别名 警告 基础 -Wall -Wextra (GCC/Clang) IDE 支持 手动 compile_commands.json 生成
新的使用方式:
class="highlight">