ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何 5 分钟上手微软 UniLM:跨任务、跨语言、跨模态的大规模自监督预训练工具箱完整指南

如何 5 分钟上手微软 UniLM:跨任务、跨语言、跨模态的大规模自监督预训练工具箱完整指南 如何 5 分钟上手微软 UniLM跨任务、跨语言、跨模态的大规模自监督预训练工具箱完整指南【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm你是否还在为做文本一个模型、做文档又一个模型、做语音还得再找一套而焦头烂额是否面对几十个预训练模型却不知该从哪个下手UniLMunilm 仓库正是微软为这个问题给出的答案一个横跨语言理解与生成、文档 AI、语音、多模态的大规模自监督预训练模型集合全部官方 PyTorch 实现 预训练权重开箱即用。读完本文你将获得1 张选型地图看懂 30 个子模型各自能干什么1 条 5 分钟跑通流程从 clone 到第一个微调命令4 个实战场景文本摘要、文档理解、全栈语音、多语言向量检索5 个高频坑点附官方 FAQ 的避坑解法先搞清楚UniLM 不是单个模型而是一个模型超市UniLM 仓库的核心定位写在项目描述里Large-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities跨任务、语言、模态的大规模自监督预训练。它把微软 NLP 团队数年的预训练研究浓缩在一个 monorepo 里语言模型、多语言模型、视觉 BEiT 系列、文档 AI、OCR、语音 WavLM/BEATs、多模态 Kosmos 系列……全部带论文出处NeurIPS / ICML / ACL / AAAI且多数预训练权重可直接下载。对新手而言最大的价值是不用再在十几个仓库之间跳来跳去一个 clone 就能逛完整个预训练模型货架。LayoutLMv3 是仓库里文档方向的旗舰文本、布局、图像三模态统一掩码预训练一个模型通吃表单理解、票据识别、文档分类按任务快速选目录不知道看哪个按你的任务对号入座即可你的任务该看哪个子目录一句话说明文本摘要 / 问答生成seq2sequnilm/、unilm-v1/、s2s-ft/UniLM v1/v2 统一理解生成预训练的原始代码与微调工具文档理解表单、票据、PDFlayoutlmv3/、layoutlmv2/文本 布局 图像多模态文档基础模型OCR 文字识别trocr/手写/印刷体识别SROIE F1 最高 96.6语音识别 / 说话人任务wavlm/94k 小时数据预训练SUPERB 榜单 SOTA音频分类 / 声学 tokenbeats/声学 tokenizer 自监督音频预训练文本向量 / 跨语言检索e5/弱监督对比预训练的文本嵌入模型100 语言翻译 / 跨语言deltalm/、infoxlm/DeltaLM 拿过 WMT21 百语翻译第一名图文多模态看图识字kosmos-2.5/、beit3/多模态识文大模型与通用多模态基础模型一键部署clone 仓库并配好环境仓库克隆下来后每个子目录是独立可运行的项目各自带 README 和依赖文件git clone https://gitcode.com/GitHub_Trending/un/unilm cd unilm/e5 pip install -r requirements.txt这里以 E5文本嵌入为例因为它依赖最轻、见效最快。其它子目录同理例如文档方向 layoutlmv3/README.md 要求 Python 3.7 PyTorch 1.10 detectron2语音方向 wavlm/ 只需能加载.pt检查点的 PyTorch 环境即可。跑通第一个 Demo用 s2s-ft 微调摘要模型想要体感预训练到底有什么用最直接的方式是看UniLM 微调在低资源下的表现——只用 1 万条 Gigaword 训练样本UniLM 的 ROUGE-L 就有 31.54而同等规模的裸 Transformer 只有 10.42数据来自 unilm-v1/README.md。s2s-ft是配套的 seq2seq 微调工具箱流程只有 3 步准备数据每行一个 JSONsrc是输入、tgt是目标文本代码会自动识别原始文本或已分词两种格式启动微调一条命令拉起分布式训练推荐 2~4 张 GPU显存不够就加梯度累积解码评估换--do_predict跑 beam search 生成。关键命令长这样完整参数见 s2s-ft/README.mdpython -m torch.distributed.launch --nproc_per_node4 run_seq2seq.py \ --train_file ${TRAIN_FILE} --output_dir ${OUTPUT_DIR} \ --model_type unilm --model_name_or_path unilm1.2-base-uncased \ --max_source_seq_length 464 --max_target_seq_length 48 \ --per_gpu_train_batch_size 16 --learning_rate 7e-5新手建议直接挑unilm1.2-base-uncased110M 参数起步单卡可跑追求上限再换 340M 的 large 版本。实战场景一文档 AI——让模型看懂表单和票据做 Document AI 的新手最常见的坑是文本模型和视觉模型各练各的、结果对不齐。LayoutLMv3 的解法是在预训练阶段就把文本掩码 图像掩码 词-图块对齐三个目标统一起来微调时用--segment_level_layout 1 --visual_embed 1打开布局与视觉通道即可表单理解FUNSDlarge 版 F1 达0.9215版面分析PubLayNet整体精度95.1表格类 97.9中文场景另有 base-chinese 版本XFUND 中文表单 F10.9202训练脚本在 layoutlmv3/examples/官方甚至提供了微调好的 checkpoint 日志可直接对照。搭配 trocr/ 的 OCR 模型手写体 IAM CER 最低 2.89一套仓库就能搭出先识别文字、再理解结构的完整文档流水线。实战场景二全栈语音——WavLM 一个模型吃透 4 类任务语音方向的主力是 WavLM在 94k 小时公开音频上做自监督预训练靠门控相对位置编码 说话人混叠两个设计同时保住说了什么和谁在说两条信息在 30 项 SUPERB 基准上刷出 SOTA。选型看这张表来自 wavlm/README.md模型预训练数据适用场景WavLM Base960 小时 LibriSpeech轻量验证、快速实验WavLM Base94k 小时性能与速度的平衡点WavLM Large94k 小时识别、分离、说话人验证等高精度需求加载并提取特征的代码极简import torch from WavLM import WavLM, WavLMConfig checkpoint torch.load(/path/to/wavlm.pt) model WavLM(WavLMConfig(checkpoint[cfg])) model.load_state_dict(checkpoint[model]); model.eval() wav_16k torch.randn(1, 10000) # 16kHz 单通道 wav_16k torch.nn.functional.layer_norm(wav_16k, wav_16k.shape) rep model.extract_features(wav_16k)[0] # 最后一层表征效果上Large 版在说话人验证Vox1-HEER 降到 0.984、语音分离LibriCSS OV40SISDR 达 8.5均明显压过 HuBERT、UniSpeech-SAT 等同期模型官方同时提供 HuggingFace 与 s3prl 两种集成方式做下游微调时建议抽取各层表征做加权求和比只用最后一层更稳。实战场景三多语言向量检索——E5 嵌入模型做 RAG、去重、跨语言检索需要的是把文本变成向量的嵌入模型。E5 用弱监督对比预训练英文和多语言版本都有且 v2 系列还引入了 LLM 增强的指令式微调模型BEIR 得分层数维度e5-small-v249.012384e5-base-v250.312768e5-large-v250.6241024multilingual-e5-large-instruct52.5241024e5-mistral-7b-instruct56.9324096仓库自带 MTEB/BEIR 评估脚本一条命令即可复现bash scripts/eval_mteb_beir.sh intfloat/e5-small-v2两个实用提醒多语言模型加--multilingual后缀e5-mistral-7b-instruct需要transformers4.34且 BEIR 全量评估因语料编码耗时可能长达数天详见 e5/README.md。进阶彩蛋看图识字的多模态 Kosmos-2.5如果你要的是给一张 PPT 截图直接吐出 Markdown这种能力可以看 kosmos-2.5/它面向文本密集图像PPT、PDF、屏幕截图、手写笔记做 OCR 版面还原。仓库assets/cases/下保留了输入输出对照样例下面的输出展示了机器对一张 PPT 图像的识别结果表格结构、公式、中英混排基本都保住了推理入口是 kosmos-2.5/inference.py用--do_ocr或--do_md二选一指定任务再配上 checkpoint 即可跑。调优与避坑新手最常踩的 5 个坑UniLM v1 代码依赖很老混合精度锁定了旧版 NVIDIA/apex仅支持 PyTorch 1.2官方推荐用 Docker 镜像pytorch 1.1.0 cuda 10.0跑别在最新 PyTorch 里硬装。显存 OOM微调时优先加--gradient_accumulation_steps而不是硬降 batch size能保住训练稳定性。想在 CPU 上推理去掉--fp16 --amp参数并卸载 apex 包即可官方 FAQ 有明确说明。评估脚本环境差异UniLM v1 的 QG 评估脚本是 Python 2 时代写的依赖 nqg-evalcap而摘要任务的eval.py支持--perl开关切换 ROUGE 版本两者数值会有细微出入属正常现象。模型下载 403TrOCR 等子目录的 Azure 链接若失效官方在 README 里给了统一追加的签名后缀复制拼到 URL 后面即可。写在最后UniLM 仓库的真正价值不在于某单个模型的极限性能而在于它把预训练 → 微调 → 评估这条完整链路按模态拆成了一个个可独立上手、又可互相复用的小项目语言、文档、语音、多模态一条命令 clone按任务选目录就能开工。对个人开发者它是极佳的预训练方法论教科书对工程团队它是现成的模型货架与 baseline 来源。随着 BEiT-3、Kosmos-2.5 这类大一统多模态模型不断迭代跨模态联合预训练只会更通用——这个仓库也大概率会继续成为观察微软基础模型演进的第一窗口。如果本文帮你看清了 UniLM 的全貌请点赞 收藏 关注三连支持下期预告手把手带你用 LayoutLMv3 微调一个中文表单理解模型从数据准备到上线评估。【免费下载链接】unilmLarge-scale Self-supervised Pre-training Across Tasks, Languages, and Modalities项目地址: https://gitcode.com/GitHub_Trending/un/unilm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表