Class: Kiribi::RuriV3::Ruri30M::Model

Inherits:
Object
  • Object
show all
Defined in:
lib/kiribi/ruri_v3/ruri30m.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeModel

Returns a new instance of Model.



21
22
23
24
# File 'lib/kiribi/ruri_v3/ruri30m.rb', line 21

def initialize
  @tokenizer = Tokenizers.from_file(TOKENIZER_FILEPATH)
  @onnx_model = OnnxRuntime::Model.new(MODEL_FILEPATH)
end

Instance Attribute Details

#onnx_modelObject (readonly)

Returns the value of attribute onnx_model.



19
20
21
# File 'lib/kiribi/ruri_v3/ruri30m.rb', line 19

def onnx_model
  @onnx_model
end

#tokenizerObject (readonly)

Returns the value of attribute tokenizer.



19
20
21
# File 'lib/kiribi/ruri_v3/ruri30m.rb', line 19

def tokenizer
  @tokenizer
end

Instance Method Details

#embedding(text) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/kiribi/ruri_v3/ruri30m.rb', line 26

def embedding(text)
  encoded = tokenizer.encode(text)
  batch = {
    input_ids: [encoded.ids],
    attention_mask: [encoded.attention_mask]
  }
  outputs = onnx_model.predict(batch)
  outputs["sentence_embedding"][0]
end

#embedding_normalized(text) ⇒ Object



36
37
38
39
40
# File 'lib/kiribi/ruri_v3/ruri30m.rb', line 36

def embedding_normalized(text)
  vec = embedding(text)
  norm = Math.sqrt(vec.sum { it * it })
  vec.map { it / norm }
end