ollama 上下文在/api/generate响应中变得太大,

kx5bkwkv  于 2个月前  发布在  其他
关注(0)|答案(1)|浏览(60)

问题是什么?

我正在为Ollama编写自己的聊天UI,并使用上下文功能实现对话模式。因此,每次Ollama生成响应时,返回的上下文(嵌入)都会保存到聊天对象中。在下一个提示中,这个上下文会传递给/api/generate,然后在响应后的结果上下文再次保存到聊天对象中。
升级到最新的Ollama后,我注意到生成速度大大降低,而/api/generate返回的上下文与之前的版本相比增长得太快。
看起来它在每次生成后都会将上下文大小翻倍,在相对较小的聊天中(26条消息),很快就变成了3-7Mb的大小,这导致我的UI变得无响应,浏览器也会冻结,因为它必须处理如此大量的数据(主要是用于调试,如将JSON转换为字符串,但这无论如何都不是正常的)。在早期(至少在我使用的0.2.1版本中),它大约是8-16Kb,这是完全可以接受的,也符合模型容量。
这个问题很难测量(我不知道如何测量),但我还注意到,使用最新的Ollama(0.3.0版本),像gemma2或llama3.1这样的新模型并不像早期的Ollama版本中的一些旧模型(如mistral)那样遵循上下文。这可能与上下文的变化有关,自0.2.2版本以来,上下文发生了变化,响应被修复了,但看起来修复并不完全正确。

操作系统

Linux

GPU

Nvidia

CPU

Intel

Ollama版本

0.3.0

ds97pgxw

ds97pgxw1#

你好,我遇到了类似的问题,不确定如何正确解决。根据关于 contexthere 的描述,当前对话返回的 context 可以作为下一次对话的输入。这种使用上下文的方式的一个问题是,context 可能很快地扩展。如果我只想将最后2-3个问题的答案作为上下文(而不是所有历史记录)进行跟踪,有哪些合适的方法?谢谢!

相关问题