问题是什么?
这个问题与#1952类似。我注意到在使用ROCm上的长上下文长度时,Ollama会崩溃。特别是,最明显的事情是我可以从一开始就继续与Ollama进行大型对话,而模型仍然保留在内存中。但是当我稍后回来,模型需要重新加载时,它无法处理上下文。
这是1952年我发的消息。
我想再次触发这个问题,因为我仍然在使用GLM4的65k上下文大小时看到这个问题。没有太多上下文的情况下加载得很好,但在加载较大的上下文时有问题。我甚至将上下文大小设置为8k o_O。
重要信息:
看起来GPU VRAM达到了100%,但然后无法溢出到更大的上下文中。
rocm-smi
显示VRAM从98%... 99%.. 100%上升到崩溃。将GPU层数降低到41中的15个,并禁用mmap,将num_batch设置为256对于GLM 4使VRAM保持在35%左右,使用8k上下文大小。
禁用mmap并将num_batch设置为256,让其将所有41个GPU层加载到内存中使用69%的VRAM。
将num_ctx设置为60,000仍会使它尝试将所有层加载到GPU中,然后因为VRAM不足而崩溃。
将num_gpu降低到30甚至20可以让它加载更多的上下文。但这只是在延缓不可避免的事情。足够长的上下文会导致崩溃。
难道Ollama不应该在这个情况下计算它需要将更少的层加载到GPU中吗?就像我可以手动调整一样,但是如果Ollama接收到num_ctx,这会让模型崩溃,它不应该开始使用系统RAM吗?
操作系统:Linux
GPU:AMD
CPU:AMD
Ollama版本:0.2.5
1条答案
按热度按时间k4aesqcs1#
与此相关的是:我正在运行
gemma2:27b
。在最新版本之前,它以大约5个令牌/秒的速度运行,并在GPU上使用了38层中的47层。但是现在,如果它试图在GPU上加载38层,ollama会耗尽VRAM。即使没有上下文(即新的对话)。所以我不得不将num_gpu
调低到30层才能让它运行。