当我在docker中运行Ollama run gemma:2b时,它会下载/root/.ollama/models中的blobs文件夹和manifests文件夹。在没有互联网的私有环境中,我复制了blobs和manifests文件夹,当我运行ollama run <name model>时,它无法正常工作。如何才能实现这个目标?
Ollama run gemma:2b
/root/.ollama/models
blobs
manifests
ollama run <name model>
vmjh9lq91#
Ollama缓存确实很难手动移动,因为每个模型的清单文件都实现了类似于符号链接的底层blob文件引用,这与操作系统级别的符号链接不同;移动文件或更改任何父目录的名称都会完全破坏缓存。请注意,我的解决方案假设您的Docker安装将/root绑定到$HOME目录。如果您的虚拟存储配置不同,您可能需要稍作调整。要实现您所要求的功能,您需要首先(在下载模型之前)在$HOME/.ollama/models创建自己的符号链接,指向您打算用于下载模型的目录。例如:
/root
$HOME
$HOME/.ollama/models
mkdir -p "$HOME/.ollama/sandbox/models" ln -s -F "$HOME/.ollama/sandbox/models" "$HOME/.ollama/models"
Ollama仍然会在$HOME/.ollama/models查找模型(并且该符号链接指针需要持久化),但您可以想象使用这种技术与您的设置相结合;根据您正在使用的环境,可能需要进行一些调整。或者,您可以将OLLAMA_MODELS环境变量指向一个不同的下载目录。同样,您不能移动缓存文件或更改父目录的名称,但您可以将其设置为与您的互联网访问环境共享访问权限的目录。
OLLAMA_MODELS
1条答案
按热度按时间vmjh9lq91#
Ollama缓存确实很难手动移动,因为每个模型的清单文件都实现了类似于符号链接的底层blob文件引用,这与操作系统级别的符号链接不同;移动文件或更改任何父目录的名称都会完全破坏缓存。
请注意,我的解决方案假设您的Docker安装将
/root
绑定到$HOME
目录。如果您的虚拟存储配置不同,您可能需要稍作调整。要实现您所要求的功能,您需要首先(在下载模型之前)在
$HOME/.ollama/models
创建自己的符号链接,指向您打算用于下载模型的目录。例如:Ollama仍然会在
$HOME/.ollama/models
查找模型(并且该符号链接指针需要持久化),但您可以想象使用这种技术与您的设置相结合;根据您正在使用的环境,可能需要进行一些调整。或者,您可以将
OLLAMA_MODELS
环境变量指向一个不同的下载目录。同样,您不能移动缓存文件或更改父目录的名称,但您可以将其设置为与您的互联网访问环境共享访问权限的目录。