admin管理员组

文章数量:1036096

Ollama 高阶配置,如何增加上下文窗口大小?

使用Ollama部署大模型的时候,有几个注意事项要注意。Ollama默认的上下文窗口只有2K,多张显卡可能资源分配不均等问题,计算速度不够快。

我们先看一下Ollama可配置环境变量:

  • OLLAMA_DEBUG: 显示额外的调试信息(例如:OLLAMA_DEBUG=1)。
  • OLLAMA_HOST: Ollama 服务器的 IP 地址(默认值:127.0.0.1:11434)。
  • OLLAMA_KEEP_ALIVE: 模型在内存中保持加载的时长(默认值:“5m”)。
  • OLLAMA_MAX_LOADED_MODELS: 每个 GPU 上最大加载模型数量。
  • OLLAMA_MAX_QUEUE: 请求队列的最大长度。
  • OLLAMA_MODELS: 模型目录的路径。
  • OLLAMA_NUM_PARALLEL: 最大并行请求数。
  • OLLAMA_NOPRUNE: 启动时不修剪模型 blob。
  • OLLAMA_ORIGINS: 允许的源列表,使用逗号分隔。
  • OLLAMA_SCHED_SPREAD: 始终跨所有 GPU 调度模型。
  • OLLAMA_TMPDIR: 临时文件的位置。
  • OLLAMA_FLASH_ATTENTION: 启用 Flash Attention。
  • OLLAMA_LLM_LIBRARY: 设置 LLM 库以绕过自动检测。

1. 显卡资源使用不均横

设置环境变量OLLAMA_SCHED_SPREAD为1即可。

2. 加速计算

FlashAttention 是一种优化的注意力机制,用于加速深度学习模型中常见的自注意力计算,尤其是在Transformer架构中。它通过改进内存访问模式和计算策略,显著提高了计算效率和内存使用率。

我们可以通过设置环境变量OLLAMA_FLASH_ATTENTION为1,开启改选项。

增加上下文窗口

假设你从Ollama上拉取了大模型,其默认的窗口大小只有2048。我们可以通过如下方法,提高上下文窗口。

代码语言:javascript代码运行次数:0运行复制
ollama show --modelfile qwen2:72b > Modelfile

我们看一下生成的Modelfile。

代码语言:javascript代码运行次数:0运行复制
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
# FROM qwen2:72b

FROM C:\Users\Administrator\.ollama\models\blobs\sha256-f6ac28d6f58ae1522734d1df834e6166e0813bb1919e86aafb4c0551eb4ce2bb
TEMPLATE "{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>
"
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
LICENSE """Tongyi Qianwen LICENSE AGREEMENT

Tongyi Qianwen Release Date: August 3, 2023
....
"""

然后在PARAMETER处增加如下配置,32768就是上下文窗口大小,设置成你想要的即可。

注意增加上下文窗口可能增加显存的使用,谨慎增加

代码语言:javascript代码运行次数:0运行复制
PARAMETER num_ctx 32768

然后创建新模型即可

代码语言:javascript代码运行次数:0运行复制
ollama create qwen2:72b-32k -f Modelfile

接下来,你就可以使用运行具有更高上下文的模型了。

代码语言:javascript代码运行次数:0运行复制
ollama run qwen2:72b-32k

在使用OpenAI接口调用时候,模型的名称也要改成qwen2:72b-32k

支持的并发请求数量

可以考虑配置OLLAMA_NUM_PARALLEL,默认一般是4或者1。它会相应的增加上下文,比如一个请求2048 Tokens。如果是4个并行,那么就会消耗4*2048的上下文窗口。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-08-29,如有侵权请联系 cloudcommunity@tencent 删除优化架构模型内存配置

Ollama 高阶配置,如何增加上下文窗口大小?

使用Ollama部署大模型的时候,有几个注意事项要注意。Ollama默认的上下文窗口只有2K,多张显卡可能资源分配不均等问题,计算速度不够快。

我们先看一下Ollama可配置环境变量:

  • OLLAMA_DEBUG: 显示额外的调试信息(例如:OLLAMA_DEBUG=1)。
  • OLLAMA_HOST: Ollama 服务器的 IP 地址(默认值:127.0.0.1:11434)。
  • OLLAMA_KEEP_ALIVE: 模型在内存中保持加载的时长(默认值:“5m”)。
  • OLLAMA_MAX_LOADED_MODELS: 每个 GPU 上最大加载模型数量。
  • OLLAMA_MAX_QUEUE: 请求队列的最大长度。
  • OLLAMA_MODELS: 模型目录的路径。
  • OLLAMA_NUM_PARALLEL: 最大并行请求数。
  • OLLAMA_NOPRUNE: 启动时不修剪模型 blob。
  • OLLAMA_ORIGINS: 允许的源列表,使用逗号分隔。
  • OLLAMA_SCHED_SPREAD: 始终跨所有 GPU 调度模型。
  • OLLAMA_TMPDIR: 临时文件的位置。
  • OLLAMA_FLASH_ATTENTION: 启用 Flash Attention。
  • OLLAMA_LLM_LIBRARY: 设置 LLM 库以绕过自动检测。

1. 显卡资源使用不均横

设置环境变量OLLAMA_SCHED_SPREAD为1即可。

2. 加速计算

FlashAttention 是一种优化的注意力机制,用于加速深度学习模型中常见的自注意力计算,尤其是在Transformer架构中。它通过改进内存访问模式和计算策略,显著提高了计算效率和内存使用率。

我们可以通过设置环境变量OLLAMA_FLASH_ATTENTION为1,开启改选项。

增加上下文窗口

假设你从Ollama上拉取了大模型,其默认的窗口大小只有2048。我们可以通过如下方法,提高上下文窗口。

代码语言:javascript代码运行次数:0运行复制
ollama show --modelfile qwen2:72b > Modelfile

我们看一下生成的Modelfile。

代码语言:javascript代码运行次数:0运行复制
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
# FROM qwen2:72b

FROM C:\Users\Administrator\.ollama\models\blobs\sha256-f6ac28d6f58ae1522734d1df834e6166e0813bb1919e86aafb4c0551eb4ce2bb
TEMPLATE "{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>
"
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
LICENSE """Tongyi Qianwen LICENSE AGREEMENT

Tongyi Qianwen Release Date: August 3, 2023
....
"""

然后在PARAMETER处增加如下配置,32768就是上下文窗口大小,设置成你想要的即可。

注意增加上下文窗口可能增加显存的使用,谨慎增加

代码语言:javascript代码运行次数:0运行复制
PARAMETER num_ctx 32768

然后创建新模型即可

代码语言:javascript代码运行次数:0运行复制
ollama create qwen2:72b-32k -f Modelfile

接下来,你就可以使用运行具有更高上下文的模型了。

代码语言:javascript代码运行次数:0运行复制
ollama run qwen2:72b-32k

在使用OpenAI接口调用时候,模型的名称也要改成qwen2:72b-32k

支持的并发请求数量

可以考虑配置OLLAMA_NUM_PARALLEL,默认一般是4或者1。它会相应的增加上下文,比如一个请求2048 Tokens。如果是4个并行,那么就会消耗4*2048的上下文窗口。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2024-08-29,如有侵权请联系 cloudcommunity@tencent 删除优化架构模型内存配置

本文标签: Ollama 高阶配置,如何增加上下文窗口大小