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
---------

* https://github.com/suno-ai/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" 模型是一种专注于处理带有布局信息的文本的预训练模型,可用于各种文档分析和信息提取任务。