TGI v2.0.4 版本参考适配代码

文件目录结构如下:
Tgi-MindIE
 |______cover
        |______models
               |________init__.py
        |______cli.py
        |______server.py
 |______tgi_npu
        |______init__.py
        |____cache_manager.py
        |____info.py
        |____mind_model.py
        |____token_mindie.py
        |____vlm_mind_models.py
 |______pyproject.toml
 |______install.sh
 |______README.md

各源文件的含义和作用如下表所示:

源文件

含义及作用

cover/models/__init__.py

替换原仓中server/text_generation_server/models/__init__.py文件,将推理模型引导至MindIE LLM

cover/cli.py

替换原仓中server/text_generation_server/cli.py文件,添加tgi_npu模块的日志打印过滤。

cover/server.py

替换原仓中server/text_generation_server/server.py文件,添加tgi_npu支持多模态模型入口功能。

tgi_npu/__init__.py

针对NPU硬件环境进行必要的初始化。

tgi_npu/cache_manager.py

KV Cache管理器,主要针对NPU进行KV Cache初始化。

tgi_npu/info.py

NPU信息。

tgi_npu/mind_model.py

定义了推理模型入口类MindModel以及对应的数据通信格式MindFlashCasualLMBatch,分别继承自原仓的FlashCasualLM以及FlashCasualLMBatch。在MindModel中,generate_token方法沿用了原版大部分代码,并结合MindIE LLM调用过程进行了修改。其中,Forward方法改为调用MindIE LLM提供的forward_tensor方法。warmup 结合NPU访存特点进行修改。

tgi_npu/token_mindie.py

后采样代码。

tgi_npu/vlm_mind_models.py

定义了多模态模型入口类VlmMindModel以及对应的数据通信格式。VlmMindFlashCasualLMBatch,分别继承自MindModel以及MindFlashCasualLMBatch。在VlmMindFlashCasualLMBatch中,batch_tokenized_inputs方法中使用了MindIE LLM模块提供的Tokenize方法,将输入编码为符合多模态模型输入要求的格式。

pyproject.toml

适配安装包配置文件。

样例代码: