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