当前位置: 首页 > 工具软件 > NLP Architect > 使用案例 >

自然语言处理学习日记8

相德宇
2023-12-01

1.BERT-large模型
解析:24-layer, 1024-hidden, 16-heads, 330M parameters。

2.BERT-base模型
解析:12-layer, 768-hidden, 12-heads, 110M parameters。

3.chinese_wwm_L-12_H-768_A-12.zip
解析:
[1]bert_model.ckpt # 模型权重
[2]bert_model.meta # 模型meta信息
[3]bert_model.index # 模型index信息
[4]bert_config.json # 模型参数
[5]vocab.txt # 词表
说明:其中bert_config.json和vocab.txt与谷歌原版BERT-base, Chinese完全一致。

4.Kashgari
解析:Kashgari封装了BERT embedingg模型,LSTM-CRF实体识别模型,还有一些经典的文本分类的网络模型。
说明:多看rasa-core-sdk,rasa-core,rasa-nlu模块源码。

5.Chatito
解析:Generate datasets for AI chatbots, NLP tasks, named entity recognition or text classification models using a simple DSL.

6.Chatito语言
解析:

%[some intent]('training': '1')
    @[some slot]

@[some slot]
    ~[some slot synonyms]

~[some slot synonyms]('synonym': 'true')
    synonym 1
    synonym 2

7.ELMoForManyLangs
解析:Pre-trained ELMo Representations for Many Languages.

8.nlp-architect
解析:A model library for exploring state-of-the-art deep learning topologies and techniques for optimizing Natural Language Processing neural networks.

9.Rasa新版本中的rasa.nlu.train
解析:
[1]直接调用rasa.nlu.train不在支持。
[2]rasa train训练一个结合Core和NLU模型。
[3]rasa train nlu训练一个NLU模型。

10.logging模块
解析:logging模块包括logger,handler,filter,formatter这四个基本概念。如下所示:
[1]logger:提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)获取logger对象,如果不指定name则返回root对象,多次使用相同的name调用getLogger方法返回同一个logger对象。
[2]handler:将日志记录[log record]发送到合适的目的地[destination],比如文件,socket等。一个logger对象可以通过addHandler方法添加0到多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。
[3]filter:提供一种优雅的方式决定一个日志记录是否发送到handler。
[4] formatter:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。

11.typing.TYPE_CHECKING
解析:A special constant that is assumed to be True by 3rd party static type checkers. It is False at runtime.

12.Python Async/Await原理
解析:Python在3.5版本中引入了关于协程的语法糖async和await。完成异步的代码不一定要用async/await,使用了async/await的代码也不一定能做到异步,async/await是协程的语法糖,使协程之间的调用变得更加清晰,使用async修饰的函数调用时会返回一个协程对象,await只能放在async修饰的函数里面使用,await后面必须要跟着一个协程对象或Awaitable,await的目的是等待协程控制流的返回,而实现暂停并挂起函数的操作是yield。

13.typing.Any类型
解析:Any是一种特殊的类型。静态类型检查器将所有类型视为与Any兼容,反之亦然,Any也与所有类型相兼容。这意味着可对类型为Any的值执行任何操作或方法调用,并将其赋值给任何变量。

14.typing.Union类型
解析:联合类型;Union[X,Y]意味着:要不是X,要不是Y。

15.typing.Optional类型
解析:Optional[X] is equivalent to Union[X, None].

16.Trainer类
解析:训练所有相关的Component部分,通过train函数进行训练,通过persist函数进行持久化存储。

17.RasaNLUModelConfig类型
解析:用来存放训练使用的pipeline参数。

18.Metadata类
解析:将model目录下metadata.json文件进行解析,并缓存。

19.Interpreter类
解析:通过训练好的pipeline模型解析文本字符串。

20.Persistor类
解析:用于存储模型在云端aws,gcs,azure等。

21.property属性
解析:property属性定义时,在实例方法的基础上添加@property装饰器;并且仅有一个self参数调用时,无需括号。

22.FallbackPolicy
解析:FallbackPolicy会在意图识别的置信度和action预测的置信度分别低于设定的阈值时触发,进行一些自定义的操作。新版FallbackPolicy默认调用action_default_fallback,然后调用的是utter_default这个模板。

23.endpoints.yml
解析:endpoints.yml声明各种endpoints,action_endpoint,tracker_store[redis或mongodb],event_broker。

24.Rasa内置对话策略模块
解析:
[1]Embedding Policy:Recurrent Embedding Dialogue Policy [REDP]。
[2]FormPolicy:槽填充。The FormPolicy is an extension of the MemoizationPolicy which handles the filling of forms.
[3]KerasPolicy:LSTM。The KerasPolicy uses a neural network implemented in Keras to select the next action.
[4]MemoizationPolicy:果与训练数据完全一致则得分为1,否则为0。
[5]MappingPolicy:直接把识别的意图映射到一个具体action。
[6]FallbackPolicy:识别的置信度得分小于设置的阈值时进行触发的action,可设置nlu和core的阈值。

25.Rasa Core
解析:Rasa Core主要完成了基于故事的对话管理,包括解析故事并生成对话系统中的对话管理模型[Dialog Management],输出系统决策[System Action/System Policy]。

参考文献:
[1]ymcui/Chinese-BERT-wwm:https://github.com/ymcui/Chinese-BERT-wwm
[2]Kashgari:https://github.com/BrikerMan/Kashgari
[3]rodrigopivi/Chatito:https://github.com/rodrigopivi/Chatito
[4]GaoQ1/chatito_gen_nlu_data/trainClimateBot.chatito:https://github.com/GaoQ1/chatito_gen_nlu_data/blob/master/trainClimateBot.chatito
[5]HIT-SCIR/ELMoForManyLangs:https://github.com/HIT-SCIR/ELMoForManyLangs
[6]NLP Architect by Intel® AI Lab:http://nlp_architect.nervanasys.com/
[7]NervanaSystems/nlp-architect:https://github.com/NervanaSystems/nlp-architect
[8]typing类型标注支持:https://docs.python.org/zh-cn/3/library/typing.html
[9]rasa core源码分析第2波-对话管理:https://mubu.com/doc/2EWshX7UDw

 类似资料: