[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-facebookresearch--multimodal":3,"tool-facebookresearch--multimodal":64},[4,17,27,35,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},4292,"Deep-Live-Cam","hacksider\u002FDeep-Live-Cam","Deep-Live-Cam 是一款专注于实时换脸与视频生成的开源工具，用户仅需一张静态照片，即可通过“一键操作”实现摄像头画面的即时变脸或制作深度伪造视频。它有效解决了传统换脸技术流程繁琐、对硬件配置要求极高以及难以实时预览的痛点，让高质量的数字内容创作变得触手可及。\n\n这款工具不仅适合开发者和技术研究人员探索算法边界，更因其极简的操作逻辑（仅需三步：选脸、选摄像头、启动），广泛适用于普通用户、内容创作者、设计师及直播主播。无论是为了动画角色定制、服装展示模特替换，还是制作趣味短视频和直播互动，Deep-Live-Cam 都能提供流畅的支持。\n\n其核心技术亮点在于强大的实时处理能力，支持口型遮罩（Mouth Mask）以保留使用者原始的嘴部动作，确保表情自然精准；同时具备“人脸映射”功能，可同时对画面中的多个主体应用不同面孔。此外，项目内置了严格的内容安全过滤机制，自动拦截涉及裸露、暴力等不当素材，并倡导用户在获得授权及明确标注的前提下合规使用，体现了技术发展与伦理责任的平衡。",88924,"2026-04-06T03:28:53",[13,14,15,43],"视频",{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":23,"last_commit_at":50,"category_tags":51,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":23,"last_commit_at":58,"category_tags":59,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,60,43,61,15,62,26,13,63],"数据工具","插件","其他","音频",{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":79,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":10,"env_os":95,"env_gpu":96,"env_ram":97,"env_deps":98,"category_tags":106,"github_topics":79,"view_count":23,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":107,"updated_at":108,"faqs":109,"releases":140},4167,"facebookresearch\u002Fmultimodal","multimodal","TorchMultimodal is a PyTorch library for training state-of-the-art multimodal multi-task models at scale.","TorchMultimodal 是一个基于 PyTorch 构建的开源库，旨在帮助开发者和研究人员高效训练大规模、多任务的多模态模型。它专注于解决跨模态内容理解与生成中的复杂工程挑战，让团队无需从零搭建底层架构，即可快速复现学术界的前沿成果。\n\n无论是需要处理图文检索、视觉问答，还是进行图像生成的研究者，都能通过该库提供的模块化组件（如融合层、损失函数及数据集工具）灵活组合模型。TorchMultimodal 内置了 ALBEF、BLIP-2、CLIP、DALL-E 2 等知名模型的预训练权重与标准实现，并附带完整的训练与评估脚本，极大地降低了实验门槛。\n\n其核心亮点在于“可组合性”：将复杂的模型拆解为通用积木，既支持直接调用经典配置作为研究基线，也允许用户自由替换组件以探索创新架构。对于希望深入多模态人工智能领域的算法工程师和科研人员而言，TorchMultimodal 提供了一个坚实且灵活的起点，助力加速从理论验证到实际应用的转化过程。","[![Unit-tests](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Factions\u002Fworkflows\u002Funit_test.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Factions\u002Fworkflows\u002Funit_test.yaml)\n[![Python version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Ftorchmultimodal-nightly.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_multimodal_readme_fa17769e32f7.png))](https:\u002F\u002Fpepy.tech\u002Fproject\u002Ftorchmultimodal-nightly)\n\n# TorchMultimodal (Beta Release)\n\n[**Models**](#models) | [**Example scripts**](#example-scripts) | [**Getting started**](#getting-started) | [**Code overview**](#code-overview) | [**Installation**](#installation) | [**Contributing**](#contributing) | [**License**](#license)\n\n## Introduction\n**TorchMultimodal** is a PyTorch library for training state-of-the-art multimodal multi-task models at scale, including both content understanding and generative models. TorchMultimodal contains:\n- A repository of modular and composable building blocks (fusion layers, loss functions, datasets and utilities).\n- A collection of common multimodal model classes built up from said building blocks with pretrained weights for canonical configurations.\n- A set of examples that show how to combine these building blocks with components and common infrastructure from across the PyTorch Ecosystem to replicate state-of-the-art models published in the literature. These examples should serve as baselines for ongoing research in the field, as well as a starting point for future work.\n\n## Models\n\nTorchMultimodal contains a number of models, including\n\n- ALBEF: [model class](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Falbef\u002Fmodel.py#L55), [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2107.07651)\n- BLIP-2: [model class](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fblip2\u002Fblip2.py#L39), [paper]()\n- CLIP: [model class](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fclip\u002Fmodel.py#L37), [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2301.12597)\n- CoCa: [model class](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fcoca\u002Fcoca_model.py#L33), [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2205.01917)\n- DALL-E 2: [model](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs\u002Fmodels\u002Fdalle2\u002Fdalle2_decoder.py#L19), [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2204.06125)\n- FLAVA: [model class](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fflava\u002Fmodel.py#L106), [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2112.04482)\n- MAE\u002FAudio MAE: [model class](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fmasked_auto_encoder\u002Fmodel.py#L42), [MAE paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377), [Audio MAE paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2207.06405)\n- MDETR: [model class](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fmdetr\u002Fmodel.py#L37), [paper](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.12763)\n\n## Example scripts\n\nIn addition to the above models, we provide example scripts for training, fine-tuning, and evaluation of models on popular multimodal tasks. Examples can be found under [examples\u002F](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples) and include\n\n|                  Model                   |     Supported Tasks     |\n| :--------------------------------------: | :----------------------: |\n|         ALBEF          |      [Retrieval](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Fexamples\u002Falbef\u002FREADME.md#retrieval) \u003Cbr\u002F> [Visual Question Answering](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Fexamples\u002Falbef\u002FREADME.md#visual-question-answering)         |\n|         DDPM           |      [Training and Inference](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs\u002Fmnist_training.ipynb) (notebook)\n|           FLAVA           |    [Pretraining](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fflava#launching-and-test-pretraining) \u003Cbr\u002F> [Fine-tuning](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fflava#finetuning) \u003Cbr\u002F> [Zero-shot](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fflava#coco-zero-shot)|\n|        MDETR         |       [Phrase grounding](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fmdetr#phrase-grounding) \u003Cbr\u002F> [Visual Question Answering](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Fexamples\u002Fmdetr\u002Fvqa_finetune.py#L154)        |\n|             MUGEN             |     [Text-to-video retrieval](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fmugen\u002Fretrieval#mugen-retrieval) \u003Cbr\u002F> [Text-to-video generation](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fmugen\u002Fgeneration#text-to-video-generation-with-mugen)                |\n|           Omnivore           |           [Pre-training](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fomnivore#training) \u003Cbr\u002F> [Evaluation](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fomnivore#evaluating-pretrained-weight)           |\n\n## Getting started\n\nBelow we give minimal examples of how you can write a simple training or zero-shot evaluation script using components from TorchMultimodal.\n\n  \u003Cdetails>\n    \u003Csummary>FLAVA zero-shot example\u003C\u002Fsummary>\n\n  ```python\nimport torch\nfrom PIL import Image\nfrom torchmultimodal.models.flava.model import flava_model\nfrom torchmultimodal.transforms.bert_text_transform import BertTextTransform\nfrom torchmultimodal.transforms.flava_transform import FLAVAImageTransform\n\n# Define helper function for zero-shot prediction\ndef predict(zero_shot_model, image, labels):\n    zero_shot_model.eval()\n    with torch.no_grad():\n        image = image_transform(img)[\"image\"].unsqueeze(0)\n        texts = text_transform(labels)\n        _, image_features = zero_shot_model.encode_image(image, projection=True)\n        _, text_features = zero_shot_model.encode_text(texts, projection=True)\n        scores = image_features @ text_features.t()\n        probs = torch.nn.Softmax(dim=-1)(scores)\n        label = labels[torch.argmax(probs)]\n        print(\n            \"Label probabilities: \",\n            {labels[i]: probs[:, i] for i in range(len(labels))},\n        )\n        print(f\"Predicted label: {label}\")\n\n\nimage_transform = FLAVAImageTransform(is_train=False)\ntext_transform = BertTextTransform()\nzero_shot_model = flava_model(pretrained=True)\nimg = Image.open(\"my_image.jpg\")  # point to your own image\npredict(zero_shot_model, img, [\"dog\", \"cat\", \"house\"])\n\n# Example output:\n# Label probabilities:  {'dog': tensor([0.80590]), 'cat': tensor([0.0971]), 'house': tensor([0.0970])}\n# Predicted label: dog\n  ```\n  \u003C\u002Fdetails>\n\n  \u003Cdetails>\n    \u003Csummary>MAE training example\u003C\u002Fsummary>\n\n  ```python\nimport torch\nfrom torch.utils.data import DataLoader\nfrom torchmultimodal.models.masked_auto_encoder.model import vit_l_16_image_mae\nfrom torchmultimodal.models.masked_auto_encoder.utils import (\n    CosineWithWarmupAndLRScaling,\n)\nfrom torchmultimodal.modules.losses.reconstruction_loss import ReconstructionLoss\nfrom torchmultimodal.transforms.mae_transform import ImagePretrainTransform\n\nmae_transform = ImagePretrainTransform()\ndataset = MyDatasetClass(transforms=mae_transform)  # you should define this\ndataloader = DataLoader(dataset, batch_size=8)\n\n# Instantiate model and loss\nmae_model = vit_l_16_image_mae()\nmae_loss = ReconstructionLoss()\n\n# Define optimizer and lr scheduler\noptimizer = torch.optim.AdamW(mae_model.parameters())\nlr_scheduler = CosineWithWarmupAndLRScaling(\n    optimizer, max_iters=1000, warmup_iters=100  # you should set these\n)\n\n# Train one epoch\nfor batch in dataloader:\n    model_out = mae_model(batch[\"images\"])\n    loss = mae_loss(model_out.decoder_pred, model_out.label_patches, model_out.mask)\n    loss.backward()\n    optimizer.step()\n    lr_scheduler.step()\n  ```\n  \u003C\u002Fdetails>\n\n## Code overview\n\n### [torchmultimodal\u002Fdiffusion_labs](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs)\ndiffusion_labs contains components for building diffusion models. For more details on these components, see [diffusion_labs\u002FREADME.md](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs\u002FREADME.md).\n\n### [torchmultimodal\u002Fmodels](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodels)\nLook here for model classes as well as any other modeling code specific to a given architecture. E.g. the directory [torchmultimodal\u002Fmodels\u002Fblip2](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fblip2) contains modeling components specific to BLIP-2.\n\n### [torchmultimodal\u002Fmodules](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules)\nLook here for common generic building blocks that can be stitched together to build a new architecture. This includes [layers](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers) like [codebooks](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers\u002Fcodebook.py#L31), [patch embeddings](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers\u002Fpatch_embedding.py#L26), or [transformer encoder\u002Fdecoders](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers\u002Ftransformer.py), [losses](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flosses) like [contrastive loss with temperature](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flosses\u002Fcontrastive_loss_with_temperature.py#L121) or [reconstruction loss](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flosses\u002Freconstruction_loss.py#L10), [encoders]() like [ViT](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Fencoders\u002Fvision_transformer.py#L20) and [BERT](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Fencoders\u002Fbert_text_encoder.py#L17), and [fusion modules](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Ffusions) like [Deep Set fusion](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Ffusions\u002Fdeepset_fusion.py#L14).\n\n### [torchmultimodal\u002Ftransforms](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules)\nLook here for common data transforms from popular models, e.g. [CLIP](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Ftransforms\u002Fclip_transform.py#L349), [FLAVA](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Ftransforms\u002Fflava_transform.py#L206), and [MAE](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Ftransforms\u002Fmae_transform.py#L84).\n\n## Installation\n\nTorchMultimodal requires Python >= 3.8. The library can be installed with or without CUDA support.\nThe following assumes conda is installed.\n\n### Prerequisites\n1. Install conda environment\n\n    ```\n    conda create -n torch-multimodal python=\\\u003Cpython_version\\>\n    conda activate torch-multimodal\n    ```\n\n2. Install pytorch, torchvision, and torchaudio. See [PyTorch documentation](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F).\n\n    ```\n    # Use the current CUDA version as seen [here](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)\n    # Select the nightly Pytorch build, Linux as the OS, and conda. Pick the most recent CUDA version.\n    conda install pytorch torchvision torchaudio pytorch-cuda=\\\u003Ccuda_version\\> -c pytorch-nightly -c nvidia\n\n    # For CPU-only install\n    conda install pytorch torchvision torchaudio cpuonly -c pytorch-nightly\n    ```\n\n### Install from binaries\n\nNightly binary on Linux for Python 3.8 and 3.9 can be installed via pip wheels.\nFor now we only support Linux platform through [PyPI](https:\u002F\u002Fpypi.org\u002F).\n\n```\npython -m pip install torchmultimodal-nightly\n```\n\n### Building from Source\n\nAlternatively, you can also build from our source code and run our [examples](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples):\n\n```\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal.git multimodal\ncd multimodal\n\npip install -e .\n```\nFor developers please follow the [development installation](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002FCONTRIBUTING.md#development-installation).\n\n\n## Contributing\n\nWe welcome any feature requests, bug reports, or pull requests from the community. See the [CONTRIBUTING](CONTRIBUTING.md) file for how to help out.\n\n## License\n\nTorchMultimodal is BSD licensed, as found in the [LICENSE](LICENSE) file.\n","[![单元测试](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Factions\u002Fworkflows\u002Funit_test.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Factions\u002Fworkflows\u002Funit_test.yaml)\n[![Python版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Ftorchmultimodal-nightly.svg)](https:\u002F\u002Fwww.python.org\u002Fdownloads\u002F)\n[![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_multimodal_readme_fa17769e32f7.png))](https:\u002F\u002Fpepy.tech\u002Fproject\u002Ftorchmultimodal-nightly)\n\n# TorchMultimodal（测试版）\n\n[**模型**](#models) | [**示例脚本**](#example-scripts) | [**快速入门**](#getting-started) | [**代码概览**](#code-overview) | [**安装**](#installation) | [**贡献指南**](#contributing) | [**许可证**](#license)\n\n## 简介\n**TorchMultimodal** 是一个基于 PyTorch 的库，用于大规模训练最先进的多模态多任务模型，包括内容理解和生成模型。TorchMultimodal 包含：\n- 一系列模块化且可组合的构建块（融合层、损失函数、数据集和工具）。\n- 由这些构建块组成的常见多模态模型类，并为标准配置提供了预训练权重。\n- 一组示例，展示了如何将这些构建块与 PyTorch 生态系统中的组件和常用基础设施相结合，以复现文献中发表的最先进模型。这些示例应作为该领域持续研究的基准，同时也是未来工作的起点。\n\n## 模型\n\nTorchMultimodal 包含多种模型，包括：\n\n- ALBEF：[模型类](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Falbef\u002Fmodel.py#L55)，[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2107.07651)\n- BLIP-2：[模型类](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fblip2\u002Fblip2.py#L39)，[论文]()\n- CLIP：[模型类](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fclip\u002Fmodel.py#L37)，[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2301.12597)\n- CoCa：[模型类](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fcoca\u002Fcoca_model.py#L33)，[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2205.01917)\n- DALL-E 2：[模型](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs\u002Fmodels\u002Fdalle2\u002Fdalle2_decoder.py#L19)，[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2204.06125)\n- FLAVA：[模型类](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fflava\u002Fmodel.py#L106)，[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2112.04482)\n- MAE\u002FAudio MAE：[模型类](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fmasked_auto_encoder\u002Fmodel.py#L42)，[MAE 论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2111.06377)，[Audio MAE 论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2207.06405)\n- MDETR：[模型类](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fmdetr\u002Fmodel.py#L37)，[论文](https:\u002F\u002Farxiv.org\u002Fabs\u002F2104.12763)\n\n## 示例脚本\n\n除了上述模型之外，我们还提供了用于在热门多模态任务上训练、微调和评估模型的示例脚本。示例可在 [examples\u002F](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples) 目录下找到，其中包括：\n\n|                  模型                   |     支持的任务     |\n| :--------------------------------------: | :----------------------: |\n|         ALBEF          |      [检索](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Fexamples\u002Falbef\u002FREADME.md#retrieval) \u003Cbr\u002F> [视觉问答](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Fexamples\u002Falbef\u002FREADME.md#visual-question-answering)         |\n|         DDPM           |      [训练与推理](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs\u002Fmnist_training.ipynb)（笔记本）|\n|           FLAVA           |    [预训练](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fflava#launching-and-test-pretraining) \u003Cbr\u002F> [微调](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fflava#finetuning) \u003Cbr\u002F> [零样本](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fflava#coco-zero-shot)|\n|        MDETR         |       [短语定位](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fmdetr#phrase-grounding) \u003Cbr\u002F> [视觉问答](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Fexamples\u002Fmdetr\u002Fvqa_finetune.py#L154)        |\n|             MUGEN             |     [文本到视频检索](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fmugen\u002Fretrieval#mugen-retrieval) \u003Cbr\u002F> [文本到视频生成](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fmugen\u002Fgeneration#text-to-video-generation-with-mugen)                |\n|           Omnivore           |           [预训练](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fomnivore#training) \u003Cbr\u002F> [评估](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples\u002Fomnivore#evaluating-pretrained-weight)           |\n\n## 快速入门\n\n下面给出使用 TorchMultimodal 组件编写简单训练或零样本评估脚本的最小示例。\n\n  \u003Cdetails>\n    \u003Csummary>FLAVA 零样本示例\u003C\u002Fsummary>\n\n  ```python\nimport torch\nfrom PIL import Image\nfrom torchmultimodal.models.flava.model import flava_model\nfrom torchmultimodal.transforms.bert_text_transform import BertTextTransform\nfrom torchmultimodal.transforms.flava_transform import FLAVAImageTransform\n\n# 定义零样本预测的辅助函数\ndef predict(zero_shot_model, image, labels):\n    zero_shot_model.eval()\n    with torch.no_grad():\n        image = image_transform(img)[\"image\"].unsqueeze(0)\n        texts = text_transform(labels)\n        _, image_features = zero_shot_model.encode_image(image, projection=True)\n        _, text_features = zero_shot_model.encode_text(texts, projection=True)\n        scores = image_features @ text_features.t()\n        probs = torch.nn.Softmax(dim=-1)(scores)\n        label = labels[torch.argmax(probs)]\n        print(\n            \"标签概率：\",\n            {labels[i]: probs[:, i] for i in range(len(labels))},\n        )\n        print(f\"预测的标签：{label}\")\n\n\nimage_transform = FLAVAImageTransform(is_train=False)\ntext_transform = BertTextTransform()\nzero_shot_model = flava_model(pretrained=True)\nimg = Image.open(\"my_image.jpg\")  # 替换为您自己的图片\npredict(zero_shot_model, img, [\"狗\", \"猫\", \"房子\"])\n\n# 示例输出：\n# 标签概率： {'狗': tensor([0.80590]), '猫': tensor([0.0971]), '房子': tensor([0.0970])}\n\n# 预测标签：狗\n  ```\n  \u003C\u002Fdetails>\n\n  \u003Cdetails>\n    \u003Csummary>MAE训练示例\u003C\u002Fsummary>\n\n  ```python\nimport torch\nfrom torch.utils.data import DataLoader\nfrom torchmultimodal.models.masked_auto_encoder.model import vit_l_16_image_mae\nfrom torchmultimodal.models.masked_auto_encoder.utils import (\n    CosineWithWarmupAndLRScaling,\n)\nfrom torchmultimodal.modules.losses.reconstruction_loss import ReconstructionLoss\nfrom torchmultimodal.transforms.mae_transform import ImagePretrainTransform\n\nmae_transform = ImagePretrainTransform()\ndataset = MyDatasetClass(transforms=mae_transform)  # 您需要自行定义此数据集\ndataloader = DataLoader(dataset, batch_size=8)\n\n# 实例化模型和损失函数\nmae_model = vit_l_16_image_mae()\nmae_loss = ReconstructionLoss()\n\n# 定义优化器和学习率调度器\noptimizer = torch.optim.AdamW(mae_model.parameters())\nlr_scheduler = CosineWithWarmupAndLRScaling(\n    optimizer, max_iters=1000, warmup_iters=100  # 您需要设置这些参数\n)\n\n# 训练一个epoch\nfor batch in dataloader:\n    model_out = mae_model(batch[\"images\"])\n    loss = mae_loss(model_out.decoder_pred, model_out.label_patches, model_out.mask)\n    loss.backward()\n    optimizer.step()\n    lr_scheduler.step()\n  ```\n  \u003C\u002Fdetails>\n\n## 代码概览\n\n### [torchmultimodal\u002Fdiffusion_labs](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs)\ndiffusion_labs 包含用于构建扩散模型的组件。有关这些组件的更多详细信息，请参阅 [diffusion_labs\u002FREADME.md](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fdiffusion_labs\u002FREADME.md)。\n\n### [torchmultimodal\u002Fmodels](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodels)\n在此目录中可以找到模型类以及特定架构的相关建模代码。例如，[torchmultimodal\u002Fmodels\u002Fblip2](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodels\u002Fblip2) 目录包含 BLIP-2 特有的建模组件。\n\n### [torchmultimodal\u002Fmodules](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules)\n在此目录中可以找到通用的构建模块，可用于组合构建新的架构。其中包括 [层](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers)，如 [码本](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers\u002Fcodebook.py#L31)、[补丁嵌入](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers\u002Fpatch_embedding.py#L26) 或 [Transformer 编码器\u002F解码器](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flayers\u002Ftransformer.py)，[损失函数](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flosses)，如 [带温度的对比损失](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flosses\u002Fcontrastive_loss_with_temperature.py#L121) 或 [重建损失](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Flosses\u002Freconstruction_loss.py#L10)，[编码器](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Fencoders)，如 [ViT](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Fencoders\u002Fvision_transformer.py#L20) 和 [BERT](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Fencoders\u002Fbert_text_encoder.py#L17)，以及 [融合模块](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Ffusions)，如 [Deep Set 融合](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Fmodules\u002Ffusions\u002Fdeepset_fusion.py#L14)。\n\n### [torchmultimodal\u002Ftransforms](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Ftorchmultimodal\u002Ftransforms)\n在此目录中可以找到来自流行模型的常用数据变换，例如 [CLIP](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Ftransforms\u002Fclip_transform.py#L349)、[FLAVA](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Ftransforms\u002Fflava_transform.py#L206) 和 [MAE](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002Ftorchmultimodal\u002Ftransforms\u002Fmae_transform.py#L84)。\n\n## 安装\n\nTorchMultimodal 需要 Python >= 3.8。该库可以安装支持 CUDA 的版本或不支持 CUDA 的版本。\n以下内容假设已安装 conda。\n\n### 先决条件\n1. 创建 conda 环境\n\n    ```\n    conda create -n torch-multimodal python=\\\u003Cpython_version\\>\n    conda activate torch-multimodal\n    ```\n\n2. 安装 PyTorch、Torchvision 和 Torchaudio。请参阅 [PyTorch 文档](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)。\n\n    ```\n    # 使用当前的 CUDA 版本，详见 [这里](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F)\n    # 选择 nightly 版本的 PyTorch，操作系统为 Linux，并使用 conda。选择最新的 CUDA 版本。\n    conda install pytorch torchvision torchaudio pytorch-cuda=\\\u003Ccuda_version\\> -c pytorch-nightly -c nvidia\n\n    # 如果仅需 CPU 版本\n    conda install pytorch torchvision torchaudio cpuonly -c pytorch-nightly\n    ```\n\n### 从二进制文件安装\n适用于 Python 3.8 和 3.9 的 Linux 平台 nightly 二进制文件可以通过 pip wheels 安装。\n目前我们仅通过 [PyPI](https:\u002F\u002Fpypi.org\u002F) 支持 Linux 平台。\n\n```\npython -m pip install torchmultimodal-nightly\n```\n\n### 从源代码编译\n您也可以从我们的源代码编译并运行我们的 [示例](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Ftree\u002Fmain\u002Fexamples)：\n\n```\ngit clone --recursive https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal.git multimodal\ncd multimodal\n\npip install -e .\n```\n对于开发者，请遵循 [开发安装指南](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fblob\u002Fmain\u002FCONTRIBUTING.md#development-installation)。\n\n## 贡献\n我们欢迎社区提出的任何功能请求、错误报告或拉取请求。有关如何参与贡献的信息，请参阅 [CONTRIBUTING](CONTRIBUTING.md) 文件。\n\n## 许可证\nTorchMultimodal 采用 BSD 许可证，详情见 [LICENSE](LICENSE) 文件。","# TorchMultimodal 快速上手指南\n\nTorchMultimodal 是一个基于 PyTorch 的库，旨在大规模训练最先进的多模态多任务模型（包括内容理解和生成模型）。它提供了模块化的构建块、预训练模型类以及复现前沿研究的示例代码。\n\n## 环境准备\n\n在开始之前，请确保您的系统满足以下要求：\n\n*   **操作系统**: Linux (推荐，支持夜间版二进制安装)\n*   **Python 版本**: >= 3.8\n*   **包管理器**: Conda (推荐)\n*   **硬件**: 支持 CUDA 的 GPU (可选，也支持 CPU 模式)\n\n**前置依赖**:\n您需要先安装 PyTorch 生态的基础组件（pytorch, torchvision, torchaudio）。\n\n## 安装步骤\n\n### 1. 创建并激活 Conda 环境\n\n```bash\nconda create -n torch-multimodal python=3.9\nconda activate torch-multimodal\n```\n\n### 2. 安装 PyTorch 基础依赖\n\n根据您的硬件环境选择以下一种方式安装。建议访问 [PyTorch 官网](https:\u002F\u002Fpytorch.org\u002Fget-started\u002Flocally\u002F) 获取最新的 CUDA 版本对应命令。\n\n**选项 A: GPU 版本 (推荐)**\n请将 `\u003Ccuda_version>` 替换为您实际的 CUDA 版本（如 11.8 或 12.1）：\n\n```bash\nconda install pytorch torchvision torchaudio pytorch-cuda=\u003Ccuda_version> -c pytorch-nightly -c nvidia\n```\n\n**选项 B: CPU 仅用版本**\n\n```bash\nconda install pytorch torchvision torchaudio cpuonly -c pytorch-nightly\n```\n\n### 3. 安装 TorchMultimodal\n\n目前主要通过 pip 安装夜间版（nightly）二进制包（支持 Linux Python 3.8\u002F3.9）：\n\n```bash\npip install torchmultimodal-nightly\n```\n\n> **注意**: 如果您在中国大陆地区遇到下载速度慢的问题，建议在 pip 命令后添加国内镜像源参数，例如：\n> `pip install torchmultimodal-nightly -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple`\n\n## 基本使用\n\n以下展示两个最核心的使用场景：使用预训练模型进行零样本推理（Zero-shot）以及构建一个简单的训练循环。\n\n### 场景一：FLAVA 模型零样本图像分类\n\n此示例演示如何加载预训练的 FLAVA 模型，对图像进行零样本分类。\n\n```python\nimport torch\nfrom PIL import Image\nfrom torchmultimodal.models.flava.model import flava_model\nfrom torchmultimodal.transforms.bert_text_transform import BertTextTransform\nfrom torchmultimodal.transforms.flava_transform import FLAVAImageTransform\n\n# 定义零样本预测辅助函数\ndef predict(zero_shot_model, image, labels):\n    zero_shot_model.eval()\n    with torch.no_grad():\n        image = image_transform(img)[\"image\"].unsqueeze(0)\n        texts = text_transform(labels)\n        _, image_features = zero_shot_model.encode_image(image, projection=True)\n        _, text_features = zero_shot_model.encode_text(texts, projection=True)\n        scores = image_features @ text_features.t()\n        probs = torch.nn.Softmax(dim=-1)(scores)\n        label = labels[torch.argmax(probs)]\n        print(\n            \"Label probabilities: \",\n            {labels[i]: probs[:, i] for i in range(len(labels))},\n        )\n        print(f\"Predicted label: {label}\")\n\n\n# 初始化变换器和模型\nimage_transform = FLAVAImageTransform(is_train=False)\ntext_transform = BertTextTransform()\nzero_shot_model = flava_model(pretrained=True)\n\n# 加载图像并运行预测\nimg = Image.open(\"my_image.jpg\")  # 请替换为您的图片路径\npredict(zero_shot_model, img, [\"dog\", \"cat\", \"house\"])\n\n# 示例输出:\n# Label probabilities:  {'dog': tensor([0.80590]), 'cat': tensor([0.0971]), 'house': tensor([0.0970])}\n# Predicted label: dog\n```\n\n### 场景二：MAE 模型训练循环示例\n\n此示例演示如何实例化 MAE 模型、损失函数及优化器，并执行一个基本的训练步。\n\n```python\nimport torch\nfrom torch.utils.data import DataLoader\nfrom torchmultimodal.models.masked_auto_encoder.model import vit_l_16_image_mae\nfrom torchmultimodal.models.masked_auto_encoder.utils import (\n    CosineWithWarmupAndLRScaling,\n)\nfrom torchmultimodal.modules.losses.reconstruction_loss import ReconstructionLoss\nfrom torchmultimodal.transforms.mae_transform import ImagePretrainTransform\n\n# 准备数据\nmae_transform = ImagePretrainTransform()\ndataset = MyDatasetClass(transforms=mae_transform)  # 需用户自定义数据集类\ndataloader = DataLoader(dataset, batch_size=8)\n\n# 实例化模型和损失函数\nmae_model = vit_l_16_image_mae()\nmae_loss = ReconstructionLoss()\n\n# 定义优化器和学习率调度器\noptimizer = torch.optim.AdamW(mae_model.parameters())\nlr_scheduler = CosineWithWarmupAndLRScaling(\n    optimizer, max_iters=1000, warmup_iters=100  # 请根据实际需求设置参数\n)\n\n# 执行单轮训练\nfor batch in dataloader:\n    model_out = mae_model(batch[\"images\"])\n    loss = mae_loss(model_out.decoder_pred, model_out.label_patches, model_out.mask)\n    loss.backward()\n    optimizer.step()\n    lr_scheduler.step()\n```","某电商平台的算法团队正致力于构建一个能同时理解商品图片与用户文字查询的智能搜索系统，以大幅提升购物转化率。\n\n### 没有 multimodal 时\n- **重复造轮子成本高**：工程师需从零复现 ALBEF 或 CLIP 等前沿模型的复杂架构，花费数周时间调试融合层与损失函数，极易出错。\n- **多任务协同困难**：难以在同一框架下高效训练“图文检索”与“视觉问答”等多个任务，往往需要维护多套独立的代码库，导致资源浪费。\n- **基线对齐耗时**：缺乏官方提供的标准化预训练权重和示例脚本，团队难以快速复现论文效果，无法准确评估自研模型的性能差距。\n- **组件兼容性差**：自行拼凑的模块与 PyTorch 生态系统其他组件（如 DataLoader、优化器）配合时常出现接口冲突，排查问题占用大量开发时间。\n\n### 使用 multimodal 后\n- **开箱即用加速研发**：直接调用内置的 ALBEF、BLIP-2 等模块化模型类及预训练权重，将模型搭建时间从数周缩短至几天，让团队专注业务逻辑。\n- **统一架构支持多任务**：利用其可组合的构建块（如融合层、数据集工具），轻松在一个项目中并行训练检索与问答任务，显著降低维护复杂度。\n- **快速确立性能基线**：通过官方提供的标准示例脚本，迅速复现 SOTA 效果作为基准，明确优化方向，大幅缩短实验迭代周期。\n- **生态无缝集成**：基于纯 PyTorch 构建的组件天然兼容现有基础设施，消除了接口适配烦恼，确保大规模训练流程的稳定运行。\n\nmultimodal 通过提供模块化、可复用的前沿多模态模型基座，帮助团队将原本漫长的模型研发周期压缩至极短，从而快速落地高质量的智能搜索服务。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ffacebookresearch_multimodal_a8218012.png","facebookresearch","Meta Research","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ffacebookresearch_449342bd.png","",null,"https:\u002F\u002Fopensource.fb.com","https:\u002F\u002Fgithub.com\u002Ffacebookresearch",[83,87],{"name":84,"color":85,"percentage":86},"Python","#3572A5",98.8,{"name":88,"color":89,"percentage":90},"Jupyter Notebook","#DA5B0B",1.2,1712,165,"2026-03-30T20:43:38","BSD-3-Clause","Linux","可选（支持无 CUDA 的 CPU 模式）；若使用 GPU，需安装对应版本的 pytorch-cuda，具体版本需参考 PyTorch 官方文档选择最新稳定版","未说明",{"notes":99,"python":100,"dependencies":101},"该工具为 Beta 版本。推荐使用 conda 管理环境。安装时需从 pytorch-nightly 渠道获取 PyTorch 及相关组件。目前二进制安装包（pip wheels）仅明确支持 Linux 系统下的 Python 3.8 和 3.9 版本。支持纯 CPU 运行模式。","3.8+",[102,103,104,105],"torch (nightly build)","torchvision","torchaudio","PIL (Pillow)",[14,63,13,62],"2026-03-27T02:49:30.150509","2026-04-06T12:04:03.696562",[110,115,120,125,130,135],{"id":111,"question_zh":112,"answer_zh":113,"source_url":114},18990,"该模型能否用于图像和文本的重复检测（Duplicate Detection）？","可以。虽然损失函数名为 ContrastiveLossWithTemperature 且参数标记为图像和文本，但它实际上接受任意两个嵌入向量并计算对比损失。您可以将其用于图像对、文本对，或者“图像 + 文本”组合对的比较。只要使用相同的编码器提取特征，即可判断输入对是否为语义重复。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fissues\u002F114",{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},18991,"在进行 ImageNet 线性探测（Linear Probing）实验时，应该提取哪一部分图像特征？","应该提取 CLS token 的嵌入向量（cls token embedding）。这是图像编码器最终层的输出，位于多模态编码器之前，用于训练逻辑回归分类器。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fissues\u002F378",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},18992,"在 GPU 上微调 CLIP 模型时遇到\"Expected all tensors to be on the same device\"错误，即使代码中已调用 .to(device)，该如何解决？","这通常是由于环境配置问题（如混合使用 conda 和 pip 导致库版本冲突）引起的。建议尝试以下解决方案：\n1. 重建一个干净的虚拟环境。\n2. 显式使用设备上下文管理器，将代码包裹在 `with torch.cuda.device(0):` 块中，这样可能不再需要手动调用 `.to(device)`。\n3. 尝试切换注意力机制内核，例如启用 flash attention：\n```python\nwith torch.backends.cuda.sdp_kernel(enable_flash=True, enable_mem_efficient=False, enable_math=False):\n    image_embeddings, text_embeddings = model(image, text)\n```","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fissues\u002F525",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},18993,"TorchMultimodal 库中哪个模型适合做多模态多任务实例分割（Instance Segmentation）？","库中的 MDETR 模型最初是为目标检测设计的，但可以像原论文中那样经过微调用于分割任务，它是库中最接近需求的模型。如果主要需求是实例分割，也可以考虑使用专门为此设计的 Segment Anything Model (SAM)，尽管它不在本库中。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fissues\u002F444",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},18994,"微调 FLAVA 全量模型时，如果图像损失（MIM\u002FMMM）没有按预期下降，应该如何调整？","不需要上传完整的训练日志，因为不同数据集的表现差异很大。如果图像损失未下降，建议修改训练器参数以适应特定数据集。例如，在 SNLI 和 VQA V2 数据集上进行微调时，学习率（learning rate）的设置是不同的。请参考论文附录 B.2 节获取针对不同任务的详细超参数设置。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fissues\u002F421",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},18995,"TorchMultimodal 是否计划支持 CoCa 模型？","是的，开发团队已经计划添加对 CoCa 模型的支持，并且相关功能已经在后续的版本更新（如 PR #506）中落地。","https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fmultimodal\u002Fissues\u002F414",[]]