Bert Model 训练遇到的问题描述

本文介绍了在训练Bert模型过程中tokenizer.encode()和tokenizer.tokenize()的区别,前者返回字典ID,后者返回token。此外,讨论了TensorFlow 2.0中模型保存的两种形式:.pb格式包含了模型参数、结构和计算过程,适合直接部署;.ckpt格式仅保存模型参数,恢复时需重新定义网络结构。

1. tokenizer.encode() 方法 与 tokenizer.tokenize() 之间的区别:
(1) tokenizer.encode() 返回其在字典中的id

(2) tokenizer.tokenize() 返回 token

def bert_():
    model_name = 'bert-base-chinese'
    MODEL_PATH = 'F:/models/bert-base-chinese/'

    # a.通过词典导入分词器
    tokenizer = BertTokenizer.from_pretrained(model_name)
    # b. 导入配置文件
    model_config = BertConfig.from_pretrained(model_name)
    # 修改配置
    model_config.output_hidden_states = True
    model_config.output_attentions = True
    # 通过配置和路径导入模型
    bert_model = BertModel.from_pretrained(MODEL_PATH, config=model_config)
    # tokenizer.encode()
    sen_code_encode = tokenizer.encode("自然语")
    print("sen_code_encode",sen_code)
    # tokenizer.tokenize
    sen_code_tokenizer = tokenizer.tokenize("自然语")
    print("sen_code_tokenizer", sen_code0)

if __name__ == '__main__':
    bert_()




#  结果输出:
sen_code_encode [101, 5632, 4197, 6427, 102]
sen_code_tokenizer ['自', '然', '语']
<
### 使用BERT训练模型实现中文文本自动摘要生成 为了使用BERT训练模型来生成中文文本摘要,可以借鉴已有的研究成果并结合具体的技术细节。以下是详细的解决方案: #### 1. 模型架构设计 一种有效的方案是将 **BERT** 和 **Pointer-Generator Network (PGN)** 结合起来构建生成式摘要模型[^2]。这种组合能够充分利用 BERT 的强大语义表示能力以及 PGN 的灵活生成特性。 - **BERT训练语言模型**: 负责提取输入文本的深层语义特征,并将其转化为高质量的词向量表示。 - **多维语义特征增强**: 可通过引入额外的语言学特征(如句法结构、关键词权重等),进一步提升对原始文档的理解程度[^3]。 - **指针生成网络(PGN)**: 接收来自 BERT 提取的上下文信息作为输入,在解码过程中决定是从源文本复制词语还是生成新的词汇。 #### 2. 数据准备与预处理 在实际应用前需完成必要的数据准备工作: - 收集大量带有标签的真实世界样本(例如新闻报道),每篇都应附带对应的人工撰写的简洁版总结; - 清洗掉无关噪声后分割成训练集/验证集两部分; - 利用分词工具对中国字符进行切分以便后续编码操作; 对于图书系统而言,则可能需要针对书籍描述或者章节内容创建类似的标注好的数据集合用于微调特定领域内的表现效果[^1]。 #### 3. 训练过程概述 整个流程大致分为以下几个方面展开讨论: ##### a) 编码器初始化 采用已经过大规模通用语料库上充分学习过的公开版本bert-base-chinese 或者更适配自己应用场景需求定制化后的变体实例充当基础组件加载进来之后固定住其内部参数不再更新仅当必要时候才允许有限度调整某些层间连接关系从而降低计算成本加快收敛速度同时保持较好的泛化性能水平不变. ##### b) 解码端搭建 定义好RNN/LSTM单元数量大小以及其他超参配置项建立起标准seq2seq框架之上再叠加attention mechanism使得目标侧每一个时刻都能有条件地关注到原序列不同位置上的重要内容片段进而提高最终产出质量得分. ##### c) Coverage Mechanism 添加 引入Coverage Loss惩罚机制防止出现过多重复性的表述现象发生确保输出更加流畅自然. 最后经过多次迭代优化直至满足预期精度要求即可部署上线投入使用环境中去解决实际遇到的各种复杂情况下的自动化摘录任务挑战啦! ```python import torch from transformers import BertTokenizer, EncoderDecoderModel tokenizer = BertTokenizer.from_pretrained('bert-base-chinese') model = EncoderDecoderModel.from_encoder_decoder_pretrained('bert-base-chinese', 'bert-base-chinese') def generate_summary(text): inputs = tokenizer([text], padding=True, truncation=True, max_length=512, return_tensors="pt") outputs = model.generate(inputs['input_ids'], num_beams=4, min_length=30, max_length=100) summary = tokenizer.decode(outputs[0], skip_special_tokens=True) return summary ``` 上述代码展示了一个简单的基于Hugging Face Transformers库实现的方法示例。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值