118630931025update hvigor
2d6a274d创建于 2025年5月14日历史提交
README.md

项目介绍

项目概述

  • 使用仓颉编程语言,接入mindspore-lite,完成对通义千问2(2.5系列应该也支持,一样的结构)的模型进行离线推理,目前测试的qwen2-0.5b-instruct.
  • 仅支持鸿蒙Next(API 15+)。
  • 推荐虚拟机内存>=16G, 储存>=32G。
  • 注:代码在DevEco Studio for Windows 5.0.9.300和DevEco Studio-Cangjie Plugin 5.0.9.300 完成编译。

使用方法

  1. 去Huggingface下载Qwen2系列的模型,例如QWen2-0.5B-Instruct下载地址国内镜像下载地址
  2. 将对应模型的config.jsontokenizer.json放到entry/src/main/resources/rawfile/目录。
  3. 转pytorch原版模型为mindspore-lite专用的.ms文件,建议使用昇腾系列的NPU开发板完成该工作。参考这个项目,链接
  4. qwen2_0.5b_chat.ms模型文件放到entry/src/main/resources/rawfile/目录
  5. 修改OpenHarmony SDK路径,默认是"${DEVECO_SDK_HOME}/default/openharmony/native/sysroot/usr/lib/aarch64-linux-ohos\""${DEVECO_SDK_HOME}/default/openharmony/native/sysroot/usr/lib/x86_64-linux-ohos\"
    • 如果你是Windows系统,则不需要修改。
    • 如果你是MacOS系统,请修改entry/src/main/cangjie/cjpm.toml文件里面对应的OpenHarmony SDK路径。
  6. 使用DevEco Studio运行该项目。

关联项目

  1. qwen-ascend-llm, 该项目完成对通义千问系列模型代码魔改,支持onnx,om(昇腾CANN专用)导出与推理。
  2. qwen-mindspore-lite-llm,该项目在项目1的基础上继续魔改,将输入输出转成mindspore-lite需要的NCHW格式,并且利用python对mindspore-lite完成推理验证。
  3. qwen_ms_llm,该项目使用仓颉对rust版的tokenizer导出后的c库进行绑定,并且对C语言版的mindspore-lite绑定后完成推理,成功将python的逻辑由仓颉进行编码实现,验证了仓颉做端侧推理的可行性。
  4. AIChat,该项目提供AI对话的皮肤,支持流式对话。通过将项目3的后端能力移植到项目4,最终得到本项目。

界面展示

  1. 采用模拟器,CPU环境离线运行qwen2-0.5b-instruct模型

待完善的功能

  • 模拟器运行
  • 真机调试(还有点小bug,暂时不支持真机)
  • NPU推理(模拟器不支持NPU,所以还没测试这个)
  • fp16支持(模拟器不支持FP16,所以还没测试这个)
  • int8/int4量化