多轮对话改写

1、什么是改写

人(A)和系统(B)的交流过程。用户的真实意思label是对用户上一句说的话A2进行信息还原(改写)

eg:标签Label是根据上下文A1,B1;对A2的改写

preview

 

2、如何评价改写

《Transformer多轮对话改写实践》博客一文中介绍道,可以通过3种策略来实现;比较生成文本和参考文本之间重叠的一元字数,二元字数;根据最长公共子序列得出;

3、参考论文和github

https://github.com/zhusleep/tagger_rewriter

https://zhuanlan.zhihu.com/p/137127209 (Transformer多轮对话改写实践)

 

### 提升RAG模型在多轮对话中的表现效果 为了提升RAG模型在多轮对话中的表现效果,可以从以下几个方面入手: #### 1. 历史对话记录的利用 在多轮对话中,历史对话记录提供了重要的上下文信息。通过有效整合这些记录,可以显著提高模型的理解能力和响应质量。具体方法包括但不限于将历史对话编码为向量表示,并将其与当前问题一起输入到检索模块中[^2]。 #### 2. 用户问题重写机制 当用户的提问涉及对先前讨论内容的指代时,简单的关键词匹配可能无法召回相关知识。一种有效的解决方案是引入问题重写机制,即先由大模型根据历史对话改写用户的问题,使其更加明确并包含必要的背景信息后再执行知识检索操作[^2]。 #### 3. 多模态融合策略 除了纯文本形式的历史交互数据之外,还可以考虑加入其他类型的辅助材料(如图片、视频等),形成一个多模态的数据集用于训练和推理过程之中。这种做法有助于捕捉更丰富的语义特征从而进一步改进系统的整体性能[^3]。 #### 4. 高效索引结构设计 构建适合特定领域需求的有效文档存储及快速访问方案至关重要。例如采用倒排列表或者近似最近邻搜索算法来加速相似度计算环节;同时也要注意保持较高的查全率以免遗漏潜在的相关片段[^1]。 #### 5. 对话理解能力强化 加强对于复杂句法结构以及隐含意图识别方面的处理水平同样不可忽视。可以通过增加专门针对此类挑战而定制的任务类型至预训练阶段当中去实现目标——比如因果关系推断或者是情感倾向判断等等。 ```python def rewrite_question(history, current_question): """ 使用历史对话记录改写当前问题 Args: history (list): 过往对话记录列表 current_question (str): 当前用户提出的问题 Returns: str: 改写后的清晰化问题表述 """ rewritten_query = model.rewrite(current_question, context=history) return rewritten_query def retrieve_knowledge(query, knowledge_base): """ 执行基于查询的知识检索 Args: query (str): 输入的查询字符串 knowledge_base (dict): 存储的知识库字典 Returns: list: 返回最相关的若干条目组成的列表 """ retrieved_results = retriever.search(query, database=knowledge_base) return retrieved_results ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值