Class: Candle::Reranker
- Inherits:
-
Object
- Object
- Candle::Reranker
- Defined in:
- lib/candle/reranker.rb
Constant Summary collapse
- DEFAULT_MODEL_PATH =
Default model path for cross-encoder/ms-marco-MiniLM-L-12-v2
"cross-encoder/ms-marco-MiniLM-L-12-v2"
Class Method Summary collapse
-
.from_pretrained(model_id = DEFAULT_MODEL_PATH, device: Candle::Device.best, max_length: 512) ⇒ Reranker
Load a pre-trained reranker model from HuggingFace.
-
.new(model_path: DEFAULT_MODEL_PATH, device: Candle::Device.best, max_length: 512) ⇒ Object
deprecated
Deprecated.
Use Reranker.from_pretrained instead
Instance Method Summary collapse
-
#inspect ⇒ Object
Improved inspect method.
-
#rerank(query, documents, pooling_method: "pooler", apply_sigmoid: true) ⇒ Object
Returns documents ranked by relevance using the specified pooling method.
Class Method Details
.from_pretrained(model_id = DEFAULT_MODEL_PATH, device: Candle::Device.best, max_length: 512) ⇒ Reranker
Load a pre-trained reranker model from HuggingFace
11 12 13 |
# File 'lib/candle/reranker.rb', line 11 def self.from_pretrained(model_id = DEFAULT_MODEL_PATH, device: Candle::Device.best, max_length: 512) _create(model_id, device, max_length) end |
.new(model_path: DEFAULT_MODEL_PATH, device: Candle::Device.best, max_length: 512) ⇒ Object
Deprecated.
Use from_pretrained instead
Constructor for creating a new Reranker with optional parameters
20 21 22 23 |
# File 'lib/candle/reranker.rb', line 20 def self.new(model_path: DEFAULT_MODEL_PATH, device: Candle::Device.best, max_length: 512) $stderr.puts "[DEPRECATION] `Reranker.new` is deprecated. Please use `Reranker.from_pretrained` instead." _create(model_path, device, max_length) end |
Instance Method Details
#inspect ⇒ Object
Improved inspect method
37 38 39 40 41 42 43 |
# File 'lib/candle/reranker.rb', line 37 def inspect opts = rescue {} parts = ["#<Candle::Reranker"] parts << "model=#{opts["model_id"] || "unknown"}" parts << "device=#{opts["device"] || "unknown"}" parts.join(" ") + ">" end |
#rerank(query, documents, pooling_method: "pooler", apply_sigmoid: true) ⇒ Object
Returns documents ranked by relevance using the specified pooling method.
30 31 32 33 34 |
# File 'lib/candle/reranker.rb', line 30 def rerank(query, documents, pooling_method: "pooler", apply_sigmoid: true) (query, documents, pooling_method, apply_sigmoid).collect { |doc, score, doc_id| { doc_id: doc_id, score: score, text: doc } } end |