QwenLM / Qwen-Agent

Agent framework and applications built upon Qwen>=2.0, featuring Function Calling, Code Interpreter, RAG, and Chrome extension.
https://pypi.org/project/qwen-agent/
Other
3.22k stars 313 forks source link

parallel_doc_qa中生成关键字再检索相关块这一步骤是否必要? #198

Open chenk-gd opened 3 months ago

chenk-gd commented 3 months ago

分块阅读后将相关回答合并作为summary的knowledge,感觉效果没有太大差别。

        # 修改parallel_doc_qa.py的第226和227行

        # retrieve_content = self._retrieve_according_to_member_responses(messages=messages, lang=lang, query=query)
        # return self.summary_agent.run(messages=messages, lang=lang, knowledge=retrieve_content)
        return self.summary_agent.run(messages=messages, lang=lang, knowledge=member_res)   
JianxinMa commented 3 months ago

在很多场景下确实没必要,这个主要是增加容错的(比如前面的分块阅读模型效果不稳定时、这里可以拉回来一点效果)。可以根据自己业务场景的测试情况做取舍。

JialinWangPKU commented 3 months ago

这取决于您使用的模型的能力,对于能力没有很强的模型(例如7b规模的模型),parallel_docqa_member针对分块文本的回答可能会不准确,也可能产生幻觉,这时直接将member的output拼接作为knowledge,会影响summary时的准确性。 如果用关键词检索原文作为knowledge,可以保证summary的输入材料不会有问题,在实际实验中会增加容错。

具体如何配置Agent策略,您可以根据自己的业务场景做取舍。例如用强模型走全流程,那么可以直接用member_res作为summary的input材料。或者您可以用能力较弱的模型作为member,然后在summary使用更好的模型,来提高agent的能力。

有任何问题欢迎讨论交流~

datalee commented 3 months ago

mark