许可协议: mit
语言支持:
- 俄语
- 英语
标签:
- mteb
- transformers
- sentence-transformers
基础模型:
- ai-forever/FRIDA
管道标签: 特征提取
FRIDA GGUF 模型卡片
FRIDA是基于T5去噪架构思想进行全参数微调的通用文本嵌入模型。该模型以FRED-T5的编码器部分为基础,延续了文本嵌入模型的研究路线(参见ruMTEB、ru-en-RoSBERTa)。模型在俄英双语数据集上进行了预训练,并针对目标任务进行了微调优化。
更多技术细节请参阅我们的技术报告[TODO]。
使用说明
本模型可直接配合前缀词使用,推荐采用CLS池化策略。前缀词和池化方式的选择取决于具体任务场景。
我们建议遵循以下前缀选择规则:
"search_query: "
和"search_document: "
前缀用于答案检索或相关段落匹配
"paraphrase: "
前缀适用于对称性复述任务(语义相似度、复述挖掘、去重)
"categorize: "
前缀用于文档标题与正文的非对称匹配(如新闻、科研论文、社交帖子)
"categorize_sentiment: "
前缀适用于依赖情感特征的任务(如仇恨言论、毒性检测、情绪分析)
"categorize_topic: "
前缀用于文本主题聚类任务
"categorize_entailment: "
前缀用于文本蕴含任务(自然语言推理)
为获得更优效果,建议使用高质量的俄英双语数据集对模型进行微调。
以下是使用Transformers和SentenceTransformers库进行文本编码的示例:
Ollama调用方式
ollama pull evilfreelancer/FRIDA:f16
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())
开发团队
引用文献
@misc{TODO
}
使用限制
本模型主要面向俄语文本处理,英语文本处理效果未经充分验证。最大输入文本长度限制为512个token。