这是之前的一篇:对话模型chat.guanjihuan.com的主要实现代码开源。其中,运行本地模型主要使用的是 Python 中的软件库,调用开源大语言模型的方法会比较标准,但稍微繁琐了些。本篇记录下使用 Ollama 在本地运行开源大语言模型,会更加方便和快捷。
Ollama的官网为:https://ollama.com/。根据操作系统,下载对应的软件,大小约几百M。
安装后会自动打开命令行对话框。根据提示,可以运行第一个开源模型(运行时自动下载模型,约 2G):
ollama run llama3.2
更多支持的模型可以参考这个链接:https://ollama.com/library。
常用的命令有:
- 查看帮助:ollama help
- 查看已安装的模型:ollama list
- 查看正在运行的模型:ollama ps
- 运行模型:ollama run xxx
- 停止模型:ollama stop xxx
说明:如果没有支持的显卡,会默认使用CPU运行,且占用内存。当内存比较小时,如 2G 或 4G,那么推荐先尝试运行参数较小的模型,然后再尝试运行较大参数的模型,虽然模型效果比较一般,但也勉强可以运行,总之,效果的预期不要太高,本地部署的优点只是隐私性会更强一些。如果本地硬件资源足够高,那么可以运行更大参数的开源大语言模型。
另外,如果 ollama 长时间放在后台没有进行 ollama run xxx 对话,那么正在运行的模型可能会自动释放,默认可能是 5 分钟。判断后台的模型是否还在运行,可通过 ollama ps 来查看,如果没有正在运行的模型,那么说明内存/显存已经释放。
在命令窗口中对话的截图:
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)来进行管理,也是可以考虑,需要有换源的操作,不然无法下载模型。
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】