/UniLM_chatbot

使用UniLM和HNSW构建任务型+闲聊型机器人

Primary LanguagePythonMIT LicenseMIT

UniLM_chatbot

使用UniLM和HNSW构建任务型+闲聊型机器人。

  • 意图识别:fasttext

  • 检索模型:

    • 使用Word Average Model (WAM) 表示句向量
    • 使用Hierarchical Navigable Small World(HNSW)做召回,包括两个包的使用:hnswlib和Faiss
    • 使用LightGBM做排序,手工构建特征包括:
      • 基于字符串距离的(编辑距离、列文斯坦距离、LCS)
      • 基于向量距离的(cosine、Euclidian、Jaccard、WMD)
      • 基于统计量的(BM25、Pearson Correlation)
      • 基于深度匹配模型的
  • 生成模型:UniLM(重头写一个BERT,然后修改attention_mask和计算loss的部分即可得到UniLM)

  • 模型蒸馏:使用 https://github.com/airaria/TextBrewer 将12层的UniLM蒸馏到3层的Roberta中

训练生成模型的数据:https://cloud.tsinghua.edu.cn/f/f131a4d259184566a29c/