当bert遇到rasa
程序员文章站
2022-07-08 17:02:04
...
bert几乎同一天下的时候,
rasa这个nlu的框架如何使用bert,可用的超级攻略在此:
代码在:
https://github.com/killinux/rasa_bert
哈,安装可能错误比较多,用我的方式:
之后一定要加环境变量
因为配置文件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"
配置文件具体为:
对pre-train的bert模型进行finetune
新增的预料放到 rasa_bert/data/nlu/nlu.md中
参考Makefile内容
进行训练:
训练指定了自定义的nlu预料,配置文件里指定了bert的预训练模型位置,和输出新模型的位置
把nlu模型生成到rasa_bert/models/nlu下
nlu-20200816-165652.tar.gz
启动nlu服务:
启动服务去加载生成的nlu模型就好
或者全一点
会开启5005端口,这个在mac下也比较慢,多等一下
测试nlu服务
得到
参考:
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这个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
下一篇: kaldi在mac下基本使用