datawhalechina / tiny-universe

《大模型白盒子构建指南》:一个全手搓的Tiny-Universe
1.31k stars 125 forks source link

fix typo and imporve the code of TinyAgent #15

Closed SheltonXiao closed 4 months ago

SheltonXiao commented 5 months ago

modify content/TinyAgent/tinyAgent/Agent.py.

  1. Modify the REACT_PROMPT prompt and the call_plugin method to reduce the effects of the model hallucination
  2. Modify the text_completion. Fix the typo: his -> history. Implement Iterations of ReAct.
KMnO4-zx commented 4 months ago

需要第二次掉用大模型来总结,工具调用的结果,用于大模型输出

SheltonXiao commented 4 months ago

需要第二次掉用大模型来总结,工具调用的结果,用于大模型输出

两次不够啊,是循环多次啊。我加了循环终止条件,认真看一下呢真的...

KMnO4-zx commented 4 months ago

噢噢噢 不好意思 我没有仔细审查,可以的。但这与两次大模型调用来说问题不大啊,而且改成你这种方式后,假如一个大模型能力比较弱,它没有进行工具调用直接给出 Final Answer的话,就可能会出现错误结果。

SheltonXiao commented 4 months ago

噢噢噢 不好意思 我没有仔细审查,可以的。但这与两次大模型调用来说问题不大啊,而且改成你这种方式后,假如一个大模型能力比较弱,它没有进行工具调用直接给出 Final Answer的话,就可能会出现错误结果。

emm因为原论文中的例子大部分其实是需要检索多次的,结合一步一步地推理+调用工具行动,到最后解决复杂问题。所以两次调用是不够的,我理解是多次调用,到最后给出final answer才结束,这样可能会比较符合原论文的思想?这种没有进行工具调用的情况我确实没有考虑过,但感觉结合ReAct的prompt模板的话理论上似乎至少会执行一次工具调用...我目前跑过internlm-1.8b的模型确实没有出现过直接出结果的情况,我去看一下langchain的实现哈,看它是怎么规避的。

KMnO4-zx commented 4 months ago

嗯嗯,好的。我遇到过不经过模型调用直接给出最终结果的大模型。可以看看langchain,pr重新open了,期待您的下一次回复~