`
haoningabc
  • 浏览: 1465758 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

当bert遇到rasa

    博客分类:
  • bert
阅读更多
bert几乎同一天下的时候,
rasa这个nlu的框架如何使用bert,可用的超级攻略在此:


代码在:
https://github.com/killinux/rasa_bert
git  clone https://github.com/killinux/rasa_bert
cd rasa_bert


哈,安装可能错误比较多,用我的方式:
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
pip uninstall tensorflow
pip install tensorflow-gpu=1.14.0

如果mac下没有tensorflow-gpu
就
pip install tensorflow==1.14.0
pip install kashgari-tf==0.5.5 -i https://mirrors.aliyun.com/pypi/simple/

之后一定要加环境变量
export PYTHONPATH=/opt/mt/rasa/rasa_bert/components

因为配置文件config.yml定义的pipeline 里kashgari_intent_classifier.py
在components下




前提条件还要google bert的预训练模型:
下载地址:https://github.com/ymcui/Chinese-BERT-wwm#%E4%B8%AD%E6%96%87%E6%A8%A1%E5%9E%8B%E4%B8%8B%E8%BD%BD
BERT-wwm-ext, Chinese
文件名字为:chinese_L-12_H-768_A-12.zip
解压到:rasa_bert/google/chinese_wwm_ext_L-12_H-768_A-12
对应配置文件
config.yml的
bert_model_path: "/opt/mt/rasa/rasa_bert/google/chinese_wwm_ext_L-12_H-768_A-12"
配置文件具体为:
language: "zh"

pipeline:
  - name: "kashgari_intent_classifier.KashgariIntentClassifier"
    bert_model_path: "/opt/mt/rasa/rasa_bert/google/chinese_wwm_ext_L-12_H-768_A-12"
    use_cudnn_cell: False
    sequence_length: 32

  - name: "kashgari_entity_extractor.KashgariEntityExtractor"
    bert_model_path: "/opt/mt/rasa/rasa_bert/google/chinese_wwm_ext_L-12_H-768_A-12"
    use_cudnn_cell: False
    sequence_length: 32



对pre-train的bert模型进行finetune
新增的预料放到 rasa_bert/data/nlu/nlu.md中
参考Makefile内容
进行训练:
训练指定了自定义的nlu预料,配置文件里指定了bert的预训练模型位置,和输出新模型的位置
rasa train nlu -u data/nlu -c config.yml --out models/nlu

把nlu模型生成到rasa_bert/models/nlu下
nlu-20200816-165652.tar.gz


启动nlu服务:
启动服务去加载生成的nlu模型就好
rasa run --enable-api -m  models/nlu/nlu-20200816-165652.tar.gz

或者全一点
rasa run --enable-api -m  models/nlu/nlu-20200816-184316.tar.gz  -p 5500 --cors "*" --log-file out.log &


会开启5005端口,这个在mac下也比较慢,多等一下

测试nlu服务
curl localhost:5500/model/parse -d '{"text":"你好"}'|jq

得到
{
  "intent": {
    "name": "greet",
    "confidence": 0.9935992956161499
  },
  "entities": [],
  "intent_ranking": [
    {
      "name": "greet",
      "confidence": 0.9935992956161499
    },


参考:
https://www.cnpython.com/pypi/rasa-nlu-gao
https://github.com/GaoQ1/rasa_chatbot_cn

这个fine tune的需要起服务:
https://github.com/killinux/rasa-bert-finetune

代码在:
https://github.com/killinux/rasa_bert
分享到:
评论

相关推荐

    rasa 使用内置bert时 transformer所需要加载的9个文件。

    当Rasa加载这些文件时,它会创建一个完整的Transformer模型实例,包括BERT的编码器部分。然后,`HFTransformersNLP`组件会使用这个模型对用户输入进行编码,生成用于训练或推理的向量表示。这些向量可以进一步传递给...

    rasa-bert-finetune:支持rasa-nlu的bert finetune

    介绍支持rasa json数据格式的bert finetune准备在训练finetune模型前需要先下载bert pre-train model,这里用的是中文的,可去官网下载chinese_L-12_H-768_A-12 。 json文件称为rasa_dataset_training.json ,dev的...

    bert-base-chinese.zip

    《BERT-base-Chinese:中文自然语言处理的基石》 BERT(Bidirectional Encoder Representations from Transformers)是由Google在2018年推出的深度学习模型,它彻底改变了自然语言处理(NLP)领域。BERT模型的核心...

    bert_bert词向量_BERT_

    标题中的“BERT”是Bidirectional Encoder Representations from Transformers的缩写,它是由Google在2018年提出的一种预训练语言模型。BERT的核心创新在于它引入了Transformer架构,并且使用了双向Transformer编码...

    rasa_ch_faq:用 rasa 实现 rasa faq 机器人

    并放到 pre_models 文件夹中,重命名为 tf_model.h5命令执行:curl -L https://mirror.tuna.tsinghua.edu.cn/hugging-face-models/bert-base-chinese-tf_model.h5 -o pre_models/tf_model.h5rasa train运行示例普通 ...

    bert模型句子向量化

    BERT(Bidirectional Encoder Representations from Transformers)模型是自然语言处理领域的一个重要突破,由Google在2018年提出。该模型通过Transformer架构实现了对文本的双向上下文理解,极大地提升了预训练语言...

    基于bert的文本情感分析

    使用bert模型进行训练测试,执行命令如下 python main.py --model bert 基于训练好的bert模型预测新数据,执行命令如下 python predict.py --model bert --predict "your sentence" 使用ERNIE模型进行训练测试,...

    bert模型的Python实现

    标题 "BERT模型的Python实现" 涉及到的是自然语言处理领域中一个非常重要的模型——BERT(Bidirectional Encoder Representations from Transformers),以及如何用Python编程语言来实现它。BERT是一种预训练语言...

    Bert详解.pptx

    本课件是对论文 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 的导读与NLP领域经典预训练模型 Bert 的详解,通过介绍NLP领域对通用语言模型的需求,引入 Bert 模型,并对其...

    bert模型的源代码-基于tensorflow框架

    **BERT模型概述** BERT(Bidirectional Encoder Representations from Transformers)是由Google AI Language团队在2018年提出的预训练语言模型。它通过Transformer架构实现了对输入文本的双向上下文理解,打破了...

    一行代码使用BERT生成句向量,BERT做文本分类、文本相似度计算

    标题中的“一行代码使用BERT生成句向量,BERT做文本分类、文本相似度计算”揭示了BERT模型在自然语言处理(NLP)领域的广泛应用。BERT,全称为Bidirectional Encoder Representations from Transformers,是由Google...

    Python自然语言处理-BERT实战

    给大家分享一套课程——Python自然语言处理-BERT实战,提供全部课程资料,包括PPT,数据,代码。 Python自然语言处理-BERT模型实战课程旨在帮助同学们快速掌握当下NLP领域最核心的算法模型BERT的原理构造与应用实例。...

    bert-base-chinese.rar

    《PyTorch实现的中文BERT预训练模型:深入理解与应用》 BERT,全称为Bidirectional Encoder Representations from Transformers,是Google在2018年推出的一种基于Transformer架构的预训练语言模型。它通过...

    rasa_milktea_chatbot:Chatbot with bert chinese model, base on rasa framework(中文聊天机器人,结合bert意图分析,基于rasa框架)

    you need to download bert_chinese_model and unzip it first: git clone https://github.com/BI4O/rasa_milktea_chatbot.git cd rasa_milktea_chatbot pip install -r requirements.txt -i ...

    huggingface的bert-base-uncased

    **标题解析:** "huggingface的bert-base-uncased" 指的是Hugging Face平台上Google提供的一个预训练模型,名为"bert-base-uncased"。BERT(Bidirectional Encoder Representations from Transformers)是由Google ...

    BERT文本分类数据

    BERT文本分类代码对应的数据

    BERT模型实战1

    BERT 模型实战 1 本资源主要介绍了 BERT 模型的基本组成和实现细节,涵盖了自注意机制、多头机制、位置信息表达、LayerNormalize、Decoder 和训练 BERT 等方面。 BERT 基本组成 BERT 模型的基本组成是一个 Seq2...

    bert文本分类 代码+数据

    在自然语言处理(NLP)领域,BERT(Bidirectional Encoder Representations from Transformers)模型是由Google在2018年提出的一种预训练语言模型,它在多项任务上取得了突破性的成果,尤其是在文本分类方面。BERT...

    huggingface的bert-base-chinese

    【标题】"huggingface的bert-base-chinese" 指的是Hugging Face平台上由Google提供的预训练模型,它是BERT模型的一个中文版本。BERT(Bidirectional Encoder Representations from Transformers)是由Google在2018年...

Global site tag (gtag.js) - Google Analytics