软件使用, 生活

使用Ollama在本地运行开源大语言模型

这是之前的一篇:对话模型chat.guanjihuan.com的主要实现代码开源。其中,运行本地模型主要使用的是 Python 中的软件库,调用开源大语言模型的方法会比较标准,但稍微繁琐了些。本篇记录下使用 Ollama 在本地运行开源大语言模型,会更加方便和快捷。

一、安装和使用 Ollama

Ollama 的官网为:https://ollama.com/。根据操作系统,下载对应的软件,大小约几百M。

安装后会自动打开命令行对话框。根据提示,可以运行第一个开源模型(运行时自动下载模型,约 2G):

ollama run llama3.2:3b

更多支持的模型可以参考这个链接:https://ollama.com/library。个人目前推荐:

ollama run qwen2.5:3b
ollama run qwen2.5:7b

常用的命令有:

  • 查看帮助:ollama help
  • 查看已安装的模型:ollama list
  • 查看正在运行的模型:ollama ps
  • 运行模型:ollama run xxx
  • 停止模型:ollama stop xxx

说明:如果没有支持的显卡,会默认使用 CPU 运行,且占用内存。当内存比较小时,如 2G 或 4G,那么推荐先尝试运行参数较小的模型,然后再尝试运行较大参数的模型,虽然模型效果比较一般,但也勉强可以运行,总之,效果的预期不要太高,本地部署的优点只是隐私性会更强一些。如果本地硬件资源足够高,那么可以运行更大参数的开源大语言模型。

经过测试,如果只是 CPU 运行,有 16G 的内存,那么:(1)运行 7b 左右的模型,效果还可以;(2)运行 3b 左右的模型,对话速度会更快一些;(3)14b 左右的模型勉强可以运行,但速度会很慢,且占用其他程序的内存,不推荐。总之,模型大小的推荐范围大概为:1b~7b。如果是 GPU 运行,有比较大的显存,那么可以考虑更大的模型。

另外,如果 ollama 长时间放在后台没有进行 ollama run xxx 对话,那么正在运行的模型可能会自动释放,默认可能是 5 分钟。判断后台的模型是否还在运行,可通过 ollama ps 来查看,如果没有正在运行的模型,那么说明内存/显存已经释放。

在命令窗口中对话的截图:

二、修改模型的存放路径

Windows 系统下 Ollama 默认是下载在 C 盘,如果内存/显存充足,但 C 盘空间不足,那么还是无法下载参数比较大的模型。这里给出修改模型存放路径的方法。

按 win 键,搜索“环境变量”,打开“环境变量”。在“系统变量”中,新建后,填入变量名:

OLLAMA_MODELS

填入变量值:

D:\Ollama\models

这个文件夹路径需要提前手动新建完成。

设置完环境变量后,可以把 C 盘之前下载的模型移过来,原来的路径大概是这个:C:\Users\guan.ollama\models。关闭终端后重新打开,在新路径下的模型还是可以被识别到。

三、使用 Python 调用 Ollama

Python 调用 Ollama 的示例代码:

# 直接输出
import ollama
response = ollama.chat(model="llama3.2:latest", messages=[{"role": "user","content": "你好"}], stream=False)
print(response['message']['content'])

# 流式输出
import ollama
response = ollama.chat(model="llama3.2:latest", messages=[{"role": "user", "content": "你好"}], stream=True)
for part in response:
    print(part['message']['content'], end='', flush=True)

# 流式输出,且模型后台常驻(需要手动 ollama stop 关闭)
import ollama
response = ollama.chat(model="llama3.2:latest", messages=[{"role": "user", "content": "你好"}], stream=True, keep_alive=-1)
for part in response:
    print(part['message']['content'], end='', flush=True)

除了 Ollama 之外,在本地运行开源大语言模型还可以使用 LM Studio(https://lmstudio.ai)来进行管理,也是可以考虑,需要有换源的操作,不然无法下载模型。

739 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code