anything-llm [问题]:增加完成超时以防止崩溃?

wnrlj8wa  于 6个月前  发布在  其他
关注(0)|答案(9)|浏览(114)

你正在运行的AnythingLLM怎么样?
Docker(本地)

发生了什么?

使用LocalAI作为后端——加载llama3 70b模型,Anything LLM容器因套接字超时而崩溃。

2024-05-15 22:24:20 [TELEMETRY SENT] {
2024-05-15 22:24:20   event: 'sent_chat',
2024-05-15 22:24:20   distinctId: 'be3ac3d9-aa83-4458-ae1a-583a3fcc909b',
2024-05-15 22:24:20   properties: {
2024-05-15 22:24:20     multiUserMode: false,
2024-05-15 22:24:20     LLMSelection: 'localai',
2024-05-15 22:24:20     Embedder: 'openai',
2024-05-15 22:24:20     VectorDbSelection: 'lancedb',
2024-05-15 22:24:20     runtime: 'docker'
2024-05-15 22:24:20   }
2024-05-15 22:24:20 }
2024-05-15 22:24:20 [Event Logged] - sent_chat
2024-05-15 23:04:01 Cannonball results 3511 -> 470 tokens.
2024-05-15 23:04:01 Cannonball results 356 -> 286 tokens.
2024-05-15 23:04:53 [TELEMETRY SENT] {
2024-05-15 23:04:53   event: 'sent_chat',
2024-05-15 23:04:53   distinctId: 'be3ac3d9-aa83-4458-ae1a-583a3fcc909b',
2024-05-15 23:04:53   properties: {
2024-05-15 23:04:53     multiUserMode: false,
2024-05-15 23:04:53     LLMSelection: 'localai',
2024-05-15 23:04:53     Embedder: 'openai',
2024-05-15 23:04:53     VectorDbSelection: 'lancedb',
2024-05-15 23:04:53     runtime: 'docker'
2024-05-15 23:04:53   }
2024-05-15 23:04:53 }
2024-05-15 23:04:53 [Event Logged] - sent_chat
2024-05-15 23:25:00 node:internal/process/promises:288
2024-05-15 23:25:00             triggerUncaughtException(err, true /* fromPromise */);
2024-05-15 23:25:00             ^
2024-05-15 23:25:00 
2024-05-15 23:25:00 Error: Socket timeout
2024-05-15 23:25:00     at Socket.onTimeout (/app/server/node_modules/agentkeepalive/lib/agent.js:350:23)
2024-05-15 23:25:00     at Socket.emit (node:events:529:35)
2024-05-15 23:25:00     at Socket._onTimeout (node:net:598:8)
2024-05-15 23:25:00     at listOnTimeout (node:internal/timers:569:17)
2024-05-15 23:25:00     at process.processTimers (node:internal/timers:512:7) {
2024-05-15 23:25:00   code: 'ERR_SOCKET_TIMEOUT',
2024-05-15 23:25:00   timeout: 601000
2024-05-15 23:25:00 }
2024-05-15 23:25:00 
2024-05-15 23:25:00 Node.js v18.19.1

我认为超时是可以接受的,需要一段时间来加载。然而,我没想到容器会崩溃,我更希望只是重新启动线程。

是否存在已知的重现步骤?

我认为任何大于10分钟的加载时间都应该可以重现。

r7s23pms

r7s23pms1#

这个超时是在你的LLM响应期间发生的,还是在你打开了一个会话但尚未向LLM发送聊天的情况下发生的?如果你的LLM需要10分钟才能回复,那么延迟有点高,但是它不应该导致服务器崩溃。

c2e8gylq

c2e8gylq2#

在两者之间。继续之前的聊天会话/线程,重新启动了后端(LocalAI),第一个向LocalAI发送的聊天消息将模型加载到内存中——所以它还没有对消息做出响应,是的,在CPU上,将模型加载到RAM中需要一段时间——但微妙的区别在于它还没有进行推理。请查看我这里的屏幕截图以查看事件,当模型加载完成后,AnythingLLM服务器告诉我有比等待更好的事情要做(崩溃)😆 。

应该提到的是,在加载完成后,它的工作效果很好,没有问题。
感谢你回复我👍

3pvhb19x

3pvhb19x3#

啊,所以模型只是花了很长时间来加载请求,然后继续进行。10分钟也不是巧合。对于LocalAI,我们使用openai的NPM包,它有一个10分钟的超时时间
如果这个是无限的话,我会感到紧张,因为这样可以导致整个调用挂起。要求mlock在实际使用模型之前先进行基本预处理,以防止这种情况发生,这是否合理呢?
我并不太兴奋,因为这可能会无意中导致LocalAI的请求无限挂起!

iq0todco

iq0todco4#

Will add that regardless this should not exit the process - so that needs to be patched for sure

xqk2d5yq

xqk2d5yq5#

是的,我同意。对于LocalAI的具体处理,不要太担心,只要服务器不会因为任何事情崩溃就行。我可以处理模型预加载等操作,但是当我下载各种模型并尝试它们,在运行时加载它们时——只是不要崩溃就足够好了。

r1zhe5dt

r1zhe5dt6#

这很有趣,我现在正在尝试复制这个过程,但我无法让那个确切的超时发生。它总是被处理,这让我怀疑这个异常是在其他地方被抛出而没有被捕获。任何在流过程中发生的异常都会被捕获并阻止完全崩溃。

目前我正努力重现确切的错误,以便我可以找到其完整的堆栈跟踪并处理它。

ffvjumwh

ffvjumwh7#

我会尝试在本地以调试模式运行,并提供更多信息。此外,我落后于主分支11个提交,所以,让我获取最新版本并再次尝试。

xoefb8l8

xoefb8l88#

不确定这是否增加了任何信息,但使用最新版本仍然可以重现。看起来它起源于node_modules中的agentkeepalive。

我将在周末继续尝试解决这个问题。解决方法很简单,可以预先加载模型。

mfpqipee

mfpqipee9#

从我在lockfile中看到的内容来看,openai npm模块需要那个子依赖项,这真是令人沮丧,因为我无法确定在我们调用库之前它会中止在哪里,所以我们无法处理它!

相关问题