添加chat template到gguf模型文件

本文详细描述了如何在缺少chat_template的gguf模型中添加必要的模板,包括查询tokenizer_config.json中的聊天模板,计算对齐长度并插入到gguf文件的过程,以及使用Python代码进行操作的示例。
摘要由CSDN通过智能技术生成

添加chat_template到gguf模型文件

目前使用的很多gguf模型文件缺少chat_template, 为了更好的使用,需要添加chat_template到gguf模型文件中

查询了gguf-py代码,hack如下

  • 需要知道该model的chat_template, 以openhermes-2.5-mistral-7b.Q5_K_M.gguf为例, chat_template如下

“{% for message in messages %}{ {‘<|im_start|>’ + message[‘role’] + ‘\n’ + message[‘content’] + ‘<|im_end|>’ + ‘\n’}}{% endfor %}{% if add_generation_prompt %}{ { ‘<|im_start|>assistant\n’ }}{% endif %}”

  • 查看gguf模型中kv的结构,找到需要插入的位置,确认chat_template的bytes的长度,根据model对齐长度,添加空格到chat_template的bytes的长度

  • 构件chat_template的bytes,添加到模型文件中

  • 重新写入新的gguf文件

代码如下


import struct
import numpy as np
from gguf import GGUFReader, GGUFValueType, GGUF_DEFAULT_ALIGNMENT

# 原始gguf文件路径和新的gguf文件路径
file_path = "../openhermes.gguf"
new_file_path = "../add_chat_model.gguf"
#
reader = GGUFReader(file_path, "r+"<
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值