pub struct QuantumReasoningModule { /* private fields */ }Expand description
Quantum reasoning module
Implementations§
Source§impl QuantumReasoningModule
impl QuantumReasoningModule
Sourcepub fn new(config: QuantumReasoningConfig) -> Result<Self>
pub fn new(config: QuantumReasoningConfig) -> Result<Self>
Create new quantum reasoning module
Examples found in repository?
examples/quantum_llm.rs (line 226)
214fn quantum_reasoning_demo() -> Result<()> {
215 println!(" Testing quantum reasoning modules...");
216
217 let reasoning_configs = vec![
218 ("Basic Logical", QuantumReasoningConfig::default()),
219 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
220 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
221 ];
222
223 for (name, config) in reasoning_configs {
224 println!("\n --- {name} Reasoning ---");
225
226 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
227
228 println!(" Reasoning capabilities:");
229 println!(" - Logical reasoning: {}", config.logical_reasoning);
230 println!(" - Causal reasoning: {}", config.causal_reasoning);
231 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
232 println!(" - Reasoning steps: {}", config.reasoning_steps);
233 println!(" - Circuit depth: {}", config.circuit_depth);
234 println!(
235 " - Entanglement strength: {:.2}",
236 config.entanglement_strength
237 );
238
239 // Test reasoning on sample hidden states
240 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
241 // Create patterns that require reasoning
242 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
243 let causal_pattern = s as f64 * 0.1;
244 let base_value = logical_pattern + causal_pattern;
245
246 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
247 });
248
249 println!(" Input hidden states shape: {:?}", hidden_states.dim());
250
251 // Apply quantum reasoning
252 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
253 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
254
255 // Analyze reasoning effects
256 let reasoning_enhancement =
257 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
258 println!(" Reasoning enhancement metrics:");
259 println!(
260 " - Pattern amplification: {:.3}",
261 reasoning_enhancement.pattern_amplification
262 );
263 println!(
264 " - Logical consistency: {:.3}",
265 reasoning_enhancement.logical_consistency
266 );
267 println!(
268 " - Causal coherence: {:.3}",
269 reasoning_enhancement.causal_coherence
270 );
271
272 // Test quantum coherence during reasoning
273 let coherence = reasoning_module.measure_coherence()?;
274 println!(" Quantum coherence: {coherence:.3}");
275
276 // Test token selection enhancement
277 let sample_logits = Array1::from_shape_fn(1000, |i| {
278 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
279 });
280
281 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
282 let enhancement_effect = (&enhanced_logits - &sample_logits)
283 .mapv(f64::abs)
284 .mean()
285 .unwrap_or(0.0);
286 println!(" Token selection enhancement: {enhancement_effect:.4}");
287 }
288
289 Ok(())
290}Sourcepub fn apply_reasoning(
&mut self,
hidden_states: &Array3<f64>,
) -> Result<Array3<f64>>
pub fn apply_reasoning( &mut self, hidden_states: &Array3<f64>, ) -> Result<Array3<f64>>
Apply quantum reasoning to transformer output
Examples found in repository?
examples/quantum_llm.rs (line 252)
214fn quantum_reasoning_demo() -> Result<()> {
215 println!(" Testing quantum reasoning modules...");
216
217 let reasoning_configs = vec![
218 ("Basic Logical", QuantumReasoningConfig::default()),
219 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
220 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
221 ];
222
223 for (name, config) in reasoning_configs {
224 println!("\n --- {name} Reasoning ---");
225
226 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
227
228 println!(" Reasoning capabilities:");
229 println!(" - Logical reasoning: {}", config.logical_reasoning);
230 println!(" - Causal reasoning: {}", config.causal_reasoning);
231 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
232 println!(" - Reasoning steps: {}", config.reasoning_steps);
233 println!(" - Circuit depth: {}", config.circuit_depth);
234 println!(
235 " - Entanglement strength: {:.2}",
236 config.entanglement_strength
237 );
238
239 // Test reasoning on sample hidden states
240 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
241 // Create patterns that require reasoning
242 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
243 let causal_pattern = s as f64 * 0.1;
244 let base_value = logical_pattern + causal_pattern;
245
246 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
247 });
248
249 println!(" Input hidden states shape: {:?}", hidden_states.dim());
250
251 // Apply quantum reasoning
252 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
253 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
254
255 // Analyze reasoning effects
256 let reasoning_enhancement =
257 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
258 println!(" Reasoning enhancement metrics:");
259 println!(
260 " - Pattern amplification: {:.3}",
261 reasoning_enhancement.pattern_amplification
262 );
263 println!(
264 " - Logical consistency: {:.3}",
265 reasoning_enhancement.logical_consistency
266 );
267 println!(
268 " - Causal coherence: {:.3}",
269 reasoning_enhancement.causal_coherence
270 );
271
272 // Test quantum coherence during reasoning
273 let coherence = reasoning_module.measure_coherence()?;
274 println!(" Quantum coherence: {coherence:.3}");
275
276 // Test token selection enhancement
277 let sample_logits = Array1::from_shape_fn(1000, |i| {
278 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
279 });
280
281 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
282 let enhancement_effect = (&enhanced_logits - &sample_logits)
283 .mapv(f64::abs)
284 .mean()
285 .unwrap_or(0.0);
286 println!(" Token selection enhancement: {enhancement_effect:.4}");
287 }
288
289 Ok(())
290}Sourcepub fn enhance_token_selection(
&self,
logits: &Array1<f64>,
) -> Result<Array1<f64>>
pub fn enhance_token_selection( &self, logits: &Array1<f64>, ) -> Result<Array1<f64>>
Enhance token selection with quantum reasoning
Examples found in repository?
examples/quantum_llm.rs (line 281)
214fn quantum_reasoning_demo() -> Result<()> {
215 println!(" Testing quantum reasoning modules...");
216
217 let reasoning_configs = vec![
218 ("Basic Logical", QuantumReasoningConfig::default()),
219 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
220 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
221 ];
222
223 for (name, config) in reasoning_configs {
224 println!("\n --- {name} Reasoning ---");
225
226 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
227
228 println!(" Reasoning capabilities:");
229 println!(" - Logical reasoning: {}", config.logical_reasoning);
230 println!(" - Causal reasoning: {}", config.causal_reasoning);
231 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
232 println!(" - Reasoning steps: {}", config.reasoning_steps);
233 println!(" - Circuit depth: {}", config.circuit_depth);
234 println!(
235 " - Entanglement strength: {:.2}",
236 config.entanglement_strength
237 );
238
239 // Test reasoning on sample hidden states
240 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
241 // Create patterns that require reasoning
242 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
243 let causal_pattern = s as f64 * 0.1;
244 let base_value = logical_pattern + causal_pattern;
245
246 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
247 });
248
249 println!(" Input hidden states shape: {:?}", hidden_states.dim());
250
251 // Apply quantum reasoning
252 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
253 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
254
255 // Analyze reasoning effects
256 let reasoning_enhancement =
257 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
258 println!(" Reasoning enhancement metrics:");
259 println!(
260 " - Pattern amplification: {:.3}",
261 reasoning_enhancement.pattern_amplification
262 );
263 println!(
264 " - Logical consistency: {:.3}",
265 reasoning_enhancement.logical_consistency
266 );
267 println!(
268 " - Causal coherence: {:.3}",
269 reasoning_enhancement.causal_coherence
270 );
271
272 // Test quantum coherence during reasoning
273 let coherence = reasoning_module.measure_coherence()?;
274 println!(" Quantum coherence: {coherence:.3}");
275
276 // Test token selection enhancement
277 let sample_logits = Array1::from_shape_fn(1000, |i| {
278 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
279 });
280
281 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
282 let enhancement_effect = (&enhanced_logits - &sample_logits)
283 .mapv(f64::abs)
284 .mean()
285 .unwrap_or(0.0);
286 println!(" Token selection enhancement: {enhancement_effect:.4}");
287 }
288
289 Ok(())
290}Sourcepub fn measure_coherence(&self) -> Result<f64>
pub fn measure_coherence(&self) -> Result<f64>
Measure quantum coherence in reasoning
Examples found in repository?
examples/quantum_llm.rs (line 273)
214fn quantum_reasoning_demo() -> Result<()> {
215 println!(" Testing quantum reasoning modules...");
216
217 let reasoning_configs = vec![
218 ("Basic Logical", QuantumReasoningConfig::default()),
219 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
220 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
221 ];
222
223 for (name, config) in reasoning_configs {
224 println!("\n --- {name} Reasoning ---");
225
226 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
227
228 println!(" Reasoning capabilities:");
229 println!(" - Logical reasoning: {}", config.logical_reasoning);
230 println!(" - Causal reasoning: {}", config.causal_reasoning);
231 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
232 println!(" - Reasoning steps: {}", config.reasoning_steps);
233 println!(" - Circuit depth: {}", config.circuit_depth);
234 println!(
235 " - Entanglement strength: {:.2}",
236 config.entanglement_strength
237 );
238
239 // Test reasoning on sample hidden states
240 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
241 // Create patterns that require reasoning
242 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
243 let causal_pattern = s as f64 * 0.1;
244 let base_value = logical_pattern + causal_pattern;
245
246 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
247 });
248
249 println!(" Input hidden states shape: {:?}", hidden_states.dim());
250
251 // Apply quantum reasoning
252 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
253 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
254
255 // Analyze reasoning effects
256 let reasoning_enhancement =
257 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
258 println!(" Reasoning enhancement metrics:");
259 println!(
260 " - Pattern amplification: {:.3}",
261 reasoning_enhancement.pattern_amplification
262 );
263 println!(
264 " - Logical consistency: {:.3}",
265 reasoning_enhancement.logical_consistency
266 );
267 println!(
268 " - Causal coherence: {:.3}",
269 reasoning_enhancement.causal_coherence
270 );
271
272 // Test quantum coherence during reasoning
273 let coherence = reasoning_module.measure_coherence()?;
274 println!(" Quantum coherence: {coherence:.3}");
275
276 // Test token selection enhancement
277 let sample_logits = Array1::from_shape_fn(1000, |i| {
278 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
279 });
280
281 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
282 let enhancement_effect = (&enhanced_logits - &sample_logits)
283 .mapv(f64::abs)
284 .mean()
285 .unwrap_or(0.0);
286 println!(" Token selection enhancement: {enhancement_effect:.4}");
287 }
288
289 Ok(())
290}Sourcepub fn num_parameters(&self) -> usize
pub fn num_parameters(&self) -> usize
Get number of parameters
Trait Implementations§
Source§impl Clone for QuantumReasoningModule
impl Clone for QuantumReasoningModule
Source§fn clone(&self) -> QuantumReasoningModule
fn clone(&self) -> QuantumReasoningModule
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 QuantumReasoningModule
impl !RefUnwindSafe for QuantumReasoningModule
impl Send for QuantumReasoningModule
impl Sync for QuantumReasoningModule
impl Unpin for QuantumReasoningModule
impl !UnwindSafe for QuantumReasoningModule
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.