🚀 Qwen2.5-7B-embed-base
Qwen2.5-7B-embed-base 是基于 Qwen2.5 语言模型系列的嵌入模型,可用于文本分类等任务,能将文本转换为向量表示,为后续的自然语言处理任务提供基础支持。
🚀 快速开始
安装依赖
Qwen2.5 的代码已集成在最新的 Hugging face transformers 中,建议安装 transformers>=4.37.0
,否则可能会遇到以下错误:
KeyError: 'Qwen2.5'
模型推理
使用 sentence-transformers 库
from sentence_transformers import SentenceTransformer
import torch
model = SentenceTransformer("ssmits/Qwen2.5-7B-embed-base")
sentences = [
"The weather is lovely today.",
"It's so sunny outside!",
"He drove to the stadium.",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
embeddings_tensor = torch.tensor(embeddings)
similarities = torch.nn.functional.cosine_similarity(embeddings_tensor.unsqueeze(0), embeddings_tensor.unsqueeze(1), dim=2)
print(similarities)
不使用 sentence-transformers 库
from transformers import AutoTokenizer, AutoModel
import torch
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0]
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
sentences = ['This is an example sentence', 'Each sentence is converted']
tokenizer = AutoTokenizer.from_pretrained('ssmits/Qwen2.5-7B-embed-base')
model = AutoModel.from_pretrained('ssmits/Qwen2.5-7B-embed-base')
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
启用多 GPU
from transformers import AutoModel
from torch.nn import DataParallel
model = AutoModel.from_pretrained("ssmits/Qwen2.5-7B-embed-base")
for module_key, module in model._modules.items():
model._modules[module_key] = DataParallel(module)
✨ 主要特性
- 模型架构:基于 Transformer 架构,采用 SwiGLU 激活函数、注意力 QKV 偏置、组查询注意力等技术。
- 分词器:拥有改进的分词器,能适应多种自然语言和代码。
- 应用场景:该模型的 'lm_head' 层已被移除,可用于嵌入任务,但需要进一步微调以获得更好的性能。
📚 详细文档
模型详情
Qwen2.5 是一个语言模型系列,包含不同模型大小的解码器语言模型。对于每个大小,我们都会发布基础语言模型和对齐的聊天模型。
注意事项
在测试中,该模型需要超过 24GB 的显存(如 RTX 4090),因此推理时可能需要 A100 或 A6000 等 GPU。
📄 许可证
本模型采用 Apache-2.0 许可证。
属性 |
详情 |
模型类型 |
文本分类 |
基础模型 |
Qwen/Qwen2.5-7B |
库名称 |
sentence-transformers |
许可证 |
Apache-2.0 |