anything-llm [FEAT]: "max tokens" 参数覆盖 Ollama

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

如何运行AnythingLLM?

Docker (本地)

发生了什么?

在使用Ollama时,我发现默认的上下文窗口大小为2000个令牌对于现代用例可能太小了。在研究可能的解决方案时,我发现在向Ollama发出API调用以指定不同的上下文窗口大小时,需要使用num_ctx参数。
我查看了AnythingLLM中的"最大令牌"功能,似乎我们确实有这个选项可用。然而,在进一步检查后,我意识到这个参数没有被Ollama使用。max_tokens参数存在于AnythingLLM代码库中,但从未发送给Ollama或用于API调用。
我还查看了支持所需num_ctx参数的LangChain工具,它通过与Ollama的集成实现了这一点。这进一步凸显了我们在AnythingLLM中实现此功能的需求。
我建议在AnythingLLM中添加一个选项,允许高级用户从常见的上下文窗口大小(例如,2K、4K、8K、16K、32K、64K、128K等)的下拉列表中选择Ollama模型。此功能将使用户能够轻松调整上下文窗口大小,而无需自定义模型文件。

示例用例:

经常与大型数据集交互或需要更准确的AI模型结果的用户可以从这个功能中受益。通过提供一系列的上下文窗口大小,我们可以满足不同的用例并提高整体用户体验。

实现:

实现将涉及修改AnythingLLM API调用到langchain的参数,以包括选择上下文窗口大小的参数-最终绑定到langchain中的num_ctx参数。然后将此参数传递给Ollama的API,确保当尝试使用较大的上下文窗口时,Ollama API能够正确地工作。

是否已知重现步骤?

可重现的步骤很简单,只需连接任何具有最大令牌大小的Ollama模型,然后流式传输Ollama server logs
如果出现以下情况:
Jul 24 11:10:51 PCHOSTNAME ollama[774]: llama_new_context_with_model: n_ctx = 2048 那么这是不正确的,并且正在默认使用2K令牌大小。如果成功实现,最后一个数字应该在日志中更新。

8gsdolmq

8gsdolmq1#

再次,很好的撰写和超级干净 - 你让遵循这些问题变得容易哈哈。我会将这个视为一个"改进",而不是一个bug本身,因为它属于与#1902相同的范围 - 无论哪种方式,我们都会看看如何将这个纳入其中。

相关问题