model¶
Multilingual models¶
XLM¶
xlm-clm-enfr-1024¶
xlm-clm-enfr-1024是一个多语言预训练的语言模型,具有以下特征:
- 基于XLM(Facebook的跨语言预训练语言模型),支持100种语言。
- 预训练使用英语和法语语料,可以处理英语和法语文本。
- 输入为文本序列,输出对应的词向量表示。
- 模型大小为1GB,包含1024个隐层单元。
- 提供了XLMTokenizer用于文本tokenize,以及XLMWithLMHeadModel作为模型实现。
- 可以进行Masked语言建模(MLM)、Next Sentence Prediction(NSP)等下游任务fine-tuning。
- 预训练目标是联合 masked language modeling 和翻译语言建模。
- 采用SentencePiece进行词元化,支持词汇表共享。
- 支持PyTorch框架,可以灵活集成。
- 预训练质量高,是英语和法语领域的通用语言表示模型。
总之,xlm-clm-enfr-1024是一个高质量的跨语言预训练模型,可以作为英法两语区域NLP任务的强大预训练语言模型基线。
示例:
tokenizer = XLMTokenizer.from_pretrained("xlm-clm-enfr-1024")
model = XLMWithLMHeadModel.from_pretrained("xlm-clm-enfr-1024")
XLM with language embeddings:
xlm-mlm-ende-1024 (Masked language modeling, English-German)
xlm-mlm-enfr-1024 (Masked language modeling, English-French)
xlm-mlm-enro-1024 (Masked language modeling, English-Romanian)
xlm-mlm-xnli15-1024 (Masked language modeling, XNLI languages)
xlm-mlm-tlm-xnli15-1024 (Masked language modeling + translation, XNLI languages)
xlm-clm-enfr-1024 (Causal language modeling, English-French)
xlm-clm-ende-1024 (Causal language modeling, English-German)
XLM without language embeddings:
xlm-mlm-17-1280 (Masked language modeling, 17 languages)
xlm-mlm-100-1280 (Masked language modeling, 100 languages)
xlm-mlm-ende-1024¶
xlm-mlm-ende-1024是一个多语言Mask语言模型(MLM),主要功能和特点包括:
- 该模型由Facebook AI研究院在2019年提出,支持100种语言。
- 采用Transformer架构,并在编码器部分进行多语言预训练。
- 预训练目标是masked language modeling (MLM),即预测被遮挡的语言词汇。
- 支持1024个Transformer块,参数量约为570亿。
- 训练数据包含100种语言的维基百科文本数据,总计约250GB。
- 支持跨语言的表示学习,一个模型就可以处理100种语言。
- 通过在大规模多语言数据集上预训练,获得了强大的语言理解能力。
- xlm-mlm-ende-1024是一个通用的多语言语义表示模型,可应用于下游跨语言自然语言处理任务中。
- 开源发布后受到广泛关注,被视为多语言预训练模型的重要进展。
XLM-RoBERTa¶
The following XLM-RoBERTa models can be used for multilingual tasks:
xlm-roberta-base (Masked language modeling, 100 languages)
xlm-roberta-large (Masked language modeling, 100 languages)
M2M100¶
The following M2M100 models can be used for multilingual translation:
facebook/m2m100_418M (Translation)
facebook/m2m100_1.2B (Translation)
facebook/m2m100_418M¶
facebook/m2m100_418M 是一个大型的多语言对多语言机器翻译模型,由 Facebook AI 研究院训练并开源。
主要特点:
采用 Transformer 架构,基于 Fairseq 代码库实现。
训练数据包括 100 种语言对,总计 418 万对句子。覆盖语言非常广泛。
支持直接端到端多语言翻译,不需要中继语言。
性能较强,在 WMT、Flores 翻译测试集上表现良好。
模型大小为 1.1GB (半精度),inference 速度快。
开源且无需许可,可以自由使用在商业产品中。
预训练模型可直接下载使用,简单方便。
支持添加自定义词典来改进翻译质量。
可在 CPU、GPU 等硬件上部署,适合不同场景。
整体来说,这是一个非常强大且实用的多语言机器翻译模型,值得推荐使用。它的开源特性也使其易于集成到各种产品和服务中。
m2m100_418M是Facebook在2022年开源的一个多模态大模型,主要特征是:
- 采用Transformer作为模型架构,包含文本编码器和视觉编码器。
- 文本编码器采用T5结构,视觉编码器采用Vision Transformer结构。
- 模型参数量达到418亿,使用了大量训练数据,包括4000万张图像和1700万段文本。
- 训练目标是进行视觉问答,即根据图片内容来回答自然语言问题。
- 模型支持100种语言,可以进行跨语言的视觉问答。
- 开源的模型包括英文、德文、法文、意大利文、日文、韩文、简体中文、繁体中文等版本。
- m2m100展示了视觉与语言的多模态预训练的强大能力,是一种统一的多语言多模态模型。
- 该模型仍然有进一步提升的空间,后续工作将会在模型规模、训练数据、泛化能力等方面进行改进。
示例:
tokenizer = M2M100Tokenizer.from_pretrained("facebook/m2m100_418M", src_lang="zh")
model = M2M100ForConditionalGeneration.from_pretrained("facebook/m2m100_418M")
chinese_text = "不要插手巫師的事務, 因為他們是微妙的, 很快就會發怒."
encoded_zh = tokenizer(chinese_text, return_tensors="pt")
generated_tokens = model.generate(**encoded_zh, forced_bos_token_id=tokenizer.get_lang_id("en"))
tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
wav2vec2¶
facebook/wav2vec2-base¶
facebook/wav2vec2-base是一个由Facebook AI研究院训练的音频表示模型,属于Wav2Vec2系列。该模型的主要特点是:
- 无监督预训练:在大规模语音数据上通过自监督学习获得语音表示,没有标签数据。
- 基于 transformers:模型结构基于transformers,包含时间和频域的卷积层,多层自注意力机制。
- 输出语音表示:模型可以直接输出语音的表征向量表示,包含丰富的语义信息。
- 小模型大小:相比BERT系列,wav2vec2-base模型大小更小,只有95M参数。
- 应用广泛:预训练表示可 Fine-tune 在各种下游语音任务,包括语音识别、音频分类等。
- 性能优异:在多个公开语音数据集上表现优于传统MFCC特征。
- 易于使用:提供了方便的API,可以快速应用到项目中。
总体来说,wav2vec2-base是一个非常强大的语音表示模型,具有预训练的优势,可以广泛地应用到语音领域的任务中,是音频领域很有价值的预训练模型之一。
示例:
# For Audio Classification
feature_extractor = AutoFeatureExtractor.from_pretrained("facebook/wav2vec2-base")
model = AutoModelForAudioClassification.from_pretrained("facebook/wav2vec2-base")
# For ASR
processor = AutoProcessor.from_pretrained("facebook/wav2vec2-base")
model = AutoModelForCTC.from_pretrained("facebook/wav2vec2-base")
Text to speech¶
suno/bark¶
suno/bark是一个语音合成模型,具有以下特征:
- 基于Facebook的BARK模型,可以生成高质量的英语语音。BARK采用流式设计,可以快速生成语音。
- 预训练模型suno/bark已在LibriTTS英语语料库上进行fine-tune,可以生成自然的英语语音。
- 输入为英文文本,输出为16kHz采样率的单声道语音波形。
- 模型大小仅有87MB,非常轻量级,适合在各种环境下部署。
- 支持PyTorch和TensorFlow两种框架,可以灵活地集成到不同的项目中。
- 提供了AutoProcessor和BarkModel两个类,可以通过简单的API进行语音合成。
- 预训练模型质量较高,合成语音清晰流畅,语调自然。
- Open-source社区维护,后续会继续优化和完善模型。
总体来说,suno/bark是一个非常理想的英语TTS模型选择,可直接用于产品中,同时也为研究人员提供了一个优秀的语音合成基线。
示例:
processor = AutoProcessor.from_pretrained("suno/bark")
model = BarkModel.from_pretrained("suno/bark")
Whisper¶
Whisper 是一个面向文本的非常大规模的神经网络模型,由 OpenAI 于 2022 年 9 月开源。其主要特点包括:
模型规模巨大,包含了 1000 亿参数,是目前公开的最大的参数量模型之一。
基于 Transformers 架构,采用了类似 GPT 的编码器 - 解码器结构。
可以直接对原始语音进行识别转录,也可生成人类语音。
训练数据集包含了 660,000 小时 (合 75 年) 的语音数据,涵盖多种语言。
采用了一些技术来控制生成内容的安全性。
拥有语音识别、语音合成、文字转语音、语音翻译等多种应用潜力。
目前还有一定局限,如音素错误、语法错误、生成可信信息等。
对未来 voice AI 技术产生重大影响,代表语音 AI 发展新方向。
研究引发了对大模型安全性、伦理规范等方面的广泛关注和讨论。
总体来说,Whisper 是一个划时代的大模型,预示着语音 AI 进入新的阶段,但也给社会带来新的挑战。
ImageClassification¶
ViT¶
Google发布的一个VISION Transformer(ViT)模型。
google/vit-base-patch16-224-in21k¶
这是一个在大规模图像数据集ImageNet-21k上预训练的Transformer模型,用于计算机视觉领域。其主要特点如下:
- 基于Transformer:利用自注意力机制Capture全局信息。
- Patch分割:输入图片被分割为16x16的patches,每个patch生成一个向量。
- 大模型规模:Base模型包含86M参数。
- 高精度:top-1准确率可达83%。
- 预训练数据:使用了包含1400万张图像、21741分类的ImageNet-21k数据集。
- 易fine-tune:可以在下游任务中加入新的头部进行迁移Fine-tuning。
- 占用内存小:比 CNN 模型更高效。
这个ViT模型展示了Transformer在计算机视觉领域也可以取得非常强大的效果。可以用来进行图像分类、对象检测等任务。在下游任务中只需要加入新的分类头,就可以进行端到端的Fine-tuning,做出非常高精度的图像分类器。
示例:
checkpoint = "google/vit-base-patch16-224-in21k"
image_processor = AutoImageProcessor.from_pretrained(checkpoint)
model = AutoModelForImageClassification.from_pretrained(
checkpoint,
num_labels=len(labels),
id2label=id2label,
label2id=label2id,
)
SemanticSegmentation¶
nvidia/mit-b0¶
nvidia/mit-b0是一个针对语义分割预训练的Transformer模型,由Nvidia基于Megatron框架训练获得。其关键特征为:
- 模型结构:基于Vision Transformer,使用分割注意力机制。
- 预训练任务:在ADE20K数据集上进行像素级预测进行预训练。
- 模型规模:基础版本mit-b0包含32M参数。
- 输入分辨率:高512,宽512。
- 速度快:基础版本可达到每秒处理8幅图像。
- 性能卓越:在多个语义分割数据集上达到或超越CNN模型的效果。
- 易于fine-tune:可在downstream任务中直接fine-tune。
- 可扩展性强:提供了小型到超大型的系列模型。
nvidia/mit-b0展示了Transformer模型在语义分割领域也可以达到极强的效果,甚至超过现有CNN模型。它可以作为通用的语义分割预训练模型,然后fine-tune到各种下游分割任务中,实现快速高效的语义分割。整体来说,该模型为Transformer在计算机视觉更广阔的应用提供了有力案例。
示例:
checkpoint = "nvidia/mit-b0"
image_processor = AutoImageProcessor.from_pretrained(checkpoint, reduce_labels=True)
model = AutoModelForSemanticSegmentation.from_pretrained(checkpoint, id2label=id2label, label2id=label2id)
ZeroShotObjectDetection¶
Owl-ViT¶
Owl-ViT是一种改进的Vision Transformer (ViT) 模型架构,主要特点是:
- 提出了一种称为本地分组自注意力(Locally Grouped Self-Attention)的机制,对ViT的自注意力机制进行改进,使其对小尺寸图像也更有效。
- 将图像划分成较小的非重叠patch,然后在每个局部邻域内学习patch之间的关系。
- 引入了多尺度结构,不同级别的注意力模块负责不同的视野范围,既保留全局信息,也学习局部细节。
- 通过引入残差连接,缓解了自注意力模块堆叠导致的过拟合问题。
- 相比ViT,Owl-ViT的参数量和计算量更小,训练速度更快。
- 在多个视觉任务上性能优于ViT,尤其在小样本和低分辨率图像上。
总体来说,Owl-ViT对ViT进行了改进,使其更适合计算资源受限而数据不足的实际场景。它比ViT参数量减小60%以上,计算量减小70%以上,但性能优于ViT。Owl-ViT是一个轻量高效的ViT改进版本。
google/owlvit-base-patch32¶
google/owlvit-base-patch32是一个基于Owl-ViT模型架构的图像分类预训练模型,主要特点如下:
- 发布者:Google。
- 模型结构:Owl-ViT-B,采用Vision Transformer的网络架构。
- 输入:32x32大小的图像patch,形状为[3, 32, 32]。
- 预训练数据集:JFT-300M数据集,包含3亿张图像。
- 预训练任务:图像分类,可以区分3000个类别。
- 模型参数量:8600万。
- 应用:适用于迁移学习,可以初始化下游任务的backbone。在图像分类、目标检测等任务上有很好的表现。
- 权重文件大小:336MB。
- 推理速度快,是实际部署的理想选择。
Owl-ViT改进了ViT的局部注意力机制,使其对小尺寸图像也适用。google/owlvit-base-patch32是一个计算成本低但效果强劲的图像分类预训练模型,适合在各种视觉任务中使用。它是一个高效实用的选择。
示例:
checkpoint = "google/owlvit-base-patch32"
model = AutoModelForZeroShotObjectDetection.from_pretrained(checkpoint)
processor = AutoProcessor.from_pretrained(checkpoint)
# pipeline
pipeline(model=checkpoint, task="zero-shot-object-detection")
ZeroShotImageClassification¶
openai/clip-vit-large-patch14¶
示例:
checkpoint = "openai/clip-vit-large-patch14"
model = AutoModelForZeroShotImageClassification.from_pretrained(checkpoint)
processor = AutoProcessor.from_pretrained(checkpoint)
# pipeline
detector = pipeline(model=checkpoint, task="zero-shot-image-classification")
ObjectDetection¶
DETR¶
DETR(End-to-End Object Detection with Transformers)是Facebook AI研究院在2020年提出的使用Transformers进行端到端目标检测的新颖模型。其主要特点包括:
- 整体网络结构端到端,无需NMS后处理
- 利用Transformer直接预测目标类别和坐标
- 训练过程更稳定,从零训练也可收敛
facebook/detr-resnet-50¶
facebook/detr-resnet-50是一个基于DETR架构的目标检测预训练模型。该模型使用ResNet-50作为Backbone,在COCO数据集上预训练,主要参数:
- Backbone: ResNet-50
- Transformer Encoder包含6层
- 80类对象检测
- 输入图像尺寸为800
facebook/detr-resnet-50展示了Transformer模型在目标检测任务上的有效性,端到端 learns 到了检测的能力。效果竞争力强,是目标检测领域的重要低设计模型之一。
facebook/detr-resnet-50是一个基于transformers的目标检测模型,其应用场景主要包括:
1. 通用目标检测:
该模型在COCO等通用目标检测数据集上效果优异,可以应用到需要检测日常物体的各种场景中,如视频监控、自动驾驶、图像搜索等。
2. 特定目标检测:
模型可以进行fine-tuning,适应特定目标检测任务,如质检、医疗等领域的特定物体检测。
3. 小数据集学习:
相比传统方法,DETR对数据量要求不高,适合小数据集的目标检测任务。
4. 端到端学习:
DETR通过端到端学习预测目标框,无需后处理,使得部署简单。适用于对系统流程敏感的应用。
5. 强化学习:
DETR的学习过程稳定,适合和强化学习算法相结合,实现模仿学习等功能。
6. 前沿研究:
DETR开辟了transformer在目标检测领域的新方向,可以进行各种改进的学术研究。
总之,facebook/detr-resnet-50在多种实际目标检测应用中都展示了较强的泛化能力,是目前较为先进的检测模型之一。其端到端学习方式也启发了后续一系列detection transformer的提出。
示例:
checkpoint = "facebook/detr-resnet-50"
image_processor = AutoImageProcessor.from_pretrained(checkpoint)
model = AutoModelForObjectDetection.from_pretrained(
checkpoint,
id2label=id2label,
label2id=label2id,
ignore_mismatched_sizes=True,
)
vinvino02/glpn-nyu¶
vinvino02/glpn-nyu是一个针对深度估计(monocular depth estimation)任务进行预训练的模型,主要特点如下:
- 该模型基于GLPN架构,通过encoder-decoder结构进行单眼图像深度预测。
- 数据集方面,该模型是在NYU Depth V2数据集上预训练的,这是一个包含各种室内场景的RGB-D数据集。
- 输入是标准分辨率的RGB图像,输出是与输入分辨率相同的深度图。
- 模型主要组件包括:ResNet50作为encoder,U-Net作为decoder,还使用了红外线辅助训练。
- 在NYU Depth V2测试集上可以达到leading performance,mean relative error为0.131。
- 相比其他深度学习方法,该模型可以更好地学习纹理细节,recover更丰富的场景结构信息。
- 预训练模型大小约为47MB,可以快速加载使用或在自定义数据集上fine-tune。
- 可通过PyTorch Hub快速加载使用。
总而言之,vinvino02/glpn-nyu是一个轻量而高效的深度估计预训练模型,尤其适合在室内场景中进行单眼深度预测或相关下游任务的fine-tuning,值得尝试使用。
示例:
checkpoint = "vinvino02/glpn-nyu"
image_processor = AutoImageProcessor.from_pretrained(checkpoint)
model = AutoModelForDepthEstimation.from_pretrained(checkpoint)
# pipeline
depth_estimator = pipeline("depth-estimation", model=checkpoint)
microsoft/git-base¶
示例:
checkpoint = "microsoft/git-base"
processor = AutoProcessor.from_pretrained(checkpoint)
model = AutoModelForCausalLM.from_pretrained(checkpoint)
VideoMAE¶
MCG-NJU/videomae-base¶
MCG-NJU/videomae-base是一个基于VideoMAE的视频分类预训练模型。VideoMAE是由MCG-NJU团队在2022年提出的用于视频理解的MASKED AUTOENCODER(MAE)模型。其特点是:
- 基于MAE框架,使用MASKING策略进行视频预训练。
- 输入是视频序列的打散帧(Shuffled Tokens)。
- 编码器采用TimeSformer结构。
- 可以在各类视频理解任务中进行微调使用。
- 先进的视频表示学习能力。
MCG-NJU/videomae-base是在大规模视频数据上预训练得到的VideoMAE基础模型,主要参数:
- TimeSformer编码器包含21个阶段,107M参数。
- 在8900万视频上预训练,总时长超过9000小时。
- 预训练任务是预测视频帧顺序。
该模型展示了Transformer模型在视频领域的强大建模能力。 fine-tune后效果显著,特别是在小数据集上的低样本学习。是近期较为先进的视频理解预训练模型之一。
MULTIMODAL¶
microsoft/layoutlmv2-base-uncased¶
模型 “microsoft/layoutlmv2-base-uncased” 是由微软开发的一种预训练语言模型,属于 LayoutLMv2 模型系列。这个模型的主要目标是处理文档布局和文本信息的结合,以便更好地支持文档分析、信息提取和相关任务。
与传统的自然语言处理模型不同,LayoutLMv2 关注的是将文本与其在页面中的布局信息相结合,从而使模型能够更好地理解和处理具有多个文本区域、表格、图像和其他排版元素的文档。这对于诸如表格数据提取、文档分类、命名实体识别等任务非常有用。
“microsoft/layoutlmv2-base-uncased” 模型是一个预训练模型,使用了无大小写区分的文本(uncased text)作为输入。这意味着它对于大小写不敏感,能够处理大小写不同的文本。通过预训练,模型学会了从文本和布局信息中抽取有关上下文、语义和结构的特征。
使用这个预训练模型,您可以通过微调(fine-tuning)适应特定的任务,如文本分类、命名实体识别、表格数据提取等。模型的预训练能力使其能够在不同的文档分析任务中表现出色,因为它已经学会了从文本和布局信息中获取有价值的信息。
总之,”microsoft/layoutlmv2-base-uncased” 模型是一种专注于处理带有布局信息的文本的预训练模型,可用于各种文档分析和信息提取任务。