Ollama 如何安装与迁移至其他磁盘驱动器
随着大型语言模型(LLM)的普及,Ollama 提供了一个便捷的本地运行模型的方式。然而,模型的体积通常非常庞大,默认安装位置(通常是系统盘)可能会迅速耗尽空间,特别是在系统盘容量有限的情况下。因此,了解如何将 Ollama 的安装或模型存储位置转移到其他磁盘驱动器变得非常重要。
为什么需要将 Ollama 安装到其他盘?
将 Ollama(特别是其模型文件)安装或迁移到其他盘的主要原因通常是存储空间限制。默认情况下,Ollama 会将模型下载并存储在系统盘的特定用户目录下。一块具有 7B 参数的模型可能占用 4-5 GB 空间,而 70B 参数的模型可能占用高达 40 GB 或更多。如果您计划使用多个大型模型,系统盘的可用空间很快就会捉襟见肘。
除了空间原因,将模型存储在单独的数据盘上还有其他好处:
- 系统盘整洁: 保持系统盘主要用于操作系统和应用程序,有助于提升系统整体性能和稳定性。
- 便于备份和管理: 将所有模型集中存放在一个数据盘上,便于统一管理、备份或在重装系统后恢复。
- 利用更大、更快的驱动器: 您可能拥有一个比系统盘更大或更快的固态硬盘(SSD)或机械硬盘(HDD),希望利用其优势来存放模型。
Ollama 的哪些部分会被移动?
理解 Ollama 的组成部分有助于我们决定哪些可以移动:
- Ollama 程序文件: 这是 Ollama 服务的核心可执行文件和依赖库。这部分文件通常体积不大,默认安装时可能会放在程序文件目录或用户AppData(Windows)等位置。通常不建议或不容易将这部分文件完全移动,因为它与操作系统紧密集成。
- 模型文件: 这是占用空间最大的部分。Ollama 下载的所有模型(例如 llama2, mistral, codellama 等)都以特定的格式存储在文件系统中。这部分是用户最希望转移到其他盘的。
- 配置文件和数据: 可能包含一些用户偏好、日志或其他小体积数据。这部分通常也不大,且与程序文件关联,一般不单独移动。
因此,我们将 Ollama 安装到其他盘的核心操作,通常指的是修改 Ollama 查找和存储模型的默认位置,使其指向其他磁盘上的目录。
如何在不同的操作系统上将 Ollama 模型存储到其他盘?
Ollama 提供了一个标准的方式来指定模型的存储位置,即通过设置一个名为 OLLAMA_MODELS
的环境变量。这个环境变量告诉 Ollama 应该去哪里寻找和存放模型文件。无论您使用 Windows、macOS 还是 Linux,核心原理都是设置这个环境变量,但设置方法因操作系统的不同而有所区别。
Windows 系统
在 Windows 上,您可以设置系统环境变量或用户环境变量来改变 Ollama 模型的存储位置。推荐设置为用户环境变量。
默认的模型存储位置通常在 C:\Users\您的用户名\.ollama\models
。
操作步骤:
- 选择新的模型存储目录: 在您希望存放模型的其他盘上创建一个新的文件夹,例如
D:\OllamaModels
或E:\AI\Ollama
。确保这个目录是空的,或者您已经将原有模型的目录内容移动到了这里(见后续步骤)。 - 打开系统环境变量设置:
- 右键点击“此电脑”(或“计算机”)图标,选择“属性”。
- 点击左侧的“高级系统设置”。
- 在弹出的“系统属性”窗口中,点击右下角的“环境变量”按钮。
- 添加或编辑
OLLAMA_MODELS
环境变量:- 在“用户变量”区域(上面的列表),点击“新建…”按钮。
- 在弹出的“新建用户变量”窗口中:
- 变量名填写:
OLLAMA_MODELS
- 变量值填写:您在步骤1中创建的新目录的完整路径,例如
D:\OllamaModels
- 变量名填写:
- 点击“确定”关闭新建变量窗口。
- 点击“确定”关闭环境变量窗口。
- 点击“确定”关闭系统属性窗口。
- 应用设置并重启 Ollama 服务:
- 为了确保环境变量生效,通常需要注销并重新登录 Windows 用户,或者直接重启计算机。
- 如果 Ollama 服务正在运行,需要停止并重新启动它。您可以在任务管理器中找到 Ollama 相关的进程结束掉,然后重新打开 Ollama 应用程序,或者通过服务管理器重启 Ollama 服务。
- 验证: 打开命令提示符或 PowerShell,运行
ollama list
。Ollama 应该能正确列出您新目录中的模型(如果之前已移动),并且之后下载的新模型会存放在新目录中。您也可以尝试运行一个模型,例如ollama run llama2
,观察下载过程是否发生在新的目录下。
如果 Ollama 已经下载了模型,如何迁移?
在设置好 OLLAMA_MODELS
环境变量并重启 Ollama 服务之前,您需要将旧的模型目录内容移动到新目录。默认位置通常是 C:\Users\您的用户名\.ollama\models
。
- 先停止 Ollama 服务(通过任务管理器或服务管理器)。
- 将
C:\Users\您的用户名\.ollama\models
目录下的所有内容(子文件夹和文件)复制或移动到您在步骤1中创建的新目录(例如D:\OllamaModels
)。使用“移动”操作可以节省空间,但复制更安全,完成后再删除原目录。 - 确认内容已成功移动或复制。
- 继续上面的步骤 3-5 设置环境变量并重启 Ollama 服务。
- 验证 Ollama 是否能在新位置找到模型。如果一切正常,并且您是复制而不是移动,可以删除旧的
C:\Users\您的用户名\.ollama\models
目录以释放空间。
macOS 系统
在 macOS 上,您通常通过修改 shell 配置文件(如 ~/.zshrc
或 ~/.bash_profile
)来设置环境变量。
默认的模型存储位置通常在 /Users/您的用户名/.ollama/models
。
操作步骤:
- 选择新的模型存储目录: 在您希望存放模型的其他盘或分区上创建一个新的文件夹。例如,如果您的外接硬盘挂载在
/Volumes/DataDrive
,您可以创建/Volumes/DataDrive/OllamaModels
。 - 编辑您的 shell 配置文件: 打开终端应用程序。根据您使用的 shell(macOS Catalina及更新版本默认使用 zsh,旧版本使用 bash),编辑对应的文件。
- 对于 zsh 用户:运行
nano ~/.zshrc
或open ~/.zshrc
- 对于 bash 用户:运行
nano ~/.bash_profile
oropen ~/.bash_profile
(如果您不确定使用哪个,可以尝试编辑
.zshrc
,如果不存在则创建;如果使用的是 bash,则编辑.bash_profile
)。 - 对于 zsh 用户:运行
- 添加
OLLAMA_MODELS
环境变量:在文件末尾添加一行:
export OLLAMA_MODELS="/路径/到/您的/新目录"
例如:
export OLLAMA_MODELS="/Volumes/DataDrive/OllamaModels"
保存并关闭文件(在 nano 中按 Ctrl+X,然后按 Y 确认保存)。
- 使环境变量生效: 在终端中运行以下命令,或者关闭并重新打开终端窗口:
- 对于 zsh 用户:
source ~/.zshrc
- 对于 bash 用户:
source ~/.bash_profile
- 对于 zsh 用户:
- 重启 Ollama 服务: 确保 Ollama 服务已停止并重新启动。您可以通过活动监视器退出 Ollama 应用程序,然后重新启动它。
- 验证: 在终端中运行
ollama list
或尝试下载/运行模型,确认模型文件存放在新的目录中。
如果 Ollama 已经下载了模型,如何迁移?
在设置好 OLLAMA_MODELS
环境变量并重启 Ollama 服务之前,您需要将旧的模型目录内容移动到新目录。默认位置通常是 /Users/您的用户名/.ollama/models
。
- 先停止 Ollama 服务。
- 打开终端,使用
mv
命令将旧的模型目录移动到新位置。例如:
mv /Users/您的用户名/.ollama/models /Volumes/DataDrive/OllamaModels
请将路径替换为您的实际路径。如果新目录已经存在且不为空,您可能需要先清空它或使用更复杂的命令。
或者,如果您想保留旧目录作为备份(不推荐,因为会占用双倍空间),可以使用
cp -R
命令复制,完成后再手动删除旧目录。 - 确认内容已成功移动。
- 继续上面的步骤 3-6 设置环境变量并重启 Ollama 服务。
- 验证 Ollama 是否能在新位置找到模型。
Linux 系统
在 Linux 上,设置环境变量的方法与 macOS 类似,通常也是修改 shell 配置文件或使用系统级的环境变量文件。
默认的模型存储位置通常在 /home/您的用户名/.ollama/models
。
操作步骤:
- 选择新的模型存储目录: 在您希望存放模型的其他挂载点(分区)上创建一个新的文件夹,例如
/mnt/datapartition/ollamamodels
。 - 设置
OLLAMA_MODELS
环境变量:- 用户级别(推荐,仅对当前用户生效): 编辑您的 shell 配置文件 (如
~/.bashrc
,~/.zshrc
)。
nano ~/.bashrc
在文件末尾添加一行:
export OLLAMA_MODELS="/路径/到/您的/新目录"
保存并关闭文件。然后在终端中运行
source ~/.bashrc
或关闭并重新打开终端。 - 系统级别(对所有用户生效): 编辑
/etc/environment
文件(需要 root 权限)。
sudo nano /etc/environment
添加一行(注意格式,没有 export 和引号):
OLLAMA_MODELS="/路径/到/您的/新目录"
保存并关闭文件。然后需要重启系统才能使之生效。
- 用户级别(推荐,仅对当前用户生效): 编辑您的 shell 配置文件 (如
- 重启 Ollama 服务: 如果 Ollama 作为系统服务运行,通常需要重启服务。例如:
sudo systemctl restart ollama
如果 Ollama 是手动启动的,关闭进程后重新启动。
- 验证: 在终端中运行
ollama list
或尝试下载/运行模型,确认模型文件存放在新的目录中。
如果 Ollama 已经下载了模型,如何迁移?
在设置好 OLLAMA_MODELS
环境变量并重启 Ollama 服务之前,您需要将旧的模型目录内容移动到新目录。默认位置通常是 /home/您的用户名/.ollama/models
。
- 先停止 Ollama 服务。
- 打开终端,使用
mv
命令将旧的模型目录移动到新位置。例如:
mv /home/您的用户名/.ollama/models /mnt/datapartition/ollamamodels
请将路径替换为您的实际路径。注意目录的权限,确保 Ollama 服务运行用户对新目录有读写权限。
- 确认内容已成功移动。
- 继续上面的步骤 2-4 设置环境变量并重启 Ollama 服务。
- 验证 Ollama 是否能在新位置找到模型。
重要提示: 在执行移动或复制操作前,强烈建议先停止 Ollama 服务,以避免文件正在被使用导致错误。确保新目录有足够的空间,并且 Ollama 服务运行用户(通常是当前用户,但作为系统服务时可能是特定用户)对新目录有写入权限。
将 Ollama 模型移动到其他盘需要多少空间?
如前所述,Ollama 程序本身占用的空间很小,通常只有几百 MB。但模型的空间需求非常大,并且取决于您下载的具体模型和数量。
以下是一些常见模型的近似大小:
- Llama 2 7B (quantized): ~4 GB
- Mistral 7B (quantized): ~4 GB
- Code Llama 7B (quantized): ~4 GB
- Llama 2 13B (quantized): ~7-8 GB
- Llama 2 70B (quantized): ~40 GB
- Phi-2 (quantized): ~2 GB
请注意,这些是量化(quantized)模型的尺寸,非量化模型会更大。您可以在 Ollama 的模型库页面或通过 ollama list
命令查看已下载模型的具体大小。
因此,您需要为新目录所在的磁盘准备足够的空间,这取决于您打算下载多少个模型以及它们的尺寸。如果您计划尝试多个模型,建议至少准备几十 GB 到上百 GB 的空间。例如,如果您想同时使用 Llama 2 70B、Mistral 7B 和 Code Llama 7B,您需要 40 + 4 + 4 = 48 GB 以上的空间。
将 Ollama 模型移动到其他盘后如何维护?
将 Ollama 模型位置转移到其他盘后,日常维护通常不会变得更复杂。主要需要注意以下几点:
- 模型更新: 当您运行
ollama pull model_name
更新模型时,Ollama 会自动将新版本下载到您设置的OLLAMA_MODELS
目录下,并覆盖旧版本(或存储为新版本,取决于 Ollama 的内部机制)。这个过程是自动的,不需要特殊操作。 - 模型删除: 使用
ollama rm model_name
命令删除模型时,Ollama 会从您设置的OLLAMA_MODELS
目录中删除对应的模型文件。 - Ollama 程序更新: Ollama 应用程序本身的更新通常不会影响模型文件的位置。更新安装程序会替换 Ollama 的核心程序文件,但模型仍然会在
OLLAMA_MODELS
指定的目录下查找。通常情况下,直接运行新版本的安装程序即可完成更新,它会保留您的环境变量设置。 - 备份: 如果您想备份模型,只需复制
OLLAMA_MODELS
指定目录下的所有文件和文件夹即可。 - 迁移回默认位置或再次迁移: 如果您想将来把模型移回默认位置或迁移到其他新的位置,可以重复上述步骤:
- 停止 Ollama 服务。
- 将当前模型目录的内容移动到新的目标目录(无论是默认位置还是其他自定义位置)。
- 修改或删除
OLLAMA_MODELS
环境变量(删除该变量后,Ollama 会使用默认位置)。 - 重启 Ollama 服务。
- 磁盘空间监控: 定期检查存放模型的磁盘空间的剩余情况,避免空间耗尽影响 Ollama 的正常使用或模型下载。
总之,通过设置 OLLAMA_MODELS
环境变量是一种标准且有效的方式,可以将 Ollama 模型存储从默认的系统盘位置转移到其他磁盘。这个操作相对直接,但在不同操作系统上设置环境变量的具体步骤有所差异。一旦设置完成,日常使用和维护通常不会受到太大影响。