Views
No views yet
pip install onnxruntime transformers numpy1import numpy as np
2import onnxruntime
3from transformers import AutoTokenizer
4
5class RigvedaONNXInference:
6 def __init__(self, model_path):
7 # Load tokenizer
8 self.tokenizer = AutoTokenizer.from_pretrained(model_path)
9
10 # Load ONNX model
11 self.session = onnxruntime.InferenceSession(f"{model_path}/model.onnx")
12
13 def encode_query(self, queries):
14 """Encode queries with task prefix"""
15 texts = [f"task: search result | query: {q}" for q in queries]
16 return self._get_embeddings(texts)
17
18 def encode_document(self, documents):
19 """Encode documents with title prefix"""
20 texts = [f"title: none | text: {d}" for d in documents]
21 return self._get_embeddings(texts)
22
23 def _get_embeddings(self, texts):
24 inputs = self.tokenizer(texts, padding=True, truncation=True, return_tensors='np')
25 onnx_inputs = {
26 'input_ids': inputs['input_ids'],
27 'attention_mask': inputs['attention_mask']
28 }
29 outputs = self.session.run(None, onnx_inputs)
30 embeddings = outputs[0][:, 0] # Use [CLS] token
31 # Normalize embeddings
32 return embeddings / np.linalg.norm(embeddings, axis=1, keepdims=True)
33
34# Usage example
35model = RigvedaONNXInference("./")
36
37# Sanskrit query about divine phenomena similar to rain and lightning
38query = "वृष्टि-विद्युत्-सदृशं दैविकं आगमनम्"
39
40# Rigveda verses
41documents = [
42 'असामि हि प्रयज्यवः कण्वं दद प्रचेतसः\nअसामिभिर् मरुत आ न ऊतिभिर् गन्ता वृष्टिं न विद्युतः',
43 'उत द्वार उशतीर् वि श्रयन्ताम् उत देवाṁ उशत आ वहेह',
44 'प्राग्नये बृहते यज्ञियाय ऋतस्य वृष्णे असुराय मन्म\nघृतं न यज्ञ आस्ये सुपूतं गिरम् भरे वृषभाय प्रतीचीम्'
45]
46
47# Get embeddings
48query_emb = model.encode_query([query])
49doc_emb = model.encode_document(documents)
50
51# Calculate similarity
52similarities = np.dot(query_emb, doc_emb.T)
53print("Similarities:", similarities)1@misc{rigveda-onnx-embedding,
2 title={Rigveda Embedding Model (ONNX)},
3 author={Converted from Ganaraj/rgveda-embedding-gemma},
4 year={2024},
5 howpublished={\url{https://huggingface.co/YOUR_USERNAME/rgveda-onnx-model}}
6}model.onnx: The ONNX model fileconfig.json: Model configurationtokenizer.json: Fast tokenizertokenizer_config.json: Tokenizer configurationspecial_tokens_map.json: Special token mappings