开发者必读:LFM2.5-ColBERT-350M-4bit API参考与集成指南

开发者必读:LFM2.5-ColBERT-350M-4bit API参考与集成指南
开发者必读LFM2.5-ColBERT-350M-4bit API参考与集成指南【免费下载链接】LFM2.5-ColBERT-350M-4bit项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/LFM2.5-ColBERT-350M-4bitLFM2.5-ColBERT-350M-4bit是一款基于MLX框架的高效4位量化双向检索模型专为Apple Silicon优化可实现高性能的句子相似度计算和信息检索功能。该模型源自LiquidAI的LFM2.5-ColBERT-350M通过格式转换和量化处理在保持98.7%检索质量的同时将模型体积压缩至199MB为开发者提供了轻量级且高效的本地推理解决方案。模型概述核心特性与优势LFM2.5-ColBERT-350M-4bit采用创新的late-interaction检索机制为每个标记生成128维向量通过MaxSim算法计算相似度。这种架构使模型在多语言环境中表现出色支持包括英语、西班牙语、德语、日语和阿拉伯语在内的多种语言。关键技术参数量化规格采用mlx.nn.quantize(modeaffine, bits4, group_size64)进行量化向量维度128维/标记支持语言英语、西班牙语、德语、法语、意大利语、葡萄牙语、阿拉伯语、瑞典语、挪威语、日语、韩语模型大小199MB相比bf16版本减少72%检索质量NDCG10保持率98.7%Recall10保持率99.7%架构特点模型基于Lfm2BidirectionalModel架构融合了卷积层和注意力机制16层混合结构交替使用卷积层和全注意力层SwiGLU激活函数的MLP模块双向注意力机制无因果掩码非因果/中心短卷积对称填充快速开始安装与基础使用环境要求Apple Silicon设备M系列芯片MLX框架Python 3.8安装步骤# 克隆仓库 git clone https://gitcode.com/hf_mirrors/mlx-community/LFM2.5-ColBERT-350M-4bit cd LFM2.5-ColBERT-350M-4bit # 安装依赖 pip install mlx基本使用示例import mlx.core as mx from lfm2_bidirectional import ColbertModel, ModelArgs import json # 加载配置 with open(config.json, r) as f: config json.load(f) args ModelArgs.from_dict(config) # 加载模型 model ColbertModel(args, proj_dimconfig[mlx][proj_dim]) model.load_weights(model.safetensors) model.eval() # 编码文本 input_ids mx.array([[1, 234, 567, 345, 7]]) # 示例输入ID attention_mask mx.array([[1, 1, 1, 1, 1]]) embeddings model.encode(input_ids, attention_mask) print(f生成的嵌入向量形状: {embeddings.shape})API参考核心类与方法ModelArgs类ModelArgs类用于解析和存储模型配置参数可通过from_dict方法从配置文件加载。关键属性:vocab_size: 词汇表大小hidden_size: 隐藏层维度num_hidden_layers: 隐藏层数num_attention_heads: 注意力头数layer_types: 层类型列表卷积或注意力ColbertModel类ColbertModel是实现ColBERT检索功能的核心类继承自mlx.nn.Module。构造函数ColbertModel(args: ModelArgs, proj_dim: int 128)args: 模型参数proj_dim: 投影维度默认为128核心方法encodedef encode(self, input_ids, attention_maskNone, normalize: bool True) - mx.array生成输入文本的嵌入向量。input_ids: 输入标记ID数组attention_mask: 注意力掩码normalize: 是否对输出进行L2归一化返回: 形状为(B, L, proj_dim)的嵌入向量量化配置模型量化参数存储在config.json的quantization字段中quantization: { mode: affine, bits: 4, group_size: 64 }高级应用检索与相似度计算MaxSim相似度计算ColBERT使用MaxSim算法计算查询和文档之间的相似度通过对每个查询标记和文档标记的嵌入向量取最大值后求和def maxsim(query_embeddings, doc_embeddings): # query_embeddings: (1, Lq, 128) # doc_embeddings: (1, Ld, 128) sim_matrix mx.matmul(query_embeddings, doc_embeddings.transpose(0, 2, 1)) max_sims mx.max(sim_matrix, axis2) return mx.sum(max_sims, axis1)多语言检索示例利用模型的多语言支持能力可以构建跨语言检索系统# 编码英文查询和西班牙语文档 query_ids mx.array([[...]]) # 英文查询的input_ids doc_ids mx.array([[...]]) # 西班牙语文档的input_ids query_emb model.encode(query_ids) doc_emb model.encode(doc_ids) similarity maxsim(query_emb, doc_emb) print(f跨语言相似度: {similarity.item()})性能优化配置与调优输入长度配置模型对查询和文档有不同的长度限制可在config.json的mlx字段中设置mlx: { query_length: 32, document_length: 512 }内存使用优化使用4位量化模型默认可显著减少内存占用对于批量处理可适当调整批量大小以平衡速度和内存使用在推理时设置model.eval()以禁用梯度计算评估指标检索性能参考多语言检索性能在MIRACL数据集上的NDCG10表现西班牙语: 0.899德语: 0.826日语: 0.923阿拉伯语: 0.924英文检索性能在NanoBEIR数据集上的表现NanoNQ: 0.716NanoFiQA2018: 0.524NanoSciFact: 0.702NanoNFCorpus: 0.335许可证信息本模型根据LFM Open License v1.0许可发布详情参见LICENSE文件。该许可证包含商业使用阈值条款使用前请仔细阅读。原始模型由Liquid AI开发本仓库是独立的MLX格式转换和量化版本不隶属于或由Liquid AI背书。【免费下载链接】LFM2.5-ColBERT-350M-4bit项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/LFM2.5-ColBERT-350M-4bit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考