🚀 Qwen2.5-7B-embed-base
Qwen2.5-7B-embed-baseは、テキスト分類に特化した事前学習済みモデルです。このモデルは、Transformerアーキテクチャをベースに構築され、多言語やコードに適応したトークナイザーを備えています。
🚀 クイックスタート
このセクションでは、Qwen2.5-7B-embed-baseモデルの基本的な使い方を説明します。
✨ 主な機能
- Qwen2.5は、異なるモデルサイズのデコーダ言語モデルを含む言語モデルシリーズです。
- Transformerアーキテクチャをベースに、SwiGLU活性化関数、Attention QKVバイアス、Group Query Attentionなどを採用しています。
- 多言語やコードに適応した改良型トークナイザーを備えています。
📦 インストール
Qwen2.5のコードは最新のHugging Face Transformersに含まれています。以下のコマンドで必要なライブラリをインストールしてください。
pip install transformers>=4.37.0
これを行わないと、以下のエラーが発生する可能性があります。
KeyError: 'Qwen2.5'
💻 使用例
基本的な使用法
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)
高度な使用法
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)
🔧 技術詳細
Qwen2.5は、Transformerアーキテクチャをベースに構築された言語モデルシリーズです。このモデルは、SwiGLU活性化関数、Attention QKVバイアス、Group Query Attentionなどの技術を採用しており、多言語やコードに適応した改良型トークナイザーを備えています。
📄 ライセンス
このモデルはApache 2.0ライセンスの下で公開されています。
⚠️ 重要提示
このモデルの推論には、24GB以上のVRAMが必要です。24GB以下の場合は、device = "cpu"
を指定してください。
💡 使用建议
このモデルのlm_head
層は削除されているため、埋め込みに使用できます。ただし、さらにファインチューニングする必要があります。
属性 |
详情 |
模型类型 |
テキスト分類 |
训练数据 |
未提供 |
ベースモデル |
Qwen/Qwen2.5-7B |
ライブラリ名 |
sentence-transformers |
ライセンス |
Apache 2.0 |