Transformers 能做什么
Transformers是一个用于自然语言处理(NLP)、计算机视觉和音频和语音处理任务的预训练模型库。该库不仅包含Transformer模型,还包括用于计算机视觉任务的现代卷积网络等非Transformer模型。如果您看看今天最受欢迎的一些消费产品,比如智能手机、应用程序和电视,很可能背后都有某种深度学习技术的支持。
自然语言处理到Transformer的演变历程
自然语言处理(NLP)的发展经历了多个重要的阶段,直到最终演变成如今广泛使用的Transformer模型。下面是这个演变过程的概述:
- 规则基础时代(1950s - 1980s)
- 早期实验:最初的尝试包括简单的机器翻译和语言模型,这些都基于规则和语法。
- 主要挑战:早期方法依赖于复杂、难以维护的规则系统,且难以处理自然语言的多样性和复杂性。
- 统计方法时代(1980s - 2010s)
- 统计模型的兴起:随着计算机技术的进步,统计方法开始流行,例如隐马尔可夫模型(HMM)和条件随机场(CRF)。
- 机器学习的应用:特别是在2000年代,机器学习,特别是基于特征的模型,如支持向量机(SVM),开始用于自然语言处理。
- 词袋模型:这种模型不考虑词语之间的顺序,将文本视为其词语内容的集合。
- 深度学习与词嵌入(2010s)
- 词嵌入技术:Word2Vec、GloVe等模型的出现使得单词可以转换为有意义的向量表示。
- 循环神经网络(RNN)和LSTM:用于处理序列数据,如文本,可以捕捉时间序列信息。
- 注意力机制与Transformer(2017年以后)
- 注意力机制:注意力机制的提出,允许模型在处理一个单词时,动态地聚焦于句子中的其他部分。
- Transformer模型的出现:2017年,Google的“Attention is All You Need”论文提出了Transformer模型,它完全基于注意力机制,不使用传统的RNN结构。
- 性能突破:Transformer模型在各种NLP任务上显示出卓越的性能,特别是在翻译、文本生成、摘要等方面。
- 预训练语言模型(2018年以后)
- BERT和GPT系列:Transformer的进一步发展产生了BERT、GPT等预训练语言模型,它们在大量文本数据上预训练,然后可以微调以适应特定的NLP任务。
- 更强大的模型:这些模型通过处理大量数据,学会了丰富的语言特征,能够更好地理解和生成自然语言。
这个过程展示了从基于规则的系统到统计方法,再到深度学习和最终的Transformer模型的逐步演进。Transformer的创新在于其能力处理长距离依赖关系,以及高效地在大规模数据集上进行训练,使其成为当今自然语言处理的核心技术。
transfomer实现分词
#从transfomer导入bert模型的分词器
from transformers import BertTokenizer
#加载预训练好的分词器
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
text = "i love you!"
tokenizer(text)
# {'input_ids': [101, 1045, 2293, 2017, 999, 102], 'token_type_ids': [0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1]}
-
input_ids:每个单词对应BERT词汇表中的token
- 数字101和102分别代表特殊2个符号【CLS】用于句子的开始,【SEP】用于句子或者段落的结束
-
token_type_ids,默认通常全为0,如果要处理2个句子输入,可能会将第一句的token对应为0,第二句对应为1
-
attention_mask:注意力掩码,用于考虑哪些token应该被注意力机制考虑,哪些不应该。