当前位置: 首页 > news >正文

BERT - 直接调用transformers.BertModel, BertTokenizerAPI不进行任何微调

本节代码将使用 transformers 库加载预训练的BERT模型和分词器(Tokenizer),并处理文本输入。

1. 加载预训练模型和分词器

from transformers import BertTokenizer, BertModel

model_path = "/Users/azen/Desktop/llm/models/bert-base-chinese"

tokenizer = BertTokenizer.from_pretrained(model_path)
model = BertModel.from_pretrained(model_path)
  • BertTokenizer.from_pretrained(model_path)

    • 加载预训练的BERT分词器。model_path 是预训练模型的路径或名称。分词器会将文本分割成BERT模型可以理解的标记(tokens)。

  • BertModel.from_pretrained(model_path)

    • 加载预训练的BERT模型。model_path 是预训练模型的路径或名称。BERT模型可以用于多种自然语言处理任务,如文本分类、问答系统等。

2. 处理文本输入

text = "my dog is cute, he likes playing"
inputs = tokenizer(text)
  • tokenizer(text)

    • 将输入文本 text 转换为BERT模型可以处理的格式。具体来说,tokenizer 会执行以下操作:

      1. 分词:将文本分割成标记(tokens)。

      2. 添加特殊标记:在文本的开头添加 [CLS] 标记,在结尾添加 [SEP] 标记。

      3. 转换为ID:将每个标记转换为对应的ID(索引)。

      4. 生成注意力掩码:生成一个掩码,用于标记哪些位置是有效的输入(非填充部分)。

  • 如果不想添加 [CLS][SEP] 标记,可以在调用 tokenizer 时设置 add_special_tokens=False

text = "my dog is cute, he likes playing"
inputs = tokenizer(text, add_special_tokens=False, return_tensors="pt")
    输出inputs 是一个字典,包含以下内容:
    • input_ids:输入标记的ID列表。

    • token_type_ids:段嵌入索引列表。

    • attention_mask:注意力掩码。

    3. 完整示例

    以下是一个完整的示例,展示如何将文本输入传递给BERT模型,并获取模型的输出:

    from transformers import BertTokenizer, BertModel
    
    model_path = "/Users/azen/Desktop/llm/models/bert-base-chinese"
    
    tokenizer = BertTokenizer.from_pretrained(model_path)
    model = BertModel.from_pretrained(model_path)
    
    text = "my dog is cute, he likes playing"
    inputs = tokenizer(text, return_tensors="pt")  # 返回PyTorch张量
    
    # 获取输入张量
    input_ids = inputs["input_ids"]
    attention_mask = inputs["attention_mask"]
    
    # 将输入传递给BERT模型
    outputs = model(input_ids, attention_mask=attention_mask)
    
    # 获取模型的输出
    last_hidden_state = outputs.last_hidden_state  # 最后一层的隐藏状态
    pooler_output = outputs.pooler_output  # [CLS]标记的输出
    
    print(last_hidden_state.shape)  # 输出形状:(batch_size, seq_len, hidden_size)
    print(pooler_output.shape)  # 输出形状:(batch_size, hidden_size)

    需复现完整代码

    
    
    from transformers import AutoModel, AutoTokenizer
    from transformers import BertModel, BertTokenizer
    
    from transformers import Bert
    
    
    model_path = "/Users/azen/Desktop/llm/models/bert-base-chinese"
    
    tokenizer = BertTokenizer.from_pretrained(model_path)
    model = BertModel.from_pretrained(model_path)
    
    
    text = "my dog is cute, he likes playing"
    inputs = tokenizer(text)
    
    
    pass

    http://www.dtcms.com/a/127129.html

    相关文章:

  • C++动态分配内存知识点!
  • vue2使用ezuikit-js播放萤石视频
  • 手撕红黑树
  • Python Lambda表达式详解
  • Vue 3 响应式更新问题解析
  • chrome extension开发框架WXT之WXT Storage api解析
  • 数列分块入门4
  • 信奥赛之c++课后练习题及解析(关系运算符+选择结构)
  • JAVA中正则表达式的入门与使用
  • Matlab 分数阶PID控制永磁同步电机
  • Codeforces Round 1016 (Div. 3) C ~ G 题解
  • Golang|协程
  • python-1. 找单独的数
  • 关于nacos注册的服务的ip异常导致网关路由失败的问题
  • 科技项目验收测试怎么做?验收测试报告如何获取?
  • 网安小白筑基篇六:数据库(增删改语法、表约束、查询语句、多表查询、附phppython小练习)
  • Kubernetes集群环境搭建与初始化
  • 【实战手册】8000w数据迁移实践:MySQL到MongoDB的完整解决方案
  • 蓝桥杯备赛知识点总结
  • 小白学习java第12天(下):IO流之字符输入输出
  • 联影医疗智能体 重构医疗新范式
  • 【物联网】PWM控制蜂鸣器
  • aosp13增加摄像头控制功能实现
  • C#MVC项目引用Swagger的详细步骤
  • C++指针(二)
  • DAOS系统架构-组件
  • Mamba原理及在low-level vision的工作[持续更新]
  • 14-大模型微调和训练之-Hugging Face 模型微调训练(基于 BERT 的中文评价情感分析(二分类))
  • opencv-python基础
  • 如何让老电脑运行快些(极限榨干老电脑硬件)