问题是什么?
如果我尝试从一个引用现有blob的模型文件中创建模型,ollama(我认为)会在意识到已经存在并创建模型之前,将整个blob复制到一个临时文件。这使得模型导入变得非常耗时,并且意味着你需要在驱动器上腾出额外的空间来容纳两次模型。我希望它只是创建所需的元数据文件,然后让模型保持原样。
顺便说一下,应该有更好的方法来使用现有的模型,我一直在手动地通过将模型链接到blobs目录中的正确名称来使用它们,但导入过程仍然需要在弄清楚之前对模型进行完整复制。
操作系统:Windows
GPU:Nvidia
CPU:Intel
Ollama版本:0.1.47
5条答案
按热度按时间ruyhziif1#
看起来这种行为实际上即使文件不存在时也会发生。我正在运行
ollama create
,其中有一个模型文件引用了D:\model.gguf
,Ollama将其模型保存在C
上。在创建模型的transferring model data
阶段,它短暂地占用了2倍于C
的模型大小。kokeuurv2#
嘿,@thot-experiment,你能分享一下你正在运行的命令、使用的模型以及如何跟踪磁盘空间的更多细节吗?目前,我们在将模型写入models目录之前检查blob。你可以通过
./ollama serve
日志查看这一点。最初对blob的POST发现blob存在并使用它。在第二个情况中,
201
,由于我们在请求之前删除了它,所以复制了blob。fgw7neuy3#
我正在使用“命令是否失败,因为我的磁盘空间不足”/“我会得到0磁盘空间吗”作为我的磁盘空间指标,并且我使用了
ollama create model_name -f Modelfile
,其中Modelfile以FROM ollamadir/models/blobs/sha256-00e832ab2a729f48c19...
开头。我认为这里可能出错的地方是奥拉马中的基准数据存储在某个数据库中,而不是磁盘上的文件。因此,如果奥拉马不知道这个文件,它就会盲目地进行复制过程,而不是看到文件存在并与sha匹配?
kgqe7b3p4#
感谢您的回复。我们使用服务器上的文件(在您的情况下是磁盘上的文件)来检查blob是否存在。只有在您的模型目录中不存在具有匹配SHA的blob时,才会进行复制。您能否分享一下创建模型时的日志?您是否可以在创建模型之前和之后包括磁盘上模型目录的屏幕截图?这可能类似于
\Users\____\.ollama\models\blobs
。jdg4fx2g5#
我们找到了这个bug的原因,感谢指出。这个PR应该能修复你的创建时间问题