Albert Xxlarge V2
ALBERT XXLarge v2是基于掩码语言建模目标预训练的大型语言模型,采用参数共享的Transformer架构,具有12层重复结构和2.23亿参数。
下载量 19.79k
发布时间 : 3/2/2022
模型简介
该模型是ALBERT系列中的最大版本,通过共享层参数减少内存占用,在多项NLP任务中表现优异。主要用于文本特征提取和下游任务微调。
模型特点
参数共享架构
通过共享所有Transformer层的参数,显著减少模型内存占用
双目标预训练
同时使用掩码语言建模(MLM)和句子顺序预测(SOP)进行预训练
大规模预训练数据
使用BookCorpus和英文维基百科进行训练,覆盖广泛文本类型
版本改进
v2版本通过调整dropout率和延长训练时间,性能优于v1版本
模型能力
文本特征提取
掩码语言预测
句子顺序判断
下游任务微调
使用案例
自然语言理解
文本分类
可用于情感分析、主题分类等任务
在SST-2情感分析任务中达到96.8%准确率
问答系统
用于构建开放域问答系统
在SQuAD2.0问答任务中达到89.8/86.9的EM/F1分数
语言模型研究
语言表示学习
研究参数共享架构对语言表示的影响
🚀 ALBERT XXLarge v2
ALBERT XXLarge v2 是一个基于英文语料库,采用掩码语言模型(MLM)目标进行预训练的模型。它能够学习英文语言的内部表示,可用于提取对下游任务有用的特征。
🚀 快速开始
你可以直接使用此模型进行掩码语言建模或下一句预测,但它主要用于在下游任务上进行微调。可访问 模型中心 查找针对你感兴趣任务的微调版本。
✨ 主要特性
- 双向表示学习:通过掩码语言建模(MLM),模型能够学习句子的双向表示。
- 句子顺序预测:使用基于预测两个连续文本片段顺序的预训练损失。
- 参数共享:在 Transformer 中共享层,减少内存占用。
- 版本优化:版本 2 由于不同的丢弃率、额外的训练数据和更长的训练时间,在几乎所有下游任务中都有更好的表现。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
基础用法
你可以使用管道直接进行掩码语言建模:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='albert-xxlarge-v2')
>>> unmasker("Hello I'm a [MASK] model.")
[
{
"sequence":"[CLS] hello i'm a modeling model.[SEP]",
"score":0.05816134437918663,
"token":12807,
"token_str":"â–modeling"
},
{
"sequence":"[CLS] hello i'm a modelling model.[SEP]",
"score":0.03748830780386925,
"token":23089,
"token_str":"â–modelling"
},
{
"sequence":"[CLS] hello i'm a model model.[SEP]",
"score":0.033725276589393616,
"token":1061,
"token_str":"â–model"
},
{
"sequence":"[CLS] hello i'm a runway model.[SEP]",
"score":0.017313428223133087,
"token":8014,
"token_str":"â–runway"
},
{
"sequence":"[CLS] hello i'm a lingerie model.[SEP]",
"score":0.014405295252799988,
"token":29104,
"token_str":"â–lingerie"
}
]
高级用法
以下是在 PyTorch 中使用此模型获取给定文本特征的方法:
from transformers import AlbertTokenizer, AlbertModel
tokenizer = AlbertTokenizer.from_pretrained('albert-xxlarge-v2')
model = AlbertModel.from_pretrained("albert-xxlarge-v2")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在 TensorFlow 中的使用方法:
from transformers import AlbertTokenizer, TFAlbertModel
tokenizer = AlbertTokenizer.from_pretrained('albert-xxlarge-v2')
model = TFAlbertModel.from_pretrained("albert-xxlarge-v2")
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 详细文档
模型描述
ALBERT 是一个基于自监督方式在大量英文数据语料库上进行预训练的 Transformer 模型。它通过自动从文本中生成输入和标签的过程进行预训练,主要有两个目标:
- 掩码语言建模(MLM):随机掩盖句子中 15% 的单词,然后让模型预测这些被掩盖的单词,从而学习句子的双向表示。
- 句子顺序预测(SOP):基于预测两个连续文本片段的顺序进行预训练。
ALBERT 的特殊之处在于它在 Transformer 中共享层,所有层具有相同的权重,这使得内存占用较小,但计算成本与具有相同隐藏层数的 BERT 架构相似。
此模型具有以下配置:
属性 | 详情 |
---|---|
层数 | 12 个重复层 |
嵌入维度 | 128 |
隐藏维度 | 4096 |
注意力头数 | 64 |
参数数量 | 2.23 亿 |
预期用途和局限性
该模型主要用于需要使用整个句子(可能被掩码)进行决策的任务,如序列分类、标记分类或问答。对于文本生成等任务,建议使用 GPT2 等模型。
局限性和偏差
即使该模型使用的训练数据相对中立,但它仍可能存在有偏差的预测。例如:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='albert-xxlarge-v2')
>>> unmasker("The man worked as a [MASK].")
[
{
"sequence":"[CLS] the man worked as a chauffeur.[SEP]",
"score":0.029577180743217468,
"token":28744,
"token_str":"â–chauffeur"
},
{
"sequence":"[CLS] the man worked as a janitor.[SEP]",
"score":0.028865724802017212,
"token":29477,
"token_str":"â–janitor"
},
{
"sequence":"[CLS] the man worked as a shoemaker.[SEP]",
"score":0.02581118606030941,
"token":29024,
"token_str":"â–shoemaker"
},
{
"sequence":"[CLS] the man worked as a blacksmith.[SEP]",
"score":0.01849772222340107,
"token":21238,
"token_str":"â–blacksmith"
},
{
"sequence":"[CLS] the man worked as a lawyer.[SEP]",
"score":0.01820771023631096,
"token":3672,
"token_str":"â–lawyer"
}
]
>>> unmasker("The woman worked as a [MASK].")
[
{
"sequence":"[CLS] the woman worked as a receptionist.[SEP]",
"score":0.04604868218302727,
"token":25331,
"token_str":"â–receptionist"
},
{
"sequence":"[CLS] the woman worked as a janitor.[SEP]",
"score":0.028220869600772858,
"token":29477,
"token_str":"â–janitor"
},
{
"sequence":"[CLS] the woman worked as a paramedic.[SEP]",
"score":0.0261906236410141,
"token":23386,
"token_str":"â–paramedic"
},
{
"sequence":"[CLS] the woman worked as a chauffeur.[SEP]",
"score":0.024797942489385605,
"token":28744,
"token_str":"â–chauffeur"
},
{
"sequence":"[CLS] the woman worked as a waitress.[SEP]",
"score":0.024124596267938614,
"token":13678,
"token_str":"â–waitress"
}
]
这种偏差也会影响该模型的所有微调版本。
训练数据
ALBERT 模型在 BookCorpus 和 英文维基百科(不包括列表、表格和标题)上进行预训练。
训练过程
预处理
文本先转换为小写,然后使用 SentencePiece 进行分词,词汇表大小为 30,000。模型的输入形式如下:
[CLS] 句子 A [SEP] 句子 B [SEP]
训练
ALBERT 的训练过程遵循 BERT 的设置。每个句子的掩码过程细节如下:
- 15% 的标记被掩码。
- 80% 的情况下,被掩码的标记被
[MASK]
替换。 - 10% 的情况下,被掩码的标记被随机标记替换。
- 10% 的情况下,被掩码的标记保持不变。
评估结果
在下游任务上进行微调时,ALBERT 模型取得了以下结果:
平均 | SQuAD1.1 | SQuAD2.0 | MNLI | SST - 2 | RACE | |
---|---|---|---|---|---|---|
V2 | ||||||
ALBERT - base | 82.3 | 90.2/83.2 | 82.1/79.3 | 84.6 | 92.9 | 66.8 |
ALBERT - large | 85.7 | 91.8/85.2 | 84.9/81.8 | 86.5 | 94.9 | 75.2 |
ALBERT - xlarge | 87.9 | 92.9/86.4 | 87.9/84.1 | 87.9 | 95.4 | 80.7 |
ALBERT - xxlarge | 90.9 | 94.6/89.1 | 89.8/86.9 | 90.6 | 96.8 | 86.8 |
V1 | ||||||
ALBERT - base | 80.1 | 89.3/82.3 | 80.0/77.1 | 81.6 | 90.3 | 64.0 |
ALBERT - large | 82.4 | 90.6/83.9 | 82.3/79.4 | 83.5 | 91.7 | 68.5 |
ALBERT - xlarge | 85.5 | 92.5/86.1 | 86.1/83.1 | 86.4 | 92.4 | 74.8 |
ALBERT - xxlarge | 91.0 | 94.8/89.3 | 90.2/87.4 | 90.8 | 96.9 | 86.5 |
🔧 技术细节
文档未提及技术实现细节,故跳过此章节。
📄 许可证
本项目采用 Apache - 2.0 许可证。

Phi 2 GGUF
其他
Phi-2是微软开发的一个小型但强大的语言模型,具有27亿参数,专注于高效推理和高质量文本生成。
大型语言模型 支持多种语言
P
TheBloke
41.5M
205
Roberta Large
MIT
基于掩码语言建模目标预训练的大型英语语言模型,采用改进的BERT训练方法
大型语言模型 英语
R
FacebookAI
19.4M
212
Distilbert Base Uncased
Apache-2.0
DistilBERT是BERT基础模型的蒸馏版本,在保持相近性能的同时更轻量高效,适用于序列分类、标记分类等自然语言处理任务。
大型语言模型 英语
D
distilbert
11.1M
669
Llama 3.1 8B Instruct GGUF
Meta Llama 3.1 8B Instruct 是一个多语言大语言模型,针对多语言对话用例进行了优化,在常见的行业基准测试中表现优异。
大型语言模型 英语
L
modularai
9.7M
4
Xlm Roberta Base
MIT
XLM-RoBERTa是基于100种语言的2.5TB过滤CommonCrawl数据预训练的多语言模型,采用掩码语言建模目标进行训练。
大型语言模型 支持多种语言
X
FacebookAI
9.6M
664
Roberta Base
MIT
基于Transformer架构的英语预训练模型,通过掩码语言建模目标在海量文本上训练,支持文本特征提取和下游任务微调
大型语言模型 英语
R
FacebookAI
9.3M
488
Opt 125m
其他
OPT是由Meta AI发布的开放预训练Transformer语言模型套件,参数量从1.25亿到1750亿,旨在对标GPT-3系列性能,同时促进大规模语言模型的开放研究。
大型语言模型 英语
O
facebook
6.3M
198
1
基于transformers库的预训练模型,适用于多种NLP任务
大型语言模型
Transformers

1
unslothai
6.2M
1
Llama 3.1 8B Instruct
Llama 3.1是Meta推出的多语言大语言模型系列,包含8B、70B和405B参数规模,支持8种语言和代码生成,优化了多语言对话场景。
大型语言模型
Transformers 支持多种语言

L
meta-llama
5.7M
3,898
T5 Base
Apache-2.0
T5基础版是由Google开发的文本到文本转换Transformer模型,参数规模2.2亿,支持多语言NLP任务。
大型语言模型 支持多种语言
T
google-t5
5.4M
702
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98