❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
- 多语言支持:Maya 支持八种语言,包括中文、法语、西班牙语、俄语、印地语、日语、阿拉伯语和英语。
- 多模态能力:结合图像和文本数据,执行图像描述、视觉问题回答等任务。
- 指令微调:通过指令微调提升模型对自然语言指令的理解和响应能力。
正文(附运行示例)
Maya 是什么
Maya 是一个开源的多语言多模态模型,基于LLaVA框架开发。它通过指令微调和多语言数据集的预训练,扩展了模型在多种语言和文化背景下的能力。Maya 包含一个新创建的包含八种语言的预训练数据集,旨在提高视觉-语言任务中的文化和语言理解。
Maya 通过毒性分析和数据集过滤,确保训练数据的安全性和质量。它支持包括中文、法语、西班牙语、俄语、印地语、日语和阿拉伯语在内的多种语言,致力于提升低资源语言的AI内容生成质量。
Maya 的主要功能
- 多语言支持:Maya 能处理和理解八种不同的语言,包括中文、法语、西班牙语、俄语、印地语、日语、阿拉伯语和英语,增强对低资源语言的支持。
- 多模态能力:结合图像和文本数据,让机器基于自然语言理解视觉世界,执行图像描述、视觉问题回答等任务。
- 指令微调:基于指令微调,更好地理解和响应自然语言指令,提升在实际应用中的性能和适应性。
- 数据集创建与毒性过滤:创建多语言图像-文本预训练数据集,进行毒性分析和过滤,确保数据的安全性和质量。
- 跨文化理解:基于多语言和多模态数据,更好地理解和处理不同文化背景下的视觉和语言信息。
Maya 的技术原理
- 模型架构:基于LLaVA 1.5架构,使用Aya-23 8B模型作为多语言语言模型(LLM)和SigLIP作为视觉编码器,支持多语言和多模态输入。
- 预训练数据集:创建包含558,000张图像的多语言图像-文本预训练数据集,涵盖八种语言,支持多语言视觉语言模型的开发。
- 毒性分析:使用LLaVAGuard 7B和Toxic-BERT对数据集中的图像和文本进行毒性分析,识别和过滤掉不安全或有害的内容。
- 预训练与微调:通过投影矩阵W将图像特征转换为语言特征,基于多轮对话数据进行预训练,优化图像和文本的对齐。在PALO 150K指令微调数据集上进行微调,进一步提升模型对指令的理解和响应能力。
- 跨模态对齐:基于投影矩阵和训练策略,优化图像特征和语言特征之间的对齐,提高模型在视觉-语言任务中的表现。
如何运行 Maya
安装
以下步骤适用于 CUDA Version: 12.4
的环境。
克隆仓库并进入 Maya 目录:
git clone https://github.com/nahidalam/maya cd maya
安装包:
conda create -n maya python=3.10 -y conda activate maya pip install --upgrade pip # 启用 PEP 660 支持 pip install -e .
安装额外的训练包:
pip install -e ".[train]" pip install flash-attn==2.6.3 --no-build-isolation --no-cache-dir
预训练
要预训练投影层,请按照以下步骤操作:
- 从 HuggingFace 获取预训练数据集,并将其放在
/dev/data/LLaVA_Pretrain
目录下。 - 下载图像并将其放在
/dev/data/images
目录下:wget https://huggingface.co/datasets/liuhaotian/LLaVA-Pretrain/resolve/main/images.zip
运行预训练脚本:
bash scripts/maya/pretrain_aya_siglip.sh
指令微调
请从 MBZUAI/palo_multilingual_dataset 下载注释,并按照以下链接下载所有图像:
- COCO: train2017
- GQA: images
- OCR-VQA: download script
- TextVQA: train_val_images
- VisualGenome: part1, part2
下载完成后,将数据组织如下:
instruction_tune_dataset
├── coco
│ └── train2017
├── gqa
│ └── images
├── ocr_vqa
│ └── images
├── textvqa
│ └── train_images
└── vg
├── VG_100K
└── VG_100K_2
将 palo_multilingual_dataset.json
放在 /dev/data/annotations/palo_multilingual_dataset.json
目录下。
确保在 scripts/maya/finetune_aya_siglip.sh
脚本中指定预训练模型的路径,然后运行:
bash scripts/maya/finetune_aya_siglip.sh
资源
- 项目官网:https://github.com/nahidalam/maya
- GitHub 仓库:https://github.com/nahidalam/maya
- HuggingFace 模型库:https://huggingface.co/maya-multimodal/maya
- arXiv 技术论文:https://arxiv.org/pdf/2412.07112
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦