Class: Candle::GenerationConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/candle/llm.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.balanced(**opts) ⇒ Object

Create a balanced configuration (moderate temperature, random seed)



293
294
295
296
297
298
299
300
# File 'lib/candle/llm.rb', line 293

def self.balanced(**opts)
  defaults = {
    temperature: 0.7,
    top_p: 0.9,
    top_k: 40
  }
  new(defaults.merge(opts))
end

.creative(**opts) ⇒ Object

Create a creative configuration (higher temperature, random seed)



282
283
284
285
286
287
288
289
290
# File 'lib/candle/llm.rb', line 282

def self.creative(**opts)
  defaults = {
    temperature: 1.0,
    top_p: 0.95,
    top_k: 50,
    repetition_penalty: 1.2
  }
  new(defaults.merge(opts))
end

.deterministic(**opts) ⇒ Object

Create a deterministic configuration (temperature = 0, fixed seed)



271
272
273
274
275
276
277
278
279
# File 'lib/candle/llm.rb', line 271

def self.deterministic(**opts)
  defaults = {
    temperature: 0.0,
    top_p: nil,
    top_k: 1,
    seed: 42
  }
  new(defaults.merge(opts))
end

Instance Method Details

#with(**overrides) ⇒ Object

Convenience method to create config with overrides



254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
# File 'lib/candle/llm.rb', line 254

def with(**overrides)
  current_config = {
    max_length: max_length,
    temperature: temperature,
    top_p: top_p,
    top_k: top_k,
    repetition_penalty: repetition_penalty,
    seed: seed,
    stop_sequences: stop_sequences,
    include_prompt: include_prompt,
    constraint: defined?(@constraint) ? @constraint : nil
  }.compact
  
  self.class.new(current_config.merge(overrides))
end