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 290)
282fn text_generation_demo() -> Result<()> {
283 println!(" Testing quantum-enhanced text generation...");
284
285 let config = QuantumLLMConfig::small(10000);
286 let mut model = QuantumLLM::new(config)?;
287
288 // Test different generation configurations
289 let generation_configs = vec![
290 ("Default", GenerationConfig::default()),
291 ("Creative", GenerationConfig::creative()),
292 ("Precise", GenerationConfig::precise()),
293 ];
294
295 let test_prompts = [
296 "The quantum computer",
297 "Artificial intelligence will",
298 "In the future, quantum computing",
299 "The relationship between quantum mechanics and consciousness",
300 ];
301
302 for (config_name, gen_config) in generation_configs {
303 println!("\n --- {config_name} Generation ---");
304 println!(" Configuration:");
305 println!(" - Max length: {}", gen_config.max_length);
306 println!(" - Temperature: {:.1}", gen_config.temperature);
307 println!(" - Top-k: {:?}", gen_config.top_k);
308 println!(" - Top-p: {:?}", gen_config.top_p);
309 println!(
310 " - Quantum reasoning: {}",
311 gen_config.use_quantum_reasoning
312 );
313 println!(" - Memory usage: {}", gen_config.use_memory);
314 println!(" - Chain-of-thought: {}", gen_config.chain_of_thought);
315
316 for (i, prompt) in test_prompts.iter().take(2).enumerate() {
317 println!("\n Prompt {}: \"{}\"", i + 1, prompt);
318
319 let start_time = std::time::Instant::now();
320 let generated = model.generate(prompt, gen_config.clone())?;
321 let generation_time = start_time.elapsed();
322
323 // Display partial generated text (first 100 chars)
324 let display_text = if generated.len() > 100 {
325 format!("{}...", &generated[..100])
326 } else {
327 generated.clone()
328 };
329
330 println!(" Generated: \"{display_text}\"");
331 println!(" Generation time: {generation_time:.2?}");
332
333 // Analyze generation quality
334 let quality = analyze_generation_quality(&generated, &gen_config)?;
335 println!(" Quality metrics:");
336 println!(" - Fluency: {:.2}", quality.fluency);
337 println!(" - Coherence: {:.2}", quality.coherence);
338 println!(" - Novelty: {:.2}", quality.novelty);
339 println!(" - Quantum advantage: {:.3}", quality.quantum_advantage);
340 }
341 }
342
343 // Display generation statistics
344 let stats = model.generation_stats();
345 println!("\n Generation Statistics:");
346 println!(" - Total tokens generated: {}", stats.total_tokens);
347 println!(" - Quantum coherence: {:.3}", stats.quantum_coherence);
348 println!(" - Reasoning steps taken: {}", stats.reasoning_steps);
349 println!(" - Memory retrievals: {}", stats.memory_retrievals);
350
351 Ok(())
352}Sourcepub fn creative() -> Self
pub fn creative() -> Self
Creative generation configuration
Examples found in repository?
examples/quantum_llm.rs (line 291)
282fn text_generation_demo() -> Result<()> {
283 println!(" Testing quantum-enhanced text generation...");
284
285 let config = QuantumLLMConfig::small(10000);
286 let mut model = QuantumLLM::new(config)?;
287
288 // Test different generation configurations
289 let generation_configs = vec![
290 ("Default", GenerationConfig::default()),
291 ("Creative", GenerationConfig::creative()),
292 ("Precise", GenerationConfig::precise()),
293 ];
294
295 let test_prompts = [
296 "The quantum computer",
297 "Artificial intelligence will",
298 "In the future, quantum computing",
299 "The relationship between quantum mechanics and consciousness",
300 ];
301
302 for (config_name, gen_config) in generation_configs {
303 println!("\n --- {config_name} Generation ---");
304 println!(" Configuration:");
305 println!(" - Max length: {}", gen_config.max_length);
306 println!(" - Temperature: {:.1}", gen_config.temperature);
307 println!(" - Top-k: {:?}", gen_config.top_k);
308 println!(" - Top-p: {:?}", gen_config.top_p);
309 println!(
310 " - Quantum reasoning: {}",
311 gen_config.use_quantum_reasoning
312 );
313 println!(" - Memory usage: {}", gen_config.use_memory);
314 println!(" - Chain-of-thought: {}", gen_config.chain_of_thought);
315
316 for (i, prompt) in test_prompts.iter().take(2).enumerate() {
317 println!("\n Prompt {}: \"{}\"", i + 1, prompt);
318
319 let start_time = std::time::Instant::now();
320 let generated = model.generate(prompt, gen_config.clone())?;
321 let generation_time = start_time.elapsed();
322
323 // Display partial generated text (first 100 chars)
324 let display_text = if generated.len() > 100 {
325 format!("{}...", &generated[..100])
326 } else {
327 generated.clone()
328 };
329
330 println!(" Generated: \"{display_text}\"");
331 println!(" Generation time: {generation_time:.2?}");
332
333 // Analyze generation quality
334 let quality = analyze_generation_quality(&generated, &gen_config)?;
335 println!(" Quality metrics:");
336 println!(" - Fluency: {:.2}", quality.fluency);
337 println!(" - Coherence: {:.2}", quality.coherence);
338 println!(" - Novelty: {:.2}", quality.novelty);
339 println!(" - Quantum advantage: {:.3}", quality.quantum_advantage);
340 }
341 }
342
343 // Display generation statistics
344 let stats = model.generation_stats();
345 println!("\n Generation Statistics:");
346 println!(" - Total tokens generated: {}", stats.total_tokens);
347 println!(" - Quantum coherence: {:.3}", stats.quantum_coherence);
348 println!(" - Reasoning steps taken: {}", stats.reasoning_steps);
349 println!(" - Memory retrievals: {}", stats.memory_retrievals);
350
351 Ok(())
352}Sourcepub fn precise() -> Self
pub fn precise() -> Self
Precise generation configuration
Examples found in repository?
examples/quantum_llm.rs (line 292)
282fn text_generation_demo() -> Result<()> {
283 println!(" Testing quantum-enhanced text generation...");
284
285 let config = QuantumLLMConfig::small(10000);
286 let mut model = QuantumLLM::new(config)?;
287
288 // Test different generation configurations
289 let generation_configs = vec![
290 ("Default", GenerationConfig::default()),
291 ("Creative", GenerationConfig::creative()),
292 ("Precise", GenerationConfig::precise()),
293 ];
294
295 let test_prompts = [
296 "The quantum computer",
297 "Artificial intelligence will",
298 "In the future, quantum computing",
299 "The relationship between quantum mechanics and consciousness",
300 ];
301
302 for (config_name, gen_config) in generation_configs {
303 println!("\n --- {config_name} Generation ---");
304 println!(" Configuration:");
305 println!(" - Max length: {}", gen_config.max_length);
306 println!(" - Temperature: {:.1}", gen_config.temperature);
307 println!(" - Top-k: {:?}", gen_config.top_k);
308 println!(" - Top-p: {:?}", gen_config.top_p);
309 println!(
310 " - Quantum reasoning: {}",
311 gen_config.use_quantum_reasoning
312 );
313 println!(" - Memory usage: {}", gen_config.use_memory);
314 println!(" - Chain-of-thought: {}", gen_config.chain_of_thought);
315
316 for (i, prompt) in test_prompts.iter().take(2).enumerate() {
317 println!("\n Prompt {}: \"{}\"", i + 1, prompt);
318
319 let start_time = std::time::Instant::now();
320 let generated = model.generate(prompt, gen_config.clone())?;
321 let generation_time = start_time.elapsed();
322
323 // Display partial generated text (first 100 chars)
324 let display_text = if generated.len() > 100 {
325 format!("{}...", &generated[..100])
326 } else {
327 generated.clone()
328 };
329
330 println!(" Generated: \"{display_text}\"");
331 println!(" Generation time: {generation_time:.2?}");
332
333 // Analyze generation quality
334 let quality = analyze_generation_quality(&generated, &gen_config)?;
335 println!(" Quality metrics:");
336 println!(" - Fluency: {:.2}", quality.fluency);
337 println!(" - Coherence: {:.2}", quality.coherence);
338 println!(" - Novelty: {:.2}", quality.novelty);
339 println!(" - Quantum advantage: {:.3}", quality.quantum_advantage);
340 }
341 }
342
343 // Display generation statistics
344 let stats = model.generation_stats();
345 println!("\n Generation Statistics:");
346 println!(" - Total tokens generated: {}", stats.total_tokens);
347 println!(" - Quantum coherence: {:.3}", stats.quantum_coherence);
348 println!(" - Reasoning steps taken: {}", stats.reasoning_steps);
349 println!(" - Memory retrievals: {}", stats.memory_retrievals);
350
351 Ok(())
352}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.