pub struct GenerationConfig {
pub max_length: usize,
pub temperature: f64,
pub top_k: Option<usize>,
pub top_p: Option<f64>,
pub repetition_penalty: f64,
pub use_quantum_reasoning: bool,
pub use_memory: bool,
pub chain_of_thought: bool,
}Expand description
Text generation parameters
Fields§
§max_length: usizeMaximum generation length
temperature: f64Temperature for sampling
top_k: Option<usize>Top-k sampling
top_p: Option<f64>Top-p (nucleus) sampling
repetition_penalty: f64Repetition penalty
use_quantum_reasoning: boolEnable quantum reasoning during generation
use_memory: boolMemory-guided generation
chain_of_thought: boolChain-of-thought generation
Implementations§
Source§impl GenerationConfig
impl GenerationConfig
Sourcepub fn default() -> Self
pub fn default() -> Self
Default generation configuration
Examples found in repository?
examples/quantum_llm.rs (line 301)
293fn text_generation_demo() -> Result<()> {
294 println!(" Testing quantum-enhanced text generation...");
295
296 let config = QuantumLLMConfig::small(10000);
297 let mut model = QuantumLLM::new(config)?;
298
299 // Test different generation configurations
300 let generation_configs = vec![
301 ("Default", GenerationConfig::default()),
302 ("Creative", GenerationConfig::creative()),
303 ("Precise", GenerationConfig::precise()),
304 ];
305
306 let test_prompts = [
307 "The quantum computer",
308 "Artificial intelligence will",
309 "In the future, quantum computing",
310 "The relationship between quantum mechanics and consciousness",
311 ];
312
313 for (config_name, gen_config) in generation_configs {
314 println!("\n --- {config_name} Generation ---");
315 println!(" Configuration:");
316 println!(" - Max length: {}", gen_config.max_length);
317 println!(" - Temperature: {:.1}", gen_config.temperature);
318 println!(" - Top-k: {:?}", gen_config.top_k);
319 println!(" - Top-p: {:?}", gen_config.top_p);
320 println!(
321 " - Quantum reasoning: {}",
322 gen_config.use_quantum_reasoning
323 );
324 println!(" - Memory usage: {}", gen_config.use_memory);
325 println!(" - Chain-of-thought: {}", gen_config.chain_of_thought);
326
327 for (i, prompt) in test_prompts.iter().take(2).enumerate() {
328 println!("\n Prompt {}: \"{}\"", i + 1, prompt);
329
330 let start_time = std::time::Instant::now();
331 let generated = model.generate(prompt, gen_config.clone())?;
332 let generation_time = start_time.elapsed();
333
334 // Display partial generated text (first 100 chars)
335 let display_text = if generated.len() > 100 {
336 format!("{}...", &generated[..100])
337 } else {
338 generated.clone()
339 };
340
341 println!(" Generated: \"{display_text}\"");
342 println!(" Generation time: {generation_time:.2?}");
343
344 // Analyze generation quality
345 let quality = analyze_generation_quality(&generated, &gen_config)?;
346 println!(" Quality metrics:");
347 println!(" - Fluency: {:.2}", quality.fluency);
348 println!(" - Coherence: {:.2}", quality.coherence);
349 println!(" - Novelty: {:.2}", quality.novelty);
350 println!(" - Quantum advantage: {:.3}", quality.quantum_advantage);
351 }
352 }
353
354 // Display generation statistics
355 let stats = model.generation_stats();
356 println!("\n Generation Statistics:");
357 println!(" - Total tokens generated: {}", stats.total_tokens);
358 println!(" - Quantum coherence: {:.3}", stats.quantum_coherence);
359 println!(" - Reasoning steps taken: {}", stats.reasoning_steps);
360 println!(" - Memory retrievals: {}", stats.memory_retrievals);
361
362 Ok(())
363}Sourcepub fn creative() -> Self
pub fn creative() -> Self
Creative generation configuration
Examples found in repository?
examples/quantum_llm.rs (line 302)
293fn text_generation_demo() -> Result<()> {
294 println!(" Testing quantum-enhanced text generation...");
295
296 let config = QuantumLLMConfig::small(10000);
297 let mut model = QuantumLLM::new(config)?;
298
299 // Test different generation configurations
300 let generation_configs = vec![
301 ("Default", GenerationConfig::default()),
302 ("Creative", GenerationConfig::creative()),
303 ("Precise", GenerationConfig::precise()),
304 ];
305
306 let test_prompts = [
307 "The quantum computer",
308 "Artificial intelligence will",
309 "In the future, quantum computing",
310 "The relationship between quantum mechanics and consciousness",
311 ];
312
313 for (config_name, gen_config) in generation_configs {
314 println!("\n --- {config_name} Generation ---");
315 println!(" Configuration:");
316 println!(" - Max length: {}", gen_config.max_length);
317 println!(" - Temperature: {:.1}", gen_config.temperature);
318 println!(" - Top-k: {:?}", gen_config.top_k);
319 println!(" - Top-p: {:?}", gen_config.top_p);
320 println!(
321 " - Quantum reasoning: {}",
322 gen_config.use_quantum_reasoning
323 );
324 println!(" - Memory usage: {}", gen_config.use_memory);
325 println!(" - Chain-of-thought: {}", gen_config.chain_of_thought);
326
327 for (i, prompt) in test_prompts.iter().take(2).enumerate() {
328 println!("\n Prompt {}: \"{}\"", i + 1, prompt);
329
330 let start_time = std::time::Instant::now();
331 let generated = model.generate(prompt, gen_config.clone())?;
332 let generation_time = start_time.elapsed();
333
334 // Display partial generated text (first 100 chars)
335 let display_text = if generated.len() > 100 {
336 format!("{}...", &generated[..100])
337 } else {
338 generated.clone()
339 };
340
341 println!(" Generated: \"{display_text}\"");
342 println!(" Generation time: {generation_time:.2?}");
343
344 // Analyze generation quality
345 let quality = analyze_generation_quality(&generated, &gen_config)?;
346 println!(" Quality metrics:");
347 println!(" - Fluency: {:.2}", quality.fluency);
348 println!(" - Coherence: {:.2}", quality.coherence);
349 println!(" - Novelty: {:.2}", quality.novelty);
350 println!(" - Quantum advantage: {:.3}", quality.quantum_advantage);
351 }
352 }
353
354 // Display generation statistics
355 let stats = model.generation_stats();
356 println!("\n Generation Statistics:");
357 println!(" - Total tokens generated: {}", stats.total_tokens);
358 println!(" - Quantum coherence: {:.3}", stats.quantum_coherence);
359 println!(" - Reasoning steps taken: {}", stats.reasoning_steps);
360 println!(" - Memory retrievals: {}", stats.memory_retrievals);
361
362 Ok(())
363}Sourcepub fn precise() -> Self
pub fn precise() -> Self
Precise generation configuration
Examples found in repository?
examples/quantum_llm.rs (line 303)
293fn text_generation_demo() -> Result<()> {
294 println!(" Testing quantum-enhanced text generation...");
295
296 let config = QuantumLLMConfig::small(10000);
297 let mut model = QuantumLLM::new(config)?;
298
299 // Test different generation configurations
300 let generation_configs = vec![
301 ("Default", GenerationConfig::default()),
302 ("Creative", GenerationConfig::creative()),
303 ("Precise", GenerationConfig::precise()),
304 ];
305
306 let test_prompts = [
307 "The quantum computer",
308 "Artificial intelligence will",
309 "In the future, quantum computing",
310 "The relationship between quantum mechanics and consciousness",
311 ];
312
313 for (config_name, gen_config) in generation_configs {
314 println!("\n --- {config_name} Generation ---");
315 println!(" Configuration:");
316 println!(" - Max length: {}", gen_config.max_length);
317 println!(" - Temperature: {:.1}", gen_config.temperature);
318 println!(" - Top-k: {:?}", gen_config.top_k);
319 println!(" - Top-p: {:?}", gen_config.top_p);
320 println!(
321 " - Quantum reasoning: {}",
322 gen_config.use_quantum_reasoning
323 );
324 println!(" - Memory usage: {}", gen_config.use_memory);
325 println!(" - Chain-of-thought: {}", gen_config.chain_of_thought);
326
327 for (i, prompt) in test_prompts.iter().take(2).enumerate() {
328 println!("\n Prompt {}: \"{}\"", i + 1, prompt);
329
330 let start_time = std::time::Instant::now();
331 let generated = model.generate(prompt, gen_config.clone())?;
332 let generation_time = start_time.elapsed();
333
334 // Display partial generated text (first 100 chars)
335 let display_text = if generated.len() > 100 {
336 format!("{}...", &generated[..100])
337 } else {
338 generated.clone()
339 };
340
341 println!(" Generated: \"{display_text}\"");
342 println!(" Generation time: {generation_time:.2?}");
343
344 // Analyze generation quality
345 let quality = analyze_generation_quality(&generated, &gen_config)?;
346 println!(" Quality metrics:");
347 println!(" - Fluency: {:.2}", quality.fluency);
348 println!(" - Coherence: {:.2}", quality.coherence);
349 println!(" - Novelty: {:.2}", quality.novelty);
350 println!(" - Quantum advantage: {:.3}", quality.quantum_advantage);
351 }
352 }
353
354 // Display generation statistics
355 let stats = model.generation_stats();
356 println!("\n Generation Statistics:");
357 println!(" - Total tokens generated: {}", stats.total_tokens);
358 println!(" - Quantum coherence: {:.3}", stats.quantum_coherence);
359 println!(" - Reasoning steps taken: {}", stats.reasoning_steps);
360 println!(" - Memory retrievals: {}", stats.memory_retrievals);
361
362 Ok(())
363}Trait Implementations§
Source§impl Clone for GenerationConfig
impl Clone for GenerationConfig
Source§fn clone(&self) -> GenerationConfig
fn clone(&self) -> GenerationConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for GenerationConfig
impl RefUnwindSafe for GenerationConfig
impl Send for GenerationConfig
impl Sync for GenerationConfig
impl Unpin for GenerationConfig
impl UnwindSafe for GenerationConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.