🚀 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 |