1. Ollama可配置环境变量
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 库以绕过自动检测。
设置外部访问+模型保存在内存中,设置如下环境变量:
OLLAMA_KEEP_ALIVE: -1
OLLAMA_HOST: 0.0.0.0
2. 显卡资源使用不均横
设置环境变量OLLAMA_SCHED_SPREAD为1即可。
3. 加速计算
FlashAttention 是一种优化的注意力机制,用于加速深度学习模型中常见的自注意力计算,尤其是在Transformer架构中。它通过改进内存访问模式和计算策略,显著提高了计算效率和内存使用率。
可以通过设置环境变量OLLAMA_FLASH_ATTENTION为1,开启该选项。
4. 增加上下文窗口
假设你从Ollama上拉取了大模型,其默认的窗口大小只有2048。我们可以通过如下方法,提高上下文窗口。
ollama show --modelfile qwen2:72b > Modelfile
ollama show --modelfile qwen2:72b > Modelfile
ollama show --modelfile qwen2:72b > Modelfile
我们看一下生成的Modelfile。
# 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
....
"""
# 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
....
"""
# 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就是上下文窗口大小,设置成你想要的即可。
注意增加上下文窗口可能增加显存的使用,谨慎增加。
PARAMETER num_ctx 32768
PARAMETER num_ctx 32768
PARAMETER num_ctx 32768
然后创建新模型即可
ollama create qwen2:72b-32k -f Modelfile
ollama create qwen2:72b-32k -f Modelfile
ollama create qwen2:72b-32k -f Modelfile
接下来,你就可以使用运行具有更高上下文的模型了。
ollama run qwen2:72b-32k
ollama run qwen2:72b-32k
ollama run qwen2:72b-32k
在使用OpenAI接口调用时候,模型的名称也要改成qwen2:72b-32k
。
5. 支持的并发请求数量
可以考虑配置OLLAMA_NUM_PARALLEL,默认一般是4或者1。它会相应的增加上下文,比如一个请求2048 Tokens。如果是4个并行,那么就会消耗4*2048的上下文窗口。
参考链接
[1] Ollama
[2] GitHub: https://github.com/ollama/ollam