Class: Desiru::Optimizers::BootstrapFewShot

Inherits:
Base
  • Object
show all
Defined in:
lib/desiru/optimizers/bootstrap_few_shot.rb

Overview

Bootstrap Few-Shot optimizer - automatically selects effective demonstrations

Instance Attribute Summary

Attributes inherited from Base

#config, #metric

Instance Method Summary collapse

Methods inherited from Base

#evaluate, #initialize

Constructor Details

This class inherits a constructor from Desiru::Optimizers::Base

Instance Method Details

#compile(program, trainset:, valset: nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/desiru/optimizers/bootstrap_few_shot.rb', line 7

def compile(program, trainset:, valset: nil)
  trace_optimization('Starting BootstrapFewShot optimization', {
                       trainset_size: trainset.size,
                       valset_size: valset&.size || 0
                     })

  # Create a working copy of the program
  optimized_program = deep_copy_program(program)

  # Optimize each module in the program
  optimize_modules(optimized_program, trainset, valset)

  # Evaluate final performance
  if valset
    final_score = evaluate(optimized_program, valset)
    trace_optimization('Final validation score', final_score)
  end

  optimized_program
end

#optimize_module(module_instance, examples) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/desiru/optimizers/bootstrap_few_shot.rb', line 28

def optimize_module(module_instance, examples)
  trace_optimization('Optimizing module', {
                       module: module_instance.class.name,
                       examples_available: examples.size
                     })

  # Bootstrap demonstrations
  bootstrapped_demos = bootstrap_demonstrations(module_instance, examples)

  # Select best demonstrations
  selected_demos = select_demonstrations(
    module_instance,
    bootstrapped_demos,
    examples
  )

  # Return module with selected demonstrations
  module_instance.with_demos(selected_demos)
end