ollama 尝试在系统内存不足的情况下加载llama 3.1,并因主机分配失败而崩溃,

irlmq6kh  于 5个月前  发布在  其他
关注(0)|答案(5)|浏览(77)

问题:当我尝试加载这个模型时,我遇到了这个错误。Ollama库中的其他llama 3.1模型运行得很好。

操作系统:Windows

GPU:Nvidia

CPU:AMD

Ollama版本:0.3.4

pengsaosao

pengsaosao1#

这个模型的默认上下文大小为128000,你有OLLAMA_NUM_PARALLEL=2,所以lama.cpp正在尝试分配31G仅用于KV,而你的机器没有足够的资源:

time=2024-08-09T14:28:55.092+03:00 level=DEBUG source=gpu.go:359 msg="updating system memory data" before.total="31.9 GiB" before.free="17.1 GiB" before.free_swap="19.4 GiB" now.total="31.9 GiB" now.free="17.1 GiB" now.free_swap="19.5 GiB"

time=2024-08-09T14:28:55.142+03:00 level=INFO source=memory.go:309 msg="offload to cuda" layers.requested=-1 layers.model=33 layers.offload=0 layers.split="" memory.available="[4.6 GiB]" memory.required.full="35.3 GiB" memory.required.partial="0 B" memory.required.kv="31.2 GiB" memory.required.allocations="[0 B]" memory.weights.total="34.9 GiB" memory.weights.repeating="34.5 GiB" memory.weights.nonrepeating="411.0 MiB" memory.graph.full="16.1 GiB" memory.graph.partial="17.1 GiB"

如果你需要完整的128k,你可以尝试设置OLLAMA_NUM_PARALLEL=1或增加你机器上的交换空间。如果那不起作用,你可以加载一个较小的上下文窗口的模型:#5965(评论)

okxuctiv

okxuctiv2#

哦,那很有道理。我没想到这一点。谢谢你。

1yjd4xko

1yjd4xko3#

It didn't work with setting the OLLAMA_NUM_PARALLEL=1. I had to lower the context size for the model to load.

kgsdhlau

kgsdhlau4#

我们一直在改进对无法加载的模型的检测,并用更好的错误信息代替崩溃,但这个场景足够接近,我们尝试了但最终失败了。一些用户可以接受交换和运行非常缓慢,所以我们尽量不那么激进,但这是一个例子,我们应该尝试提前更好地检测到这种情况,而不是崩溃。KV缓存需要约32G,但实际上超过了系统的实际内存,因此交换文件无法提供帮助。

ie3xauqp

ie3xauqp5#

我不知道这个功能实现起来有多难,但如果在执行"Olama run model"时,首先得到一个警告,提示这个模型可能无法在你的系统上运行,那将是非常棒的。

相关问题