【大模型系列 07】MiniGPT-4 for PyTorch 昇腾迁移

源码链接

https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/PyTorch/built-in/foundation/MiniGPT-4

MiniGPT-4 for PyTorch

概述

简述

MiniGPT-4使用一个投影层将来自BLIP-2的冻结视觉编码器与冻结的LLM Vicuna对齐。通过两个阶段来训练MiniGPT-4,先是用500万图文对训练,然后再用一个3500对高质量数据集训练。

  • 参考实现:

    url=https://github.com/Vision-CAIR/MiniGPT-4
    commit_id=22d8888ca2cf0aac862f537e7d22ef5830036808
    
  • 适配昇腾 AI 处理器的实现:

    url=https://gitee.com/ascend/ModelZoo-PyTorch.git
    code_path=PyTorch/built-in/foundation
    

准备训练环境

准备环境

  • 当前模型支持的PyTorch如下表所示。

    表 1 版本支持表

    配套版本
    PyTorch1.11.0
  • 环境准备指导。

    请参考《Pytorch框架训练环境准备》。

  • 安装依赖。

    在模型源码包根目录下执行命令,安装模型对应PyTorch版本需要的依赖。

    pip install -r requirements.txt  # PyTorch1.11版本
    
  • 替换transformers库中的相关文件。

    将当前工程目录下的transformers_modify文件夹中的文件替换到transformers安装目录下的对应位置(基于transformers 4.28.0版本):

    utils.py -> transformers/generation/utils.py
    

准备数据集

  1. 获取预训练数据集。

    要下载和准备Laion和CC数据集,请查看第一阶段数据集准备说明
    数据集参考目录如下:

    laion_dataset
    ├── 00000.parquet
    ├── 00000_stats.json
    ├── 00000.tar
    ├── ...
    
    cc_sbu_dataset
    ├── 00000.parquet
    ├── 00000_stats.json
    ├── 00000.tar
    ├── ...
    
  2. 获取微调数据集

    要下载和准备小型高质量图像文本对数据集,请查看第二阶段数据集准备说明
    数据集参考目录如下:

    cc_sbu_align
    ├── filter_cap.json
    ├── image
       ├── 0.jpg
       ├── ...
    
    

准备模型权重

  1. 准备预训练的Vicuna权重

    用户参照链接自行获取模型文件,并放于自定义目录下,微调依赖该模型权重。
    自定义参考目录如下:

    vicuna_weights
    ├── config.json
    ├── generation_config.json
    ├── pytorch_model.bin.index.json
    ├── pytorch_model-00001-of-00003.bin
    

    在配置文件minigpt4.yaml中修改vicuna权重所在的路径。

  2. 准备训练的MiniGPT-4检查点:

    Checkpoint Aligned with Vicuna 3BCheckpoint Aligned with Vicuna 7B
    链接链接

    然后,在评估配置文件minigpt4_eval.yaml的第11行中设置预训练检查点的路径。

  3. 准备只有第一阶段训练的MiniGPT-4检查点链接

开始训练

进入解压后的源码包根目录。

cd /${模型文件夹名称}

预训练

微调

  • 单机单卡微调

    bash test/finetune_gpt_1p.sh
    

    要启动第二阶段微调对齐,请先在minigpt4_stage2_finetune.yamlcc_sbu/align.yaml中分别指定第1阶段预训练的检查点文件的路径和精调数据集路径。

在线演示

  1. 修改配置文件minigpt4_eval.yaml第11行,路径为微调好的权重所在路径。

  2. 在线演示:

    python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0
    
  3. 运行成功后,在服务器浏览器的输入URL链接:http://127.0.0.1:7860, 会加载UI界面。上传图像开始与MiniGPT-4聊天。

  4. 如需本地浏览器远程访问服务器,需要ssh进行端口映射:

    ssh -L 6006:127.0.0.1:7860 yourname@server.ip
    

    在本地浏览器输入URL链接:http://127.0.0.1:6006, 即可加载聊天界面。

训练结果展示

表 1 预训练结果展示表

NAMETokensPerSecIterationsBatchSizeTorch_Version
Pretrain -竞品A88665000*4641.11
Pretrain -NPU75178000*4401.11

表 2 微调结果展示表

NAMETokensPerSecIterationsBatchSizeTorch_Version
Finetune -竞品A2805200*2121.11
Finetune -NPU2433240*2101.11

在线演示效果

这里展示了MiniGPT-4微调后的演示效果。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版本说明

变更

2023.7.05:首次发布。

FAQ

无。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: BERT-NER-PyTorch是一个基于PyTorch深度学习框架的BERT命名实体识别(NER)模型。BERT是一种在大规模未标记文本上训练的预训练模型,它可以用于各种自然语言处理任务。 BERT-NER-PyTorch利用已经使用大量标记数据进行预训练的BERT模型的表示能力,进行命名实体识别任务。命名实体识别是指从文本中识别特定实体,如人名、地名、组织、日期等。通过使用BERT-NER-PyTorch,我们可以利用预训练的BERT模型来提高命名实体识别的性能。 BERT-NER-PyTorch的实现基于PyTorch深度学习框架,PyTorch是一个用于构建神经网络的开源框架,具有易于使用、动态计算图和高度灵活的特点。通过在PyTorch环境下使用BERT-NER-PyTorch,我们可以灵活地进行模型训练、调整和部署。 使用BERT-NER-PyTorch,我们可以通过以下步骤进行命名实体识别: 1. 预处理:将文本数据转换为适合BERT模型输入的格式,例如分词、添加特殊标记等。 2. 模型构建:使用BERT-NER-PyTorch构建NER模型,该模型包括BERT预训练模型和适当的输出层。 3. 模型训练:使用标记的命名实体识别数据对NER模型进行训练,通过最小化损失函数来优化模型参数。 4. 模型评估:使用验证集或测试集评估训练得到的NER模型的性能,例如计算准确率、召回率和F1分数等指标。 5. 模型应用:使用训练好的NER模型对新的文本数据进行命名实体识别,识别出关键实体并提供相应的标签。 总之,BERT-NER-PyTorch是一个基于PyTorch的BERT命名实体识别模型,通过利用预训练的BERT模型的表示能力,在命名实体识别任务中提供了灵活、高效和准确的解决方案。 ### 回答2: bert-ner-pytorch是一个基于PyTorch框架的BERT命名实体识别模型。BERT是一种基于Transformer架构的预训练模型,在自然语言处理任务中取得了很好的效果。NER代表命名实体识别,是一项重要的自然语言处理任务,旨在从文本中识别和标注出特定类型的命名实体,如人名、地点、组织等。 bert-ner-pytorch利用预训练的BERT模型作为输入,结合神经网络模型进行命名实体识别。它通过将输入文本转化为BERT模型能够接受的格式,并在其上进行微调训练来提高NER的性能。具体来说,该模型首先使用BERT模型对文本进行编码,将文本中的每个单词转化为其对应的向量表示。然后,这些向量通过一层或多层的神经网络模型,以预测每个单词是否属于某个命名实体类别。 利用bert-ner-pytorch模型,我们可以将其应用于各种实际场景中,如信息抽取、问题回答、智能问答系统等。通过对输入文本进行命名实体识别,我们可以更好地理解文本中所包含的实体信息,从而为后续的处理与分析提供更多的潜在价值。 需要注意的是,bert-ner-pytorch模型是一个基础的NER模型,它需要根据具体的任务和数据进行进一步的训练和优化。同时,BERT模型本身也有一些限制,如较高的计算资源要求和模型大小。因此,在实际使用时,我们可能需要结合具体需求,对模型进行调整和优化,以适应不同的场景和数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值