Transformer经典模型实战:如何训练一个面向中文的GPT模型(Generative Pretrained Transformer Decode Only Transformer)

scient

scient一个用python实现科学计算相关算法的包,包括自然语言、图像、神经网络、优化算法、机器学习、图计算等模块。

scient源码和编译安装包可以在Python package index获取。

The source code and binary installers for the latest released version are available at the [Python package index].

https://pypi.org/project/scient

可以用pip安装scient

You can install scient like this:

pip install scient

也可以用setup.py安装。

Or in the scient directory, execute:

python setup.py install

scient.neuralnet

神经网络相关算法模块,包括attention、transformer、bert、lstm、resnet、crf、dataset、fit等。

scient.neuralnet.transformer

实现了多个Transformer模型,包括Transformer、T5Transformer、ViTransformer、DecodeTransformer、Encoder、Decoder。

scient.neuralnet.transformer.DecodeTransformer(vocab_size: int, seq_len: int = 512, embed_size: int = 512,
    										   n_head: int = 8, n_layer: int = 6,
    										   **kwargs)

Parameters

  • vocab_size : int
    字典规模.
  • seq_len : int, optional
    序列长度. The default is 512.
  • embed_size : int, optional
    embedding向量长度. The default is 512.
  • n_head : int, optional
    multi_head_attention的head数量. The default is 8.
  • n_layer : int, optional
    编码层数. The default is 6.
  • kwargs : 其它参数,kwargs中的参数将被传递到Encoder层和Decoder层。

Algorithms

GPT全称Generative Pretrained Transformer, 生成式预训练Transformer。
目前各种类型的Transformer可以分为四大架构:编码器-解码器架构(Encode-Decode)、编码器架构(Encode-Only)、因果解码器架构(Decode-Only)、前缀解码器架构(Prefix-Decode)。</

### 常见的 Transformer 模型 #### BERT (Bidirectional Encoder Representations from Transformers) BERT 是一种预训练语言模型,其特点在于双向编码器表示。这意味着该模型可以同时利用左侧和右侧的上下文信息来理解词语的意义[^1]。 ```python from transformers import BertTokenizer, BertModel tokenizer = BertTokenizer.from_pretrained('bert-base-uncased') model = BertModel.from_pretrained('bert-base-uncased') inputs = tokenizer("Hello, my dog is cute", return_tensors="pt") outputs = model(**inputs) ``` #### GPT (Generative Pre-trained Transformer) 系列 GPT 系列模型属于自回归生成模型,能够基于已有的文本片段预测后续可能出现的文字,从而构建出完整的语句。这类模型特别适合用于对话系统、文章创作等领域。典型代表有 GPT-1 到最新的 GPT 版本[^2]。 ```python from transformers import GPT2Tokenizer, GPT2LMHeadModel tokenizer = GPT2Tokenizer.from_pretrained('gpt2') model = GPT2LMHeadModel.from_pretrained('gpt2') input_ids = tokenizer.encode("Once upon a time", return_tensors='pt') output = model.generate(input_ids, max_length=50, num_return_sequences=1) print(tokenizer.decode(output[0], skip_special_tokens=True)) ``` #### T5 (Text-to-Text Transfer Transformer) T5 将各种自然语言处理任务统一转换成文本到文本的形式,通过这种方式简化了不同类型的任务之间的迁移学习过程。它不仅支持多种输入输出格式,而且能够在不同的下游应用之间共享相同的架构设计。 ```python from transformers import T5Tokenizer, T5ForConditionalGeneration tokenizer = T5Tokenizer.from_pretrained('t5-small') model = T5ForConditionalGeneration.from_pretrained('t5-small') input_text = "translate English to German: The house is wonderful." input_ids = tokenizer(input_text, return_tensors="pt").input_ids outputs = model.generate(input_ids) print(tokenizer.decode(outputs[0])) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值