当前位置:   article > 正文

glm-4v-9b_pytorch多模态OCR大模型_glm4v

glm4v

GLM-4V

GLM-4V-9B 具备 1120 * 1120 高分辨率下的中英双语多轮对话能力,在中英文综合能力、感知推理、文字识别、图表理解等多方面多模态评测中,GLM-4V-9B 表现出超越 GPT-4-turbo-2024-04-09、Gemini 1.0 Pro、Qwen-VL-Max 和 Claude 3 Opus 的卓越性能。

论文

模型结构

GLM-4-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源版本。

算法原理

在强化文本能力的同时,我们首次推出了基于GLM基座的开源多模态模型GLM-4V-9B。这一模型采用了与CogVLM2相似的架构设计,能够处理高达1120 x 1120分辨率的输入,并通过降采样技术有效减少了token的开销。为了减小部署与计算开销,GLM-4V-9B没有引入额外的视觉专家模块,采用了直接混合文本和图片数据的方式进行训练,在保持文本性能的同时提升多模态能力。

环境配置

Docker(方法一)

光源拉取docker镜像的地址与使用步骤

  1. docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-ubuntu22.04-dtk23.10.1-py310
  2. docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=64G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name glm-4v <your imageID> bash
  3. cd /path/your_code_data/
  4. pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

Dockerfile(方法二)

  1. cd /path/your_code_data/docker
  2. docker build --no-cache -t glm-4v:latest .
  3. docker run --shm-size=64G --name glm-4v -v /opt/hyhal:/opt/hyhal:ro --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video -v /path/your_code_data/:/path/your_code_data/ -it glm-4v bash

Anaconda(方法三)

关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装。

  1. DTK驱动:dtk23.10
  2. python:python3.10
  3. torch:2.1
  4. torchvision: 0.16.0

Tips:以上dtk驱动、python、paddle等DCU相关工具版本需要严格一一对应

关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装。

  1. conda create -n glm-4v python=3.10
  2. conda activate glm-4v
  3. cd /path/your_code_data/
  4. pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple

数据集

迷你数据集 coco测试数据集 coco图像描述完整数据集

本仓库提供测试数据集用于微调代码测试,需要可自行下载。预训练需要准备你的训练数据,需要将所有样本放到一个列表中并存入json文件中。自定义数据集支持json和jsonl样式。glm-4v-9b支持多轮对话,但总的对话轮次中需包含一张图片,支持传入本地路径或URL。以下是自定义数据集的示例:。用于正常训练的完整数据集请按此目录结构进行制备:

  1. {"query": "55555", "response": "66666", "images": ["image_path"]}
  2. {"query": "eeeee", "response": "fffff", "history": [], "images": ["image_path"]}
  3. {"query": "EEEEE", "response": "FFFFF", "history": [["AAAAA", "BBBBB"], ["CCCCC", "DDDDD"]], "images": ["image_path"]}

训练

微调需要安装swift,具体操作如下:

  1. cd swift-main
  2. pip install -e .

训练需在对应的训练脚本中修改以下参数,其他参数可自行修改:

  1. --model_id_or_path # or 修改为本地模型地址
  2. --dataset # 训练集文件夹
  3. --output_dir # 训练输出文件夹

单机单卡

sh lora_finetune_single.sh

单机多卡

sh lora_finetune_multi.sh

推理

若要执行推理需要将本仓库修改后的visual.py替换模型文件中的visual.py文件。

单机单卡

推理时需修改推理脚本中的模型地址为本地模型地址

tokenizer = AutoTokenizer.from_pretrained("/home/wanglch/projects/GLM-4V/glm-4v-9b", trust_remote_code=True)

model = AutoModelForCausalLM.from_pretrained( "/home/wanglch/projects/GLM-4V/glm-4v-9b", torch_dtype=torch.float16, low_cpu_mem_usage=True, trust_remote_code=True ).to(device).eval()

python glm-4v_inference.py

result

OCR

精度

测试数据: 迷你coco图像描述数据集 ,使用的加速卡:A800/K100。

devicetrain_losseval_loss
A800*22.4930.302
K100*22.4950.295

应用场景

算法类别

ocr

热点应用行业

金融,教育,政府,科研,制造,能源,交通

预训练权重

预训练权重快速下载中心:SCNet AIModels 项目中的预训练权重可从快速下载通道下载: glm-4v-9b

源码仓库及问题反馈

参考资料

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/1018497
推荐阅读
相关标签
  

闽ICP备14008679号