# WordSearch **Repository Path**: jpc_chenjianping/mslite_demo ## Basic Information - **Project Name**: WordSearch - **Description**: 基于CoROM 模型生成文本向量化特征,然后基于特征实现文本语义搜索 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-03 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 中文向量化生成 #### 介绍 基于MindSpore Lite,集成CoROM base模型进行推理,生成中文文本对应的向量结果 (应用于关键字搜索集成请参看[word_search分支](https://gitee.com/jpc_chenjianping/mslite_demo/tree/word_search/)) #### 软件架构 ``` entry/src | ---- main/cpp | | | ---- ms_model.cc // MindSpore Lite的核心对接代码 | ---- common.h // hilog等通用处理代码 | | | ---- src | | | ---- embeddings.cc // embedding相关处理 | ---- tokenizer.cc // 分词器相关处理 | ---- file_utils.cc // 文件关相关操作 | ---- time_utils.cc // 时间相关操作 ---- resource/models | ---- corom_s256_e32w16.ms // CoROM base对应的ms模型 ---- embeddings_word_embeddings_weight.bin // embedding权重 ---- vocab.txt // 词表 ``` #### 模型说明 原始模型权重下载链接:https://modelscope.cn/models/iic/nlp_corom_sentence-embedding_chinese-base-ecom/files 工程里集成的是模型导出onnx并转换为ms格式的模型,模型的embedding保持为float32,权重压缩成了fp16。 corom_s256_e32w16.ms模型支持embedding为float32,权重采用float16进行推理: * s256:序列长度为256 * e32:embedding为float32 * w16: 权重为float16 corom_s256_e32w16_hete.ms模型把原图输出1最后的Gemm+tanh进行了裁剪,Gemm+tanh单独构建成了corom_cls_handle.ms。 这样做的是目地是为采用NPU+CPU异构的方式实现更高的推理精度:corom_s256_e32w16_hete.ms NPU推理,corom_cls_handle_w32.ms CPU推理 模型下载链接: * [corom_s256_e32w16](https://na3hd6dwrhi.feishu.cn/file/Y6dybY6T7oLg7Wx8sGecwRSXnze) * [corom_s256_e32w16_hete](https://na3hd6dwrhi.feishu.cn/file/RbvDbcaU8orr5rxjiYucuZHXn6c) #### 关键处理流程 ![关键数据流](docs/概要流程.png) 异构下的模型结构说明,下图中NPU图结构并不全,除CPU部分外剩余走的全是NPU ![异构图结构](docs/异构时图结构.png) #### 问题咨询 可以发送邮件给 jpc.chen@huawei.com