Ollama 管理本地已有大模型(包括终端对话界面)

Ollama 导入模型到本地的三种方式:直接从 Ollama 远程仓库拉取、通过 GGUF 模型权重文件导入到本地、通过 safetensors 模型权限文件导入到本地

Ollama是一个开源的 LLM(大型语言模型)服务工具,用于简化在本地运行大语言模型、降低使用大语言模型的门槛,使得大模型的开发者、研究人员和爱好者能够在本地环境快速实验、管理和部署最新大语言模型,包括如DeepSeek、Qwen2、Llama3、Phi3、Gemma2等开源的大型语言模型。支持的大语言模型列表,可通过搜索模型名称查看:https://ollama.com/library

安装

在官网首页可以直接下载Ollama安装程序(支持 Windows/MacOS/Linux):https://ollama.com/

Ollama的安装过程,与安装其他普通软件并没有什么两样,安装完成之后,有几个常用的系统环境变量参数建议进行设置:

  • OLLAMA_MODELS:模型文件存放目录,默认目录为当前用户目录(Windows 目录:C:\Users%username%.ollama\models,MacOS 目录:~/.ollama/models,Linux 目录:/usr/share/ollama/.ollama/models),如果是 Windows 系统建议修改(如:D:\OllamaModels),避免 C 盘空间吃紧

  • OLLAMA_HOST:Ollama 服务监听的网络地址,默认为127.0.0.1,如果允许其他电脑访问 Ollama(如:局域网中的其他电脑),建议设置成0.0.0.0,从而允许其他网络访问

  • OLLAMA_PORT:Ollama 服务监听的默认端口,默认为11434,如果端口有冲突,可以修改设置成其他端口(如:8080等)

  • OLLAMA_ORIGINS:HTTP 客户端请求来源,半角逗号分隔列表,若本地使用无严格要求,可以设置成星号,代表不受限制

  • OLLAMA_KEEP_ALIVE:大模型加载到内存中后的存活时间,默认为5m即 5 分钟(如:纯数字如 300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活);我们可设置成24h,即模型在内存中保持 24 小时,提高访问速度

  • OLLAMA_NUM_PARALLEL:请求处理并发数量,默认为1,即单并发串行处理请求,可根据实际情况进行调整

  • OLLAMA_MAX_QUEUE:请求队列长度,默认值为512,可以根据情况设置,超过队列长度请求被抛弃

  • OLLAMA_DEBUG:输出 Debug 日志标识,应用研发阶段可以设置成1,即输出详细日志信息,便于排查问题

  • OLLAMA_MAX_LOADED_MODELS:最多同时加载到内存中模型的数量,默认为1,即只能有 1 个模型在内存中

Ollama常用命令

#命令说明``ollama --version#显示当前安装的 ollama 版本。``ollama serve #启动服务,启动 ollama 服务,默认监听在 http://localhost:11434 地址。``ollama create <model_name> [-f <modelfile_path>]#创建模型``ollama show <model_name>#查看模型信息<model_name>: 要查询的模型名称。``ollama run <model_name>#运行指定的模型。<model_name>: 要运行的模型名称。``ollama stop <model_name>#停止正在运行的模型。<model_name>: 要停止的模型名称。``ollama pull <model_name>#从注册表中拉取指定的模型。<model_name>: 要拉取的模型名称。``ollama push <model_name>#将本地模型推送到注册表。<model_name>: 要推送的模型名称。``ollama list#列出所有已下载的模型。``ollama ps#列出所有正在运行的模型。``ollama cp <source_model> <destination_model>将一个模型复制到另一个新命名的模型。``ollama rm <model_name>#删除指定的模型。<model_name>: 要删除的模型名称。

大模型下载到本地

方式一:直接通过 Ollama 远程仓库下载,这是最直接的方式,也是最推荐、最常用的方式

方式二:如果已经有 GGUF 模型权重文件了,不想重新下载,也可以通过 Ollama 把该文件直接导入到本地(不推荐、不常用)

方式三:如果已经有 safetensors 模型权重文件,也不想重新下载,也可以通过 Ollama 把该文件直接导入到本地(不推荐、不常用)

方式一:Ollama 从远程仓库下载大模型到本地

【下载或者更新本地大模型:ollama pull 本地/远程仓库模型名称】

本pull命令从 Ollama 远程仓库完整下载或增量更新模型文件,模型名称格式为:模型名称:参数规格;如ollama pull qwen2:0.5b 则代表从 Ollama 仓库下载qwen2大模型的0.5b参数规格大模型文件到本地磁盘:

Qwen2模型列表

如果参数规格标记为latest则代表为默认参数规格,下载时可以不用指定,如Qwen2的7b被标记为latest,则ollama pull qwen2和ollama pull qwen2:7b这 2 个命令的意义是一样的,都下载的为7b参数规格模型。

若本地不存在大模型,则下载完整模型文件到本地磁盘;若本地磁盘存在该大模型,则增量下载大模型更新文件到本地磁盘。

方式二:Ollama 导入 GGUF 模型文件到本地磁盘

若已经从 HF 或者 ModeScope 下载了 GGUF 文件(文件名为:Meta-Llama-3-8B-Instruct.Q4_K_M.gguf),在存放Llama3-8B的GGUF模型文件目录中创建一个Modelfile的文件,内容如下:

FROM ./Meta-Llama-3-8B-Instruct.Q4_K_M.gguf

然后打开终端,执行命令导入模型文件:ollama create 模型名称 -f ./Modelfile

>ollama create Llama-3-8B -f ./Modelfile``transferring model data``using existing layer sha256:647a2b64cbcdbe670432d0502ebb2592b36dd364d51a9ef7a1387b7a4365781f``creating new layer sha256:459d7c837b2bd7f895a15b0a5213846912693beedaf0257fbba2a508bc1c88d9``writing manifest``success

导入成功之后,可以通过list命令查看。

方式三:Ollama 导入 safetensors 模型文件到到本地磁盘

官方操作文档:https://ollama.fan/getting-started/import/#importing-pytorch-safetensors

若已经从HF或者ModeScope下载了safetensors文件(文件目录为:Mistral-7B),

git lfs install``git clone https://www.modelscope.cn/rubraAI/Mistral-7B-Instruct-v0.3.git Mistral-7B``#转换模型(结果:Mistral-7B-v0.3.bin):``python llm/llama.cpp/convert.py ./Mistral-7B --outtype f16 --outfile Mistral-7B-v0.3.bin``#接下来,进行量化量化:``llm/llama.cpp/quantize Mistral-7B-v0.3.bin Mistral-7B-v0.3_Q4.bin q4_0

最后,通过 Ollama 导入到本地磁盘,创建Modelfile模型文件:

FROM Mistral-7B-v0.3_Q4.bin

执行导入命令,导入模型文件:ollama create 模型名称 -f ./Modelfile

>ollama create Mistral-7B-v0.3 -f ./Modelfile``transferring model data``using existing layer sha256:647a2b64cbcdbe670432d0502ebb2592b36dd364d51a9ef7a1387b7a4365781f``creating new layer sha256:459d7c837b2bd7f895a15b0a5213846912693beedaf0257fbba2a508bc1c88d9``writing manifest``success

导入成功之后,我们就可以通过list查看。

基于 WebUI 部署 Ollama 可视化对话界面

Ollama自带控制台对话界面体验总归是不太好,接下来部署 Web 可视化聊天界面:

git clone https://github.com/ollama-webui/ollama-webui-lite ollama-webui``#切换ollama-webui代码的目录``cd ollama-webui``#设置 Node.js 工具包镜像源(下载提速)``npm config set registry http://mirrors.cloud.tencent.com/npm/``#安装 Node.js 依赖的工具包``npm install``#启动 Web 可视化界面``npm run dev``Ollam WebUI启动成功

浏览器打开 Web 可视化界面:http://localhost:3000/

Ollam WebUI对话界面

Ollama 客户端:HTTP 访问服务

Ollama 默认提供了generate和chat这 2 个原始的 API 接口,使用方式如下:

generate接口的使用样例:

curl http://localhost:11434/api/generate -d "{`  `'model': 'qwen:0.5b',`  `'prompt': '为什么天空是蓝色的?'``}"

chat接口的使用样例:

curl http://localhost:11434/api/chat -d '{`  `"model": "qwen:7b",`  `"messages": [`    `{ "role": "user", "content": "为什么天空是蓝色的?" }`  `]``}'

Ollama 客户端Python API 应用

把 Ollama 集成到 Python 应用中只需要 2 步即可:

第一步,安装 Python 依赖包:

pip install ollama

第二步,使用 Ollama 接口,stream=True代表按照流式输出:

import ollama``# 流式输出``def api_generate(text:str):`  `print(f'提问:{text}')`  `stream = ollama.generate(`    `stream=True,`    `model='qwen:7b',`    `prompt=text,`    `)`  `print('-----------------------------------------')`  `for chunk in stream:`    `if not chunk['done']:`      `print(chunk['response'], end='', flush=True)`    `else:`      `print('\n')`      `print('-----------------------------------------')`      `print(f'总耗时:{chunk['total_duration']}')`      `print('-----------------------------------------')``if __name__ == '__main__':`  `# 流式输出`  `api_generate(text='天空为什么是蓝色的?')`  `# 非流式输出`  `content = ollama.generate(model='qwen:0.5b', prompt='天空为什么是蓝色的?')

AI大模型学习路线

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

扫描下方csdn官方合作二维码获取哦!

在这里插入图片描述

这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

请添加图片描述
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

请添加图片描述

大模型全套视频教程

请添加图片描述

200本大模型PDF书籍

请添加图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

请添加图片描述

大模型产品经理资源合集

请添加图片描述

大模型项目实战合集

请添加图片描述

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐