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 215)
203fn quantum_reasoning_demo() -> Result<()> {
204 println!(" Testing quantum reasoning modules...");
205
206 let reasoning_configs = vec![
207 ("Basic Logical", QuantumReasoningConfig::default()),
208 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
209 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
210 ];
211
212 for (name, config) in reasoning_configs {
213 println!("\n --- {name} Reasoning ---");
214
215 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
216
217 println!(" Reasoning capabilities:");
218 println!(" - Logical reasoning: {}", config.logical_reasoning);
219 println!(" - Causal reasoning: {}", config.causal_reasoning);
220 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
221 println!(" - Reasoning steps: {}", config.reasoning_steps);
222 println!(" - Circuit depth: {}", config.circuit_depth);
223 println!(
224 " - Entanglement strength: {:.2}",
225 config.entanglement_strength
226 );
227
228 // Test reasoning on sample hidden states
229 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
230 // Create patterns that require reasoning
231 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
232 let causal_pattern = s as f64 * 0.1;
233 let base_value = logical_pattern + causal_pattern;
234
235 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
236 });
237
238 println!(" Input hidden states shape: {:?}", hidden_states.dim());
239
240 // Apply quantum reasoning
241 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
242 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
243
244 // Analyze reasoning effects
245 let reasoning_enhancement =
246 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
247 println!(" Reasoning enhancement metrics:");
248 println!(
249 " - Pattern amplification: {:.3}",
250 reasoning_enhancement.pattern_amplification
251 );
252 println!(
253 " - Logical consistency: {:.3}",
254 reasoning_enhancement.logical_consistency
255 );
256 println!(
257 " - Causal coherence: {:.3}",
258 reasoning_enhancement.causal_coherence
259 );
260
261 // Test quantum coherence during reasoning
262 let coherence = reasoning_module.measure_coherence()?;
263 println!(" Quantum coherence: {coherence:.3}");
264
265 // Test token selection enhancement
266 let sample_logits = Array1::from_shape_fn(1000, |i| {
267 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
268 });
269
270 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
271 let enhancement_effect = (&enhanced_logits - &sample_logits)
272 .mapv(f64::abs)
273 .mean()
274 .unwrap_or(0.0);
275 println!(" Token selection enhancement: {enhancement_effect:.4}");
276 }
277
278 Ok(())
279}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 241)
203fn quantum_reasoning_demo() -> Result<()> {
204 println!(" Testing quantum reasoning modules...");
205
206 let reasoning_configs = vec![
207 ("Basic Logical", QuantumReasoningConfig::default()),
208 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
209 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
210 ];
211
212 for (name, config) in reasoning_configs {
213 println!("\n --- {name} Reasoning ---");
214
215 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
216
217 println!(" Reasoning capabilities:");
218 println!(" - Logical reasoning: {}", config.logical_reasoning);
219 println!(" - Causal reasoning: {}", config.causal_reasoning);
220 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
221 println!(" - Reasoning steps: {}", config.reasoning_steps);
222 println!(" - Circuit depth: {}", config.circuit_depth);
223 println!(
224 " - Entanglement strength: {:.2}",
225 config.entanglement_strength
226 );
227
228 // Test reasoning on sample hidden states
229 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
230 // Create patterns that require reasoning
231 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
232 let causal_pattern = s as f64 * 0.1;
233 let base_value = logical_pattern + causal_pattern;
234
235 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
236 });
237
238 println!(" Input hidden states shape: {:?}", hidden_states.dim());
239
240 // Apply quantum reasoning
241 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
242 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
243
244 // Analyze reasoning effects
245 let reasoning_enhancement =
246 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
247 println!(" Reasoning enhancement metrics:");
248 println!(
249 " - Pattern amplification: {:.3}",
250 reasoning_enhancement.pattern_amplification
251 );
252 println!(
253 " - Logical consistency: {:.3}",
254 reasoning_enhancement.logical_consistency
255 );
256 println!(
257 " - Causal coherence: {:.3}",
258 reasoning_enhancement.causal_coherence
259 );
260
261 // Test quantum coherence during reasoning
262 let coherence = reasoning_module.measure_coherence()?;
263 println!(" Quantum coherence: {coherence:.3}");
264
265 // Test token selection enhancement
266 let sample_logits = Array1::from_shape_fn(1000, |i| {
267 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
268 });
269
270 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
271 let enhancement_effect = (&enhanced_logits - &sample_logits)
272 .mapv(f64::abs)
273 .mean()
274 .unwrap_or(0.0);
275 println!(" Token selection enhancement: {enhancement_effect:.4}");
276 }
277
278 Ok(())
279}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 270)
203fn quantum_reasoning_demo() -> Result<()> {
204 println!(" Testing quantum reasoning modules...");
205
206 let reasoning_configs = vec![
207 ("Basic Logical", QuantumReasoningConfig::default()),
208 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
209 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
210 ];
211
212 for (name, config) in reasoning_configs {
213 println!("\n --- {name} Reasoning ---");
214
215 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
216
217 println!(" Reasoning capabilities:");
218 println!(" - Logical reasoning: {}", config.logical_reasoning);
219 println!(" - Causal reasoning: {}", config.causal_reasoning);
220 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
221 println!(" - Reasoning steps: {}", config.reasoning_steps);
222 println!(" - Circuit depth: {}", config.circuit_depth);
223 println!(
224 " - Entanglement strength: {:.2}",
225 config.entanglement_strength
226 );
227
228 // Test reasoning on sample hidden states
229 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
230 // Create patterns that require reasoning
231 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
232 let causal_pattern = s as f64 * 0.1;
233 let base_value = logical_pattern + causal_pattern;
234
235 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
236 });
237
238 println!(" Input hidden states shape: {:?}", hidden_states.dim());
239
240 // Apply quantum reasoning
241 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
242 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
243
244 // Analyze reasoning effects
245 let reasoning_enhancement =
246 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
247 println!(" Reasoning enhancement metrics:");
248 println!(
249 " - Pattern amplification: {:.3}",
250 reasoning_enhancement.pattern_amplification
251 );
252 println!(
253 " - Logical consistency: {:.3}",
254 reasoning_enhancement.logical_consistency
255 );
256 println!(
257 " - Causal coherence: {:.3}",
258 reasoning_enhancement.causal_coherence
259 );
260
261 // Test quantum coherence during reasoning
262 let coherence = reasoning_module.measure_coherence()?;
263 println!(" Quantum coherence: {coherence:.3}");
264
265 // Test token selection enhancement
266 let sample_logits = Array1::from_shape_fn(1000, |i| {
267 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
268 });
269
270 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
271 let enhancement_effect = (&enhanced_logits - &sample_logits)
272 .mapv(f64::abs)
273 .mean()
274 .unwrap_or(0.0);
275 println!(" Token selection enhancement: {enhancement_effect:.4}");
276 }
277
278 Ok(())
279}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 262)
203fn quantum_reasoning_demo() -> Result<()> {
204 println!(" Testing quantum reasoning modules...");
205
206 let reasoning_configs = vec![
207 ("Basic Logical", QuantumReasoningConfig::default()),
208 ("Enhanced Causal", QuantumReasoningConfig::enhanced()),
209 ("Advanced Analogical", QuantumReasoningConfig::advanced()),
210 ];
211
212 for (name, config) in reasoning_configs {
213 println!("\n --- {name} Reasoning ---");
214
215 let mut reasoning_module = QuantumReasoningModule::new(config.clone())?;
216
217 println!(" Reasoning capabilities:");
218 println!(" - Logical reasoning: {}", config.logical_reasoning);
219 println!(" - Causal reasoning: {}", config.causal_reasoning);
220 println!(" - Analogical reasoning: {}", config.analogical_reasoning);
221 println!(" - Reasoning steps: {}", config.reasoning_steps);
222 println!(" - Circuit depth: {}", config.circuit_depth);
223 println!(
224 " - Entanglement strength: {:.2}",
225 config.entanglement_strength
226 );
227
228 // Test reasoning on sample hidden states
229 let hidden_states = Array3::from_shape_fn((2, 8, 256), |(b, s, d)| {
230 // Create patterns that require reasoning
231 let logical_pattern = if s % 2 == 0 { 0.8 } else { 0.2 };
232 let causal_pattern = s as f64 * 0.1;
233 let base_value = logical_pattern + causal_pattern;
234
235 0.05f64.mul_add((d as f64).mul_add(0.001, b as f64), base_value)
236 });
237
238 println!(" Input hidden states shape: {:?}", hidden_states.dim());
239
240 // Apply quantum reasoning
241 let reasoned_output = reasoning_module.apply_reasoning(&hidden_states)?;
242 println!(" Reasoned output shape: {:?}", reasoned_output.dim());
243
244 // Analyze reasoning effects
245 let reasoning_enhancement =
246 analyze_reasoning_enhancement(&hidden_states, &reasoned_output)?;
247 println!(" Reasoning enhancement metrics:");
248 println!(
249 " - Pattern amplification: {:.3}",
250 reasoning_enhancement.pattern_amplification
251 );
252 println!(
253 " - Logical consistency: {:.3}",
254 reasoning_enhancement.logical_consistency
255 );
256 println!(
257 " - Causal coherence: {:.3}",
258 reasoning_enhancement.causal_coherence
259 );
260
261 // Test quantum coherence during reasoning
262 let coherence = reasoning_module.measure_coherence()?;
263 println!(" Quantum coherence: {coherence:.3}");
264
265 // Test token selection enhancement
266 let sample_logits = Array1::from_shape_fn(1000, |i| {
267 0.01f64.mul_add((i as f64 * 0.1).sin(), 0.001 * fastrand::f64())
268 });
269
270 let enhanced_logits = reasoning_module.enhance_token_selection(&sample_logits)?;
271 let enhancement_effect = (&enhanced_logits - &sample_logits)
272 .mapv(f64::abs)
273 .mean()
274 .unwrap_or(0.0);
275 println!(" Token selection enhancement: {enhancement_effect:.4}");
276 }
277
278 Ok(())
279}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.