Bert中文预训练模型(Bert-base-chinese)

介绍

Bert-base-chinese模型是一个在简体和繁体中文文本上训练得到的预训练模型,具有以下特点:

  • 12个隐层
  • 输出768维张量
  • 12个自注意力头
  • 110M参数量

该模型的主要作用是获取每个汉字的向量表示,后续通过微调可应用于各种简体和繁体中文任务。

使用

import torch
from transformers import BertTokenizer, BertModel

# 第一步:离线下载
# from transformers import BertModel, BertTokenizer
# model_name = "bert-base-chinese"
# # 下载模型和分词器
# model = BertModel.from_pretrained(model_name)
# tokenizer = BertTokenizer.from_pretrained(model_name)
# # 保存模型和分词器到本地路径
# model.save_pretrained("./bert-base-chinese")
# tokenizer.save_pretrained("./bert-base-chinese")

# 第二步:加载模型和分词器
model_path = "./bert-base-chinese"
tokenizer = BertTokenizer.from_pretrained(model_path)
model = BertModel.from_pretrained(model_path)


def encode_text_with_bert(text):
    """
    使用bert-base-chinese模型对文本进行编码
    :param text: 输入的文本
    :return: 编码后的张量
    """
    # 使用tokenizer对文本进行编码,并去掉起始和结束标志
    encoded_text = tokenizer.encode(text)[1: -1]
    # 把列表转成张量
    encoded_tensor = torch.LongTensor([encoded_text])

    # 不自动进行梯度计算
    with torch.no_grad():
        output = model(encoded_tensor)

    # 返回编码后的张量(取last_hidden_state)
    return output[0]


if __name__ == '__main__':
    text1 = "你好,美丽中国"
    result = encode_text_with_bert(text1)
    print('text1编码的形状:', result.size())
    print('text1编码:\n', result)

text1编码的形状: torch.Size([1, 7, 768])
text1编码:
 tensor([[[ 0.0781, -0.7386, -0.5120,  ...,  1.0695, -0.4252, -0.3970],
         [ 0.3118, -0.2283, -0.2513,  ..., -0.0618,  0.8715, -0.0833],
         [ 0.0287, -0.4937, -0.5554,  ...,  0.1643,  0.8771,  0.0019],
         ...,
         [-0.3068, -0.3406,  0.0525,  ...,  0.5506,  0.8915, -0.3713],
         [-0.1079, -0.0951, -0.1549,  ...,  0.8432,  0.7255, -0.5235],
         [-0.0414, -0.3786,  0.1590,  ...,  0.3844,  0.7464, -0.4266]]]) 

相关推荐

  1. Bert中文训练模型Bert-base-chinese

    2024-07-16 02:58:01       25 阅读
  2. 使用 bert-base-chinese-ner 模型实现中文NER

    2024-07-16 02:58:01       29 阅读
  3. huggingface实战bert-base-chinese模型(训练+预测)

    2024-07-16 02:58:01       50 阅读
  4. 中文bert训练

    2024-07-16 02:58:01       28 阅读
  5. bert_base_chinese入门

    2024-07-16 02:58:01       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-16 02:58:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-16 02:58:01       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-16 02:58:01       58 阅读
  4. Python语言-面向对象

    2024-07-16 02:58:01       69 阅读

热门阅读

  1. GitHub每日最火火火项目(7.15)

    2024-07-16 02:58:01       19 阅读
  2. std::getline

    2024-07-16 02:58:01       21 阅读
  3. ARIMA模型(AutoRegressive Integrated Moving Average Model)

    2024-07-16 02:58:01       19 阅读
  4. linux高级编程(sqlite数据库调用)

    2024-07-16 02:58:01       22 阅读
  5. 欠拟合与过拟合

    2024-07-16 02:58:01       21 阅读
  6. [C/C++入门][输入输出]2、字符三角形

    2024-07-16 02:58:01       22 阅读
  7. Unsloth 微调 Llama 3

    2024-07-16 02:58:01       19 阅读
  8. Pyinstaller打包后__file__定位当前绝对路径错误

    2024-07-16 02:58:01       20 阅读