BERT

简介: 【11月更文挑战第18天】

一、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
      
  • 加载预训练模型和分词器

    • 在Python中,可以这样加载BERT模型和对应的分词器:
      ```python
      from transformers import BertTokenizer, BertModel

    加载分词器

    tokenizer = BertTokenizer.from_pretrained('bert - base - uncased')

    加载模型

    model = BertModel.from_pretrained('bert - base - uncased')
    ```

  • 文本处理
    • 例如对一个句子进行编码:
      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"
      
  • 调用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)
目录
相关文章
|
7月前
|
数据采集 人工智能 安全
从入门到精通:手把手教你用LLaMA Factory微调专属大模型
大家好,我是AI博主maoku老师。你是否觉得大模型“懂王”式回答不够专业?微调正是破局关键!本文带你深入浅出理解微调原理,掌握LoRA、量化、对话模板三大核心技术,并手把手教你用LLaMA Factory零代码实践,四步打造专属Web安全专家模型。从数据准备到部署应用,全程实战,助你将大模型从“通才”炼成“专才”,实现个性化、低成本、高效率的AI赋能。
|
9月前
|
机器学习/深度学习 人工智能 JSON
构建AI智能体:二十八、大语言模型BERT:原理、应用结合日常场景实践全面解析
BERT是谷歌2018年推出的革命性自然语言处理模型,采用Transformer编码器架构和预训练-微调范式。其核心创新在于双向上下文理解和掩码语言建模,能有效处理一词多义和复杂语义关系。BERT通过多层自注意力机制构建深度表示,输入融合词嵌入、位置嵌入和段落嵌入,输出包含丰富上下文信息的向量。主要应用包括文本分类、命名实体识别、问答系统等,在搜索优化、智能客服、内容推荐等领域发挥重要作用。
3451 10
|
人工智能 安全 Java
掌握 Spring 中的 WebClient
本文介绍了 Spring Boot 开发中 WebClient 的使用场景及优势。WebClient 是非阻塞响应式 Web 客户端,适合高并发、流式数据处理和微服务通信。它支持事件驱动架构、大文件传输、超时重试机制,并可与 OAuth2 集成实现安全通信。相比 RestTemplate,WebClient 提供更高效的资源利用和灵活的并发处理能力,适用于现代响应式应用开发。文中通过代码示例详细对比了两者的区别,展示了 WebClient 在异步编程中的强大功能。
1559 0
|
自然语言处理 数据可视化 数据挖掘
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
本文介绍了Python库gopup,它是一个用于轻松爬取互联网数据的工具,简化了数据收集和处理的过程。文章提供了gopup的安装教程,特别强调了安装时需注意setuptools版本,并给出了PyCharm和命令行两种安装方法。gopup库能获取包括指数、百度和谷歌数据等多种类型的数据。文中还展示了如何使用gopup获取微博指数和豆瓣新片榜数据,并通过代码示例呈现数据和图表。此外,文章提醒了使用时的风险和部分接口的失效情况,并提供了库文档链接以供深入学习。gopup库适用于数据可视化和数据分析,是进行文本挖掘和自然语言处理项目的理想工具。
1050 0
带你飞上云端,轻松解析数据——gopup库详细解析--包含安装库教程
|
人工智能 自然语言处理 测试技术
能够双向推理的LLM!Dream-7B:港大联合华为开源的扩散推理模型,能够同时考虑前后文信息
Dream-7B是由香港大学与华为诺亚方舟实验室联合研发的开源扩散大语言模型,采用独特的掩码扩散范式,在文本生成、数学推理和代码编写等任务中展现出卓越性能。
803 3
能够双向推理的LLM!Dream-7B:港大联合华为开源的扩散推理模型,能够同时考虑前后文信息

热门文章

最新文章