You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何为llama.cpp编写聊天模板?解决Codellama模板报错问题

解决方法与建议

问题原因

报错核心原因是:llama-cli默认仅支持内置的常用对话模板,自定义Jinja格式的模板需要显式启用--jinja参数,否则会被判定为不支持的模板类型。

具体解决步骤

方法1:启用Jinja2支持运行自定义模板

在原命令末尾添加--jinja参数,让llama-cli解析你的自定义Jinja模板:

./llama-cli -m ~/zdajemyinf/llamaEngine/models/code-llama/codellama-7b-instruct.Q5_K_M.gguf -cnv --chat-template ~/zdajemyinf/llamaEngine/models/code-llama/prompt-template.tmpl --jinja

同时需要修正你的prompt-template.tmpl内容:

  • 移除开头无用的Usage: ./codellama-7b-instruct.Q5_K_M.gguf
  • 调整为符合llama-cli要求的多轮对话Jinja模板结构,示例如下:
{% for message in messages %}
{% if message['role'] == 'system' %}
<<SYS>>
{{ message['content'] }}
<</SYS>>

{% elif message['role'] == 'user' %}
<s>[INST] {{ message['content'] }} [/INST]
{% elif message['role'] == 'assistant' %}
{{ message['content'] }} </s>
{% endif %}
{% endfor %}

方法2:直接使用内置的CodeLlama官方模板

llama.cpp已经内置了CodeLlama-Instruct模型的官方对话模板,无需自定义文件,直接指定模板名称即可,命令更简洁且不易出错:

./llama-cli -m ~/zdajemyinf/llamaEngine/models/code-llama/codellama-7b-instruct.Q5_K_M.gguf -cnv --chat-template codellama

相关建议

  • 首次使用优先尝试内置模板,避免自定义模板的格式问题
  • 自定义模板时,需严格遵循llama-cli的Jinja模板变量规范(比如使用messages数组遍历对话轮次,而非硬编码user_message_1这类固定变量)
  • 检查模板文件路径是否正确,确保llama-cli能读取到该文件

内容的提问来源于stack exchange,提问作者Dominik Szkotland

火山引擎 最新活动