💡
原文英文,约3500词,阅读约需13分钟。
📝
内容提要
两周前,我们发布了jina-embeddings-v4的GGUF格式,以提高推理速度。现代嵌入模型与LLM几乎相同,主要区别在于输出类型。文章讨论了将现代嵌入模型适配GGUF格式的经验,包括去除视觉变换器和多向量投影器,最终得到三个任务特定的GGUF模型。
🎯
关键要点
- 两周前发布了jina-embeddings-v4的GGUF格式,以提高推理速度。
- 现代嵌入模型与LLM几乎相同,主要区别在于输出类型。
- 文章分享了将现代嵌入模型适配GGUF格式的经验,包括去除视觉变换器和多向量投影器。
- jina-embeddings-v4基于Qwen2.5-VL-3B-instruct,包含三个LoRA适配器,分别针对检索、文本匹配和代码检索任务。
- 在实验中发现,llama.cpp的视觉变换器存在bug,因此决定暂时不支持视觉塔。
- 多向量输出不被直接支持,但可以通过导出MLP后处理来实现。
- 最终得到了三个任务特定的GGUF模型,每个模型参数为3.09B。
- 使用calibration_data_v5_rc.txt对模型进行校准,并使用llama-quantize进行量化。
- GGUF模型需要手动添加Query:或Passage:前缀以确保输入一致性。
- llama-server可以作为OpenAI API兼容的HTTP服务器来托管嵌入模型。
- 在使用llama-embedding进行单次嵌入时,性能存在问题,不推荐用于批量嵌入。
- GGUF模型的使用存在一些限制,如无法处理图像输入和输出多向量嵌入。
- 通过优化,llama-embedding的批处理和内存控制得到了改善。
- 在基准测试中,量化版本的速度和VRAM使用情况得到了评估。
- 最佳的量化版本是IQ3_M,低于2位的量化效果不如v3。
- 在L4 GPU上,IQ3_S和IQ3_M可以实现4000个tokens/秒的速度,适合预算有限的用户。
➡️