ollama 部署教程(window、linux)
ollama 部署教程(window、linux)

ollama 部署教程(window、linux)

一、官网

 在 macOS 上下载 Ollama - Ollama 中文

二、安装方式一:window10版本下载

ollama 部署教程(window、linux)插图

ollama 部署教程(window、linux)插图1

安装完成没有提示。 接下来配置环境变量!

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

  1. OLLAMA_MODELS:模型文件存放目录,默认目录为当前用户目录(Windows 目录:C:\Users%username%.ollama\models,MacOS 目录:~/.ollama/models,Linux 目录:/usr/share/ollama/.ollama/models),如果是 Windows 系统建议修改(如:D:\OllamaModels),避免 C 盘空间吃紧
  2. OLLAMA_HOST:Ollama 服务监听的网络地址,默认为127.0.0.1,如果允许其他电脑访问 Ollama(如:局域网中的其他电脑),建议设置0.0.0.0,从而允许其他网络访问
  3. OLLAMA_PORT:Ollama 服务监听的默认端口,默认为11434,如果端口有冲突,可以修改设置成其他端口(如:8080等)
  4. OLLAMA_ORIGINS:HTTP 客户端请求来源,半角逗号分隔列表,若本地使用无严格要求,可以设置成星号,代表不受限制
  5. OLLAMA_KEEP_ALIVE:大模型加载到内存中后的存活时间,默认为5m即 5 分钟(如:纯数字如 300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活);我们可设置成24h,即模型在内存中保持 24 小时,提高访问速度
  6. OLLAMA_NUM_PARALLEL:请求处理并发数量,默认为1,即单并发串行处理请求,可根据实际情况进行调整
  7. OLLAMA_MAX_QUEUE:请求队列长度,默认值为512,可以根据情况设置,超过队列长度请求被抛弃
  8. OLLAMA_DEBUG:输出 Debug 日志标识,应用研发阶段可以设置成1,即输出详细日志信息,便于排查问题
  9. OLLAMA_MAX_LOADED_MODELS:最多同时加载到内存中模型的数量,默认为1,即只能有 1 个模型在内存中

ollama 部署教程(window、linux)插图2

ollama 部署教程(window、linux)插图3

ollama 部署教程(window、linux)插图4

ollama 部署教程(window、linux)插图5

看看是不是已经启动了ollama。右下角图标如下

ollama 部署教程(window、linux)插图6

如果没有,则去打开一下

ollama 部署教程(window、linux)插图7

黑窗口查看一下 版本

ollama 部署教程(window、linux)插图8

浏览器查看一下API服务: 127.0.0.1:11434

ollama 部署教程(window、linux)插图9

如果出现连接不上,则检查一下环境变量是不是配错了,是不是没有E盘(如果你照抄)。 

运行一个0.5b的qwen模型


ollama 部署教程(window、linux)插图10

ollama 部署教程(window、linux)插图11

看看API访问情况:

提问:

ollama 部署教程(window、linux)插图12

对话: 

ollama 部署教程(window、linux)插图13

① system 代表系统设定(也就是告诉chatGPT他的角色)

② user 表示用户

③ assistant 表示GPT的回复

三、安装方式二:linux版本docker

 Olama现已作为官方Docker镜像提供 · Olama博客 - Ollama 中文

  • 1.

主机的/home/ollama文件夹映射到容器的/root/.ollama文件夹

主机的11435端口映射到容器的11434端口

ollama 部署教程(window、linux)插图14

 

ollama 部署教程(window、linux)插图15

ollama 部署教程(window、linux)插图16

进入容器内部:

  • 1.

查看ollama执行

  • 1.

ollama 部署教程(window、linux)插图17

ollama serve    # 启动ollama
ollama create    # 从模型文件创建模型
ollama show        # 显示模型信息
ollama run        # 运行模型,会先自动下载模型
ollama pull        # 从注册仓库中拉取模型
ollama push        # 将模型推送到注册仓库
ollama list        # 列出已下载模型
ollama ps        # 列出正在运行的模型
ollama cp        # 复制模型
ollama rm        # 删除模型

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

  • 1.
  • 2.
  • 3.

  • 1.
  • 2.
  • 3.
  • 4.

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

四、 模型库

 library (ollama.com)

ollama 部署教程(window、linux)插图18

五、运行模型

模型要求

ollama 部署教程(window、linux)插图19

这里我们运行一个要求最小的0.5B的qwen模型。

ollama 部署教程(window、linux)插图20

注意这是在容器内部运行的:

  • 1.

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

六、API服务

文档地址:

 

  • model:(必需) 模型名称
  • prompt:生成响应的提示
  • suffix:模型响应后的文本
  • images:(可选)base64 编码图像列表(对于多模态模型,例如llava)

高级参数(可选):

  • format:返回响应的格式。目前唯一接受的值是json
  • options Modelfile 文档中列出的其他模型参数,例如temperature
  • system:系统消息更改为(覆盖Modelfile)
  • template:要使用的提示模板(覆盖Modelfile)
  • context:从上一个请求返回的 context 参数 to ,这可用于保持较短的对话记忆/generate
  • stream:如果响应将作为单个响应对象返回,而不是对象流false
  • raw:如果没有格式将应用于提示。如果您在对 API 的请求中指定了完整的模板化提示,则可以选择使用该参数trueraw
  • keep_alive:控制模型在请求后加载到内存中的时间(默认值:5m)

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

① system 代表系统设定(也就是告诉chatGPT他的角色)

② user 表示用户

③ assistant 表示 GPT的回复

API访问会激活模型,经过keep_alive的时间内(默认5m)如果没有访问,则会自动下线模型。当再次有API访问,则会再次自动激活模型。

如果keep_alive的值为零0,则是主动将模型下线。比如:

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

七、python调用

  • temperature:用于调整生成结果的创造性程度,设置越高,生成的文本越新颖、越独特,设置越低,结果更集中。
  • stream:默认false,是否流式传输回部分进度。
  • format: 转录输出的格式,可选项包括json、str等。
ollama库调用

  • 1.

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
langchain调用

  • 1.
  • 2.

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
requests调用

  • 1.

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
aiohttp调用

  • 1.

 Welcome to AIOHTTP — aiohttp 3.10.5 documentation

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.

八、模型添加方式

1.线上pull(推荐)

即上述教程采用的方式。

ollama 部署教程(window、linux)插图21

2.导入 GGUF 模型文件(推荐)
windows示例:
①.下载模型

从 HF 或者 ModeScope 下载了 GGUF 文件:qwen2-0_5b-instruct-q4_0.gguf

ollama 部署教程(window、linux)插图22

ollama 部署教程(window、linux)插图23

②.上传文件

新建一个文件夹来存放GGUF文件,例如我存放在E:\huggingface_models\qwen2-05b-q4中,在GGUF文件的同级,创建一个文件名为Modelfile的文件,该文件的内容如下:

  • 1.

ollama 部署教程(window、linux)插图24

③.导入模型

打开Modelfile所在文件夹下打开终端,执行命令导入模型文件:

  • 1.

  • 1.

ollama 部署教程(window、linux)插图25

④.查看模型

导入成功之后,我们就可以通过list命名,看到名为qwen2-05b-q4的本地模型了,后续可以和其他模型一样进行管理了。

ollama 部署教程(window、linux)插图26

⑤.运行模型

  • 1.

ollama 部署教程(window、linux)插图27

Linux示例:
①.在主机的/home/ollama文件夹下新建huggingface_models文件夹,
②.再在huggingface_models文件夹下新建qwen2-05b-q4文件夹。
③.将模型文件和Modelfile上传到上一步创建的qwen2-05b-q4文件夹中。

  • 1.

ollama 部署教程(window、linux)插图28

④.进入ollama容器

  • 1.
⑤.cd 到映射的文件夹中

  • 1.

ollama 部署教程(window、linux)插图29

⑥. 执行导入模型命令

  • 1.

ollama 部署教程(window、linux)插图30

⑦.查看导入的模型

  • 1.

 

ollama 部署教程(window、linux)插图31

⑧.运行模型

  • 1.

ollama 部署教程(window、linux)插图32

ollama 部署教程(window、linux)插图33

ollama 部署教程(window、linux)插图34

3.导入 safetensors 模型文件(多了一个将safetensors转换成gguf文件的过程)

示例

①.下载模型文件

从 HF 或者 ModeScope 下载了 safetensors 文件

 https://huggingface.co/Qwen/Qwen2.5-0.5B/tree/main

ollama 部署教程(window、linux)插图35

ollama 部署教程(window、linux)插图36

将模型所有文件上传到linux

在linux上新建一个文件夹huggingface_safetensors_models,再在里面新建一个文件夹qwen2-05b-q4,然后将模型所有文件上传进去

 

ollama 部署教程(window、linux)插图37

②.克隆ollama/ollama项目

git克隆,并设置python环境,最好是虚拟环境,防止依赖版本与其他项目冲突。可能会有类似下面的错误。博主使用的是conda,以此为例:

ollama 部署教程(window、linux)插图38

 ollama/ollama: Get up and running with Llama 3.1, Mistral, Gemma 2, and other large language models. (github.com)

  • 1.

ollama 部署教程(window、linux)插图39

进入项目中

  • 1.

紧接着,同步 llm/llama.cpp 子模块

  • 1.
  • 2.

ollama 部署教程(window、linux)插图40

③.设置环境

创建一个虚拟环境

  • 1.

ollama 部署教程(window、linux)插图41

 

激活虚拟环境

  • 1.

ollama 部署教程(window、linux)插图42

④.安装依赖

进入项目目录

  • 1.

ollama 部署教程(window、linux)插图43

 

执行安装命令

  • 1.

ollama 部署教程(window、linux)插图44

 

如果报错,就多装几次,可能网络时间太长断开了。

④.构建量化工具

如果没有make命令则安装一个make

  • 1.

  • 1.

如果没有gcc 和 g++ 编译器 则需要安装一下

  • 1.

  • 1.

下边这个可选(可以加速)

  • 1.

构建量化工具

  • 1.

ollama 部署教程(window、linux)插图45

 ⑤.模型转换

将 safetensors 转换为 converted.bin格式:

ollama 部署教程(window、linux)插图46

  • 1.

  • 1.

注意:某些模型架构需要使用特定的转换脚本。例如,Qwen 模型需要运行

1.outtype 指定了模型的格式,这里是 f16,也就是 float16

2.生成的converted.bin文件在ollama项目的根目录下

ollama 部署教程(window、linux)插图47

ollama 部署教程(window、linux)插图48

⑥.生成llama系列文件

进入llama.cpp文件夹

  • 1.

执行make命令

  • 1.

ollama 部署教程(window、linux)插图49

 

此时在llama.cpp文件夹下生成了一些列的llama文件,其中有一个llama-quantize是我们需要的。

ollama 部署教程(window、linux)插图50

 

 ⑦.量化模型

回到ollama项目目录下

ollama 部署教程(window、linux)插图51

上面转换的事f16,也就是float16,此时的访问速度很慢,我们需要向量化来加快它的计算速度。

这里我们量化成q4,也就是int4:

  • 1.

ollama 部署教程(window、linux)插图52

此时在ollama项目的根目录下生成了我们需要的文件quantized.bin,它与gguf文件作用相同

ollama 部署教程(window、linux)插图53

⑧.将quantized.bin文件放到我们的平时存放gguf文件的文件夹中:

我们将quantized.bin文件放到我们的平时存放gguf文件的文件夹中,比如我放到了huggingface_models,在huggingface_models中新建了一个文件夹qwen2-05b-q4-s来存放。

  • 1.

ollama 部署教程(window、linux)插图54

在 quantized.bin同级新建Modelfile文件,内容如下

  • 1.
⑨.导入模型文件:ollama create 模型名称 -f ./Modelfile

进入ollama容器中

  • 1.

进入存放模型的文件夹中

  • 1.

ollama 部署教程(window、linux)插图55

执行命令,创建Ollama模型

  • 1.

ollama 部署教程(window、linux)插图56

 ⑩.查看模型

  • 1.

ollama 部署教程(window、linux)插图57

 

⑪.运行模型

  • 1.

ollama 部署教程(window、linux)插图58

九、部署Open WebUI

 🏡 Home | Open WebUI

 

 

 

 

 

 

 

 

 

浏览量: 20

发表回复