Zhangzhe's Blog

The projection of my life.

0%

大模型量化/部署——在AX650上部署Qwen模型

关键问题列表(以 Qwen2.5-0.5B-prefill 为例)

  1. pulsar2 llm_build 模式和标准编译模式的区别?共用了什么部分?
    1. 标准编译模式有前端,llm_build 模式没有前端
    2. llm_build 量化不共用标准编译,weight 8 bit minmax / decoder layer 之间用 bf16 浮点 / 层内动态量化
  2. ax-llm-build / ax-llm 两个 repo 的关系?他们用来做什么?
    1. ax-llm-build 给上板准备除了模型之外的文件,例如 embed / 数据类型转换等
    2. ax-llm 输入编译后模型文件,输出是板上可运行的 chatbot
  3. 模型输出文件的含义?l%d.axmodel 表示层,qwen_post.axmodel 表示 hidden size -> vocab size 的 fc 吗?model.embed_tokens.weight.bfloat16.bin 是 token embedding 吗?
    1. token embedding / post.axmodel 都用 fc / 查表去做
  4. 为什么分层部署?动态量化发生在 decode layer 层之间吗?在 ppl 里用 cpu 动态量化 activation 吗?decoder layer 中有没有用到动态量化?
    1. teng 可以做动态量化,不需要用 cpu
  5. decode layer 用 flash attention 了吗?v2 / v3 ?
    1. 没有,用了标准 attention,softmax 单独计算
  6. 用 kv cache 了吗?如何用?DRAM 够用吗?
    1. 用了,DRAM 够用
  7. GQA 用了吗?如何用?repeat 再做 self-attention?
    1. 有实际节约效率
  8. 有没有用到 llm 专用的量化算法?
    1. 没有
  9. decode method 在 ppl 中用 cpu 实现吗?可以放到 npu 上吗?
    1. 用 cpu 实现,目前直接用 argmax 了
    2. 用 npu 实现的话可以用 top-k
  10. continue batching 用到了吗?(单 batch 似乎不用考虑这个问题,假如 ax650 作为云端芯片就需要考虑了)
    1. 没有
  11. paged attention 用到了吗?(似乎用内存分页管理就够了?)
    1. 没有
  12. 有哪部分是用浮点运行的?哪部分用定点运行的?
    1. 除了 conv 相关的都用浮点,例如 softmax
  13. 对于长上下文如何处理?qwen2 似乎禁用了 sliding_window,那么如何处理长上下文?计算效率如何?
    1. 最长测试过 1024
  14. ssm 状态空间模型支持吗?例如 mamba
    1. 没有
  15. 假如有一个 sparse attention 模型,会快吗?还是要补成 dense 再算?
    1. 没有专用加速算子,可能不会太快
  16. 可能考虑投机解码这种相对更高端的加速技术吗?例如 SpecInfer 这种
    1. 没有