How fatematabassum/numerical_instability_and_chaos works
This repository is a research toolkit for measuring numerical instability and decision-boundary behavior in language-model representations under small perturbations. The principal workflow is to select and load a model, run perturbation analyses, and generate figures and aggregate tables. The analysis modules provide the internal measurement layer; the figure suite preserves the paper’s distinct experiment branches. The README is empty, and several modules were not sampled, so some connections are shown only where the tree or sampled callers support them.
Main entry points: run_all.py Experiment runner · hf_client.py HuggingFace client · svd.py Singular directions · tables.py Metric tables
Components 23
Experiment execution
- Experiment runner
experiments/run_all.py - Model aliases
experiment_enums.py
Model access
- Client factory
llm/factory.py - Client interface
llm/interface.py - HuggingFace client
llm/hf_client.py - OpenAI client
llm/openai_client.py
Perturbation analysis
- Singular directions
analysis/svd.py - Condition analysis
analysis/condition.py - Continuity analysis
analysis/continuity.py - Decision analysis
analysis/decision.py - Stability analysis
analysis/stability.py - Noise averaging
analysis/averaging.py
Figures and tables
- Directional number
figures/fig1_directional_number.py - Layerwise propagation
figures/fig2_layerwise_large.py - Micro-continuity
figures/fig4_microcontinuity.py - Decision maps
figures/fig5_decision_maps.py - Angular stability
figures/fig6_angular_stability.py - Universal stability
figures/fig7_universal_smax.py - Precision study
figures/fig8_precision.py - Averaging convergence
figures/fig9_averaging.py - Metric tables
figures/tables.py
Other components
- Researcher
- Model backend
Connections 36
- Researcher → Experiment runner: selects experiments
- Experiment runner → Model aliases: selects model
- Experiment runner → Client factory: creates client
- Client factory → HuggingFace client: creates client
- Client factory → OpenAI client: creates client
- HuggingFace client → Model backend: runs inference
- OpenAI client → Model backend: requests completions
- Experiment runner → Directional number: runs and plots
- Experiment runner → Layerwise propagation: runs and plots
- Experiment runner → Micro-continuity: runs and plots
- Experiment runner → Decision maps: runs and plots
- Experiment runner → Angular stability: runs and plots
- Experiment runner → Universal stability: runs and plots
- Experiment runner → Precision study: runs and plots
- Experiment runner → Averaging convergence: runs and plots
- Experiment runner → Metric tables: computes tables
- Directional number → Condition analysis: computes metrics
- Directional number → Singular directions: gets directions
- Layerwise propagation → HuggingFace client: reads layer states
- Micro-continuity → Continuity analysis: computes metrics
- Decision maps → Decision analysis: maps decisions
- Angular stability → Stability analysis: computes boundary
- Angular stability → Singular directions: gets directions
- Universal stability → Stability analysis: computes thresholds
- Universal stability → Singular directions: gets directions
- Precision study → HuggingFace client: compares precision
- Averaging convergence → Noise averaging: computes convergence
- Averaging convergence → Singular directions: gets directions
- Metric tables → Continuity analysis: computes stability metrics
- Metric tables → Decision analysis: computes boundary metrics
- Metric tables → Singular directions: gets directions
- Condition analysis → HuggingFace client: evaluates perturbations
- Continuity analysis → HuggingFace client: evaluates perturbations
- Decision analysis → HuggingFace client: evaluates perturbations
- Stability analysis → HuggingFace client: evaluates perturbations
- Noise averaging → HuggingFace client: evaluates perturbations