ollama num_ctx 修改问题

属于一个比较场景的问题,因为ollama num_ctx 默认是2048 对于比较大的上下文窗口数据会出现被截断的问题

解决方法

目前基本分类两种方法,一种是临时以及持久的,机制上还有一些差异,因为ollama 内部实际也是拉起的llama.cpp 服务
对于调用chat api 可以直接通过api 调用参数传递,对于兼容openai 模式的暂时就不行了(官方说是不兼容,实际上目前openai 的api 可以进行一些额外参数的传递,只要兼容也可以解决)

  • 接口参数传递

chat 模式的, 如下包含了支持的参数

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt": "Why is the sky blue?",
  "stream": false,
  "options": {
    "num_keep": 5,
    "seed": 42,
    "num_predict": 100,
    "top_k": 20,
    "top_p": 0.9,
    "min_p": 0.0,
    "tfs_z": 0.5,
    "typical_p": 0.7,
    "repeat_last_n": 33,
    "temperature": 0.8,
    "repeat_penalty": 1.2,
    "presence_penalty": 1.5,
    "frequency_penalty": 1.0,
    "mirostat": 1,
    "mirostat_tau": 0.8,
    "mirostat_eta": 0.6,
    "penalize_newline": true,
    "stop": ["\n", "user:"],
    "numa": false,
    "num_ctx": 1024,
    "num_batch": 2,
    "num_gpu": 1,
    "main_gpu": 0,
    "low_vram": false,
    "f16_kv": true,
    "vocab_only": false,
    "use_mmap": true,
    "use_mlock": false,
    "num_thread": 8
  }
}'
  • 修改Modelfile 直接修改默认的num_ctx 如下
FROM qwen2:7b
PARAMETER num_ctx 32768

之后就是创建新的模型

说明

以上是基于ollama 的num_ctx 修改,实际上也说了内部是基于lama.cpp的,我在测试的时候开始的时候发现修改是成功了,但是没有使用gpu,之后进行cuda 升级,以及机器重启,之后发现又可以使用gpu 了,同时调整还会占用比较的资源,实际还是需要多测试,大模型推理没有gpu 速度的确比较差

参考资料

https://github.com/ollama/ollama/blob/main/docs/modelfile.md#parameter

posted on   荣锋亮  阅读(1977)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2022-08-31 主机网络限速+测速工具
2022-08-31 nginx proxy_pass 包含路径问题
2022-08-31 windows jenkins openssh 集成问题
2020-08-31 orika java bean 转换工具试用
2020-08-31 graalvm js 内置commonjs 模式试用
2020-08-31 graalvm js 与java 类型转换的一些方法
2019-08-31 haproxy 2.0 dataplaneapi docker 镜像

导航

< 2025年3月 >
23 24 25 26 27 28 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 1 2 3 4 5
点击右上角即可分享
微信分享提示