Skip to content

Latest commit

 

History

History
89 lines (64 loc) · 4.64 KB

File metadata and controls

89 lines (64 loc) · 4.64 KB

问答系统

传统智能客服系统需要为每种任务单独设计和维护特定模型

  • Information Retrieval: 基于问答库,利用信息检索(召回、排序)从问答库中选择查询问题与已有问题和答案中最相似的作为输出
  • Knowledge Based Question Answering: 基于知识库,围绕知识库的实体或者关系,把问题转化成数据库上的查询语句,然接查库获取答案
  • Task-Bot: 定义场景下一共需要哪些槽值(Slot),用户对话中提到了槽值,抽取记录下来,如果没提到的,就反问,直到槽值都填满了进行查询给出操作
  • generative/Seq2seq Bot: 完全生成式模型

1. requirements

  • 闲聊还是任务(业务型,知识型)
  • Close-domain QA 还是 Open-domain QA (海量文档,来回答一个事实性问题factoid questions)
  • 单轮(single-turn)还是多轮(multi-turn)
  • 闭卷问答(closed-book QA)还是基于上下文的问答(in-context learning QA)
  • 多领域
  • 多语言
  • non-functional requirement: latencythroughput

2. ML task & pipeline

  • 检索式(Retrieval),生成式(Generative),任务式
    • 检索式:主要思路是从对话语料库中找出与输入语句最匹配的回复,这些回复通常是预先存储的数据。
    • 生成式:主要思路是基于深度学习的Encoder-Decoder架构,从大量语料中习得语言能力,根据问题内容及相关实时状态信息直接生成回答话术。
    • 任务式:就是任务型对话,通常要维护一个对话状态,根据不同的对话状态决策下一步动作,是查询数据库还是回复用户等等。
  • 知识图谱:爬取的数据经过关系抽取存入Neo4j数据库
  • 基于本地知识的问答库,Bert微调,建立倒排 (inverted index),特征向量余弦相似度
  • GPT
  • 安全

2.1 任务型

管道方法

  • 自然语言理解(领域识别 domain,意图识别 intents,语意槽填充 slots)
  • 对话管理 Dialogue Management(状态追踪,对话策略优化,知识库与API)
  • 自然语言生成

2.2 端对端LLM

How to train your own Large Language Models

3. data collection

4. model

4.1 问题理解

  • 领域/意图识别
  • 实体识别
  • 槽位填充

4.2 召回

  • 倒排索引(Inverted Index)和近似近邻搜索(ApproximateNearest Neighbor Search)进行快速检索

5. evaluation

  • 传统生成指标n-gram based metrics (BLEU、ROUGE)
  • 基于语义距离的指标 BERT-Score
  • MT-bench和Chatbot Arena进行人工排序
  • 使用GPT4等模型进行打分

6. deploy & serving

7. monitoring & maintenance

8. 优化与问答

  • 如何处理业务对话系统中的unexpected intent
    • 可继续阅读参考rasa中的:Unexpected Intent Policy

参考