文件最后提交记录最后更新时间
!7201 [魔乐社区] 提升README用户体验 Merge pull request !7201 from 陈楚未/readme_fix 1 年前
README.md

language:

  • en pipeline_tag: text-generation tags:
  • pretrained license: other hardwares:
  • NPU frameworks:
  • PyTorch library_name: openmind

InternVL2-8B

InternVL2-8B 是一种多模态大模型,具有强大的图像和文本处理能力,通过开源组件缩小与商业多模态模型的差距——GPT-4V的开源替代方案。在聊天机器人中,InternVL可以通过解析用户的文字输入,结合图像信息,生成更加生动、准确的回复。 此外,InternVL还可以根据用户的图像输入,提供相关的文本信息,实现更加智能化的交互。

准备模型

目前提供的MindIE镜像预置了 InternVL2-8B 模型推理脚本,无需使用本仓库自带的atb_models中的代码

加载镜像

前往昇腾社区/开发资源下载适配本模型的镜像包:1.0.0-800I-A2-py311-openeuler24.03-lts

完成之后,请使用docker images命令确认查找具体镜像名称与标签。

硬件要求

Atlas 800I A2 64GB 推理服务器

新建容器

自行修改端口等参数,启动样例

docker run -dit -u root \
--name ${容器名} \
-e ASCEND_RUNTIME_OPTIONS=NODRV \
--privileged=true \
-v ${所需映射目录}:${所需映射目录} \
-v /usr/local/Ascend/driver/:/usr/local/Ascend/driver/ \
-v /usr/local/Ascend/firmware/:/usr/local/Ascend/firmware/ \
-v /usr/local/sbin/:/usr/local/sbin \
-v /etc/ascend_install.info:/etc/ascend_install.info \
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
--shm-size=100g \
-p ${映射端口}:22 \
--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
${MindIE 1.0.0 镜像} \
/bin/bash

进入容器

docker exec -it ${容器名} bash

安装Python依赖

cd /usr/local/Ascend/atb-models
pip install -r requirements/models/requirements_internvl.txt

调试建议

若在运行过程中遇到未知报错或异常现象,建议开启日志打印开关以辅助排查问题。 在终端中执行以下命令设置环境变量:

export MINDIE_LOG_TO_STDOUT=1
export MINDIE_LOG_TO_FILE=1
export MINDIE_LOG_LEVEL=info

启用该环境变量后,系统日志将输出至终端(标准输出),并同步保存在/root/mindie目录下,方便后续定位和分析问题

纯模型推理

  • 修改/usr/local/Ascend/atb-models/examples/models/internvl/run_pa.sh脚本
export ASCEND_RT_VISIBLE_DEVICES=0
  • 运行启动脚本(更多环境变量说明可参考run_pa.sh同级目录下的README.md)
bash /usr/local/Ascend/atb-models/examples/models/internvl/run_pa.sh --run --trust_remote_code ${权重路径} ${图片或视频所在文件夹路径}

服务化推理

  • 打开配置文件
vim /usr/local/Ascend/mindie/latest/mindie-service/conf/config.json
  • 修改MindIE-Service配置文件config.json,在Atlas 800I A2 64GB环境下,推荐使用以下配置,请自行修改modelWeightPath为实际权重路径:
{
    "ServerConfig": {
        "port" : 1025,
        "managementPort" : 1026,
        "httpsEnabled": false,
    },
    "BackendConfig": {
        "npuDeviceIds": [
            [0]
        ],
        "ModelDeployConfig": {
            "maxSeqLen": 32768,
            "maxInputTokenLen": 32768,
            "ModelConfig": [
                {
                    "modelInstanceType": "Standard",
                    "modelName": "internvl",
                    "modelWeightPath": "/absolute/path/to/model/weights",
                    "worldSize": 1,
                    "npuMemSize": 24, #kvcache分配,可自行调整,单位是GB
                    "trustRemoteCode": true #默认为false,该模型需要设为true,信任本地代码,若使用该推荐配置,用户需自行承担风险
                }
            ]
        },
        "ScheduleConfig": {
            "maxPrefillTokens": 65536,
        }
    }
}
  • 部署服务化
cd /usr/local/Ascend/mindie/latest/mindie-service/bin
./mindieservice_daemon
  • 新建同一个Docker容器的终端会话,在任意路径下发送curl请求完成推理,以下分别以OpenAI接口与vLLM接口为例,请自行修改image_url的路径为实际图片路径:

    • OpenAI接口
    curl http://localhost:1025/v1/chat/completions -d '{
      "model": "internvl",
      "messages": [{
        "role": "user",
        "content": [
                    {
                        "type": "text",
                        "text": "Describe the contents of the image."
                    },
                    {"type": "image_url", "image_url": "/absolute/path/to/image"}                        
                ]
      }],
      "max_tokens": 512,
      "stream": false
    }'
    
    • vLLM接口
    curl http://localhost:1025/generate -d '{
        "prompt": [
            {"type": "text", "text": "Describe the contents of the image."},
            {
                "type": "image_url",
                "image_url": "/absolute/path/to/image"
            }
        ],
        "max_tokens": 512,
        "do_sample": false,
        "stream": false,
        "model": "internvl"
    }'
    

声明

  • 本代码仓提到的数据集和模型仅作为示例,这些数据集和模型仅供您用于非商业目的,如您使用这些数据集和模型来完成示例,请您特别注意应遵守对应数据集和模型的License,如您因使用数据集或模型而产生侵权纠纷,华为不承担任何责任。
  • 如您在使用本代码仓的过程中,发现任何问题(包括但不限于功能问题、合规问题),请在本代码仓提交issue,我们将及时审视并解答。