answerlink / IntelliQ

Advanced Multi-Turn QA System with LLM and Intent Recognition. 基于LLM大语言模型意图识别、参数抽取结合slot词槽技术实现多轮问答、NL2API. 打造Function Call多轮问答最佳实践
Apache License 2.0
448 stars 57 forks source link

[Good First Issue] 更优雅的支持GLM3等能力较弱的模型 #2

Closed MarleneJiang closed 7 months ago

MarleneJiang commented 7 months ago

在测试了整体框架,发现以下问题,并提出一些建议。如果方案可行,可以贡献仓库代码

动态示例Prompt

实际使用,发现意图插槽填充部分并不能够很好的对应,例如:

SON:[{"name": "旅游地点", "desc": "待查询的旅游名称,例如'长白山'", "value": ""}]
用户输入:这个冬天,我想要去长白山旅游,请给我一份攻略
答:
LLM输出: [{"name": "长白山旅游","value":""}]

试图调整prompt,发现效果并不理想。通过不断测试发现,在添加合适的示例prompt后,能够非常好的输出结果。

因此,建议增加一个可选的示例模块功能到scene_template.json

可增量式意图识别

目前,意图识别主要通过序号选择实现,效果较佳。但是当意图场景不断增加时,效果直线下降。同时,如果意图文字意思非常相近,也会效果大减。有待进一步解决方案

自动结束对话

经过glm3实际使用,发现百分比方法判断场景是否改变,并不能很好的判断,效果很差。在长对话上面存在非常大的问题。

建议,当自动调用api后,可以提供用户主动结束当前场景的选项按钮,去主动结束。“全自动” 目前在能力较弱的模型上仍不理想。


个人认为整个框架比较适合不支持functioncall(工具调用)的一些模型,这些模型能力通常比较弱。因此,提出一些可以改进的问题和想法。欢迎进一步探讨~

gallonyin commented 7 months ago

感谢提供建议。

  1. 我们刚开始做也是有示例的,有示例效果明显提升,但是通用性不好并且实施成本增加,动态示例可以作为可选项,欢迎PR~
  2. 意图识别当场景不断增加时,准确率会明显下降,还需要其他检索方法来辅助意图识别(以后可能规划进来)。
  3. 目前正在优化,会结合多轮会话记忆一起判断会好一些。
Yazooliu commented 3 months ago

在测试了整体框架,发现以下问题,并提出一些建议。如果方案可行,可以贡献仓库代码

动态示例Prompt

实际使用,发现意图插槽填充部分并不能够很好的对应,例如:

SON:[{"name": "旅游地点", "desc": "待查询的旅游名称,例如'长白山'", "value": ""}]
用户输入:这个冬天,我想要去长白山旅游,请给我一份攻略
答:
LLM输出: [{"name": "长白山旅游","value":""}]

试图调整prompt,发现效果并不理想。通过不断测试发现,在添加合适的示例prompt后,能够非常好的输出结果。

因此,建议增加一个可选的示例模块功能到scene_template.json

可增量式意图识别

目前,意图识别主要通过序号选择实现,效果较佳。但是当意图场景不断增加时,效果直线下降。同时,如果意图文字意思非常相近,也会效果大减。有待进一步解决方案

自动结束对话

经过glm3实际使用,发现百分比方法判断场景是否改变,并不能很好的判断,效果很差。在长对话上面存在非常大的问题。

建议,当自动调用api后,可以提供用户主动结束当前场景的选项按钮,去主动结束。“全自动” 目前在能力较弱的模型上仍不理想。

个人认为整个框架比较适合不支持functioncall(工具调用)的一些模型,这些模型能力通常比较弱。因此,提出一些可以改进的问题和想法。欢迎进一步探讨~


看了你们的讨论,不错。最近也研究这方面的内容,请问提的这几个问题都提交PR了嘛?谢谢。 另外,请教一下关于优化方案设计还有没有其他的想法或可学习的资料,欢迎推荐。谢谢

祝好 Yazoo