传统智能客服系统需要为每种任务单独设计和维护特定模型
- Information Retrieval: 基于问答库,利用信息检索(召回、排序)从问答库中选择查询问题与已有问题和答案中最相似的作为输出
- Knowledge Based Question Answering: 基于知识库,围绕知识库的实体或者关系,把问题转化成数据库上的查询语句,然接查库获取答案
- Task-Bot: 定义场景下一共需要哪些槽值(Slot),用户对话中提到了槽值,抽取记录下来,如果没提到的,就反问,直到槽值都填满了进行查询给出操作
- generative/Seq2seq Bot: 完全生成式模型
- 闲聊还是任务(业务型,知识型)
- Close-domain QA 还是 Open-domain QA (海量文档,来回答一个事实性问题factoid questions)
- 单轮(single-turn)还是多轮(multi-turn)
- 闭卷问答(closed-book QA)还是基于上下文的问答(in-context learning QA)
- 多领域
- 多语言
- non-functional requirement: latency 和 throughput
- 检索式(Retrieval),生成式(Generative),任务式
- 检索式:主要思路是从对话语料库中找出与输入语句最匹配的回复,这些回复通常是预先存储的数据。
- 生成式:主要思路是基于深度学习的Encoder-Decoder架构,从大量语料中习得语言能力,根据问题内容及相关实时状态信息直接生成回答话术。
- 任务式:就是任务型对话,通常要维护一个对话状态,根据不同的对话状态决策下一步动作,是查询数据库还是回复用户等等。
- 知识图谱:爬取的数据经过关系抽取存入Neo4j数据库
- 基于本地知识的问答库,Bert微调,建立倒排 (inverted index),特征向量余弦相似度
- GPT
- 安全
管道方法
- 自然语言理解(领域识别 domain,意图识别 intents,语意槽填充 slots)
- 对话管理 Dialogue Management(状态追踪,对话策略优化,知识库与API)
- 自然语言生成
How to train your own Large Language Models
- 领域/意图识别
- 实体识别
- 槽位填充
- 倒排索引(Inverted Index)和近似近邻搜索(ApproximateNearest Neighbor Search)进行快速检索
- 传统生成指标n-gram based metrics (BLEU、ROUGE)
- 基于语义距离的指标 BERT-Score
- MT-bench和Chatbot Arena进行人工排序
- 使用GPT4等模型进行打分
- 如何处理业务对话系统中的unexpected intent
- 可继续阅读参考rasa中的:Unexpected Intent Policy
- 对话系统与四大天王 - 王岳王院长的文章 - 知乎
- QA survey
- 美团智能客服核心技术与实践
- Intelligent Automation Platform: Empowering Conversational AI and Beyond at Airbnb
- Task-Oriented Conversational AI in Airbnb Customer Support
- 面向领域应用的大模型关键技术
- Open source machine learning framework: https://github.com/RasaHQ/rasa
- RAG探索之路的血泪史及曙光 - 小虫飞飞的文章 - 知乎
- Building a Question Answering System Part 1: Query Understanding in 18 lines of Code
- 基于知识增强和预训练大模型的 Query 意图识别
- NLP多轮对话如果做得足够好,会有哪些明朗的落地应用? - 袋鼠猪的回答 - 知乎
- CMU11492-语音
- 2018-从零开始搭建智能客服
- 广告行业中那些趣事系列91:实践智能客服场景FAQ任务 - 数据拾光者的文章 - 知乎
- The Design and Implementation of XiaoIce, an Empathetic Social Chatbot