🚀 FRIDA GGUFのモデルカード
FRIDAは、T5に基づくノイズ除去アーキテクチャにインスパイアされた、完全に微調整された一般的なテキスト埋め込みモデルです。このモデルは、FRED - T5モデルのエンコーダ部分に基づいており、テキスト埋め込みモデルの研究を継続しています(ruMTEB、[ru - en - RoSBERTa](https://huggingface.co/ai - forever/ru - en - RoSBERTa))。ロシア語と英語のデータセットで事前学習され、ターゲットタスクでのパフォーマンス向上のために微調整されています。
- https://huggingface.co/evilfreelancer/FRIDA-GGUF
- https://ollama.com/evilfreelancer/FRIDA
詳細なモデル情報については、技術レポート[TODO]を参照してください。
🚀 クイックスタート
✨ 主な機能
- ロシア語と英語のテキスト埋め込みに最適化
- さまざまなタスクに対応するためのプレフィックスをサポート
- 微調整可能で、関連する高品質なデータセットを使用してパフォーマンスを向上させることができる
📦 インストール
Ollama
ollama pull evilfreelancer/FRIDA:f16
💻 使用例
基本的な使用法
このモデルはプレフィックス付きでそのまま使用できます。CLSプーリングの使用が推奨されます。プレフィックスとプーリングの選択はタスクによって異なります。
import json
import requests
import numpy as np
OLLAMA_HOST = "http://localhost:11434"
MODEL_NAME = "evilfreelancer/FRIDA:f16"
def get_embedding(text):
payload = {
"model": MODEL_NAME,
"input": text
}
response = requests.post(
f"{OLLAMA_HOST}/api/embed",
data=json.dumps(payload, ensure_ascii=False),
headers={"Content-Type": "application/x-www-form-urlencoded"}
)
response.raise_for_status()
return np.array(response.json()["embeddings"][0])
def normalize(vectors):
vectors = np.atleast_2d(vectors)
norms = np.linalg.norm(vectors, axis=1, keepdims=True)
norms[norms == 0] = 1.0
return vectors / norms
def cosine_diag_similarity(a, b):
return np.sum(a * b, axis=1)
inputs = [
"paraphrase: В Ярославской области разрешили работу бань, но без посетителей",
"categorize_entailment: Женщину доставили в больницу за ее жизнь сейчас борются врачи.",
"search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
"paraphrase: Ярославским баням разрешили работать без посетителей",
"categorize_entailment: Женщину спасают врачи.",
"search_document: Чтобы вкрутить лампочку нужно три программиста.",
]
size = int(len(inputs)/2)
embeddings = normalize(np.array([get_embedding(text) for text in inputs]))
sim_scores = cosine_diag_similarity(embeddings[:size], embeddings[size:])
print(sim_scores.tolist())
高度な使用法
モデルをより自分のニーズに合わせるために、関連する高品質なロシア語と英語のデータセットを使用して微調整することができます。
🔧 技術詳細
モデルは、以下の基本ルールに基づいてプレフィックスを選択します。
"search_query: "
と "search_document: "
のプレフィックスは、回答または関連する段落の検索に使用されます。
"paraphrase: "
プレフィックスは、対称的な言い換え関連のタスク(STS、言い換えマイニング、重複排除)に使用されます。
"categorize: "
プレフィックスは、文書のタイトルと本文の非対称マッチング(例:ニュース、科学論文、ソーシャルポスト)に使用されます。
"categorize_sentiment: "
プレフィックスは、感情特徴に依存するタスク(例:憎悪、毒性、感情)に使用されます。
"categorize_topic: "
プレフィックスは、テキストをトピックでグループ化する必要があるタスクに使用されます。
"categorize_entailment: "
プレフィックスは、テキスト的含意タスク(NLI)に使用されます。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
👥 作者
📚 引用
@misc{TODO
}
⚠️ 制限事項
このモデルはロシア語のテキスト処理を目的として設計されており、英語での品質は不明です。最大入力テキスト長は512トークンに制限されています。
📋 情報テーブル
属性 |
详情 |
モデルタイプ |
一般的なテキスト埋め込みモデル |
訓練データ |
ロシア語と英語のデータセット |