Yet Another 何榜文's BlogKokoro 模型结构分析&部署 返回首页

Kokoro 模型结构分析&部署

发表于2025-02-27|更新于2025-03-03
|浏览量:

出发点

kokoro 是一个 82M 的 TTS 模型,在 TTSArena 上排名第二。基于之前在 MiniCPM-O-2_6 模型结构介绍 上的基础,我们分析一下 kokoro 模型结构,尝试完成 Feature Request: Add support for Kokoro TTS | llama.cpp 这个 issue。

注意到,sherpa-onnx for Kokoro 已经提供了 ONNX 实现,我们可以基于这个模型文件对模型结构进行观察。

文章作者: 何榜文
文章链接: http://hebangwen.github.io/2025/02/27/kokoro/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Yet Another 何榜文's Blog!
上一篇
Self-Attention 算法简介
MHA MQA GQA 对比MHA Multi-Head Attention,MQA Multi-Query Attention,GQA Group-Query Attention。在 transformers 中,主要体现在 config.json 里的 num_key_value_heads 设置上。 QKV shape 如下: Query: $[B, L, D_{\text{model}}]$ -> $[B, L, N_\text{heads}, D_\text{head}]$ -> $[B, N_\text{heads}, L, D_\text{heads}]$ Key & Value: $[B, L, D_\text{kv}]$ -> $[B, N_\text{kv}, L, D_\text{head}]$ 其中,$B$ 表示 batch size,$L$ 表示 sequence length,$D_\text{model}$ 为 hidden size,$N_\text{heads}$ 为 num heads,即多头注意力里的头数。 re...
下一篇
ONNX 静态图转换为动态图
模型转换ONNX 模型从动态图变为静态图是非常容易的,使用 onnxsim --overwrite-input-shape input_name:dim0,dim1,dim2 model.onnx 即可,onnxsim 内部会将动态维度转为静态维度,同时执行图优化。 但是如果只有静态图,想要变回动态图,则比较困难。一般来说,Batch 维度是最容易改变的,修改 Batch 维度可以一次推理 N 个输入,提高吞吐量。 使用 onnx2torch 可以解决这个问题。首先将 ONNX 模型转为 pytorch 模型,然后重新使用 torch.onnx.export 导出一个有动态维度的模型即可。代码如下: 1234567891011121314151617181920import onnximport torchfrom onnx2torch import convert# onnx -> torchonnx_model_path = "/some/path/mobile_net_v2.onnx"torch_model_1 = convert(onnx_mod...
avatar
何榜文
文章
38
标签
49
分类
1
Follow Me
公告
One week is 2% of a year
目录
  1. 1. 出发点
最新文章
Chunkwise 并行算法 —— 线性注意力2026-03-06
Gated Delta Net2026-03-05
search-api-summary2026-03-04
在 RKNN2 中将 ViT 的卷积层转换为矩阵乘法2025-07-03
bfloat16 精度损失(II)2025-06-30
© 2025 - 2026 By 何榜文框架 Hexo 7.3.0|主题 Butterfly 5.5.4