一、BERT和GPT系列的简介
1. BERT(Bidirectional Encoder Representations from Transformers)
- 定义
- BERT是一种基于Transformer架构的预训练语言模型,由谷歌开发。它的特点是采用双向的Transformer来对文本进行编码,能够很好地捕捉词语的上下文信息。
- 应用场景
- 在自然语言处理任务中广泛应用,如文本分类、问答系统、命名实体识别等。例如,在情感分析任务中,BERT可以通过学习大量文本中的情感表达模式,对新的文本进行准确的情感分类。
2. GPT系列(Generative Pretrained Transformer)
- 定义
- GPT系列是由OpenAI开发的一系列基于Transformer架构的语言模型。从最初的GPT到GPT - 2、GPT - 3以及最新的GPT - 4,模型的规模和性能不断提升。GPT系列主要侧重于通过生成式方法来处理自然语言任务。
- 应用场景
- 适用于文本生成、对话系统、翻译等任务。例如,在内容创作领域,GPT系列可以根据给定的提示生成连贯的文章、故事等内容。
二、如何使用BERT和GPT系列
1. 使用BERT
- 安装相关库
- 通常使用Hugging Face的Transformers库来使用BERT。首先需要安装该库:
pip install transformers
- 通常使用Hugging Face的Transformers库来使用BERT。首先需要安装该库:
加载预训练模型和分词器
- 在Python中,可以这样加载BERT模型和对应的分词器:
```python
from transformers import BertTokenizer, BertModel
加载分词器
tokenizer = BertTokenizer.from_pretrained('bert - base - uncased')
加载模型
model = BertModel.from_pretrained('bert - base - uncased')
```- 在Python中,可以这样加载BERT模型和对应的分词器:
- 文本处理
- 例如对一个句子进行编码:
text = "This is a sample sentence." # 对句子进行分词 encoded_text = tokenizer(text, return_tensors='pt') # 将分词后的结果输入模型获取输出 output = model(**encoded_text)
- 例如对一个句子进行编码:
2. 使用GPT系列
- 安装相关库(以GPT - 3为例)
- 如果要使用OpenAI的GPT - 3 API,需要安装openai库并进行API密钥配置:
pip install openai
- 配置API密钥(在代码中或环境变量中设置):
import openai openai.api_key = "YOUR_API_KEY"
- 如果要使用OpenAI的GPT - 3 API,需要安装openai库并进行API密钥配置:
- 调用API进行文本生成
- 例如生成一段文本:
prompt = "Once upon a time" response = openai.Completion.create( engine="text - davinci - 003", prompt=prompt, max_tokens=50 ) generated_text = response.choices[0].text
- 例如生成一段文本:
三、代码示例
1. BERT示例 - 文本分类
import torch
from transformers import BertTokenizer, BertForSequenceClassification
from torch.utils.data import DataLoader, TensorDataset
# 1. 加载分词器和模型
tokenizer = BertTokenizer.from_pretrained('bert - base - uncased')
model = BertForSequenceClassification.from_pretrained('bert - base - uncased', num_labels=2)
# 2. 准备数据(这里简单假设已经有了文本和标签数据)
texts = ["I love this movie", "I hate this book"]
labels = [1, 0]
encoded_texts = tokenizer(texts, padding=True, truncation=True, return_tensors='pt')
input_ids = encoded_texts['input_ids']
attention_masks = encoded_texts['attention_mask']
labels = torch.tensor(labels)
# 3. 创建数据集和数据加载器
dataset = TensorDataset(input_ids, attention_masks, labels)
dataloader = DataLoader(dataset, batch_size=2)
# 4. 训练模型(这里简单演示一个训练步骤)
optimizer = torch.optim.AdamW(model.parameters(), lr=1e - 5)
for batch in dataloader:
input_ids, attention_masks, labels = batch
optimizer.zero_grad()
outputs = model(input_ids, attention_masks=attention_masks, labels=labels)
loss = outputs.loss
loss.backward()
optimizer.step()
2. GPT - 3示例 - 创意写作
import openai
# 设置API密钥
openai.api_key = "YOUR_API_KEY"
# 生成故事
prompt = "In a far - away land"
response = openai.Completion.create(
engine="text - davinci - 003",
prompt=prompt,
max_tokens=100,
temperature=0.7
)
print(response.choices[0].text)