资讯动态

AutoGluon Multimodal (AutoMM) 完全指南:用基础模型三行代码搞定多模态 AutoML

发布时间:2026/9/15 13:30:52 来源:尧图企业网站定制
AutoGluon Multimodal (AutoMM) 完全指南用基础模型三行代码搞定多模态 AutoML【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon导读AutoMMAutoGluon-Multimodal是 AutoGluon 项目中面向多模态场景的 AutoML 引擎它以三行代码为核心设计哲学让开发者无需手动完成数据预处理、模型选择与微调即可将 HuggingFace、TIMM、MMDetection 等模型库中的基础模型Foundation Models适配到自己的领域数据上。本文以 docs/tutorials/multimodal/index.md 为主线结合 MultiModalPredictor 源码 与 默认配置系统梳理 AutoMM 支持的数据类型、任务类型、完整教程体系以及核心 API 与配置细节帮助你快速判断我的多模态任务应该用哪个教程、走哪条技术路线。AutoMM 是什么面向基础模型的多模态 AutoML基础模型Foundation Models在大规模通用数据上预训练已在计算机视觉与自然语言处理等领域展现出强大能力。然而把基础模型真正落地到真实业务场景并非易事数据模态多种多样、可选的基础模型数量庞大、模型体积又相当可观这些因素让集成工作充满挑战。AutoMM 的目标正是打破这些壁垒它大幅削减了数据预处理、模型选择和微调环节中的人工工程与手动干预。借助 AutoMM用户只需三行代码就能把来自主流模型库如 HuggingFace Transformers、TIMM、MMDetection的基础模型适配到自己的领域数据上。该工作对应的论文为AutoGluon-Multimodal (AutoMM): Supercharging Multimodal AutoML with Foundation ModelsZhiqiang Tang 等The International Conference on Automated Machine Learning, 2024。在代码层面AutoMM 的核心入口是MultiModalPredictor类其类文档明确描述了这一设计定位——AutoMM is designed to simplify the fine-tuning of foundation models for downstream applications with just three lines of code见 predictor.py。它支持图像、文本、表格tabular与文档document数据可单独使用也可任意组合支持分类、回归、目标检测、命名实体识别NER、语义匹配与图像分割等任务。支持的模型库、数据类型与任务总览从 constants.py 的常量定义可以清晰地看到 AutoMM 支持的数据列类型与问题类型数据列类型text文本、text_nerNER 文本、numerical数值、categorical类别、image_path图像路径、image_bytearray、image_base64_str、document文档、document_image、document_pdf等。问题类型problem_type在MultiModalPredictor.__init__的参数文档中有完整罗列predictor.py问题类型说明对应教程模块binary/multiclass/classification二分类 / 多分类文本、图像、多模态分类regression回归文本、图像、多模态回归object_detection目标检测Object Detectionner/named_entity_recognition命名实体识别Text / Multimodal NERtext_similarity/image_similarity/image_text_similarity语义匹配Semantic Matchingfeature_extraction特征抽取仅推理Semantic Matching 系列zero_shot_image_classificationCLIP 零样本图像分类Image Predictionfew_shot_classification少样本分类基础模型 SVMAdvanced Topicssemantic_segmentation语义分割Segment AnythingImage Segmentation需要特别说明的是部分问题类型默认加载预训练模型后即可进行零样本推理无需调用.fit()包括object_detection、text_similarity、image_similarity、image_text_similarity、feature_extraction、zero_shot_image_classification。从 predictor.py 可以看出MultiModalPredictor会根据问题类型自动选择对应的 Learner 实现MatchingLearner、ObjectDetectionLearner、NERLearner、FewShotSVMLearner、SemanticSegmentationLearner、BaseLearner。按数据与任务分类的实战教程全景以下是 AutoMM 官方教程的完整分类导览对应 docs/tutorials/multimodal/index.md 的全部导航卡片链接已转换为仓库内相对路径可直接点击阅读对应 Notebook。文本数据分类 / 回归 / NERAutoMM for Text Prediction - Quick Start如何用 AutoMM 训练高质量文本预测模型。教程见 text_prediction/beginner_text.ipynb。AutoMM for Text Prediction - Multilingual Problems如何在非英文数据集上构建模型。教程见 text_prediction/multilingual_text.ipynb。AutoMM for Named Entity Recognition - Quick Start如何使用 AutoMM 做实体抽取。教程见 text_prediction/ner.ipynb。另有中文 NER 示例 text_prediction/chinese_ner.ipynb。在默认配置中文本模型由hf_text组件承载默认 checkpoint 为google/electra-base-discriminator默认 pooling 方式为clsmax_text_len为 512并使用快速Rust 版tokenizermodel/default.yamlNER 任务则使用独立的ner_text组件默认 checkpoint 为bert-base-cased并通过special_tagsX、O完成 BIO 标签体系的建模model/default.yaml。图像数据分类 / 回归AutoMM for Image Classification - Quick Start如何训练图像分类模型。教程见 image_prediction/beginner_image_cls.ipynb。Zero-Shot Image Classification with CLIP如何通过预训练 CLIP 模型在 AutoMM 中启用零样本图像分类。教程见 image_prediction/clip_zeroshot.ipynb。图像骨干由timm_image组件实现默认 checkpoint 为swin_base_patch4_window7_224训练阶段采用resize_shorter_side center_crop trivial_augment数据增强管线图像归一化使用 ImageNet 统计量model/default.yaml。CLIP 零样本能力则由clip组件提供默认 checkpoint 为openai/clip-vit-base-patch32支持图像与文本两种数据类型model/default.yaml。图像数据目标检测Quick Start on a Tiny COCO Format Dataset如何在 COCO 格式数据集上 5 分钟内训练高质量目标检测模型。Prepare COCO2017 Dataset如何准备 COCO2017 数据集。Prepare Pascal VOC Dataset如何准备 Pascal VOC 数据集。Prepare Watercolor Dataset如何准备 Watercolor 数据集。Convert VOC Format Dataset to COCO Format如何将 VOC 格式数据转换为 COCO 格式。Object Detection with DataFrame如何使用pd.DataFrame格式进行目标检测。上述教程的完整入口与数据准备说明见 object_detection/index.md。目标检测模型由mmdet_image组件承载默认 checkpoint 为yolov3_mobilenetv2_8xb24-320-300e_coco支持xyxy/xywh两种 bbox 输出格式model/default.yaml同时仓库还内置了 DINO、Faster R-CNN、YOLOX 等预训练检测配置位于 configs/pretrain/detection。此外examples 目录下还有完整的 COCO/VOC 数据集下载脚本download_coco17.sh、download_voc07.sh与检测训练、评估、推理示例detection_train.py、finetune_coco_format.py。图像数据语义分割AutoMM for Semantic Segmentation - Quick Start如何训练语义分割模型。教程见 image_segmentation/beginner_semantic_seg.ipynb。语义分割由sam组件实现基于 Segment Anything Model默认 checkpoint 为facebook/sam-vit-huge默认冻结mask_decoder.iou_prediction_head与prompt_encoder等层model/default.yaml。文档数据分类 / 回归AutoMM for Scanned Document Classification如何构建扫描文档分类器。教程见 document_prediction/document_classification.ipynb。Classifying PDF Documents with AutoMM如何构建 PDF 文档分类器。教程见 document_prediction/pdf_classification.ipynb。文档模型由document_transformer组件实现默认 checkpoint 为microsoft/layoutlmv3-base这是一种专门针对文档版面理解的基础模型model/default.yaml。文档类型常量DOCUMENT、DOCUMENT_IMAGE、DOCUMENT_PDF定义于 constants.py。图像 / 文本数据语义匹配Text-to-text Semantic Matching - Quick Start文本-文本语义匹配。教程见 semantic_matching/text2text_matching.ipynb。Image-to-Image Semantic Matching - Quick Start图像-图像语义匹配。教程见 semantic_matching/image2image_matching.ipynb。Image-Text Semantic Matching - Quick Start图像-文本语义匹配。教程见 semantic_matching/image_text_matching.ipynb。Zero Shot Image-Text Semantic Matching with AutoMM零样本图像-文本语义匹配。教程见 semantic_matching/zero_shot_img_txt_matching.ipynb。Text Semantic Search with AutoMM如何用语义嵌入提升搜索排序效果。教程见 semantic_matching/text_semantic_search.ipynb。语义匹配任务在 API 层面通过query、response、match_label三个参数配置predictor.pyquery/response分别指定查询列与响应列当不提供标签列时同一行内的 query-response 对被视作正样本对match_label用于指定二分类匹配任务中表示匹配的标签值。匹配任务的配置集中在 configs/matcher/default.yaml。多模态数据分类 / 回归 / NERAutoMM for Text Tabular - Quick Start如何将 AutoMM 应用于混合文本、数值、类别列的多模态数据表。教程见 multimodal_prediction/multimodal_text_tabular.ipynb。AutoMM for Image Text Tabular - Quick Start如何在图像、文本、数值、类别数据上训练模型。教程见 multimodal_prediction/beginner_multimodal.ipynb。AutoMM for Entity Extraction with Text and Image - Quick Start如何训练多模态命名实体识别模型。教程见 multimodal_prediction/multimodal_ner.ipynb。多模态融合是 AutoMM 的核心能力。当使用多个骨干网络时AutoMM 会在其上附加一个晚期融合late-fusion模型MLP 或 Transformer。融合组件在配置文件中定义清晰fusion_mlp默认 128 维隐藏层、leaky_relu 激活、layer_norm 归一化与fusion_transformer默认 3 个 block、8 个 attention head、GEGLU FFN 激活见 model/default.yaml表格侧还有ft_transformer组件支持对类别与数值列做 Transformer 建模model/default.yaml。此外categorical_mlp与numerical_mlp分别负责类别列与数值列的浅层 MLP 编码model/default.yaml。核心 API 深度解析MultiModalPredictorMultiModalPredictor定义于 multimodal/src/autogluon/multimodal/predictor.py是 AutoMM 面向用户的所有功能的统一入口。其构造参数predictor.py如下参数含义默认值 / 说明label要预测的目标列名Noneproblem_type问题类型见上文表格不传时自动推断query/response语义匹配任务中的查询列 / 响应列Nonematch_label语义匹配中表示匹配的标签值Nonepresets质量预设best_quality、high_quality默认、medium_quality另有对应 HPO 版本Noneeval_metric评估指标None时按问题类型自动选择多分类默认accuracy、二分类默认roc_auc、回归默认root_mean_squared_errorNonehyperparameters覆盖默认配置支持字符串 / 字符串列表 / 字典三种写法Nonepath模型与产物保存目录不指定时在工作目录创建AutogluonAutoMM/ag-[TIMESTAMP]Noneverbosity日志详细程度0~42num_classes/classes目标检测的类别数 / 全部类别名Nonepretrained是否使用预训练权重初始化Trueuse_ensemble/ensemble_size/ensemble_mode是否启用集成仅多模态分类/回归任务集成规模与模式one_shot/sequentialFalse/2/one_shot构造完成后MultiModalPredictor的核心方法包括fit(train_data, tuning_dataNone, time_limitNone, hyperparametersNone, column_typesNone, holdout_fracNone, teacher_predictorNone, hyperparameter_tune_kwargsNone, ...)predictor.py训练模型。tuning_data不传时会自动从训练集按holdout_frac划分验证集用于早停与超参优化teacher_predictor用于知识蒸馏hyperparameter_tune_kwargs用于配置 HPOnum_trials、scheduler、searcher。predict(data)/predict_proba(data)预测标签 / 分类概率。predict_proba(as_multiclassFalse)可返回二分类正类概率对应positive_class属性。evaluate(data, metricsNone)predictor.py在给定数据集上评估模型可传入指标名列表不传时仅返回保存的_eval_metric_name对应分数。常用属性path、label、problem_type、eval_metric、total_parameters、trainable_parameters、model_size、class_labels、positive_class等。关于hyperparameters参数的三种写法predictor.py# 写法一空格分隔的字符串 hyperparameters model.hf_text.checkpoint_namegoogle/electra-small-discriminator model.timm_image.checkpoint_nameswin_small_patch4_window7_224 # 写法二字符串列表 hyperparameters [ model.hf_text.checkpoint_namegoogle/electra-small-discriminator, model.timm_image.checkpoint_nameswin_small_patch4_window7_224, ] # 写法三字典 hyperparameters { model.hf_text.checkpoint_name: google/electra-small-discriminator, model.timm_image.checkpoint_name: swin_small_patch4_window7_224, }这些键对应 configs/model/default.yaml 中的配置层级model.组件名.参数从而可以在不改源码的情况下灵活替换骨干网络、调整图像尺寸、切换 pooling 方式等。三行代码实战以 PetFinder 多模态分类为例multimodal-quick-start.ipynb 给出了一个端到端的完整示例使用简化版 PetFinder 数据集预测宠物领养速度二分类数据同时包含图片、文本描述与表格特征。核心流程如下第一步安装并加载数据。通过load_zip下载数据集压缩包用 pandas 读取train.csv与test.csv目标列为AdoptionSpeed。AutoGluon 的多模态 DataFrame 格式要求图片列中每个单元格是单个图片文件的路径字符串因此示例对以;分隔的多图字段取第一张并用path_expander把相对路径转换为绝对路径。第二步三行代码训练。from autogluon.multimodal import MultiModalPredictor predictor MultiModalPredictor(labellabel_col).fit( train_datatrain_data, time_limit120 )在底层fit会自动推断问题类型分类或回归、检测特征模态、从多模态模型池中挑选模型并完成训练若使用多个骨干还会在其上叠加晚期融合模型。第三步预测与评估。predictions predictor.predict(test_data.drop(columnslabel_col)) probs predictor.predict_proba(test_data.drop(columnslabel_col)) scores predictor.evaluate(test_data, metrics[roc_auc])这个示例印证了本文导读中的承诺加载数据之后训练、预测、概率输出与指标评估加起来不超过几行代码。训练配置体系优化器与训练策略AutoMM 的训练配置集中在 configs/optim/default.yaml理解这些参数有助于调优训练效果优化器默认adamw学习率1e-4权重衰减0.001。学习率策略默认lr_choice: layerwise_decay逐层衰减lr_decay: 0.9调度器为cosine_decay余弦退火warmup_steps: 0.1热身比例end_lr: 0。训练轮数max_epochs: 20早停patience: 10val_check_interval: 0.5每半个 epoch 校验一次。梯度处理gradient_clip_val: 1、gradient_clip_algorithm: norm。正则化与损失label_smoothing: 0分类支持focal_lossgamma: 2.0应对类别不平衡top_k与top_k_average_method支持uniform_soup/greedy_soup/best实现模型权重平均。参数高效微调PEFTpeft支持bit_fit仅微调 bias、norm_fit、lora、lora_bias、lora_norm等模式lora配置块中默认仅适配 query/value 注意力权重r: 8、alpha: 8。这是 efficient_finetuning_basic.ipynb 中单卡微调十亿级模型如 FLAN-T5-XL的核心支撑。进阶主题从微调到生产加速原文档的 Advanced Topics 板块提供了 11 个进阶教程覆盖模型训练与部署的完整生命周期对应 advanced_topics/index.md 目录下的 Notebook参数高效微调efficient_finetuning_basic.ipynb —— 组合 IA³、BitFit 与梯度检查点在单 GPU 上微调更大规模的基础模型。超参数优化hyperparameter_optimization.ipynb —— 基于 Ray Tune 的 HPOfit的hyperparameter_tune_kwargs参数。知识蒸馏model_distillation.ipynb —— 通过teacher_predictor参数将教师模型知识迁移给学生模型。持续训练continuous_training.ipynb —— 在已有模型基础上继续训练。自定义配置customization.ipynb —— 深度定制 AutoMM 配置。Presets 预设presets.ipynb —— 理解best_quality/high_quality/medium_quality及对应 HPO 变体。少样本学习few_shot_learning.ipynb —— 基础模型 SVM 的少样本分类方案对应FewShotSVMLearner。类别不平衡focal_loss.ipynb —— 用 Focal Loss 处理类别不平衡。TensorRT 加速推理tensorrt.ipynb —— 用 TensorRT 加速 AutoMM 推理。问题类型与评估指标problem_types_and_metrics.ipynb —— AutoGluon 支持的完整问题类型与评估指标清单。多标签列multiple_label_columns.ipynb —— 多标签列处理。此外多模态集成学习可通过use_ensembleTrue开启由EnsembleLearner实现支持one_shot与sequential两种集成模式predictor.py适合对精度有更高要求的场景。结语与学习路线建议AutoMM 的设计哲学是把数据预处理、模型选择、微调这三件最繁琐的事交给框架让开发者聚焦于业务本身。根据你的任务类型可以按以下路线快速上手纯文本任务分类/回归/NER→ 从 beginner_text.ipynb 开始纯图像任务→ 分类看 beginner_image_cls.ipynb检测看 object_detection/index.md分割看 beginner_semantic_seg.ipynb多模态组合图像文本表格→ 直接阅读 multimodal-quick-start.ipynb 与 beginner_multimodal.ipynb搜索/匹配类业务→ 进入 semantic_matching 系列追求极致精度或受限资源→ 再深入 advanced_topics 的微调、蒸馏、HPO 与 TensorRT 加速。官方评测指标、问题类型与相关实现细节可结合 predictor.py 与 constants.py 源码对照阅读以更准确地把握 AutoMM 的能力边界与配置方式。【免费下载链接】autogluonFast and Accurate ML in 3 Lines of Code项目地址: https://gitcode.com/GitHub_Trending/au/autogluon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价