MILS:无需对LLM进行额外训练就能处理多模态任务,Meta AI提出零样本生成多模态描述方法

本文涉及的产品
图像搜索,任选一个服务类型 1个月
简介: MILS 是 Meta AI 推出的零样本生成高质量多模态描述方法,支持图像、视频和音频的描述生成,无需额外训练。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. MILS 概述:MILS 是 Meta AI 提出的零样本生成高质量多模态描述方法,通过多步推理和迭代优化,实现无需额外训练的多模态任务处理。
  2. 主要功能:支持图像、视频和音频的描述生成,以及跨模态推理和高质量图像生成。
  3. 技术原理:基于 LLM 的生成器和评分器,通过无梯度优化和多步推理,实现多模态嵌入逆向映射。

正文(附运行示例)

MILS 是什么

MILS

MILS(Multimodal Iterative LLM Solver)是 Meta AI 提出的一种零样本生成高质量多模态描述的方法。该方法通过多步推理和迭代优化,赋予大型语言模型(LLM)处理多种多模态任务的能力,而无需对 LLM 进行额外训练。MILS 可以用于生成图像、视频和音频的描述,同时支持跨模态推理和生成任务,如文本到图像的生成和风格迁移。

MILS 的核心优势在于其能够在不进行额外训练的情况下,处理多种多模态任务。这使得 MILS 在媒体生成、视觉问答和多模态检索等应用场景中具有广泛的应用前景。通过提示重写和优化,MILS 可以显著提升生成内容的质量,并实现复杂多模态任务的自动化处理。

MILS 的主要功能

  • 图像描述生成:为给定的图像生成准确的文本描述。
  • 视频描述生成:为视频生成描述性文本,捕捉视频中的关键内容。
  • 音频描述生成:为音频生成描述性文本,捕捉音频中的关键声音信息。
  • 跨模态推理:通过将不同模态(如图像、音频)映射到文本空间,实现模态之间的推理和组合。
  • 高质量图像生成:通过优化文本提示词,提升文本到图像(T2I)生成模型的输出质量。
  • 风格迁移:将一种图像的风格应用到另一张图像上,同时保持内容不变。
  • 跨模态生成:例如通过音频生成图像,将音频和图像的语义概念结合生成新的图像。

MILS 的技术原理

  • 生成器:目标是为给定任务生成候选输出。接收任务描述文本和来自评分器的反馈评分,基于这些信息生成下一组候选方案。使用 LLM 来建模,能接收文本输入并进行推理。生成器的输出不限于文本,可以用于引导后续模型生成其他模态数据(如图像)。
  • 评分器:目标是对生成器生成的候选方案进行评分,评估其与测试样本的匹配程度。可以采用多种不同的实现方式,例如低级图像处理函数(比较纹理)或经过训练的机器学习模型(如 CLIP)。
  • 零样本多模态描述:MILS 能在无需训练的情况下,为图像、视频和音频生成高质量的描述内容,打破了传统多模态任务需要大量标注数据进行训练的限制。
  • 多步推理与迭代优化:MILS 基于 LLM 的多步推理能力,首先提示 LLM 生成多个候选输出。每个候选输出会被评分,通过迭代反馈的方式不断优化,最终生成最优的任务解决方案。
  • 无梯度优化:作为一种无梯度优化方法,MILS 不需要通过反向传播进行训练,通过评分和反馈机制逐步改进输出结果。
  • 多模态嵌入逆向映射:MILS 能将多模态嵌入逆向映射为文本,实现跨模态算术等复杂应用。

如何运行 MILS

1. 安装环境

安装 Conda 环境:

conda env create -f environment.yml
conda activate MILS

2. 下载数据集和检查点

下载 MS-COCO 数据集:

wget http://images.cocodataset.org/zips/val2014.zip
wget http://images.cocodataset.org/annotations/annotations_trainval2014.zip
unzip val2014.zip
unzip annotations_trainval2014.zip

下载 Clotho 数据集:

wget https://zenodo.org/records/3490684/files/clotho_audio_evaluation.7z
pip3 install dtrx
wget https://www.7-zip.org/a/7z2107-linux-x64.tar.xz
tar xf 7z2107-linux-x64.tar.xz
./7zz e clotho_audio_evaluation.7z
wget https://zenodo.org/records/3490684/files/clotho_captions_evaluation.csv

下载 MSR-VTT 数据集:

wget https://www.robots.ox.ac.uk/~maxbain/frozen-in-time/data/MSRVTT.zip
unzip MSRVTT.zip

下载 ViClip-InternVid-10M-FLT.pth:

# 从 HuggingFace 下载
wget https://huggingface.co/OpenGVLab/ViCLIP/blob/main/ViClip-InternVid-10M-FLT.pth

3. 更新路径

更新 paths.py 中的变量,设置数据集目录和输出文件夹。

4. 运行代码

MILS 是一个仅推理方法,可以在单个 A100 GPU 上运行。以下命令展示了如何在 8 个 A100 GPU 上运行图像、音频和视频的描述生成任务。

图像描述生成
CUDA_VISIBLE_DEVICES=0 python main_image_captioning.py --process 0 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=1 python main_image_captioning.py --process 1 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=2 python main_image_captioning.py --process 2 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=3 python main_image_captioning.py --process 3 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=4 python main_image_captioning.py --process 4 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=5 python main_image_captioning.py --process 5 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=6 python main_image_captioning.py --process 6 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=7 python main_image_captioning.py --process 7 --num_processes 8 --batch_size 32 &
音频描述生成
CUDA_VISIBLE_DEVICES=0 python main_audio_captioning.py --process 0 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=1 python main_audio_captioning.py --process 1 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=2 python main_audio_captioning.py --process 2 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=3 python main_audio_captioning.py --process 3 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=4 python main_audio_captioning.py --process 4 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=5 python main_audio_captioning.py --process 5 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=6 python main_audio_captioning.py --process 6 --num_processes 8 --batch_size 32 &
CUDA_VISIBLE_DEVICES=7 python main_audio_captioning.py --process 7 --num_processes 8 --batch_size 32 &
视频描述生成
CUDA_VISIBLE_DEVICES=0 python main_video_captioning.py --process 0 --num_processes 8 --batch_size 8 &
CUDA_VISIBLE_DEVICES=1 python main_video_captioning.py --process 1 --num_processes 8 --batch_size 8 &
CUDA_VISIBLE_DEVICES=2 python main_video_captioning.py --process 2 --num_processes 8 --batch_size 8 &
CUDA_VISIBLE_DEVICES=3 python main_video_captioning.py --process 3 --num_processes 8 --batch_size 8 &
CUDA_VISIBLE_DEVICES=4 python main_video_captioning.py --process 4 --num_processes 8 --batch_size 8 &
CUDA_VISIBLE_DEVICES=5 python main_video_captioning.py --process 5 --num_processes 8 --batch_size 8 &
CUDA_VISIBLE_DEVICES=6 python main_video_captioning.py --process 6 --num_processes 8 --batch_size 8 &
CUDA_VISIBLE_DEVICES=7 python main_video_captioning.py --process 7 --num_processes 8 --batch_size 8 &
高质量图像生成
CUDA_VISIBLE_DEVICES=0 python main_image_generation_enhancement.py --process 0 --num_processes 8 --batch_size 4 &
CUDA_VISIBLE_DEVICES=1 python main_image_generation_enhancement.py --process 1 --num_processes 8 --batch_size 4 &
CUDA_VISIBLE_DEVICES=2 python main_image_generation_enhancement.py --process 2 --num_processes 8 --batch_size 4 &
CUDA_VISIBLE_DEVICES=3 python main_image_generation_enhancement.py --process 3 --num_processes 8 --batch_size 4 &
CUDA_VISIBLE_DEVICES=4 python main_image_generation_enhancement.py --process 4 --num_processes 8 --batch_size 4 &
CUDA_VISIBLE_DEVICES=5 python main_image_generation_enhancement.py --process 5 --num_processes 8 --batch_size 4 &
CUDA_VISIBLE_DEVICES=6 python main_image_generation_enhancement.py --process 6 --num_processes 8 --batch_size 4 &
CUDA_VISIBLE_DEVICES=7 python main_image_generation_enhancement.py --process 7 --num_processes 8 --batch_size 4 &
风格迁移

将风格和内容图像放入 images/ 文件夹,然后运行:

python main_style_transfer.py --style_image <style_image> --content_image <content_image>

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日分享大模型与 AI 领域的最新开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
9天前
|
数据采集 人工智能 JavaScript
Browser Use:40.7K Star!一句话让AI完全接管浏览器!自动规划完成任务,多标签页同时管理
Browser Use 是一款专为大语言模型设计的智能浏览器自动化工具,支持多标签页管理、视觉识别、内容提取等功能,并能记录和重复执行特定动作,适用于多种应用场景。
474 21
Browser Use:40.7K Star!一句话让AI完全接管浏览器!自动规划完成任务,多标签页同时管理
|
5天前
|
人工智能 并行计算 语音技术
Open-LLM-VTuber:宅男福音!开源AI老婆离线版上线,实时语音+Live2D互动还会脸红心跳
Open-LLM-VTuber 是一个开源的跨平台语音交互 AI 伴侣项目,支持实时语音对话、视觉感知和生动的 Live2D 动态形象,完全离线运行,保护用户隐私。
123 10
Open-LLM-VTuber:宅男福音!开源AI老婆离线版上线,实时语音+Live2D互动还会脸红心跳
|
13天前
|
机器学习/深度学习 人工智能 JSON
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
Resume Matcher 是一款开源AI简历优化工具,通过解析简历和职位描述,提取关键词并计算文本相似性,帮助求职者优化简历内容,提升通过自动化筛选系统(ATS)的概率,增加面试机会。
83 18
Resume Matcher:增加面试机会!开源AI简历优化工具,一键解析简历和职位描述并优化
|
18天前
|
存储 人工智能 监控
Mahilo:多智能体实时协作框架开源!人类与AI无缝交互,复杂任务一键协同
Mahilo 是一个灵活的多智能体框架,支持创建与人类互动的多智能体系统,适用于从客户服务到紧急响应等多种场景。
79 2
Mahilo:多智能体实时协作框架开源!人类与AI无缝交互,复杂任务一键协同
|
22天前
|
人工智能 算法 测试技术
OctoTools:斯坦福开源AI推理神器!16项测试准确率碾压GPT-4o,一键搞定复杂任务
OctoTools 是斯坦福大学推出的开源智能体框架,通过标准化工具卡片和自动化工具集优化算法,显著提升复杂推理任务的解决效率,支持多领域应用。
68 3
OctoTools:斯坦福开源AI推理神器!16项测试准确率碾压GPT-4o,一键搞定复杂任务
|
1月前
|
人工智能 Kubernetes 测试技术
SWE-Lancer:OpenAI发布衡量AI工程能力的「血汗标尺」!1400个百万美元任务实测,GPT-4o仅能赚2.9万刀?
SWE-Lancer 是 OpenAI 推出的基准测试,评估语言模型在自由职业软件工程任务中的表现,涵盖真实任务、端到端测试和多选项评估。
90 4
SWE-Lancer:OpenAI发布衡量AI工程能力的「血汗标尺」!1400个百万美元任务实测,GPT-4o仅能赚2.9万刀?
|
9天前
|
Web App开发 人工智能 JavaScript
Nanobrowser:开源版OpenAI Operator!AI自动操控浏览器,复杂网页任务一键搞定
Nanobrowser 是一款开源的 Chrome 扩展工具,基于多智能体系统实现复杂的网页任务自动化,支持多种大型语言模型,完全免费且注重隐私保护。
141 1
|
15天前
|
缓存 人工智能 自然语言处理
微软发明全新LLM语言,AI智能体交互效率翻倍!
微软发布DroidSpeak技术,优化大型语言模型(LLM)间的通信,显著提升AI智能体交互效率。该技术通过嵌入缓存和键值缓存重用,减少预填充延迟,降低高达50%的延迟,同时保持高质量生成。DroidSpeak适用于多种AI任务,提高协作效率,但在资源受限环境和处理模型差异性方面仍面临挑战。
42 3
|
22天前
|
人工智能 自然语言处理 并行计算
MeteoRA:多任务AI框架革新!动态切换+MoE架构,推理效率提升200%
MeteoRA 是南京大学推出的多任务嵌入框架,基于 LoRA 和 MoE 架构,支持动态任务切换与高效推理。
63 3
|
27天前
|
数据采集 人工智能 监控
Crawl4LLM:你的模型还在吃垃圾数据?CMU博士开源AI爬虫,自动筛选高价值网页,数据抓取质量飙升300%
Crawl4LLM 是清华大学和卡内基梅隆大学联合开发的智能爬虫系统,通过网页价值评估和优先级队列技术,显著提升大语言模型预训练数据采集效率。
114 4

热门文章

最新文章