
142 files, 8827 lines, 114 assertions
files with no seed construct: ['l1_2_mle_vs_reward.py', 'l2_3_optimal_token_policy.py', 'l6_3_clip_ablation.py', 'l8_1_dpo_population.py', 'l9_2_length_bias.py', 'l9_3_group_trainer.py', 'l10_2_verifier_tests.py', 'l10_3_noise_and_shaping.py', 's11_exercises.py', 's12_exercises.py', 's13_exercises.py', 'l14_2_belief_memory.py', 's14_exercises.py', 'l16_1_code_environment.py', 'l17_2_ultimatum_selfplay.py', 'l20_5_throughput.py']
files using unseeded global random calls: []
files with no assertions: ['l4_4_actor_critic_training.py', 's4_exercises.py', 'l5_3_natural_gradient.py', 'l5_4_trpo_loop.py', 's5_exercises.py', 'l6_3_clip_ablation.py', 's6_exercises.py', 'l7_1_bradley_terry.py', 'l7_2_reward_model_training.py', 'l7_3_goodhart_theory.py', 'l7_4_overoptimization.py', 's7_exercises.py', 'l8_1_dpo_population.py', 'l8_2_finite_data.py', 'l8_3_loss_variants.py', 'l8_4_offline_vs_online.py', 's8_exercises.py', 'l9_2_length_bias.py', 'l9_3_group_trainer.py', 's9_exercises.py', 'l10_1_noisy_verifier_exact.py', 'l10_3_noise_and_shaping.py', 's10_exercises.py', 'l11_1_variance_ladder.py', 'l11_2_outcome_vs_process.py', 'l11_3_prm_training.py', 's11_exercises.py', 'l12_2_best_of_n.py', 'l12_3_majority.py', 'l12_4_uct.py', 'l12_5_allocation.py', 's12_exercises.py', 'l13_1_entropy_dynamics.py', 'l13_2_sharpening.py', 'l13_3_population.py', 'l13_4_exploration.py', 's13_exercises.py', 'l14_1_agent_loop.py', 'l14_2_belief_memory.py', 'l14_3_context_window.py', 's14_exercises.py', 'l15_1_variance_horizon.py', 'l15_2_multi_turn_trainer.py', 'l15_3_hindsight.py', 'l16_3_curriculum.py', 'l16_4_test_adequacy.py', 'l17_2_ultimatum_selfplay.py', 'l17_4_cooperative.py', 'l18_1_goodhart.py', 'l18_3_length_bias.py', 'l18_4_hacking_detectors.py', 'l19_1_evaluation_statistics.py', 'l19_2_contamination.py', 'l19_3_judge_bias.py', 'l20_2_staleness.py', 'l20_3_async_pipeline.py', 'l20_5_throughput.py', 'l21_1_reward_model_uncertainty.py', 'l21_2_constrained_rl.py']
torch users: 41   scipy users: 21
