Views
No views yet

"search_query: " and "search_document: " prefixes are for answer or relevant paragraph retrieval"paraphrase: " prefix is for symmetric paraphrasing related tasks (STS, paraphrase mining, deduplication)"categorize: " prefix is for asymmetric matching of document title and body (e.g. news, scientific papers, social posts)"categorize_sentiment: " prefix is for any tasks that rely on sentiment features (e.g. hate, toxic, emotion)"categorize_topic: " prefix is intended for tasks where you need to group texts by topic"categorize_entailment: " prefix is for textual entailment task (NLI)ollama pull evilfreelancer/FRIDA:f161import json
2import requests
3import numpy as np
4
5OLLAMA_HOST = "http://localhost:11434"
6MODEL_NAME = "evilfreelancer/FRIDA:f16"
7
8
9def get_embedding(text):
10 payload = {
11 "model": MODEL_NAME,
12 "input": text
13 }
14
15 response = requests.post(
16 f"{OLLAMA_HOST}/api/embed",
17 data=json.dumps(payload, ensure_ascii=False),
18 headers={"Content-Type": "application/x-www-form-urlencoded"}
19 )
20 response.raise_for_status()
21 return np.array(response.json()["embeddings"][0])
22
23
24def normalize(vectors):
25 vectors = np.atleast_2d(vectors)
26 norms = np.linalg.norm(vectors, axis=1, keepdims=True)
27 norms[norms == 0] = 1.0
28 return vectors / norms
29
30
31def cosine_diag_similarity(a, b):
32 return np.sum(a * b, axis=1)
33
34
35inputs = [
36 #
37 "paraphrase: В Ярославской области разрешили работу бань, но без посетителей",
38 "categorize_entailment: Женщину доставили в больницу за ее жизнь сейчас борются врачи.",
39 "search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
40 #
41 "paraphrase: Ярославским баням разрешили работать без посетителей",
42 "categorize_entailment: Женщину спасают врачи.",
43 "search_document: Чтобы вкрутить лампочку нужно три программиста.",
44]
45size = int(len(inputs)/2)
46
47embeddings = normalize(np.array([get_embedding(text) for text in inputs]))
48sim_scores = cosine_diag_similarity(embeddings[:size], embeddings[size:])
49print(sim_scores.tolist())@misc{TODO
}