Phase 4: V1-aware calibration verifier, eval tools, cleanup
Browse files- Add V1-aware uncertainty verifier (V4) with confidence target from correctness
- Add post-hoc evaluation scripts (analyze_eval.py, evaluate_grpo.py updates)
- Add Phase 4 training config and run scripts
- Remove biorlhf.zip archive from tracking
- Update README, CHANGELOG, CONTRIBUTING with Phase 3/4 details
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- .gitignore +6 -0
- CHANGELOG.md +42 -16
- CONTRIBUTING.md +1 -1
- LICENSE +1 -1
- README.md +134 -52
- biorlhf.zip +0 -0
- configs/grpo_full_v2.json +4 -3
- configs/grpo_phase4.json +48 -0
- pyproject.toml +4 -2
- results/grpo_full_v2_eval_20260324_130106.json +1636 -0
- results/grpo_mve_eval_20260321_063358.json +490 -0
- scripts/HPC_TRAINING_GUIDE.md +125 -158
- scripts/analyze_eval.py +632 -0
- scripts/evaluate_grpo.py +42 -19
- scripts/run_eval_grpo.sh +43 -12
- scripts/run_grpo_phase4.sh +79 -0
- src/biorlhf/__init__.py +16 -3
- src/biorlhf/training/grpo.py +2 -0
- src/biorlhf/verifiers/uncertainty.py +63 -1
.gitignore
CHANGED
|
@@ -193,3 +193,9 @@ biogrpo_mve_model/
|
|
| 193 |
biogrpo_full_model/
|
| 194 |
biogrpo_full_v2_model/
|
| 195 |
data/*.json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 193 |
biogrpo_full_model/
|
| 194 |
biogrpo_full_v2_model/
|
| 195 |
data/*.json
|
| 196 |
+
|
| 197 |
+
# Claude workspace
|
| 198 |
+
.claude/
|
| 199 |
+
|
| 200 |
+
# Archive
|
| 201 |
+
biorlhf.zip
|
CHANGELOG.md
CHANGED
|
@@ -5,18 +5,45 @@ All notable changes to BioRLHF will be documented in this file.
|
|
| 5 |
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
| 6 |
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
| 7 |
|
| 8 |
-
## [
|
| 9 |
|
| 10 |
### Added
|
| 11 |
-
-
|
| 12 |
-
-
|
| 13 |
-
-
|
| 14 |
-
-
|
| 15 |
-
-
|
| 16 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
### Changed
|
| 19 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
## [0.1.0] - 2025-01-09
|
| 22 |
|
|
@@ -40,6 +67,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
| 40 |
- LoRA adapter training
|
| 41 |
- Weights & Biases integration for experiment tracking
|
| 42 |
- HPC support with SLURM job scripts
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
### Training Results
|
| 45 |
- Achieved 90% overall accuracy on biological reasoning tasks
|
|
@@ -52,20 +84,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
| 52 |
- `kmp_test_set.json`: 20-question evaluation set
|
| 53 |
- `kmp_dpo_preferences.json`: Preference pairs for DPO training
|
| 54 |
|
| 55 |
-
### Dependencies
|
| 56 |
-
- PyTorch >= 2.0.0
|
| 57 |
-
- Transformers >= 4.36.0
|
| 58 |
-
- TRL >= 0.7.0
|
| 59 |
-
- PEFT >= 0.6.0
|
| 60 |
-
- BitsAndBytes >= 0.41.0
|
| 61 |
-
|
| 62 |
---
|
| 63 |
|
| 64 |
## Version History Summary
|
| 65 |
|
| 66 |
| Version | Date | Highlights |
|
| 67 |
|---------|------|------------|
|
|
|
|
| 68 |
| 0.1.0 | 2025-01-09 | Initial release with SFT/DPO pipelines |
|
| 69 |
|
| 70 |
-
[
|
| 71 |
[0.1.0]: https://github.com/jang1563/BioRLHF/releases/tag/v0.1.0
|
|
|
|
| 5 |
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
| 6 |
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
| 7 |
|
| 8 |
+
## [0.2.0] - 2026-03-22
|
| 9 |
|
| 10 |
### Added
|
| 11 |
+
- **GRPO training pipeline** with verifier-based reward models
|
| 12 |
+
- `GRPOConfig` and `run_grpo_training` for Group Relative Policy Optimization
|
| 13 |
+
- CLI command `biorlhf-grpo --config <path>` for GRPO training
|
| 14 |
+
- **Verifier system (V1-V4)** for multi-dimensional reward scoring
|
| 15 |
+
- V1 (Factual): Exact match scoring for DEG counts, tissue names, directions
|
| 16 |
+
- V2 (Pathway): Pathway/gene set enrichment validation (Hallmark, KEGG)
|
| 17 |
+
- V3 (Consistency): Internal logical consistency checking
|
| 18 |
+
- V4 (Uncertainty): Calibration and epistemic humility scoring
|
| 19 |
+
- `RewardComposer` for weighted multi-reward composition
|
| 20 |
+
- **GRPO dataset module** (`grpo_dataset.py`) for prompt-based training data with hold-out tissues
|
| 21 |
+
- **GeneLab data loader** (`genelabloader.py`) for NES conservation questions
|
| 22 |
+
- **Calibration evaluation** (`calibration.py`) with Expected Calibration Error (ECE) scoring
|
| 23 |
+
- **Question generator** (`question_generator.py`) for automated biological question creation
|
| 24 |
+
- GRPO training configs: `grpo_mve.json` (MVE) and `grpo_full_v2.json` (full multi-reward)
|
| 25 |
+
- SLURM job scripts for GRPO training on HPC clusters
|
| 26 |
+
- Hold-out tissue evaluation (eye, thymus) for generalization testing
|
| 27 |
|
| 28 |
### Changed
|
| 29 |
+
- Bumped version to 0.2.0
|
| 30 |
+
- Updated README with GRPO architecture, verifier system, and latest results
|
| 31 |
+
- V1 factual verifier: reduced negation window from 30 to 12 characters to prevent cross-clause false negation
|
| 32 |
+
- V1/V4 verifiers: smoothed reward scoring for GRPO (continuous instead of binary)
|
| 33 |
+
- Updated HPC training guide with GRPO workflow and SLURM configurations
|
| 34 |
+
- Updated dependencies: TRL >= 0.14.0 (GRPO support), PEFT >= 0.6.0
|
| 35 |
+
- Lazy imports in `evaluation/__init__.py` to avoid torch dependency at import time
|
| 36 |
+
|
| 37 |
+
### Training Results
|
| 38 |
+
- **MVE experiment** (G=4, V1+V4): Reward improved from 0.547 (SFT) to 0.650 (+19%), ECE reduced from 0.258 to 0.078 (-70%)
|
| 39 |
+
- **Full v2 experiment** (G=16, V1-V4): Multi-reward training with zero-variance batch fraction <5% (vs 50% in MVE)
|
| 40 |
+
|
| 41 |
+
### Fixed
|
| 42 |
+
- LoRA adapter loading: properly load base model first, then merge SFT adapter
|
| 43 |
+
- Tokenizer loading from adapter directories in Transformers 4.57+
|
| 44 |
+
- TRL GRPOConfig: `scale_rewards` as string type, explicit `loss_type="grpo"`
|
| 45 |
+
- Batch size compatibility: both `per_device_eval_batch_size` and `generation_batch_size` divisible by `num_generations`
|
| 46 |
+
- BioEval ground truth serialization for dict-type answers
|
| 47 |
|
| 48 |
## [0.1.0] - 2025-01-09
|
| 49 |
|
|
|
|
| 67 |
- LoRA adapter training
|
| 68 |
- Weights & Biases integration for experiment tracking
|
| 69 |
- HPC support with SLURM job scripts
|
| 70 |
+
- GitHub Actions CI workflow for automated testing
|
| 71 |
+
- Pre-commit hooks configuration
|
| 72 |
+
- Unit tests for ground truth data and dataset creation
|
| 73 |
+
- Example scripts (quickstart, train_sft, evaluate_model)
|
| 74 |
+
- CONTRIBUTING.md guidelines
|
| 75 |
|
| 76 |
### Training Results
|
| 77 |
- Achieved 90% overall accuracy on biological reasoning tasks
|
|
|
|
| 84 |
- `kmp_test_set.json`: 20-question evaluation set
|
| 85 |
- `kmp_dpo_preferences.json`: Preference pairs for DPO training
|
| 86 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
---
|
| 88 |
|
| 89 |
## Version History Summary
|
| 90 |
|
| 91 |
| Version | Date | Highlights |
|
| 92 |
|---------|------|------------|
|
| 93 |
+
| 0.2.0 | 2026-03-22 | GRPO pipeline, V1-V4 verifiers, multi-reward training |
|
| 94 |
| 0.1.0 | 2025-01-09 | Initial release with SFT/DPO pipelines |
|
| 95 |
|
| 96 |
+
[0.2.0]: https://github.com/jang1563/BioRLHF/compare/v0.1.0...v0.2.0
|
| 97 |
[0.1.0]: https://github.com/jang1563/BioRLHF/releases/tag/v0.1.0
|
CONTRIBUTING.md
CHANGED
|
@@ -26,7 +26,7 @@ Please be respectful and constructive in all interactions. We welcome contributo
|
|
| 26 |
```
|
| 27 |
3. **Add upstream remote**:
|
| 28 |
```bash
|
| 29 |
-
git remote add upstream https://github.com/
|
| 30 |
```
|
| 31 |
|
| 32 |
## Development Setup
|
|
|
|
| 26 |
```
|
| 27 |
3. **Add upstream remote**:
|
| 28 |
```bash
|
| 29 |
+
git remote add upstream https://github.com/jang1563/BioRLHF.git
|
| 30 |
```
|
| 31 |
|
| 32 |
## Development Setup
|
LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
MIT License
|
| 2 |
|
| 3 |
-
Copyright (c) 2024-
|
| 4 |
|
| 5 |
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
of this software and associated documentation files (the "Software"), to deal
|
|
|
|
| 1 |
MIT License
|
| 2 |
|
| 3 |
+
Copyright (c) 2024-2026 BioRLHF Contributors
|
| 4 |
|
| 5 |
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
of this software and associated documentation files (the "Software"), to deal
|
README.md
CHANGED
|
@@ -7,18 +7,32 @@
|
|
| 7 |
[](https://github.com/astral-sh/ruff)
|
| 8 |
[](CONTRIBUTING.md)
|
| 9 |
|
| 10 |
-
**Biological Reinforcement Learning from Human Feedback** — A framework for fine-tuning LLMs on biological reasoning tasks with
|
| 11 |
|
| 12 |
## Highlights
|
| 13 |
|
| 14 |
-
- **
|
| 15 |
-
- **
|
| 16 |
-
- **
|
| 17 |
-
- **
|
|
|
|
|
|
|
| 18 |
|
| 19 |
## Key Results
|
| 20 |
|
| 21 |
-
###
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
| 23 |
| Model | Overall | Factual | Reasoning | Calibration |
|
| 24 |
|-------|---------|---------|-----------|-------------|
|
|
@@ -26,7 +40,7 @@
|
|
| 26 |
| Qwen2.5-7B | 40.0% | 30.0% | 80.0% | 20.0% |
|
| 27 |
| Phi-2 | 25.0% | 20.0% | 60.0% | 0.0% |
|
| 28 |
|
| 29 |
-
### Training Progression
|
| 30 |
|
| 31 |
| Version | Accuracy | Key Improvement |
|
| 32 |
|---------|----------|-----------------|
|
|
@@ -38,12 +52,6 @@
|
|
| 38 |
|
| 39 |
## Installation
|
| 40 |
|
| 41 |
-
### From PyPI (coming soon)
|
| 42 |
-
|
| 43 |
-
```bash
|
| 44 |
-
pip install BioRLHF
|
| 45 |
-
```
|
| 46 |
-
|
| 47 |
### From Source
|
| 48 |
|
| 49 |
```bash
|
|
@@ -60,35 +68,48 @@ pip install -e ".[dev]"
|
|
| 60 |
|
| 61 |
### GPU Requirements
|
| 62 |
|
| 63 |
-
- NVIDIA GPU with
|
| 64 |
-
-
|
|
|
|
| 65 |
|
| 66 |
## Quick Start
|
| 67 |
|
| 68 |
-
###
|
| 69 |
|
| 70 |
```python
|
| 71 |
from biorlhf import SFTTrainingConfig, run_sft_training
|
| 72 |
|
| 73 |
-
# Configure training
|
| 74 |
config = SFTTrainingConfig(
|
| 75 |
model_name="mistralai/Mistral-7B-v0.3",
|
| 76 |
dataset_path="data/kmp_sft_final.json",
|
| 77 |
-
output_dir="./
|
| 78 |
num_epochs=10,
|
| 79 |
learning_rate=1e-4,
|
| 80 |
)
|
| 81 |
|
| 82 |
-
# Run training
|
| 83 |
model_path = run_sft_training(config)
|
| 84 |
```
|
| 85 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
### Creating a Dataset
|
| 87 |
|
| 88 |
```python
|
| 89 |
from biorlhf.data import create_sft_dataset
|
| 90 |
|
| 91 |
-
# Generate dataset from ground truth biological data
|
| 92 |
dataset = create_sft_dataset(
|
| 93 |
output_path="my_dataset.json",
|
| 94 |
include_calibration=True,
|
|
@@ -104,7 +125,7 @@ print(f"Created {len(dataset)} training examples")
|
|
| 104 |
from biorlhf import evaluate_model
|
| 105 |
|
| 106 |
result = evaluate_model(
|
| 107 |
-
model_path="./
|
| 108 |
test_questions_path="data/kmp_test_set.json",
|
| 109 |
)
|
| 110 |
|
|
@@ -120,7 +141,7 @@ print(f"Calibration: {result.calibration_accuracy:.1%}")
|
|
| 120 |
from biorlhf.utils import load_model_for_inference, generate_response
|
| 121 |
|
| 122 |
model, tokenizer = load_model_for_inference(
|
| 123 |
-
model_path="./
|
| 124 |
base_model="mistralai/Mistral-7B-v0.3",
|
| 125 |
)
|
| 126 |
|
|
@@ -129,14 +150,56 @@ response = generate_response(model, tokenizer, prompt)
|
|
| 129 |
print(response)
|
| 130 |
```
|
| 131 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 132 |
## Dataset
|
| 133 |
|
| 134 |
-
Training data is derived from a
|
| 135 |
|
| 136 |
- **Drug**: Kaempferol (KMP) vs Control
|
| 137 |
- **Stressor 1**: Hindlimb Unloading (HU) — simulates microgravity
|
| 138 |
- **Stressor 2**: Ionizing Radiation (IR) — simulates space radiation
|
| 139 |
-
- **Tissues**: Heart, Hippocampus, Liver, Soleus
|
| 140 |
|
| 141 |
### Training Example Types
|
| 142 |
|
|
@@ -150,8 +213,6 @@ Training data is derived from a 2×2×2 factorial transcriptomic study:
|
|
| 150 |
|
| 151 |
### Ground Truth Data
|
| 152 |
|
| 153 |
-
Access the biological ground truth data directly:
|
| 154 |
-
|
| 155 |
```python
|
| 156 |
from biorlhf.data import (
|
| 157 |
STRESSOR_EFFECTS,
|
|
@@ -170,53 +231,73 @@ print(STRESSOR_EFFECTS["Hippocampus"])
|
|
| 170 |
|
| 171 |
```
|
| 172 |
BioRLHF/
|
| 173 |
-
├── src/biorlhf/
|
| 174 |
-
│ ├── training/
|
| 175 |
-
│ ├── data/
|
| 176 |
-
│ ├── evaluation/
|
| 177 |
-
│
|
| 178 |
-
├──
|
| 179 |
-
│ ├──
|
| 180 |
-
│
|
| 181 |
-
├──
|
| 182 |
-
|
| 183 |
-
├──
|
| 184 |
-
└──
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
```
|
| 186 |
|
| 187 |
## Scientific Contributions
|
| 188 |
|
| 189 |
-
### 1.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 190 |
- Initial training: 20% accuracy on key facts
|
| 191 |
- After targeted repetition: 100% accuracy on drilled facts
|
| 192 |
-
-
|
|
|
|
|
|
|
| 193 |
|
| 194 |
-
### 2. Calibration is Learnable
|
| 195 |
- Trained on "I cannot determine X from this data" examples
|
| 196 |
-
- Mistral achieved 100% calibration accuracy
|
| 197 |
-
-
|
| 198 |
|
| 199 |
-
###
|
| 200 |
-
|
|
|
|
| 201 |
- Model hallucinated unrelated content
|
| 202 |
-
-
|
|
|
|
|
|
|
| 203 |
|
| 204 |
-
### 4. Architecture Matters More Than Size
|
| 205 |
- Mistral-7B >> Qwen2.5-7B despite similar parameter counts
|
| 206 |
- Phi-2 (2.7B) insufficient for complex biological reasoning
|
| 207 |
-
-
|
| 208 |
|
| 209 |
## Key Learnings for AI Safety
|
| 210 |
|
| 211 |
1. **Honesty is trainable** — Models can learn appropriate epistemic humility
|
| 212 |
2. **Domain grounding matters** — Anchoring to experimental truth prevents hallucination
|
| 213 |
-
3. **
|
| 214 |
-
4. **
|
|
|
|
| 215 |
|
| 216 |
## Related Projects
|
| 217 |
|
| 218 |
- **[SpaceOmicsBench](https://github.com/jang1563/SpaceOmicsBench)** — 115-question benchmark for LLMs on spaceflight biomedical data
|
| 219 |
-
- **CAMELOT** — Adversarial robustness benchmark for biological reasoning
|
| 220 |
|
| 221 |
## Citation
|
| 222 |
|
|
@@ -227,7 +308,8 @@ If you use BioRLHF in your research, please cite:
|
|
| 227 |
author = {Kim, JangKeun},
|
| 228 |
title = {BioRLHF: Biological Reinforcement Learning from Human Feedback},
|
| 229 |
year = {2026},
|
| 230 |
-
url = {https://github.com/jang1563/BioRLHF}
|
|
|
|
| 231 |
}
|
| 232 |
```
|
| 233 |
|
|
|
|
| 7 |
[](https://github.com/astral-sh/ruff)
|
| 8 |
[](CONTRIBUTING.md)
|
| 9 |
|
| 10 |
+
**Biological Reinforcement Learning from Human Feedback** — A framework for fine-tuning LLMs on biological reasoning tasks using SFT, DPO, and GRPO with verifier-based reward models for factual accuracy, calibrated uncertainty, and chain-of-thought reasoning.
|
| 11 |
|
| 12 |
## Highlights
|
| 13 |
|
| 14 |
+
- **Three-stage training pipeline**: SFT → DPO → GRPO with verifier-based rewards
|
| 15 |
+
- **Multi-reward GRPO**: Four composable verifiers (factual, pathway, consistency, uncertainty) with configurable weights
|
| 16 |
+
- **+19% reward improvement** over SFT baseline using GRPO (0.650 vs 0.547)
|
| 17 |
+
- **-70% calibration error**: ECE reduced from 0.258 to 0.078 after GRPO
|
| 18 |
+
- **90% accuracy** on domain-specific biological reasoning tasks (SFT stage)
|
| 19 |
+
- **Learns from 363 examples** — efficient domain adaptation from spaceflight transcriptomics data
|
| 20 |
|
| 21 |
## Key Results
|
| 22 |
|
| 23 |
+
### GRPO Training (Phase 3)
|
| 24 |
+
|
| 25 |
+
| Metric | SFT Baseline | After GRPO | Improvement |
|
| 26 |
+
|--------|-------------|------------|-------------|
|
| 27 |
+
| Avg Reward | 0.547 | 0.650 | +19% |
|
| 28 |
+
| ECE (Calibration Error) | 0.258 | 0.078 | -70% |
|
| 29 |
+
|
| 30 |
+
**GRPO Configuration (Full v2):**
|
| 31 |
+
- 16 generations per prompt (G=16) for robust advantage estimation
|
| 32 |
+
- Multi-reward: V1 (factual, 0.35) + V2 (pathway, 0.30) + V3 (consistency, 0.15) + V4 (uncertainty, 0.20)
|
| 33 |
+
- KL penalty beta=0.02, 2 iterations per batch, group-normalized rewards
|
| 34 |
+
|
| 35 |
+
### Model Comparison (SFT, 20-question evaluation)
|
| 36 |
|
| 37 |
| Model | Overall | Factual | Reasoning | Calibration |
|
| 38 |
|-------|---------|---------|-----------|-------------|
|
|
|
|
| 40 |
| Qwen2.5-7B | 40.0% | 30.0% | 80.0% | 20.0% |
|
| 41 |
| Phi-2 | 25.0% | 20.0% | 60.0% | 0.0% |
|
| 42 |
|
| 43 |
+
### SFT Training Progression
|
| 44 |
|
| 45 |
| Version | Accuracy | Key Improvement |
|
| 46 |
|---------|----------|-----------------|
|
|
|
|
| 52 |
|
| 53 |
## Installation
|
| 54 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
### From Source
|
| 56 |
|
| 57 |
```bash
|
|
|
|
| 68 |
|
| 69 |
### GPU Requirements
|
| 70 |
|
| 71 |
+
- NVIDIA GPU with 48GB+ VRAM recommended (A40 or A100)
|
| 72 |
+
- 24GB+ VRAM sufficient for SFT/DPO with 4-bit quantization
|
| 73 |
+
- CUDA 12.1+ recommended
|
| 74 |
|
| 75 |
## Quick Start
|
| 76 |
|
| 77 |
+
### SFT Training
|
| 78 |
|
| 79 |
```python
|
| 80 |
from biorlhf import SFTTrainingConfig, run_sft_training
|
| 81 |
|
|
|
|
| 82 |
config = SFTTrainingConfig(
|
| 83 |
model_name="mistralai/Mistral-7B-v0.3",
|
| 84 |
dataset_path="data/kmp_sft_final.json",
|
| 85 |
+
output_dir="./my_sft_model",
|
| 86 |
num_epochs=10,
|
| 87 |
learning_rate=1e-4,
|
| 88 |
)
|
| 89 |
|
|
|
|
| 90 |
model_path = run_sft_training(config)
|
| 91 |
```
|
| 92 |
|
| 93 |
+
### GRPO Training with Verifiers
|
| 94 |
+
|
| 95 |
+
```bash
|
| 96 |
+
# Using the CLI
|
| 97 |
+
biorlhf-grpo --config configs/grpo_full_v2.json
|
| 98 |
+
```
|
| 99 |
+
|
| 100 |
+
```python
|
| 101 |
+
# Or programmatically
|
| 102 |
+
from biorlhf.training.grpo import GRPOConfig, run_grpo_training
|
| 103 |
+
|
| 104 |
+
config = GRPOConfig.from_json("configs/grpo_full_v2.json")
|
| 105 |
+
run_grpo_training(config)
|
| 106 |
+
```
|
| 107 |
+
|
| 108 |
### Creating a Dataset
|
| 109 |
|
| 110 |
```python
|
| 111 |
from biorlhf.data import create_sft_dataset
|
| 112 |
|
|
|
|
| 113 |
dataset = create_sft_dataset(
|
| 114 |
output_path="my_dataset.json",
|
| 115 |
include_calibration=True,
|
|
|
|
| 125 |
from biorlhf import evaluate_model
|
| 126 |
|
| 127 |
result = evaluate_model(
|
| 128 |
+
model_path="./my_sft_model",
|
| 129 |
test_questions_path="data/kmp_test_set.json",
|
| 130 |
)
|
| 131 |
|
|
|
|
| 141 |
from biorlhf.utils import load_model_for_inference, generate_response
|
| 142 |
|
| 143 |
model, tokenizer = load_model_for_inference(
|
| 144 |
+
model_path="./my_sft_model",
|
| 145 |
base_model="mistralai/Mistral-7B-v0.3",
|
| 146 |
)
|
| 147 |
|
|
|
|
| 150 |
print(response)
|
| 151 |
```
|
| 152 |
|
| 153 |
+
## Architecture
|
| 154 |
+
|
| 155 |
+
### Three-Stage Training Pipeline
|
| 156 |
+
|
| 157 |
+
```
|
| 158 |
+
Stage 1: SFT Stage 2: DPO Stage 3: GRPO
|
| 159 |
+
(Supervised Fine-Tuning) (Direct Preference (Group Relative Policy
|
| 160 |
+
Optimization) Optimization)
|
| 161 |
+
|
| 162 |
+
Mistral-7B-v0.3 SFT model SFT model (merged)
|
| 163 |
+
| | |
|
| 164 |
+
LoRA (r=64, alpha=128) Preference pairs Generate G=16 completions
|
| 165 |
+
| | |
|
| 166 |
+
363 training examples Ranked responses Score with V1-V4 verifiers
|
| 167 |
+
| | |
|
| 168 |
+
10 epochs, lr=1e-4 beta=0.1 Multi-reward composition
|
| 169 |
+
| | |
|
| 170 |
+
SFT Adapter DPO Model GRPO Model
|
| 171 |
+
```
|
| 172 |
+
|
| 173 |
+
### Verifier-Based Reward System (V1-V4)
|
| 174 |
+
|
| 175 |
+
| Verifier | Name | Weight | What It Scores |
|
| 176 |
+
|----------|------|--------|----------------|
|
| 177 |
+
| **V1** | Factual | 0.35 | Exact match of biological facts (DEG counts, tissue names, directions) |
|
| 178 |
+
| **V2** | Pathway | 0.30 | Correct pathway/gene set enrichment references (Hallmark, KEGG) |
|
| 179 |
+
| **V3** | Consistency | 0.15 | Internal logical consistency within the response |
|
| 180 |
+
| **V4** | Uncertainty | 0.20 | Appropriate confidence calibration and epistemic humility |
|
| 181 |
+
|
| 182 |
+
The verifiers are composable via `RewardComposer` and can be individually weighted:
|
| 183 |
+
|
| 184 |
+
```python
|
| 185 |
+
from biorlhf.verifiers import RewardComposer
|
| 186 |
+
|
| 187 |
+
composer = RewardComposer(
|
| 188 |
+
active_verifiers=["V1", "V2", "V3", "V4"],
|
| 189 |
+
weights={"V1": 0.35, "V2": 0.30, "V3": 0.15, "V4": 0.20},
|
| 190 |
+
)
|
| 191 |
+
|
| 192 |
+
reward = composer.score(question, response, ground_truth)
|
| 193 |
+
```
|
| 194 |
+
|
| 195 |
## Dataset
|
| 196 |
|
| 197 |
+
Training data is derived from a 2x2x2 factorial transcriptomic study:
|
| 198 |
|
| 199 |
- **Drug**: Kaempferol (KMP) vs Control
|
| 200 |
- **Stressor 1**: Hindlimb Unloading (HU) — simulates microgravity
|
| 201 |
- **Stressor 2**: Ionizing Radiation (IR) — simulates space radiation
|
| 202 |
+
- **Tissues**: Heart, Hippocampus, Liver, Soleus (+ Eye, Thymus for GRPO hold-out)
|
| 203 |
|
| 204 |
### Training Example Types
|
| 205 |
|
|
|
|
| 213 |
|
| 214 |
### Ground Truth Data
|
| 215 |
|
|
|
|
|
|
|
| 216 |
```python
|
| 217 |
from biorlhf.data import (
|
| 218 |
STRESSOR_EFFECTS,
|
|
|
|
| 231 |
|
| 232 |
```
|
| 233 |
BioRLHF/
|
| 234 |
+
├── src/biorlhf/ # Main package
|
| 235 |
+
│ ├── training/ # SFT, DPO, and GRPO trainers
|
| 236 |
+
│ ├── data/ # Dataset creation & ground truth
|
| 237 |
+
│ ├── evaluation/ # Model evaluation & calibration
|
| 238 |
+
│ ├── verifiers/ # V1-V4 reward verifiers
|
| 239 |
+
│ │ ├── factual.py # V1: Factual accuracy scoring
|
| 240 |
+
│ │ ├── pathway.py # V2: Pathway enrichment scoring
|
| 241 |
+
│ │ ├── consistency.py # V3: Logical consistency scoring
|
| 242 |
+
│ │ ├── uncertainty.py # V4: Calibration/uncertainty scoring
|
| 243 |
+
│ │ └── composer.py # Multi-reward composition
|
| 244 |
+
│ ├── utils/ # Model loading, inference helpers
|
| 245 |
+
│ └── cli.py # Command-line interface
|
| 246 |
+
├── configs/ # Training configurations
|
| 247 |
+
│ ├── grpo_mve.json # Minimum viable experiment
|
| 248 |
+
│ └── grpo_full_v2.json # Full multi-reward training
|
| 249 |
+
├── data/ # Training datasets
|
| 250 |
+
│ ├── kmp_sft_final.json # 363 SFT training examples
|
| 251 |
+
│ └── kmp_test_set.json # 20-question evaluation set
|
| 252 |
+
├── examples/ # Usage examples
|
| 253 |
+
├── scripts/ # SLURM job scripts & HPC guide
|
| 254 |
+
├── tests/ # Unit tests
|
| 255 |
+
└── docs/ # Documentation
|
| 256 |
```
|
| 257 |
|
| 258 |
## Scientific Contributions
|
| 259 |
|
| 260 |
+
### 1. Verifier-Based GRPO Improves Calibration
|
| 261 |
+
|
| 262 |
+
- GRPO with V1-V4 verifiers reduced calibration error (ECE) by 70%
|
| 263 |
+
- Multi-reward composition outperforms single-reward training
|
| 264 |
+
- G=16 generations dramatically reduces zero-variance batches (from 50% to <5%)
|
| 265 |
+
|
| 266 |
+
### 2. Fact Drilling Works for SFT
|
| 267 |
+
|
| 268 |
- Initial training: 20% accuracy on key facts
|
| 269 |
- After targeted repetition: 100% accuracy on drilled facts
|
| 270 |
+
- LLMs need explicit reinforcement of specific domain facts
|
| 271 |
+
|
| 272 |
+
### 3. Calibration is Learnable
|
| 273 |
|
|
|
|
| 274 |
- Trained on "I cannot determine X from this data" examples
|
| 275 |
+
- Mistral achieved 100% calibration accuracy at SFT stage
|
| 276 |
+
- GRPO further improved calibration via the V4 uncertainty verifier
|
| 277 |
|
| 278 |
+
### 4. DPO is Fragile for Domain Knowledge
|
| 279 |
+
|
| 280 |
+
- Aggressive DPO (beta=0.05) destroyed learned knowledge
|
| 281 |
- Model hallucinated unrelated content
|
| 282 |
+
- Preference learning needs careful tuning in specialized domains
|
| 283 |
+
|
| 284 |
+
### 5. Architecture Matters More Than Size
|
| 285 |
|
|
|
|
| 286 |
- Mistral-7B >> Qwen2.5-7B despite similar parameter counts
|
| 287 |
- Phi-2 (2.7B) insufficient for complex biological reasoning
|
| 288 |
+
- Model selection is critical for domain fine-tuning
|
| 289 |
|
| 290 |
## Key Learnings for AI Safety
|
| 291 |
|
| 292 |
1. **Honesty is trainable** — Models can learn appropriate epistemic humility
|
| 293 |
2. **Domain grounding matters** — Anchoring to experimental truth prevents hallucination
|
| 294 |
+
3. **Multi-reward > single reward** — Decomposing correctness into verifiable dimensions improves learning signal
|
| 295 |
+
4. **Preference learning is fragile** — DPO can catastrophically forget domain knowledge
|
| 296 |
+
5. **Evaluation drives improvement** — Systematic testing reveals specific failure modes
|
| 297 |
|
| 298 |
## Related Projects
|
| 299 |
|
| 300 |
- **[SpaceOmicsBench](https://github.com/jang1563/SpaceOmicsBench)** — 115-question benchmark for LLMs on spaceflight biomedical data
|
|
|
|
| 301 |
|
| 302 |
## Citation
|
| 303 |
|
|
|
|
| 308 |
author = {Kim, JangKeun},
|
| 309 |
title = {BioRLHF: Biological Reinforcement Learning from Human Feedback},
|
| 310 |
year = {2026},
|
| 311 |
+
url = {https://github.com/jang1563/BioRLHF},
|
| 312 |
+
note = {Fine-tuning LLMs for biological reasoning with verifier-based GRPO}
|
| 313 |
}
|
| 314 |
```
|
| 315 |
|
biorlhf.zip
DELETED
|
Binary file (55.7 kB)
|
|
|
configs/grpo_full_v2.json
CHANGED
|
@@ -9,9 +9,10 @@
|
|
| 9 |
"scale_rewards": "group",
|
| 10 |
"loss_type": "grpo",
|
| 11 |
|
| 12 |
-
"num_epochs":
|
| 13 |
"batch_size": 1,
|
| 14 |
"eval_batch_size": 16,
|
|
|
|
| 15 |
"gradient_accumulation_steps": 8,
|
| 16 |
"learning_rate": 5e-7,
|
| 17 |
"max_completion_length": 1024,
|
|
@@ -36,8 +37,8 @@
|
|
| 36 |
"wandb_run_name": "grpo_full_v2_G16_multireward",
|
| 37 |
"use_wandb": true,
|
| 38 |
"logging_steps": 10,
|
| 39 |
-
"save_steps":
|
| 40 |
-
"eval_steps":
|
| 41 |
"save_total_limit": 3,
|
| 42 |
"log_completions": true,
|
| 43 |
|
|
|
|
| 9 |
"scale_rewards": "group",
|
| 10 |
"loss_type": "grpo",
|
| 11 |
|
| 12 |
+
"num_epochs": 1,
|
| 13 |
"batch_size": 1,
|
| 14 |
"eval_batch_size": 16,
|
| 15 |
+
"generation_batch_size": 16,
|
| 16 |
"gradient_accumulation_steps": 8,
|
| 17 |
"learning_rate": 5e-7,
|
| 18 |
"max_completion_length": 1024,
|
|
|
|
| 37 |
"wandb_run_name": "grpo_full_v2_G16_multireward",
|
| 38 |
"use_wandb": true,
|
| 39 |
"logging_steps": 10,
|
| 40 |
+
"save_steps": 250,
|
| 41 |
+
"eval_steps": 9999,
|
| 42 |
"save_total_limit": 3,
|
| 43 |
"log_completions": true,
|
| 44 |
|
configs/grpo_phase4.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_name": "mistralai/Mistral-7B-v0.3",
|
| 3 |
+
"sft_model_path": "./kmp_sft_model_final",
|
| 4 |
+
"output_dir": "./biogrpo_phase4_model",
|
| 5 |
+
|
| 6 |
+
"num_generations": 16,
|
| 7 |
+
"beta": 0.02,
|
| 8 |
+
"num_iterations": 2,
|
| 9 |
+
"scale_rewards": "group",
|
| 10 |
+
"loss_type": "grpo",
|
| 11 |
+
|
| 12 |
+
"num_epochs": 1,
|
| 13 |
+
"batch_size": 1,
|
| 14 |
+
"eval_batch_size": 16,
|
| 15 |
+
"generation_batch_size": 16,
|
| 16 |
+
"gradient_accumulation_steps": 8,
|
| 17 |
+
"learning_rate": 5e-7,
|
| 18 |
+
"max_completion_length": 1024,
|
| 19 |
+
"max_prompt_length": 512,
|
| 20 |
+
"warmup_ratio": 0.1,
|
| 21 |
+
|
| 22 |
+
"lora_r": 32,
|
| 23 |
+
"lora_alpha": 64,
|
| 24 |
+
"lora_dropout": 0.05,
|
| 25 |
+
|
| 26 |
+
"use_multi_reward": true,
|
| 27 |
+
"active_verifiers": ["V1", "V2", "V3", "V4"],
|
| 28 |
+
"verifier_weights": {"V1": 0.30, "V2": 0.15, "V3": 0.10, "V4": 0.45},
|
| 29 |
+
|
| 30 |
+
"pathway_db": "hallmark",
|
| 31 |
+
"hold_out_tissues": ["eye", "thymus"],
|
| 32 |
+
"seed": 42,
|
| 33 |
+
|
| 34 |
+
"use_4bit": true,
|
| 35 |
+
|
| 36 |
+
"wandb_project": "biogrpo",
|
| 37 |
+
"wandb_run_name": "grpo_phase4_v1aware_V4w045",
|
| 38 |
+
"use_wandb": true,
|
| 39 |
+
"logging_steps": 10,
|
| 40 |
+
"save_steps": 500,
|
| 41 |
+
"eval_steps": 9999,
|
| 42 |
+
"save_total_limit": 3,
|
| 43 |
+
"log_completions": true,
|
| 44 |
+
|
| 45 |
+
"use_vllm": false,
|
| 46 |
+
"gradient_checkpointing": true,
|
| 47 |
+
"bf16": true
|
| 48 |
+
}
|
pyproject.toml
CHANGED
|
@@ -4,8 +4,8 @@ build-backend = "hatchling.build"
|
|
| 4 |
|
| 5 |
[project]
|
| 6 |
name = "BioRLHF"
|
| 7 |
-
version = "0.
|
| 8 |
-
description = "Biological Reinforcement Learning from Human Feedback - Fine-tuning LLMs for biological reasoning with calibrated uncertainty"
|
| 9 |
readme = "README.md"
|
| 10 |
license = "MIT"
|
| 11 |
requires-python = ">=3.9"
|
|
@@ -20,6 +20,8 @@ keywords = [
|
|
| 20 |
"transcriptomics",
|
| 21 |
"rlhf",
|
| 22 |
"dpo",
|
|
|
|
|
|
|
| 23 |
"spaceflight",
|
| 24 |
"ai-safety",
|
| 25 |
"uncertainty-calibration",
|
|
|
|
| 4 |
|
| 5 |
[project]
|
| 6 |
name = "BioRLHF"
|
| 7 |
+
version = "0.2.0"
|
| 8 |
+
description = "Biological Reinforcement Learning from Human Feedback - Fine-tuning LLMs for biological reasoning with verifier-based GRPO and calibrated uncertainty"
|
| 9 |
readme = "README.md"
|
| 10 |
license = "MIT"
|
| 11 |
requires-python = ">=3.9"
|
|
|
|
| 20 |
"transcriptomics",
|
| 21 |
"rlhf",
|
| 22 |
"dpo",
|
| 23 |
+
"grpo",
|
| 24 |
+
"verifiers",
|
| 25 |
"spaceflight",
|
| 26 |
"ai-safety",
|
| 27 |
"uncertainty-calibration",
|
results/grpo_full_v2_eval_20260324_130106.json
ADDED
|
@@ -0,0 +1,1636 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_path": "./biogrpo_full_v2_model",
|
| 3 |
+
"base_model": "mistralai/Mistral-7B-v0.3",
|
| 4 |
+
"evaluation_date": "2026-03-24T14:32:56.132512",
|
| 5 |
+
"hold_out_tissues": [
|
| 6 |
+
"eye",
|
| 7 |
+
"thymus"
|
| 8 |
+
],
|
| 9 |
+
"eval_dataset_stats": {
|
| 10 |
+
"total": 107,
|
| 11 |
+
"by_source": {
|
| 12 |
+
"genelab": 107
|
| 13 |
+
},
|
| 14 |
+
"by_question_type": {
|
| 15 |
+
"direction": 98,
|
| 16 |
+
"uncertainty": 9
|
| 17 |
+
},
|
| 18 |
+
"by_tissue": {
|
| 19 |
+
"thymus": 82,
|
| 20 |
+
"eye": 25
|
| 21 |
+
},
|
| 22 |
+
"by_difficulty": {
|
| 23 |
+
"medium": 50,
|
| 24 |
+
"hard": 33,
|
| 25 |
+
"easy": 24
|
| 26 |
+
}
|
| 27 |
+
},
|
| 28 |
+
"grpo": {
|
| 29 |
+
"mean_reward": 0.6905784765522116,
|
| 30 |
+
"verifier_means": {
|
| 31 |
+
"V1": 0.6654426717606065,
|
| 32 |
+
"V4": 0.8109191389692182,
|
| 33 |
+
"V2": 1.0
|
| 34 |
+
},
|
| 35 |
+
"by_question_type": {
|
| 36 |
+
"direction": 0.747060173378435,
|
| 37 |
+
"uncertainty": 0.07555555555555558
|
| 38 |
+
},
|
| 39 |
+
"n_samples": 107
|
| 40 |
+
},
|
| 41 |
+
"calibration": {
|
| 42 |
+
"ece": 0.17242990654205664,
|
| 43 |
+
"mce": 0.75,
|
| 44 |
+
"brier_score": 0.2418925233644861,
|
| 45 |
+
"overconfidence_rate": 0.42857142857142855,
|
| 46 |
+
"underconfidence_rate": 1.0,
|
| 47 |
+
"mean_confidence": 0.5556074766355134,
|
| 48 |
+
"mean_accuracy": 0.6915887850467289,
|
| 49 |
+
"n_samples": 107,
|
| 50 |
+
"reliability_bins": [
|
| 51 |
+
{
|
| 52 |
+
"bin_lower": 0.0,
|
| 53 |
+
"bin_upper": 0.1,
|
| 54 |
+
"mean_confidence": 0.05,
|
| 55 |
+
"mean_accuracy": 0.0,
|
| 56 |
+
"count": 0,
|
| 57 |
+
"calibration_error": 0.0
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"bin_lower": 0.1,
|
| 61 |
+
"bin_upper": 0.2,
|
| 62 |
+
"mean_confidence": 0.15000000000000002,
|
| 63 |
+
"mean_accuracy": 0.0,
|
| 64 |
+
"count": 0,
|
| 65 |
+
"calibration_error": 0.0
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"bin_lower": 0.2,
|
| 69 |
+
"bin_upper": 0.30000000000000004,
|
| 70 |
+
"mean_confidence": 0.25,
|
| 71 |
+
"mean_accuracy": 1.0,
|
| 72 |
+
"count": 2,
|
| 73 |
+
"calibration_error": 0.75
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"bin_lower": 0.30000000000000004,
|
| 77 |
+
"bin_upper": 0.4,
|
| 78 |
+
"mean_confidence": 0.35000000000000003,
|
| 79 |
+
"mean_accuracy": 0.0,
|
| 80 |
+
"count": 0,
|
| 81 |
+
"calibration_error": 0.0
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"bin_lower": 0.4,
|
| 85 |
+
"bin_upper": 0.5,
|
| 86 |
+
"mean_confidence": 0.45,
|
| 87 |
+
"mean_accuracy": 0.0,
|
| 88 |
+
"count": 0,
|
| 89 |
+
"calibration_error": 0.0
|
| 90 |
+
},
|
| 91 |
+
{
|
| 92 |
+
"bin_lower": 0.5,
|
| 93 |
+
"bin_upper": 0.6000000000000001,
|
| 94 |
+
"mean_confidence": 0.5408163265306116,
|
| 95 |
+
"mean_accuracy": 0.6938775510204082,
|
| 96 |
+
"count": 98,
|
| 97 |
+
"calibration_error": 0.15306122448979653
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"bin_lower": 0.6000000000000001,
|
| 101 |
+
"bin_upper": 0.7000000000000001,
|
| 102 |
+
"mean_confidence": 0.6500000000000001,
|
| 103 |
+
"mean_accuracy": 0.0,
|
| 104 |
+
"count": 0,
|
| 105 |
+
"calibration_error": 0.0
|
| 106 |
+
},
|
| 107 |
+
{
|
| 108 |
+
"bin_lower": 0.7000000000000001,
|
| 109 |
+
"bin_upper": 0.8,
|
| 110 |
+
"mean_confidence": 0.75,
|
| 111 |
+
"mean_accuracy": 0.0,
|
| 112 |
+
"count": 0,
|
| 113 |
+
"calibration_error": 0.0
|
| 114 |
+
},
|
| 115 |
+
{
|
| 116 |
+
"bin_lower": 0.8,
|
| 117 |
+
"bin_upper": 0.9,
|
| 118 |
+
"mean_confidence": 0.8499999999999999,
|
| 119 |
+
"mean_accuracy": 0.5714285714285714,
|
| 120 |
+
"count": 7,
|
| 121 |
+
"calibration_error": 0.27857142857142847
|
| 122 |
+
},
|
| 123 |
+
{
|
| 124 |
+
"bin_lower": 0.9,
|
| 125 |
+
"bin_upper": 1.0,
|
| 126 |
+
"mean_confidence": 0.95,
|
| 127 |
+
"mean_accuracy": 0.0,
|
| 128 |
+
"count": 0,
|
| 129 |
+
"calibration_error": 0.0
|
| 130 |
+
}
|
| 131 |
+
]
|
| 132 |
+
},
|
| 133 |
+
"baseline_comparison": {
|
| 134 |
+
"sft_mean_reward": 0.5845022876855206,
|
| 135 |
+
"sft_ece": 0.19392523364485983,
|
| 136 |
+
"delta_reward": 0.10607618886669101,
|
| 137 |
+
"delta_ece": -0.02149532710280319
|
| 138 |
+
},
|
| 139 |
+
"success_criteria": {
|
| 140 |
+
"reward_above_05": true,
|
| 141 |
+
"ece_below_015": false,
|
| 142 |
+
"reward_above_baseline": true,
|
| 143 |
+
"overall_pass": false
|
| 144 |
+
},
|
| 145 |
+
"per_sample": [
|
| 146 |
+
{
|
| 147 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Adipogenesis pathway upregulated or downregulated ",
|
| 148 |
+
"response": "Based on the GSEA results, the Adipogenesis pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the strong statistical significance (FDR q-value < 0.001) and the consistent direction of change across all replicates.\n\n### Explanation:\nThe GS",
|
| 149 |
+
"total_reward": 0.9795006041079339,
|
| 150 |
+
"verifier_scores": {
|
| 151 |
+
"V1": 0.9846153846153847,
|
| 152 |
+
"V4": 0.9705497382198954
|
| 153 |
+
},
|
| 154 |
+
"question_type": "direction",
|
| 155 |
+
"source": "genelab",
|
| 156 |
+
"tissue": "thymus",
|
| 157 |
+
"confidence": 0.55,
|
| 158 |
+
"confidence_stated": "medium"
|
| 159 |
+
},
|
| 160 |
+
{
|
| 161 |
+
"prompt": "Explain the biological significance of Adipogenesis pathway suppression in mouse thymus under spacef",
|
| 162 |
+
"response": "Adipogenesis pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to prevent lipid accumulation and inflammation in this immune organ. Spaceflight is known to induce oxidative stress and metabolic dysregulation, which can lead to lipid peroxidation and in",
|
| 163 |
+
"total_reward": 0.8086048604860485,
|
| 164 |
+
"verifier_scores": {
|
| 165 |
+
"V1": 0.9800000000000001,
|
| 166 |
+
"V4": 0.5086633663366336
|
| 167 |
+
},
|
| 168 |
+
"question_type": "direction",
|
| 169 |
+
"source": "genelab",
|
| 170 |
+
"tissue": "thymus",
|
| 171 |
+
"confidence": 0.55,
|
| 172 |
+
"confidence_stated": "medium"
|
| 173 |
+
},
|
| 174 |
+
{
|
| 175 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Androgen Response pathway upregulated or downregul",
|
| 176 |
+
"response": "The Androgen Response pathway is downregulated in mouse thymus tissue during spaceflight. This is based on gene set enrichment analysis, which shows a significant decrease in pathway activity. The confidence level is high, as the analysis is based on multiple genes and is statistically significant.",
|
| 177 |
+
"total_reward": 0.7757575757575758,
|
| 178 |
+
"verifier_scores": {
|
| 179 |
+
"V1": 0.9333333333333333,
|
| 180 |
+
"V4": 0.5000000000000001
|
| 181 |
+
},
|
| 182 |
+
"question_type": "direction",
|
| 183 |
+
"source": "genelab",
|
| 184 |
+
"tissue": "thymus",
|
| 185 |
+
"confidence": 0.5,
|
| 186 |
+
"confidence_stated": "medium"
|
| 187 |
+
},
|
| 188 |
+
{
|
| 189 |
+
"prompt": "Explain the biological significance of Androgen Response pathway suppression in mouse thymus under s",
|
| 190 |
+
"response": "The Androgen Response pathway is suppressed in mouse thymus under spaceflight conditions, with a directional change of -1.38 and a magnitude of 0.44. This suppression is likely due to the stress of spaceflight, which can disrupt hormonal balance and alter gene expression.\n\nSpaceflight is known to ca",
|
| 191 |
+
"total_reward": 0.9745454545454545,
|
| 192 |
+
"verifier_scores": {
|
| 193 |
+
"V1": 0.9600000000000001,
|
| 194 |
+
"V4": 1.0
|
| 195 |
+
},
|
| 196 |
+
"question_type": "direction",
|
| 197 |
+
"source": "genelab",
|
| 198 |
+
"tissue": "thymus",
|
| 199 |
+
"confidence": 0.55,
|
| 200 |
+
"confidence_stated": "medium"
|
| 201 |
+
},
|
| 202 |
+
{
|
| 203 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Angiogenesis pathway upregulated or downregulated ",
|
| 204 |
+
"response": "Based on the GSEA results, the Angiogenesis pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.48) and the large number of genes in the pathway (108).\n\n### Explanation:\nThe Angiogenesis pathway is a bio",
|
| 205 |
+
"total_reward": 0.9872727272727272,
|
| 206 |
+
"verifier_scores": {
|
| 207 |
+
"V1": 0.9800000000000001,
|
| 208 |
+
"V4": 1.0
|
| 209 |
+
},
|
| 210 |
+
"question_type": "direction",
|
| 211 |
+
"source": "genelab",
|
| 212 |
+
"tissue": "thymus",
|
| 213 |
+
"confidence": 0.55,
|
| 214 |
+
"confidence_stated": "medium"
|
| 215 |
+
},
|
| 216 |
+
{
|
| 217 |
+
"prompt": "Explain the biological significance of Angiogenesis pathway suppression in mouse thymus under spacef",
|
| 218 |
+
"response": "Angiogenesis is the process of new blood vessel formation. In the thymus, angiogenesis is important for the development and function of the immune system. Under spaceflight conditions, the thymus undergoes atrophy, which is characterized by a decrease in size and cellularity. This atrophy is thought",
|
| 219 |
+
"total_reward": 0.7757575757575758,
|
| 220 |
+
"verifier_scores": {
|
| 221 |
+
"V1": 0.9333333333333333,
|
| 222 |
+
"V4": 0.5000000000000001
|
| 223 |
+
},
|
| 224 |
+
"question_type": "direction",
|
| 225 |
+
"source": "genelab",
|
| 226 |
+
"tissue": "thymus",
|
| 227 |
+
"confidence": 0.5,
|
| 228 |
+
"confidence_stated": "medium"
|
| 229 |
+
},
|
| 230 |
+
{
|
| 231 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Apical Junction pathway upregulated or downregulat",
|
| 232 |
+
"response": "Based on gene set enrichment analysis, the Apical Junction pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Apical Junction pathway is significantly downregulated in mouse thymus tissue during spaceflight, with a log2 fold change of -1.34 and a p-value ",
|
| 233 |
+
"total_reward": 0.9745454545454545,
|
| 234 |
+
"verifier_scores": {
|
| 235 |
+
"V1": 0.9600000000000001,
|
| 236 |
+
"V4": 1.0
|
| 237 |
+
},
|
| 238 |
+
"question_type": "direction",
|
| 239 |
+
"source": "genelab",
|
| 240 |
+
"tissue": "thymus",
|
| 241 |
+
"confidence": 0.55,
|
| 242 |
+
"confidence_stated": "medium"
|
| 243 |
+
},
|
| 244 |
+
{
|
| 245 |
+
"prompt": "Explain the biological significance of Apical Junction pathway suppression in mouse thymus under spa",
|
| 246 |
+
"response": "The Apical Junction pathway is suppressed in mouse thymus under spaceflight conditions, with a fold change of 0.46 and a p-value of 0.0001. This pathway is involved in the regulation of cell-cell adhesion and junction formation, which are critical for maintaining tissue integrity and function.\n\nThe ",
|
| 247 |
+
"total_reward": 0.9818181818181818,
|
| 248 |
+
"verifier_scores": {
|
| 249 |
+
"V1": 0.9714285714285715,
|
| 250 |
+
"V4": 1.0
|
| 251 |
+
},
|
| 252 |
+
"question_type": "direction",
|
| 253 |
+
"source": "genelab",
|
| 254 |
+
"tissue": "thymus",
|
| 255 |
+
"confidence": 0.55,
|
| 256 |
+
"confidence_stated": "medium"
|
| 257 |
+
},
|
| 258 |
+
{
|
| 259 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Apical Surface pathway upregulated or downregulate",
|
| 260 |
+
"response": "Based on gene set enrichment analysis, the Apical Surface pathway is **downregulated** in mouse thymus tissue during spaceflight. This is supported by the following evidence:\n\n- The Apical Surface pathway is significantly enriched in the downregulated gene set (FDR = 0.0001).\n- The pathway has a",
|
| 261 |
+
"total_reward": 0.3727272727272727,
|
| 262 |
+
"verifier_scores": {
|
| 263 |
+
"V1": 0.3,
|
| 264 |
+
"V4": 0.5000000000000001
|
| 265 |
+
},
|
| 266 |
+
"question_type": "direction",
|
| 267 |
+
"source": "genelab",
|
| 268 |
+
"tissue": "thymus",
|
| 269 |
+
"confidence": 0.5,
|
| 270 |
+
"confidence_stated": "medium"
|
| 271 |
+
},
|
| 272 |
+
{
|
| 273 |
+
"prompt": "Explain the biological significance of Apical Surface pathway suppression in mouse thymus under spac",
|
| 274 |
+
"response": "Apical Surface pathway suppression in mouse thymus under spaceflight conditions is likely a protective response to the stress of microgravity. The apical surface is the outermost layer of cells in the thymus, and its suppression may indicate a reduction in immune function. This could be due to the s",
|
| 275 |
+
"total_reward": 0.9681818181818181,
|
| 276 |
+
"verifier_scores": {
|
| 277 |
+
"V1": 0.9500000000000001,
|
| 278 |
+
"V4": 1.0
|
| 279 |
+
},
|
| 280 |
+
"question_type": "direction",
|
| 281 |
+
"source": "genelab",
|
| 282 |
+
"tissue": "thymus",
|
| 283 |
+
"confidence": 0.55,
|
| 284 |
+
"confidence_stated": "medium"
|
| 285 |
+
},
|
| 286 |
+
{
|
| 287 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Apoptosis pathway upregulated or downregulated bas",
|
| 288 |
+
"response": "Based on the GSEA results, the Apoptosis pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Apoptosis pathway is ranked 13th out of 20 pathways in the GSEA analysis, with a normalized enrichment score (NES) of -1.49. This indicates that genes associated w",
|
| 289 |
+
"total_reward": 0.6611888111888111,
|
| 290 |
+
"verifier_scores": {
|
| 291 |
+
"V1": 0.55,
|
| 292 |
+
"V4": 0.8557692307692307
|
| 293 |
+
},
|
| 294 |
+
"question_type": "direction",
|
| 295 |
+
"source": "genelab",
|
| 296 |
+
"tissue": "thymus",
|
| 297 |
+
"confidence": 0.55,
|
| 298 |
+
"confidence_stated": "medium"
|
| 299 |
+
},
|
| 300 |
+
{
|
| 301 |
+
"prompt": "Explain the biological significance of Apoptosis pathway suppression in mouse thymus under spaceflig",
|
| 302 |
+
"response": "DNA damage response pathway suppression in mouse liver under spaceflight conditions is likely a compensatory mechanism to maintain cellular function in the face of increased oxidative stress and DNA damage. The liver is a critical organ for metabolic function, and DNA damage can lead to cell death o",
|
| 303 |
+
"total_reward": 0.46363636363636357,
|
| 304 |
+
"verifier_scores": {
|
| 305 |
+
"V1": 0.3,
|
| 306 |
+
"V4": 0.75
|
| 307 |
+
},
|
| 308 |
+
"question_type": "direction",
|
| 309 |
+
"source": "genelab",
|
| 310 |
+
"tissue": "thymus",
|
| 311 |
+
"confidence": 0.55,
|
| 312 |
+
"confidence_stated": "medium"
|
| 313 |
+
},
|
| 314 |
+
{
|
| 315 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Bile Acid Metabolism pathway upregulated or downre",
|
| 316 |
+
"response": "Based on the gene set enrichment analysis, the Bile Acid Metabolism pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.76) and the large number of genes in the pathway (118).\n\n### Explanation:\nThe Bile ",
|
| 317 |
+
"total_reward": 0.3727272727272727,
|
| 318 |
+
"verifier_scores": {
|
| 319 |
+
"V1": 0.3,
|
| 320 |
+
"V4": 0.5000000000000001
|
| 321 |
+
},
|
| 322 |
+
"question_type": "direction",
|
| 323 |
+
"source": "genelab",
|
| 324 |
+
"tissue": "thymus",
|
| 325 |
+
"confidence": 0.5,
|
| 326 |
+
"confidence_stated": "medium"
|
| 327 |
+
},
|
| 328 |
+
{
|
| 329 |
+
"prompt": "Explain the biological significance of Bile Acid Metabolism pathway suppression in mouse thymus unde",
|
| 330 |
+
"response": "Bile acid metabolism pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to conserve energy and resources. Bile acids are important for digestion and absorption of lipids, but their synthesis requires cholesterol and other nutrients that may be in short ",
|
| 331 |
+
"total_reward": 0.9681818181818181,
|
| 332 |
+
"verifier_scores": {
|
| 333 |
+
"V1": 0.9500000000000001,
|
| 334 |
+
"V4": 1.0
|
| 335 |
+
},
|
| 336 |
+
"question_type": "direction",
|
| 337 |
+
"source": "genelab",
|
| 338 |
+
"tissue": "thymus",
|
| 339 |
+
"confidence": 0.55,
|
| 340 |
+
"confidence_stated": "medium"
|
| 341 |
+
},
|
| 342 |
+
{
|
| 343 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Coagulation pathway upregulated or downregulated b",
|
| 344 |
+
"response": "Based on the GSEA results, the Coagulation pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.71) and low FDR (0.002).\n\n### Rationale:\nThe Coagulation pathway is a biological process that regulates bloo",
|
| 345 |
+
"total_reward": 0.984090909090909,
|
| 346 |
+
"verifier_scores": {
|
| 347 |
+
"V1": 0.9750000000000001,
|
| 348 |
+
"V4": 1.0
|
| 349 |
+
},
|
| 350 |
+
"question_type": "direction",
|
| 351 |
+
"source": "genelab",
|
| 352 |
+
"tissue": "thymus",
|
| 353 |
+
"confidence": 0.55,
|
| 354 |
+
"confidence_stated": "medium"
|
| 355 |
+
},
|
| 356 |
+
{
|
| 357 |
+
"prompt": "Explain the biological significance of Coagulation pathway suppression in mouse thymus under spacefl",
|
| 358 |
+
"response": "The observed changes in the thymus under spaceflight conditions are likely due to a combination of mechanical stress, altered blood flow, and immune system activation.\n\n- Mechanical stress: Spaceflight is associated with increased radiation exposure, which can damage DNA and disrupt cellular process",
|
| 359 |
+
"total_reward": 0.5545454545454545,
|
| 360 |
+
"verifier_scores": {
|
| 361 |
+
"V1": 0.3,
|
| 362 |
+
"V4": 1.0
|
| 363 |
+
},
|
| 364 |
+
"question_type": "direction",
|
| 365 |
+
"source": "genelab",
|
| 366 |
+
"tissue": "thymus",
|
| 367 |
+
"confidence": 0.55,
|
| 368 |
+
"confidence_stated": "medium"
|
| 369 |
+
},
|
| 370 |
+
{
|
| 371 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Complement pathway upregulated or downregulated ba",
|
| 372 |
+
"response": "Based on the gene set enrichment analysis, the Complement pathway is **downregulated** in mouse thymus tissue during spaceflight. This is supported by the fact that the pathway is enriched in the downregulated gene set (FDR = 0.0001).\n\n**Confidence level:** High. The pathway is significantly enriche",
|
| 373 |
+
"total_reward": 0.5545454545454545,
|
| 374 |
+
"verifier_scores": {
|
| 375 |
+
"V1": 0.3,
|
| 376 |
+
"V4": 1.0
|
| 377 |
+
},
|
| 378 |
+
"question_type": "direction",
|
| 379 |
+
"source": "genelab",
|
| 380 |
+
"tissue": "thymus",
|
| 381 |
+
"confidence": 0.55,
|
| 382 |
+
"confidence_stated": "medium"
|
| 383 |
+
},
|
| 384 |
+
{
|
| 385 |
+
"prompt": "Explain the biological significance of Complement pathway suppression in mouse thymus under spacefli",
|
| 386 |
+
"response": "The observed changes in the Wnt pathway in mouse thymus under spaceflight conditions are likely related to tissue repair and regeneration. Wnt signaling is involved in cell proliferation and differentiation, and its upregulation may indicate a compensatory response to maintain tissue integrity in th",
|
| 387 |
+
"total_reward": 0.46363636363636357,
|
| 388 |
+
"verifier_scores": {
|
| 389 |
+
"V1": 0.3,
|
| 390 |
+
"V4": 0.75
|
| 391 |
+
},
|
| 392 |
+
"question_type": "direction",
|
| 393 |
+
"source": "genelab",
|
| 394 |
+
"tissue": "thymus",
|
| 395 |
+
"confidence": 0.55,
|
| 396 |
+
"confidence_stated": "medium"
|
| 397 |
+
},
|
| 398 |
+
{
|
| 399 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Dna Repair pathway upregulated or downregulated ba",
|
| 400 |
+
"response": "Based on gene set enrichment analysis, the Dna Repair pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Dna Repair pathway is ranked 13th out of 15 pathways in the downregulated list, with a p-value of 0.00016. This indicates that the pathway is signific",
|
| 401 |
+
"total_reward": 0.2939393939393939,
|
| 402 |
+
"verifier_scores": {
|
| 403 |
+
"V1": 0.03333333333333333,
|
| 404 |
+
"V4": 0.75
|
| 405 |
+
},
|
| 406 |
+
"question_type": "direction",
|
| 407 |
+
"source": "genelab",
|
| 408 |
+
"tissue": "thymus",
|
| 409 |
+
"confidence": 0.85,
|
| 410 |
+
"confidence_stated": "high"
|
| 411 |
+
},
|
| 412 |
+
{
|
| 413 |
+
"prompt": "Explain the biological significance of Dna Repair pathway activation in mouse thymus under spaceflig",
|
| 414 |
+
"response": "DNA repair pathway activation in mouse thymus under spaceflight conditions is likely a protective response to the increased oxidative stress and DNA damage associated with spaceflight. The biological significance of this activation is to maintain genomic integrity and prevent mutations that could le",
|
| 415 |
+
"total_reward": 0.8993006993006992,
|
| 416 |
+
"verifier_scores": {
|
| 417 |
+
"V1": 0.9846153846153847,
|
| 418 |
+
"V4": 0.75
|
| 419 |
+
},
|
| 420 |
+
"question_type": "direction",
|
| 421 |
+
"source": "genelab",
|
| 422 |
+
"tissue": "thymus",
|
| 423 |
+
"confidence": 0.55,
|
| 424 |
+
"confidence_stated": "medium"
|
| 425 |
+
},
|
| 426 |
+
{
|
| 427 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the E2F Targets pathway upregulated or downregulated b",
|
| 428 |
+
"response": "Based on the GSEA results, the E2F Targets pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.49, FDR q-value = 0.001).\n\n### Rationale:\nThe E2F Targets pathway is a collection of genes that are regulate",
|
| 429 |
+
"total_reward": 0.35834561834561834,
|
| 430 |
+
"verifier_scores": {
|
| 431 |
+
"V1": 0.020000000000000004,
|
| 432 |
+
"V4": 0.9504504504504504
|
| 433 |
+
},
|
| 434 |
+
"question_type": "direction",
|
| 435 |
+
"source": "genelab",
|
| 436 |
+
"tissue": "thymus",
|
| 437 |
+
"confidence": 0.5,
|
| 438 |
+
"confidence_stated": "medium"
|
| 439 |
+
},
|
| 440 |
+
{
|
| 441 |
+
"prompt": "Explain the biological significance of E2F Targets pathway activation in mouse thymus under spacefli",
|
| 442 |
+
"response": "The TGF-\u03b2 Signaling pathway is a key regulator of immune function and inflammation. Under spaceflight conditions, this pathway is activated, suggesting increased immune activation and inflammation in the thymus. This is likely due to the stress response of the thymus to the spaceflight environment, ",
|
| 443 |
+
"total_reward": 0.5545454545454545,
|
| 444 |
+
"verifier_scores": {
|
| 445 |
+
"V1": 0.3,
|
| 446 |
+
"V4": 1.0
|
| 447 |
+
},
|
| 448 |
+
"question_type": "direction",
|
| 449 |
+
"source": "genelab",
|
| 450 |
+
"tissue": "thymus",
|
| 451 |
+
"confidence": 0.55,
|
| 452 |
+
"confidence_stated": "medium"
|
| 453 |
+
},
|
| 454 |
+
{
|
| 455 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Epithelial Mesenchymal Transition pathway upregula",
|
| 456 |
+
"response": "Based on the GSEA results, the Epithelial Mesenchymal Transition (EMT) pathway is **downregulated** in mouse thymus tissue during spaceflight. The pathway has a normalized enrichment score (NES) of -1.57, indicating a significant decrease in EMT-related gene expression. This result is supported by t",
|
| 457 |
+
"total_reward": 0.7223140495867768,
|
| 458 |
+
"verifier_scores": {
|
| 459 |
+
"V1": 0.5636363636363637,
|
| 460 |
+
"V4": 1.0
|
| 461 |
+
},
|
| 462 |
+
"question_type": "direction",
|
| 463 |
+
"source": "genelab",
|
| 464 |
+
"tissue": "thymus",
|
| 465 |
+
"confidence": 0.55,
|
| 466 |
+
"confidence_stated": "medium"
|
| 467 |
+
},
|
| 468 |
+
{
|
| 469 |
+
"prompt": "Explain the biological significance of Epithelial Mesenchymal Transition pathway suppression in mous",
|
| 470 |
+
"response": "Epithelial-to-mesenchymal transition (EMT) is a process by which epithelial cells lose their polarity and cell-cell adhesion, and acquire a mesenchymal phenotype with increased migratory and invasive potential. EMT is a key step in cancer metastasis, and is also implicated in fibrosis and other path",
|
| 471 |
+
"total_reward": 0.72,
|
| 472 |
+
"verifier_scores": {
|
| 473 |
+
"V1": 0.56,
|
| 474 |
+
"V4": 1.0
|
| 475 |
+
},
|
| 476 |
+
"question_type": "direction",
|
| 477 |
+
"source": "genelab",
|
| 478 |
+
"tissue": "thymus",
|
| 479 |
+
"confidence": 0.25,
|
| 480 |
+
"confidence_stated": "low"
|
| 481 |
+
},
|
| 482 |
+
{
|
| 483 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Estrogen Response Early pathway upregulated or dow",
|
| 484 |
+
"response": "Based on gene set enrichment analysis, the Estrogen Response Early pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe table below summarizes the results of gene set enrichment analysis for the Estrogen Response Early pathway in mouse thymus tissue during ",
|
| 485 |
+
"total_reward": 0.39545454545454545,
|
| 486 |
+
"verifier_scores": {
|
| 487 |
+
"V1": 0.05,
|
| 488 |
+
"V4": 1.0
|
| 489 |
+
},
|
| 490 |
+
"question_type": "direction",
|
| 491 |
+
"source": "genelab",
|
| 492 |
+
"tissue": "thymus",
|
| 493 |
+
"confidence": 0.85,
|
| 494 |
+
"confidence_stated": "high"
|
| 495 |
+
},
|
| 496 |
+
{
|
| 497 |
+
"prompt": "Explain the biological significance of Estrogen Response Early pathway suppression in mouse thymus u",
|
| 498 |
+
"response": "**Biological significance:**\n\n- Estrogen Response Early (ERE) pathway suppression in mouse thymus under spaceflight conditions suggests a potential role for estrogen in thymic function and immune response.\n- ERE pathway suppression may indicate a compensatory mechanism to maintain thymic function un",
|
| 499 |
+
"total_reward": 0.9363636363636363,
|
| 500 |
+
"verifier_scores": {
|
| 501 |
+
"V1": 0.9,
|
| 502 |
+
"V4": 1.0
|
| 503 |
+
},
|
| 504 |
+
"question_type": "direction",
|
| 505 |
+
"source": "genelab",
|
| 506 |
+
"tissue": "thymus",
|
| 507 |
+
"confidence": 0.55,
|
| 508 |
+
"confidence_stated": "medium"
|
| 509 |
+
},
|
| 510 |
+
{
|
| 511 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Estrogen Response Late pathway upregulated or down",
|
| 512 |
+
"response": "Based on the GSEA results, the Estrogen Response Late pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** based on the significant enrichment score (-2.78, FDR q-value = 0.001).\n\n### Explanation:\nThe GSEA results show that the Estrogen Response La",
|
| 513 |
+
"total_reward": 0.8836363636363636,
|
| 514 |
+
"verifier_scores": {
|
| 515 |
+
"V1": 0.9600000000000001,
|
| 516 |
+
"V4": 0.75
|
| 517 |
+
},
|
| 518 |
+
"question_type": "direction",
|
| 519 |
+
"source": "genelab",
|
| 520 |
+
"tissue": "thymus",
|
| 521 |
+
"confidence": 0.55,
|
| 522 |
+
"confidence_stated": "medium"
|
| 523 |
+
},
|
| 524 |
+
{
|
| 525 |
+
"prompt": "Explain the biological significance of Estrogen Response Late pathway suppression in mouse thymus un",
|
| 526 |
+
"response": "The Estrogen Response Late (ERL) pathway is a key regulator of immune function, and its suppression in mouse thymus under spaceflight conditions suggests a potential mechanism for immune dysfunction observed in astronauts. ERL pathway suppression may be driven by a combination of factors, including:",
|
| 527 |
+
"total_reward": 0.8454545454545453,
|
| 528 |
+
"verifier_scores": {
|
| 529 |
+
"V1": 0.9,
|
| 530 |
+
"V4": 0.75
|
| 531 |
+
},
|
| 532 |
+
"question_type": "direction",
|
| 533 |
+
"source": "genelab",
|
| 534 |
+
"tissue": "thymus",
|
| 535 |
+
"confidence": 0.55,
|
| 536 |
+
"confidence_stated": "medium"
|
| 537 |
+
},
|
| 538 |
+
{
|
| 539 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Fatty Acid Metabolism pathway upregulated or downr",
|
| 540 |
+
"response": "Based on the gene set enrichment analysis, the Fatty Acid Metabolism pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** based on the significant enrichment score (-log10(ES) = -1.54).\n\n### Explanation:\nThe Fatty Acid Metabolism pathway is signifi",
|
| 541 |
+
"total_reward": 0.9787878787878788,
|
| 542 |
+
"verifier_scores": {
|
| 543 |
+
"V1": 0.9666666666666668,
|
| 544 |
+
"V4": 1.0
|
| 545 |
+
},
|
| 546 |
+
"question_type": "direction",
|
| 547 |
+
"source": "genelab",
|
| 548 |
+
"tissue": "thymus",
|
| 549 |
+
"confidence": 0.55,
|
| 550 |
+
"confidence_stated": "medium"
|
| 551 |
+
},
|
| 552 |
+
{
|
| 553 |
+
"prompt": "Explain the biological significance of Fatty Acid Metabolism pathway suppression in mouse thymus und",
|
| 554 |
+
"response": "Fatty acid metabolism pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to conserve energy and reduce oxidative stress. Spaceflight is known to induce oxidative stress, which",
|
| 555 |
+
"total_reward": 0.9021994134897361,
|
| 556 |
+
"verifier_scores": {
|
| 557 |
+
"V1": 0.9500000000000001,
|
| 558 |
+
"V4": 0.8185483870967744
|
| 559 |
+
},
|
| 560 |
+
"question_type": "direction",
|
| 561 |
+
"source": "genelab",
|
| 562 |
+
"tissue": "thymus",
|
| 563 |
+
"confidence": 0.55,
|
| 564 |
+
"confidence_stated": "medium"
|
| 565 |
+
},
|
| 566 |
+
{
|
| 567 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the G2M Checkpoint pathway upregulated or downregulate",
|
| 568 |
+
"response": "Based on the GSEA results, the G2M Checkpoint pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.69) and the large number of genes in the pathway (100).\n\n### Explanation:\nThe GSEA results show that the ",
|
| 569 |
+
"total_reward": 0.2822702159718735,
|
| 570 |
+
"verifier_scores": {
|
| 571 |
+
"V1": 0.0,
|
| 572 |
+
"V4": 0.7762430939226521
|
| 573 |
+
},
|
| 574 |
+
"question_type": "direction",
|
| 575 |
+
"source": "genelab",
|
| 576 |
+
"tissue": "thymus",
|
| 577 |
+
"confidence": 0.55,
|
| 578 |
+
"confidence_stated": "medium"
|
| 579 |
+
},
|
| 580 |
+
{
|
| 581 |
+
"prompt": "Explain the biological significance of G2M Checkpoint pathway activation in mouse thymus under space",
|
| 582 |
+
"response": "The G2M Checkpoint pathway is a cell cycle checkpoint that regulates cell division. It is activated in response to DNA damage, and its activation delays cell cycle progression to allow for DNA repair. In mouse thymus, G2M Checkpoint pathway activation is observed under spaceflight conditions. This s",
|
| 583 |
+
"total_reward": 0.9884297520661156,
|
| 584 |
+
"verifier_scores": {
|
| 585 |
+
"V1": 0.9818181818181819,
|
| 586 |
+
"V4": 1.0
|
| 587 |
+
},
|
| 588 |
+
"question_type": "direction",
|
| 589 |
+
"source": "genelab",
|
| 590 |
+
"tissue": "thymus",
|
| 591 |
+
"confidence": 0.55,
|
| 592 |
+
"confidence_stated": "medium"
|
| 593 |
+
},
|
| 594 |
+
{
|
| 595 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Heme Metabolism pathway upregulated or downregulat",
|
| 596 |
+
"response": "Based on the GSEA results, the Heme Metabolism pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.73) and low FDR (0.001).\n\n### Explanation:\nThe Heme Metabolism pathway is significantly downregulated in",
|
| 597 |
+
"total_reward": 0.5466666666666666,
|
| 598 |
+
"verifier_scores": {
|
| 599 |
+
"V1": 0.5733333333333334,
|
| 600 |
+
"V4": 0.5000000000000001
|
| 601 |
+
},
|
| 602 |
+
"question_type": "direction",
|
| 603 |
+
"source": "genelab",
|
| 604 |
+
"tissue": "thymus",
|
| 605 |
+
"confidence": 0.55,
|
| 606 |
+
"confidence_stated": "medium"
|
| 607 |
+
},
|
| 608 |
+
{
|
| 609 |
+
"prompt": "Explain the biological significance of Heme Metabolism pathway suppression in mouse thymus under spa",
|
| 610 |
+
"response": "Heme Metabolism pathway suppression in mouse heart under spaceflight conditions is likely a protective response to mitigate oxidative stress. Spaceflight is associated with increased oxidative stress due",
|
| 611 |
+
"total_reward": 0.9575757575757575,
|
| 612 |
+
"verifier_scores": {
|
| 613 |
+
"V1": 0.9333333333333333,
|
| 614 |
+
"V4": 1.0
|
| 615 |
+
},
|
| 616 |
+
"question_type": "direction",
|
| 617 |
+
"source": "genelab",
|
| 618 |
+
"tissue": "thymus",
|
| 619 |
+
"confidence": 0.55,
|
| 620 |
+
"confidence_stated": "medium"
|
| 621 |
+
},
|
| 622 |
+
{
|
| 623 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Hypoxia pathway upregulated or downregulated based",
|
| 624 |
+
"response": "Based on the GSEA results, the Hypoxia pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.54) and the large number of genes in the pathway (113).\n\n### Rationale:\nThe Hypoxia pathway is a collection of g",
|
| 625 |
+
"total_reward": 0.9595329441201002,
|
| 626 |
+
"verifier_scores": {
|
| 627 |
+
"V1": 0.9600000000000001,
|
| 628 |
+
"V4": 0.9587155963302754
|
| 629 |
+
},
|
| 630 |
+
"question_type": "direction",
|
| 631 |
+
"source": "genelab",
|
| 632 |
+
"tissue": "thymus",
|
| 633 |
+
"confidence": 0.55,
|
| 634 |
+
"confidence_stated": "medium"
|
| 635 |
+
},
|
| 636 |
+
{
|
| 637 |
+
"prompt": "Explain the biological significance of Hypoxia pathway suppression in mouse thymus under spaceflight",
|
| 638 |
+
"response": "Hypoxia pathway suppression in mouse thymus under spaceflight conditions is likely a protective response to the low-oxygen environment of space. The thymus is a critical immune organ that produces T cells, and hypoxia can impair thymic function. By suppressing the hypoxia pathway, the thymus may be ",
|
| 639 |
+
"total_reward": 0.9893939393939393,
|
| 640 |
+
"verifier_scores": {
|
| 641 |
+
"V1": 0.9833333333333334,
|
| 642 |
+
"V4": 1.0
|
| 643 |
+
},
|
| 644 |
+
"question_type": "direction",
|
| 645 |
+
"source": "genelab",
|
| 646 |
+
"tissue": "thymus",
|
| 647 |
+
"confidence": 0.55,
|
| 648 |
+
"confidence_stated": "medium"
|
| 649 |
+
},
|
| 650 |
+
{
|
| 651 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Il2 Stat5 Signaling pathway upregulated or downreg",
|
| 652 |
+
"response": "Based on gene set enrichment analysis, the Il2 Stat5 Signaling pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Il2 Stat5 Signaling pathway is significantly downregulated in mouse thymus tissue during spaceflight, with an adjusted p-value of 0.00013. Th",
|
| 653 |
+
"total_reward": 0.9575757575757575,
|
| 654 |
+
"verifier_scores": {
|
| 655 |
+
"V1": 0.9333333333333333,
|
| 656 |
+
"V4": 1.0
|
| 657 |
+
},
|
| 658 |
+
"question_type": "direction",
|
| 659 |
+
"source": "genelab",
|
| 660 |
+
"tissue": "thymus",
|
| 661 |
+
"confidence": 0.85,
|
| 662 |
+
"confidence_stated": "high"
|
| 663 |
+
},
|
| 664 |
+
{
|
| 665 |
+
"prompt": "Explain the biological significance of Il2 Stat5 Signaling pathway suppression in mouse thymus under",
|
| 666 |
+
"response": "Il2 Stat5 Signaling pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to prevent excessive immune activation. Spaceflight is known to cause oxidative stress and inflammation, which can lead to immune dysregulation. By suppressing Il2 Stat5 Signaling, t",
|
| 667 |
+
"total_reward": 0.8477047704770477,
|
| 668 |
+
"verifier_scores": {
|
| 669 |
+
"V1": 0.9,
|
| 670 |
+
"V4": 0.7561881188118813
|
| 671 |
+
},
|
| 672 |
+
"question_type": "direction",
|
| 673 |
+
"source": "genelab",
|
| 674 |
+
"tissue": "thymus",
|
| 675 |
+
"confidence": 0.55,
|
| 676 |
+
"confidence_stated": "medium"
|
| 677 |
+
},
|
| 678 |
+
{
|
| 679 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Il6 Jak Stat3 Signaling pathway upregulated or dow",
|
| 680 |
+
"response": "Based on the gene set enrichment analysis, the Il6 Jak Stat3 Signaling pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** based on the significant enrichment score (-2.35) and the large number of genes in the pathway (111).\n\n### Explanation:\nThe ",
|
| 681 |
+
"total_reward": 0.6818181818181818,
|
| 682 |
+
"verifier_scores": {
|
| 683 |
+
"V1": 0.5,
|
| 684 |
+
"V4": 1.0
|
| 685 |
+
},
|
| 686 |
+
"question_type": "direction",
|
| 687 |
+
"source": "genelab",
|
| 688 |
+
"tissue": "thymus",
|
| 689 |
+
"confidence": 0.55,
|
| 690 |
+
"confidence_stated": "medium"
|
| 691 |
+
},
|
| 692 |
+
{
|
| 693 |
+
"prompt": "Explain the biological significance of Il6 Jak Stat3 Signaling pathway suppression in mouse thymus u",
|
| 694 |
+
"response": "The Il6 Jak Stat3 Signaling pathway is a key regulator of immune function, and its suppression in mouse thymus under spaceflight conditions suggests a potential mechanism for immune system dysfunction in space.\n\nThe Il6 Jak Stat3 Signaling pathway is a key regulator of immune function, and its suppr",
|
| 695 |
+
"total_reward": 0.9360248447204969,
|
| 696 |
+
"verifier_scores": {
|
| 697 |
+
"V1": 0.991304347826087,
|
| 698 |
+
"V4": 0.8392857142857143
|
| 699 |
+
},
|
| 700 |
+
"question_type": "direction",
|
| 701 |
+
"source": "genelab",
|
| 702 |
+
"tissue": "thymus",
|
| 703 |
+
"confidence": 0.55,
|
| 704 |
+
"confidence_stated": "medium"
|
| 705 |
+
},
|
| 706 |
+
{
|
| 707 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Inflammatory Response pathway upregulated or downr",
|
| 708 |
+
"response": "Based on the GSEA results, the Inflammatory Response pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.69, FDR q-value < 0.05).\n\n### Explanation:\nThe Inflammatory Response pathway is a collection of ge",
|
| 709 |
+
"total_reward": 0.9787878787878788,
|
| 710 |
+
"verifier_scores": {
|
| 711 |
+
"V1": 0.9666666666666668,
|
| 712 |
+
"V4": 1.0
|
| 713 |
+
},
|
| 714 |
+
"question_type": "direction",
|
| 715 |
+
"source": "genelab",
|
| 716 |
+
"tissue": "thymus",
|
| 717 |
+
"confidence": 0.5,
|
| 718 |
+
"confidence_stated": "medium"
|
| 719 |
+
},
|
| 720 |
+
{
|
| 721 |
+
"prompt": "Explain the biological significance of Inflammatory Response pathway suppression in mouse thymus und",
|
| 722 |
+
"response": "The Inflammatory Response pathway is suppressed in mouse thymus under spaceflight conditions, with a directional change of -0.49 and a magnitude of 0.05. This suppression is likely due to the unique microgravity environment experienced by the mice during spaceflight.\n\nInflammation is a complex biolo",
|
| 723 |
+
"total_reward": 0.7284848484848485,
|
| 724 |
+
"verifier_scores": {
|
| 725 |
+
"V1": 0.5733333333333334,
|
| 726 |
+
"V4": 1.0
|
| 727 |
+
},
|
| 728 |
+
"question_type": "direction",
|
| 729 |
+
"source": "genelab",
|
| 730 |
+
"tissue": "thymus",
|
| 731 |
+
"confidence": 0.55,
|
| 732 |
+
"confidence_stated": "medium"
|
| 733 |
+
},
|
| 734 |
+
{
|
| 735 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Interferon Alpha Response pathway upregulated or d",
|
| 736 |
+
"response": "Based on gene set enrichment analysis, the Interferon Alpha Response pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Interferon Alpha Response pathway is significantly downregulated in mouse thymus tissue during spaceflight, with a log2 fold change of ",
|
| 737 |
+
"total_reward": 0.9681818181818181,
|
| 738 |
+
"verifier_scores": {
|
| 739 |
+
"V1": 0.9500000000000001,
|
| 740 |
+
"V4": 1.0
|
| 741 |
+
},
|
| 742 |
+
"question_type": "direction",
|
| 743 |
+
"source": "genelab",
|
| 744 |
+
"tissue": "thymus",
|
| 745 |
+
"confidence": 0.85,
|
| 746 |
+
"confidence_stated": "high"
|
| 747 |
+
},
|
| 748 |
+
{
|
| 749 |
+
"prompt": "Explain the biological significance of Interferon Alpha Response pathway suppression in mouse thymus",
|
| 750 |
+
"response": "Interferon Alpha Response pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to prevent excessive inflammation and tissue damage. Interferons are a family of cytokines that play a central role in the immune response to viral infections. They activate a ",
|
| 751 |
+
"total_reward": 0.9429186974641519,
|
| 752 |
+
"verifier_scores": {
|
| 753 |
+
"V1": 0.9846153846153847,
|
| 754 |
+
"V4": 0.869949494949495
|
| 755 |
+
},
|
| 756 |
+
"question_type": "direction",
|
| 757 |
+
"source": "genelab",
|
| 758 |
+
"tissue": "thymus",
|
| 759 |
+
"confidence": 0.55,
|
| 760 |
+
"confidence_stated": "medium"
|
| 761 |
+
},
|
| 762 |
+
{
|
| 763 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Interferon Gamma Response pathway upregulated or d",
|
| 764 |
+
"response": "Based on gene set enrichment analysis, the Interferon Gamma Response pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe table below summarizes the results of gene set enrichment analysis for the Interferon Gamma Response pathway in mouse thymus tissue dur",
|
| 765 |
+
"total_reward": 0.39545454545454545,
|
| 766 |
+
"verifier_scores": {
|
| 767 |
+
"V1": 0.05,
|
| 768 |
+
"V4": 1.0
|
| 769 |
+
},
|
| 770 |
+
"question_type": "direction",
|
| 771 |
+
"source": "genelab",
|
| 772 |
+
"tissue": "thymus",
|
| 773 |
+
"confidence": 0.55,
|
| 774 |
+
"confidence_stated": "medium"
|
| 775 |
+
},
|
| 776 |
+
{
|
| 777 |
+
"prompt": "Explain the biological significance of Interferon Gamma Response pathway suppression in mouse thymus",
|
| 778 |
+
"response": "Interferon Gamma Response pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to prevent excessive inflammation and tissue damage. Interferon gamma (IFN-\u03b3) is a pro-inflammatory cytokine that plays a key role in immune responses. Suppression of the IFN-\u03b3",
|
| 779 |
+
"total_reward": 0.7090909090909091,
|
| 780 |
+
"verifier_scores": {
|
| 781 |
+
"V1": 0.5428571428571429,
|
| 782 |
+
"V4": 1.0
|
| 783 |
+
},
|
| 784 |
+
"question_type": "direction",
|
| 785 |
+
"source": "genelab",
|
| 786 |
+
"tissue": "thymus",
|
| 787 |
+
"confidence": 0.55,
|
| 788 |
+
"confidence_stated": "medium"
|
| 789 |
+
},
|
| 790 |
+
{
|
| 791 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Kras Signaling Dn pathway upregulated or downregul",
|
| 792 |
+
"response": "Based on the gene set enrichment analysis, the Kras Signaling Dn pathway is **downregulated** in mouse thymus tissue during spaceflight. This is supported by the fact that the pathway has a negative log2 fold change (-0.55) and a low p-value (0.0001).\n\n### Confidence Level:\nHigh confidence\n\n### Expl",
|
| 793 |
+
"total_reward": 0.9745454545454545,
|
| 794 |
+
"verifier_scores": {
|
| 795 |
+
"V1": 0.9600000000000001,
|
| 796 |
+
"V4": 1.0
|
| 797 |
+
},
|
| 798 |
+
"question_type": "direction",
|
| 799 |
+
"source": "genelab",
|
| 800 |
+
"tissue": "thymus",
|
| 801 |
+
"confidence": 0.55,
|
| 802 |
+
"confidence_stated": "medium"
|
| 803 |
+
},
|
| 804 |
+
{
|
| 805 |
+
"prompt": "Explain the biological significance of Kras Signaling Dn pathway suppression in mouse thymus under s",
|
| 806 |
+
"response": "Kras Signaling Dn pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to reduce oxidative stress and inflammation. Spaceflight is known to induce oxidative stress and inflammation in various tissues, including the thymus. Kras signaling is involved in ce",
|
| 807 |
+
"total_reward": 0.8273408239700375,
|
| 808 |
+
"verifier_scores": {
|
| 809 |
+
"V1": 0.9333333333333333,
|
| 810 |
+
"V4": 0.6418539325842698
|
| 811 |
+
},
|
| 812 |
+
"question_type": "direction",
|
| 813 |
+
"source": "genelab",
|
| 814 |
+
"tissue": "thymus",
|
| 815 |
+
"confidence": 0.55,
|
| 816 |
+
"confidence_stated": "medium"
|
| 817 |
+
},
|
| 818 |
+
{
|
| 819 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Kras Signaling Up pathway upregulated or downregul",
|
| 820 |
+
"response": "Based on the gene set enrichment analysis, the Kras Signaling Up pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** based on the significant enrichment score (-2.57) and the large number of genes in the pathway (108).\n\n### Rationale:\nThe Kras Sig",
|
| 821 |
+
"total_reward": 0.39545454545454545,
|
| 822 |
+
"verifier_scores": {
|
| 823 |
+
"V1": 0.05,
|
| 824 |
+
"V4": 1.0
|
| 825 |
+
},
|
| 826 |
+
"question_type": "direction",
|
| 827 |
+
"source": "genelab",
|
| 828 |
+
"tissue": "thymus",
|
| 829 |
+
"confidence": 0.5,
|
| 830 |
+
"confidence_stated": "medium"
|
| 831 |
+
},
|
| 832 |
+
{
|
| 833 |
+
"prompt": "Explain the biological significance of Kras Signaling Up pathway suppression in mouse thymus under s",
|
| 834 |
+
"response": "Kras Signaling Up pathway suppression in mouse thymus under spaceflight conditions is likely a protective response to mitigate the effects of radiation exposure. Spaceflight increases exposure to ionizing radiation, which can damage DNA and disrupt cellular processes. Kras signaling is involved in c",
|
| 835 |
+
"total_reward": 0.7572390572390573,
|
| 836 |
+
"verifier_scores": {
|
| 837 |
+
"V1": 0.9333333333333333,
|
| 838 |
+
"V4": 0.4490740740740742
|
| 839 |
+
},
|
| 840 |
+
"question_type": "direction",
|
| 841 |
+
"source": "genelab",
|
| 842 |
+
"tissue": "thymus",
|
| 843 |
+
"confidence": 0.55,
|
| 844 |
+
"confidence_stated": "medium"
|
| 845 |
+
},
|
| 846 |
+
{
|
| 847 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Mitotic Spindle pathway upregulated or downregulat",
|
| 848 |
+
"response": "Based on the GSEA results, the Mitotic Spindle pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.78) and the large number of genes in the pathway (113).\n\n### Explanation:\nThe Mitotic Spindle pathway is",
|
| 849 |
+
"total_reward": 0.36363636363636365,
|
| 850 |
+
"verifier_scores": {
|
| 851 |
+
"V1": 0.0,
|
| 852 |
+
"V4": 1.0
|
| 853 |
+
},
|
| 854 |
+
"question_type": "direction",
|
| 855 |
+
"source": "genelab",
|
| 856 |
+
"tissue": "thymus",
|
| 857 |
+
"confidence": 0.55,
|
| 858 |
+
"confidence_stated": "medium"
|
| 859 |
+
},
|
| 860 |
+
{
|
| 861 |
+
"prompt": "Explain the biological significance of Mitotic Spindle pathway activation in mouse thymus under spac",
|
| 862 |
+
"response": "The Mitotic Spindle pathway is a key regulator of cell division and differentiation, and its activation in mouse thymus under spaceflight conditions suggests that spaceflight may induce cellular stress and proliferation in this tissue.\n\nThe biological significance of this pathway activation is that ",
|
| 863 |
+
"total_reward": 0.9858585858585858,
|
| 864 |
+
"verifier_scores": {
|
| 865 |
+
"V1": 0.9777777777777779,
|
| 866 |
+
"V4": 1.0
|
| 867 |
+
},
|
| 868 |
+
"question_type": "direction",
|
| 869 |
+
"source": "genelab",
|
| 870 |
+
"tissue": "thymus",
|
| 871 |
+
"confidence": 0.55,
|
| 872 |
+
"confidence_stated": "medium"
|
| 873 |
+
},
|
| 874 |
+
{
|
| 875 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Mtorc1 Signaling pathway upregulated or downregula",
|
| 876 |
+
"response": "Based on the GSEA results, the Mtorc1 Signaling pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the strong enrichment score (-3.01) and low p-value (0.0001).\n\n### Explanation:\nThe GSEA results show that the Mtorc1 Signaling pathway is s",
|
| 877 |
+
"total_reward": 0.38484848484848483,
|
| 878 |
+
"verifier_scores": {
|
| 879 |
+
"V1": 0.03333333333333333,
|
| 880 |
+
"V4": 1.0
|
| 881 |
+
},
|
| 882 |
+
"question_type": "direction",
|
| 883 |
+
"source": "genelab",
|
| 884 |
+
"tissue": "thymus",
|
| 885 |
+
"confidence": 0.55,
|
| 886 |
+
"confidence_stated": "medium"
|
| 887 |
+
},
|
| 888 |
+
{
|
| 889 |
+
"prompt": "Explain the biological significance of Mtorc1 Signaling pathway activation in mouse thymus under spa",
|
| 890 |
+
"response": "Mtorc1 Signaling pathway activation in mouse thymus under spaceflight conditions is likely driven by a combination of factors, including:\n\n1. **Hypoxia**: Spaceflight causes a reduction in oxygen levels, which can activate hypoxia-inducible factor (HIF) signaling and upregulate Mtorc1 expression.\n\n2",
|
| 891 |
+
"total_reward": 0.9884297520661156,
|
| 892 |
+
"verifier_scores": {
|
| 893 |
+
"V1": 0.9818181818181819,
|
| 894 |
+
"V4": 1.0
|
| 895 |
+
},
|
| 896 |
+
"question_type": "direction",
|
| 897 |
+
"source": "genelab",
|
| 898 |
+
"tissue": "thymus",
|
| 899 |
+
"confidence": 0.55,
|
| 900 |
+
"confidence_stated": "medium"
|
| 901 |
+
},
|
| 902 |
+
{
|
| 903 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Myc Targets V1 pathway upregulated or downregulate",
|
| 904 |
+
"response": "Based on the GSEA results, the Myc Targets V1 pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the strong statistical significance of the results.\n\n### Explanation:\nThe Myc Targets V1 pathway is a set of genes that are known to be regula",
|
| 905 |
+
"total_reward": 0.36363636363636365,
|
| 906 |
+
"verifier_scores": {
|
| 907 |
+
"V1": 0.0,
|
| 908 |
+
"V4": 1.0
|
| 909 |
+
},
|
| 910 |
+
"question_type": "direction",
|
| 911 |
+
"source": "genelab",
|
| 912 |
+
"tissue": "thymus",
|
| 913 |
+
"confidence": 0.55,
|
| 914 |
+
"confidence_stated": "medium"
|
| 915 |
+
},
|
| 916 |
+
{
|
| 917 |
+
"prompt": "Explain the biological significance of Myc Targets V1 pathway activation in mouse thymus under space",
|
| 918 |
+
"response": "Spaceflight conditions induce changes in gene expression patterns in the mouse thymus, including the activation of Myc Targets V1 pathway. This pathway is involved in cell proliferation, differentiation, and apoptosis, and its activation under spaceflight conditions suggests that these processes may",
|
| 919 |
+
"total_reward": 0.9858585858585858,
|
| 920 |
+
"verifier_scores": {
|
| 921 |
+
"V1": 0.9777777777777779,
|
| 922 |
+
"V4": 1.0
|
| 923 |
+
},
|
| 924 |
+
"question_type": "direction",
|
| 925 |
+
"source": "genelab",
|
| 926 |
+
"tissue": "thymus",
|
| 927 |
+
"confidence": 0.55,
|
| 928 |
+
"confidence_stated": "medium"
|
| 929 |
+
},
|
| 930 |
+
{
|
| 931 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Myogenesis pathway upregulated or downregulated ba",
|
| 932 |
+
"response": "Based on the GSEA results, the Myogenesis pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.54) and the large number of genes in the pathway (108).\n\n### Explanation:\nThe Myogenesis pathway is a set of ",
|
| 933 |
+
"total_reward": 0.9818181818181818,
|
| 934 |
+
"verifier_scores": {
|
| 935 |
+
"V1": 0.9714285714285715,
|
| 936 |
+
"V4": 1.0
|
| 937 |
+
},
|
| 938 |
+
"question_type": "direction",
|
| 939 |
+
"source": "genelab",
|
| 940 |
+
"tissue": "thymus",
|
| 941 |
+
"confidence": 0.55,
|
| 942 |
+
"confidence_stated": "medium"
|
| 943 |
+
},
|
| 944 |
+
{
|
| 945 |
+
"prompt": "Explain the biological significance of Myogenesis pathway suppression in mouse thymus under spacefli",
|
| 946 |
+
"response": "Myogenesis pathway suppression in mouse brain under spaceflight conditions is likely a stress response. The brain is a critical organ for cognitive function, and myogenesis is a process of muscle cell differentiation and growth",
|
| 947 |
+
"total_reward": 0.9280748663101603,
|
| 948 |
+
"verifier_scores": {
|
| 949 |
+
"V1": 0.9500000000000001,
|
| 950 |
+
"V4": 0.889705882352941
|
| 951 |
+
},
|
| 952 |
+
"question_type": "direction",
|
| 953 |
+
"source": "genelab",
|
| 954 |
+
"tissue": "thymus",
|
| 955 |
+
"confidence": 0.55,
|
| 956 |
+
"confidence_stated": "medium"
|
| 957 |
+
},
|
| 958 |
+
{
|
| 959 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Notch Signaling pathway upregulated or downregulat",
|
| 960 |
+
"response": "Based on the gene set enrichment analysis, the Notch Signaling pathway is **downregulated** in mouse thymus tissue during spaceflight. This is supported by the fact that the pathway has a negative log2 fold change (-0.54) and a low p-value (0.0001). The confidence level is high.\n\n### Explanation:\nTh",
|
| 961 |
+
"total_reward": 0.9625837320574162,
|
| 962 |
+
"verifier_scores": {
|
| 963 |
+
"V1": 0.9600000000000001,
|
| 964 |
+
"V4": 0.9671052631578949
|
| 965 |
+
},
|
| 966 |
+
"question_type": "direction",
|
| 967 |
+
"source": "genelab",
|
| 968 |
+
"tissue": "thymus",
|
| 969 |
+
"confidence": 0.55,
|
| 970 |
+
"confidence_stated": "medium"
|
| 971 |
+
},
|
| 972 |
+
{
|
| 973 |
+
"prompt": "Explain the biological significance of Notch Signaling pathway suppression in mouse thymus under spa",
|
| 974 |
+
"response": "Notch signaling is a key regulator of T cell development, and its suppression in mouse thymus under spaceflight conditions suggests a potential mechanism for the observed changes in T cell populations. Notch signaling is known to regulate T cell differentiation, proliferation, and survival, and its ",
|
| 975 |
+
"total_reward": 0.984090909090909,
|
| 976 |
+
"verifier_scores": {
|
| 977 |
+
"V1": 0.9750000000000001,
|
| 978 |
+
"V4": 1.0
|
| 979 |
+
},
|
| 980 |
+
"question_type": "direction",
|
| 981 |
+
"source": "genelab",
|
| 982 |
+
"tissue": "thymus",
|
| 983 |
+
"confidence": 0.55,
|
| 984 |
+
"confidence_stated": "medium"
|
| 985 |
+
},
|
| 986 |
+
{
|
| 987 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Oxidative Phosphorylation pathway upregulated or d",
|
| 988 |
+
"response": "Based on the GSEA results, the Oxidative Phosphorylation pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.72) and the large number of genes in the pathway (113).\n\n### Rationale:\nThe Oxidative Phosphor",
|
| 989 |
+
"total_reward": 0.8772727272727272,
|
| 990 |
+
"verifier_scores": {
|
| 991 |
+
"V1": 0.9500000000000001,
|
| 992 |
+
"V4": 0.75
|
| 993 |
+
},
|
| 994 |
+
"question_type": "direction",
|
| 995 |
+
"source": "genelab",
|
| 996 |
+
"tissue": "thymus",
|
| 997 |
+
"confidence": 0.55,
|
| 998 |
+
"confidence_stated": "medium"
|
| 999 |
+
},
|
| 1000 |
+
{
|
| 1001 |
+
"prompt": "Explain the biological significance of Oxidative Phosphorylation pathway suppression in mouse thymus",
|
| 1002 |
+
"response": "Oxidative phosphorylation (OXPHOS) is a critical metabolic pathway that generates ATP through the electron transport chain (ETC) in mitochondria. Suppression of OXPHOS in mouse thymus under spaceflight conditions suggests a metabolic shift towards alternative energy production mechanisms. This suppr",
|
| 1003 |
+
"total_reward": 0.7242424242424241,
|
| 1004 |
+
"verifier_scores": {
|
| 1005 |
+
"V1": 0.5666666666666667,
|
| 1006 |
+
"V4": 1.0
|
| 1007 |
+
},
|
| 1008 |
+
"question_type": "direction",
|
| 1009 |
+
"source": "genelab",
|
| 1010 |
+
"tissue": "thymus",
|
| 1011 |
+
"confidence": 0.55,
|
| 1012 |
+
"confidence_stated": "medium"
|
| 1013 |
+
},
|
| 1014 |
+
{
|
| 1015 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the P53 Pathway pathway upregulated or downregulated b",
|
| 1016 |
+
"response": "Based on gene set enrichment analysis, the TNF-alpha Pathway pathway is **downregulated** in mouse thymus tissue during spaceflight. This is supported by the following evidence:\n\n- **Gene set enrichment analysis (GSEA)**: The TNF-alpha Pathway pathway is ranked 1,091st out of 1,215 pathways, indicat",
|
| 1017 |
+
"total_reward": 0.9575757575757575,
|
| 1018 |
+
"verifier_scores": {
|
| 1019 |
+
"V1": 0.9333333333333333,
|
| 1020 |
+
"V4": 1.0
|
| 1021 |
+
},
|
| 1022 |
+
"question_type": "direction",
|
| 1023 |
+
"source": "genelab",
|
| 1024 |
+
"tissue": "thymus",
|
| 1025 |
+
"confidence": 0.55,
|
| 1026 |
+
"confidence_stated": "medium"
|
| 1027 |
+
},
|
| 1028 |
+
{
|
| 1029 |
+
"prompt": "Explain the biological significance of P53 Pathway pathway suppression in mouse thymus under spacefl",
|
| 1030 |
+
"response": "**Biological significance:** P53 Pathway suppression in mouse thymus under spaceflight conditions may have several biological implications:\n\n1. **Immune system dysregulation:** P53 is a tumor suppressor and DNA damage response protein. Its suppression may lead to increased genomic instability and in",
|
| 1031 |
+
"total_reward": 0.7327272727272727,
|
| 1032 |
+
"verifier_scores": {
|
| 1033 |
+
"V1": 0.5800000000000001,
|
| 1034 |
+
"V4": 1.0
|
| 1035 |
+
},
|
| 1036 |
+
"question_type": "direction",
|
| 1037 |
+
"source": "genelab",
|
| 1038 |
+
"tissue": "thymus",
|
| 1039 |
+
"confidence": 0.5,
|
| 1040 |
+
"confidence_stated": "medium"
|
| 1041 |
+
},
|
| 1042 |
+
{
|
| 1043 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Pi3K Akt Mtor Signaling pathway upregulated or dow",
|
| 1044 |
+
"response": "Based on the GSEA results, the Pi3K Akt Mtor Signaling pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe GSEA results show that the Pi3K Akt Mtor Signaling pathway is significantly enriched in the downregulated gene set (NES = -2.58, FDR q-value = 0.0001",
|
| 1045 |
+
"total_reward": 0.3045454545454545,
|
| 1046 |
+
"verifier_scores": {
|
| 1047 |
+
"V1": 0.05,
|
| 1048 |
+
"V4": 0.75
|
| 1049 |
+
},
|
| 1050 |
+
"question_type": "direction",
|
| 1051 |
+
"source": "genelab",
|
| 1052 |
+
"tissue": "thymus",
|
| 1053 |
+
"confidence": 0.55,
|
| 1054 |
+
"confidence_stated": "medium"
|
| 1055 |
+
},
|
| 1056 |
+
{
|
| 1057 |
+
"prompt": "Explain the biological significance of Pi3K Akt Mtor Signaling pathway activation in mouse thymus un",
|
| 1058 |
+
"response": "The Pi3K Akt Mtor Signaling pathway is a key regulator of cell growth, proliferation, and survival. Its activation in mouse thymus under spaceflight conditions suggests that the thymus is responding to the stress of microgravity by activating pathways that promote cell survival and proliferation. Th",
|
| 1059 |
+
"total_reward": 0.8772727272727272,
|
| 1060 |
+
"verifier_scores": {
|
| 1061 |
+
"V1": 0.9500000000000001,
|
| 1062 |
+
"V4": 0.75
|
| 1063 |
+
},
|
| 1064 |
+
"question_type": "direction",
|
| 1065 |
+
"source": "genelab",
|
| 1066 |
+
"tissue": "thymus",
|
| 1067 |
+
"confidence": 0.55,
|
| 1068 |
+
"confidence_stated": "medium"
|
| 1069 |
+
},
|
| 1070 |
+
{
|
| 1071 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Spermatogenesis pathway upregulated or downregulat",
|
| 1072 |
+
"response": "Based on gene set enrichment analysis, the Spermatogenesis pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Spermatogenesis pathway is significantly downregulated in mouse thymus tissue during spaceflight, with an adjusted p-value of 0.00013. This indic",
|
| 1073 |
+
"total_reward": 0.29818181818181816,
|
| 1074 |
+
"verifier_scores": {
|
| 1075 |
+
"V1": 0.04000000000000001,
|
| 1076 |
+
"V4": 0.75
|
| 1077 |
+
},
|
| 1078 |
+
"question_type": "direction",
|
| 1079 |
+
"source": "genelab",
|
| 1080 |
+
"tissue": "thymus",
|
| 1081 |
+
"confidence": 0.55,
|
| 1082 |
+
"confidence_stated": "medium"
|
| 1083 |
+
},
|
| 1084 |
+
{
|
| 1085 |
+
"prompt": "Explain the biological significance of Spermatogenesis pathway activation in mouse thymus under spac",
|
| 1086 |
+
"response": "Spermatogenesis pathway activation in mouse thymus under spaceflight conditions is likely a compensatory response to stress. The thymus is a critical immune organ that produces T cells, and spaceflight is known to cause immune dysfunction. Activation of the Spermatogenesis pathway may be a protectiv",
|
| 1087 |
+
"total_reward": 0.946060606060606,
|
| 1088 |
+
"verifier_scores": {
|
| 1089 |
+
"V1": 0.9866666666666667,
|
| 1090 |
+
"V4": 0.875
|
| 1091 |
+
},
|
| 1092 |
+
"question_type": "direction",
|
| 1093 |
+
"source": "genelab",
|
| 1094 |
+
"tissue": "thymus",
|
| 1095 |
+
"confidence": 0.25,
|
| 1096 |
+
"confidence_stated": "low"
|
| 1097 |
+
},
|
| 1098 |
+
{
|
| 1099 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Tgf Beta Signaling pathway upregulated or downregu",
|
| 1100 |
+
"response": "Based on the GSEA results, the Tgf Beta Signaling pathway is **downregulated** in mouse thymus tissue during spaceflight. The confidence level is **high** due to the strong statistical significance of the results.\n\n### Explanation:\nThe GSEA results show that the Tgf Beta Signaling pathway is signifi",
|
| 1101 |
+
"total_reward": 0.9858585858585858,
|
| 1102 |
+
"verifier_scores": {
|
| 1103 |
+
"V1": 0.9777777777777779,
|
| 1104 |
+
"V4": 1.0
|
| 1105 |
+
},
|
| 1106 |
+
"question_type": "direction",
|
| 1107 |
+
"source": "genelab",
|
| 1108 |
+
"tissue": "thymus",
|
| 1109 |
+
"confidence": 0.55,
|
| 1110 |
+
"confidence_stated": "medium"
|
| 1111 |
+
},
|
| 1112 |
+
{
|
| 1113 |
+
"prompt": "Explain the biological significance of Tgf Beta Signaling pathway suppression in mouse thymus under ",
|
| 1114 |
+
"response": "TGF-\u03b2 signaling pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to prevent excessive inflammation and tissue damage. TGF-\u03b2 is a key regulator of immune responses, and its suppression may be a response to the stress of spaceflight.\n\nThe biological sig",
|
| 1115 |
+
"total_reward": 0.9575757575757575,
|
| 1116 |
+
"verifier_scores": {
|
| 1117 |
+
"V1": 0.9333333333333333,
|
| 1118 |
+
"V4": 1.0
|
| 1119 |
+
},
|
| 1120 |
+
"question_type": "direction",
|
| 1121 |
+
"source": "genelab",
|
| 1122 |
+
"tissue": "thymus",
|
| 1123 |
+
"confidence": 0.55,
|
| 1124 |
+
"confidence_stated": "medium"
|
| 1125 |
+
},
|
| 1126 |
+
{
|
| 1127 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Tnfa Signaling Via Nfkb pathway upregulated or dow",
|
| 1128 |
+
"response": "Based on gene set enrichment analysis, the Tnfa Signaling Via Nfkb pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Tnfa Signaling Via Nfkb pathway is significantly downregulated in mouse thymus tissue during spaceflight, with an adjusted p-value of 0.0",
|
| 1129 |
+
"total_reward": 0.9681818181818181,
|
| 1130 |
+
"verifier_scores": {
|
| 1131 |
+
"V1": 0.9500000000000001,
|
| 1132 |
+
"V4": 1.0
|
| 1133 |
+
},
|
| 1134 |
+
"question_type": "direction",
|
| 1135 |
+
"source": "genelab",
|
| 1136 |
+
"tissue": "thymus",
|
| 1137 |
+
"confidence": 0.85,
|
| 1138 |
+
"confidence_stated": "high"
|
| 1139 |
+
},
|
| 1140 |
+
{
|
| 1141 |
+
"prompt": "Explain the biological significance of Tnfa Signaling Via Nfkb pathway suppression in mouse thymus u",
|
| 1142 |
+
"response": "Tnfa Signaling Via Nfkb pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to prevent excessive inflammation and tissue damage. NF-\u03baB is a key regulator of inflammation, and its activation is often associated with tissue injury and disease. By suppressi",
|
| 1143 |
+
"total_reward": 0.6781076066790352,
|
| 1144 |
+
"verifier_scores": {
|
| 1145 |
+
"V1": 0.5714285714285714,
|
| 1146 |
+
"V4": 0.864795918367347
|
| 1147 |
+
},
|
| 1148 |
+
"question_type": "direction",
|
| 1149 |
+
"source": "genelab",
|
| 1150 |
+
"tissue": "thymus",
|
| 1151 |
+
"confidence": 0.55,
|
| 1152 |
+
"confidence_stated": "medium"
|
| 1153 |
+
},
|
| 1154 |
+
{
|
| 1155 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Uv Response Dn pathway upregulated or downregulate",
|
| 1156 |
+
"response": "Based on the GSEA results, the Uv Response Dn pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Explanation:\nThe GSEA results show that the Uv Response Dn pathway is significantly enriched in the spaceflight group compared to the ground control group. This indicates that g",
|
| 1157 |
+
"total_reward": 0.6606060606060606,
|
| 1158 |
+
"verifier_scores": {
|
| 1159 |
+
"V1": 0.4666666666666667,
|
| 1160 |
+
"V4": 1.0
|
| 1161 |
+
},
|
| 1162 |
+
"question_type": "direction",
|
| 1163 |
+
"source": "genelab",
|
| 1164 |
+
"tissue": "thymus",
|
| 1165 |
+
"confidence": 0.55,
|
| 1166 |
+
"confidence_stated": "medium"
|
| 1167 |
+
},
|
| 1168 |
+
{
|
| 1169 |
+
"prompt": "Explain the biological significance of Uv Response Dn pathway suppression in mouse thymus under spac",
|
| 1170 |
+
"response": "Uv Response Dn pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to reduce DNA damage and prevent cellular senescence. Spaceflight is associated with increased exposure to ionizing radiation, which can cause DNA damage and oxidative stress. By suppress",
|
| 1171 |
+
"total_reward": 0.9745454545454545,
|
| 1172 |
+
"verifier_scores": {
|
| 1173 |
+
"V1": 0.9600000000000001,
|
| 1174 |
+
"V4": 1.0
|
| 1175 |
+
},
|
| 1176 |
+
"question_type": "direction",
|
| 1177 |
+
"source": "genelab",
|
| 1178 |
+
"tissue": "thymus",
|
| 1179 |
+
"confidence": 0.55,
|
| 1180 |
+
"confidence_stated": "medium"
|
| 1181 |
+
},
|
| 1182 |
+
{
|
| 1183 |
+
"prompt": "In mouse thymus tissue during spaceflight, is the Xenobiotic Metabolism pathway upregulated or downr",
|
| 1184 |
+
"response": "Based on gene set enrichment analysis, the Xenobiotic Metabolism pathway is **downregulated** in mouse thymus tissue during spaceflight.\n\n### Justification:\nThe Xenobiotic Metabolism pathway is significantly downregulated in mouse thymus tissue during spaceflight, with a log2 fold change of -1.33 an",
|
| 1185 |
+
"total_reward": 0.9745454545454545,
|
| 1186 |
+
"verifier_scores": {
|
| 1187 |
+
"V1": 0.9600000000000001,
|
| 1188 |
+
"V4": 1.0
|
| 1189 |
+
},
|
| 1190 |
+
"question_type": "direction",
|
| 1191 |
+
"source": "genelab",
|
| 1192 |
+
"tissue": "thymus",
|
| 1193 |
+
"confidence": 0.85,
|
| 1194 |
+
"confidence_stated": "high"
|
| 1195 |
+
},
|
| 1196 |
+
{
|
| 1197 |
+
"prompt": "Explain the biological significance of Xenobiotic Metabolism pathway suppression in mouse thymus und",
|
| 1198 |
+
"response": "Xenobiotic metabolism pathway suppression in mouse thymus under spaceflight conditions is likely a protective mechanism to reduce oxidative stress and inflammation. Spaceflight is known to induce oxidative stress and inflammation in various tissues, including the thymus. Xenobiotic metabolism pathwa",
|
| 1199 |
+
"total_reward": 0.9575757575757575,
|
| 1200 |
+
"verifier_scores": {
|
| 1201 |
+
"V1": 0.9333333333333333,
|
| 1202 |
+
"V4": 1.0
|
| 1203 |
+
},
|
| 1204 |
+
"question_type": "direction",
|
| 1205 |
+
"source": "genelab",
|
| 1206 |
+
"tissue": "thymus",
|
| 1207 |
+
"confidence": 0.55,
|
| 1208 |
+
"confidence_stated": "medium"
|
| 1209 |
+
},
|
| 1210 |
+
{
|
| 1211 |
+
"prompt": "Is the Cholesterol Homeostasis pathway consistently activated or suppressed in mouse thymus across d",
|
| 1212 |
+
"response": "The Cholesterol Homeostasis pathway is consistently activated in mouse thymus across different spaceflight missions. The pathway is significantly upregulated in all three missions, with an average fold change of 1.65 across all three datasets. The direction of change is highly confident, with a p-va",
|
| 1213 |
+
"total_reward": 0.12000000000000002,
|
| 1214 |
+
"verifier_scores": {
|
| 1215 |
+
"V4": 0.12000000000000002
|
| 1216 |
+
},
|
| 1217 |
+
"question_type": "uncertainty",
|
| 1218 |
+
"source": "genelab",
|
| 1219 |
+
"tissue": "thymus",
|
| 1220 |
+
"confidence": 0.55,
|
| 1221 |
+
"confidence_stated": "medium"
|
| 1222 |
+
},
|
| 1223 |
+
{
|
| 1224 |
+
"prompt": "Is the Mtorc1 Signaling pathway consistently activated or suppressed in mouse thymus across differen",
|
| 1225 |
+
"response": "The Mtorc1 Signaling pathway is consistently activated in mouse thymus across different spaceflight missions. The direction of change is confident.\n\n### Evidence:\n- Mtorc1 Signaling pathway is activated in mouse thymus across different spaceflight missions:\n - Mtorc1 Signaling pathway is activated ",
|
| 1226 |
+
"total_reward": 0.040000000000000036,
|
| 1227 |
+
"verifier_scores": {
|
| 1228 |
+
"V4": 0.040000000000000036
|
| 1229 |
+
},
|
| 1230 |
+
"question_type": "uncertainty",
|
| 1231 |
+
"source": "genelab",
|
| 1232 |
+
"tissue": "thymus",
|
| 1233 |
+
"confidence": 0.5,
|
| 1234 |
+
"confidence_stated": "medium"
|
| 1235 |
+
},
|
| 1236 |
+
{
|
| 1237 |
+
"prompt": "Is the Myc Targets V2 pathway consistently activated or suppressed in mouse thymus across different ",
|
| 1238 |
+
"response": "The Myc Targets V2 pathway is consistently activated in mouse thymus across different spaceflight missions. The pathway is significantly upregulated",
|
| 1239 |
+
"total_reward": 0.040000000000000036,
|
| 1240 |
+
"verifier_scores": {
|
| 1241 |
+
"V4": 0.040000000000000036
|
| 1242 |
+
},
|
| 1243 |
+
"question_type": "uncertainty",
|
| 1244 |
+
"source": "genelab",
|
| 1245 |
+
"tissue": "thymus",
|
| 1246 |
+
"confidence": 0.5,
|
| 1247 |
+
"confidence_stated": "medium"
|
| 1248 |
+
},
|
| 1249 |
+
{
|
| 1250 |
+
"prompt": "Is the Oxidative Phosphorylation pathway consistently activated or suppressed in mouse thymus across",
|
| 1251 |
+
"response": "The Oxidative Phosphorylation pathway is consistently activated in",
|
| 1252 |
+
"total_reward": 0.040000000000000036,
|
| 1253 |
+
"verifier_scores": {
|
| 1254 |
+
"V4": 0.040000000000000036
|
| 1255 |
+
},
|
| 1256 |
+
"question_type": "uncertainty",
|
| 1257 |
+
"source": "genelab",
|
| 1258 |
+
"tissue": "thymus",
|
| 1259 |
+
"confidence": 0.5,
|
| 1260 |
+
"confidence_stated": "medium"
|
| 1261 |
+
},
|
| 1262 |
+
{
|
| 1263 |
+
"prompt": "Is the Peroxisome pathway consistently activated or suppressed in mouse thymus across different spac",
|
| 1264 |
+
"response": "The Peroxisome pathway is consistently activated in mouse thymus across different spaceflight missions. The direction of change is highly confident, with a p-value of 0.0001.\n\n### Justification:\nThe Peroxisome pathway is consistently activated in mouse thymus across different spaceflight missions. T",
|
| 1265 |
+
"total_reward": 0.12000000000000002,
|
| 1266 |
+
"verifier_scores": {
|
| 1267 |
+
"V4": 0.12000000000000002
|
| 1268 |
+
},
|
| 1269 |
+
"question_type": "uncertainty",
|
| 1270 |
+
"source": "genelab",
|
| 1271 |
+
"tissue": "thymus",
|
| 1272 |
+
"confidence": 0.5,
|
| 1273 |
+
"confidence_stated": "medium"
|
| 1274 |
+
},
|
| 1275 |
+
{
|
| 1276 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Adipogenesis pathway upregulated or downregulated bas",
|
| 1277 |
+
"response": "Based on the GSEA results, the Adipogenesis pathway is **downregulated** in mouse eye tissue during spaceflight. The confidence level is **high** due to the strong statistical significance (FDR q-value < 0.001).\n\n### Explanation:\nThe GSEA results show that the Adipogenesis pathway is significantly e",
|
| 1278 |
+
"total_reward": 0.2874125874125874,
|
| 1279 |
+
"verifier_scores": {
|
| 1280 |
+
"V1": 0.023076923076923078,
|
| 1281 |
+
"V4": 0.75
|
| 1282 |
+
},
|
| 1283 |
+
"question_type": "direction",
|
| 1284 |
+
"source": "genelab",
|
| 1285 |
+
"tissue": "eye",
|
| 1286 |
+
"confidence": 0.55,
|
| 1287 |
+
"confidence_stated": "medium"
|
| 1288 |
+
},
|
| 1289 |
+
{
|
| 1290 |
+
"prompt": "Explain the biological significance of Adipogenesis pathway activation in mouse eye under spacefligh",
|
| 1291 |
+
"response": "Upregulation of the PPAR signaling pathway in mouse eye under spaceflight conditions is likely a protective response to metabolic stress. PPARs are nuclear receptors that regulate lipid metabolism, and their activation has been shown to increase fatty acid oxidation and decrease lipid synthesis. Thi",
|
| 1292 |
+
"total_reward": 0.39765395894428146,
|
| 1293 |
+
"verifier_scores": {
|
| 1294 |
+
"V1": 0.3,
|
| 1295 |
+
"V4": 0.5685483870967742
|
| 1296 |
+
},
|
| 1297 |
+
"question_type": "direction",
|
| 1298 |
+
"source": "genelab",
|
| 1299 |
+
"tissue": "eye",
|
| 1300 |
+
"confidence": 0.55,
|
| 1301 |
+
"confidence_stated": "medium"
|
| 1302 |
+
},
|
| 1303 |
+
{
|
| 1304 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Fatty Acid Metabolism pathway upregulated or downregu",
|
| 1305 |
+
"response": "Based on the gene set enrichment analysis, the Fatty Acid Metabolism pathway is **downregulated** in mouse eye tissue during spaceflight. The confidence level is **high** based on the significant enrichment score (-log10(p-value) = 3.3).\n\n### Explanation:\nThe Fatty Acid Metabolism pathway is signifi",
|
| 1306 |
+
"total_reward": 0.35594405594405587,
|
| 1307 |
+
"verifier_scores": {
|
| 1308 |
+
"V1": 0.04285714285714286,
|
| 1309 |
+
"V4": 0.9038461538461536
|
| 1310 |
+
},
|
| 1311 |
+
"question_type": "direction",
|
| 1312 |
+
"source": "genelab",
|
| 1313 |
+
"tissue": "eye",
|
| 1314 |
+
"confidence": 0.5,
|
| 1315 |
+
"confidence_stated": "medium"
|
| 1316 |
+
},
|
| 1317 |
+
{
|
| 1318 |
+
"prompt": "Explain the biological significance of Fatty Acid Metabolism pathway activation in mouse eye under s",
|
| 1319 |
+
"response": "Fatty acid metabolism pathway activation in mouse eye under spaceflight conditions is likely a response to the stress of microgravity and space radiation. The pathway is involved in energy metabolism",
|
| 1320 |
+
"total_reward": 0.9681818181818181,
|
| 1321 |
+
"verifier_scores": {
|
| 1322 |
+
"V1": 0.9500000000000001,
|
| 1323 |
+
"V4": 1.0
|
| 1324 |
+
},
|
| 1325 |
+
"question_type": "direction",
|
| 1326 |
+
"source": "genelab",
|
| 1327 |
+
"tissue": "eye",
|
| 1328 |
+
"confidence": 0.55,
|
| 1329 |
+
"confidence_stated": "medium"
|
| 1330 |
+
},
|
| 1331 |
+
{
|
| 1332 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Mitotic Spindle pathway upregulated or downregulated ",
|
| 1333 |
+
"response": "Based on gene set enrichment analysis, the Mitotic Spindle pathway is **downregulated** in mouse eye tissue during spaceflight. This is supported by a log2 fold change of -0.43 and a p-value of 0.001. The confidence level is **high**.\n\n### Explanation:\nThe Mitotic Spindle pathway is a key regulator ",
|
| 1334 |
+
"total_reward": 0.9001765225066196,
|
| 1335 |
+
"verifier_scores": {
|
| 1336 |
+
"V1": 0.9714285714285715,
|
| 1337 |
+
"V4": 0.775485436893204
|
| 1338 |
+
},
|
| 1339 |
+
"question_type": "direction",
|
| 1340 |
+
"source": "genelab",
|
| 1341 |
+
"tissue": "eye",
|
| 1342 |
+
"confidence": 0.55,
|
| 1343 |
+
"confidence_stated": "medium"
|
| 1344 |
+
},
|
| 1345 |
+
{
|
| 1346 |
+
"prompt": "Explain the biological significance of Mitotic Spindle pathway suppression in mouse eye under spacef",
|
| 1347 |
+
"response": "Mitotic Spindle pathway suppression in mouse eye under spaceflight conditions is likely a protective mechanism to prevent cellular damage and promote recovery. Spaceflight is known to cause oxidative stress and DNA damage, which can disrupt mitosis and increase the risk of chromosomal abnormalities.",
|
| 1348 |
+
"total_reward": 0.9487209759937032,
|
| 1349 |
+
"verifier_scores": {
|
| 1350 |
+
"V1": 0.9333333333333333,
|
| 1351 |
+
"V4": 0.9756493506493504
|
| 1352 |
+
},
|
| 1353 |
+
"question_type": "direction",
|
| 1354 |
+
"source": "genelab",
|
| 1355 |
+
"tissue": "eye",
|
| 1356 |
+
"confidence": 0.55,
|
| 1357 |
+
"confidence_stated": "medium"
|
| 1358 |
+
},
|
| 1359 |
+
{
|
| 1360 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Mtorc1 Signaling pathway upregulated or downregulated",
|
| 1361 |
+
"response": "Based on the GSEA results, the Mtorc1 Signaling pathway is **downregulated** in mouse eye tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.86) and the large number of genes in the pathway (113).\n\n### Rationale:\nThe Mtorc1 Signaling pathway is a ",
|
| 1362 |
+
"total_reward": 0.3452088452088452,
|
| 1363 |
+
"verifier_scores": {
|
| 1364 |
+
"V1": 0.0,
|
| 1365 |
+
"V4": 0.9493243243243243
|
| 1366 |
+
},
|
| 1367 |
+
"question_type": "direction",
|
| 1368 |
+
"source": "genelab",
|
| 1369 |
+
"tissue": "eye",
|
| 1370 |
+
"confidence": 0.55,
|
| 1371 |
+
"confidence_stated": "medium"
|
| 1372 |
+
},
|
| 1373 |
+
{
|
| 1374 |
+
"prompt": "Explain the biological significance of Mtorc1 Signaling pathway activation in mouse eye under spacef",
|
| 1375 |
+
"response": "Mtorc1 Signaling pathway activation in mouse eye under spaceflight conditions is likely a protective response to mitigate the",
|
| 1376 |
+
"total_reward": 0.7472727272727273,
|
| 1377 |
+
"verifier_scores": {
|
| 1378 |
+
"V1": 0.9600000000000001,
|
| 1379 |
+
"V4": 0.3750000000000001
|
| 1380 |
+
},
|
| 1381 |
+
"question_type": "direction",
|
| 1382 |
+
"source": "genelab",
|
| 1383 |
+
"tissue": "eye",
|
| 1384 |
+
"confidence": 0.55,
|
| 1385 |
+
"confidence_stated": "medium"
|
| 1386 |
+
},
|
| 1387 |
+
{
|
| 1388 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Myc Targets V1 pathway upregulated or downregulated b",
|
| 1389 |
+
"response": "Based on the GSEA results, the Myc Targets V1 pathway is **downregulated** in mouse eye tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.71, FDR-adjusted p-value < 0.05).\n\n### Rationale:\nThe GSEA results show that the Myc Targets V1 pathway is s",
|
| 1390 |
+
"total_reward": 0.18181818181818185,
|
| 1391 |
+
"verifier_scores": {
|
| 1392 |
+
"V1": 0.0,
|
| 1393 |
+
"V4": 0.5000000000000001
|
| 1394 |
+
},
|
| 1395 |
+
"question_type": "direction",
|
| 1396 |
+
"source": "genelab",
|
| 1397 |
+
"tissue": "eye",
|
| 1398 |
+
"confidence": 0.55,
|
| 1399 |
+
"confidence_stated": "medium"
|
| 1400 |
+
},
|
| 1401 |
+
{
|
| 1402 |
+
"prompt": "Explain the biological significance of Myc Targets V1 pathway activation in mouse eye under spacefli",
|
| 1403 |
+
"response": "Myc Targets V1 pathway activation in mouse eye under spaceflight conditions is likely a compensatory response to the stress of spaceflight. Myc is a transcription factor that regulates cell proliferation and differentiation, and its activation is associated with increased cell growth and proliferati",
|
| 1404 |
+
"total_reward": 0.8255082470272344,
|
| 1405 |
+
"verifier_scores": {
|
| 1406 |
+
"V1": 0.9714285714285715,
|
| 1407 |
+
"V4": 0.5701476793248946
|
| 1408 |
+
},
|
| 1409 |
+
"question_type": "direction",
|
| 1410 |
+
"source": "genelab",
|
| 1411 |
+
"tissue": "eye",
|
| 1412 |
+
"confidence": 0.55,
|
| 1413 |
+
"confidence_stated": "medium"
|
| 1414 |
+
},
|
| 1415 |
+
{
|
| 1416 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Oxidative Phosphorylation pathway upregulated or down",
|
| 1417 |
+
"response": "In addition to the Oxidative Phosphorylation pathway, several other pathways are significantly enriched in the downregulated gene set:\n\n- **Mitochondrial translation** (NES = -2.19, FDR q-value = 0.002)\n- **Mitochondrial electron transport** (NES = -2.13, FDR q-value = 0.003)\n- **Mitochondrial prote",
|
| 1418 |
+
"total_reward": 0.5545454545454545,
|
| 1419 |
+
"verifier_scores": {
|
| 1420 |
+
"V1": 0.3,
|
| 1421 |
+
"V4": 1.0
|
| 1422 |
+
},
|
| 1423 |
+
"question_type": "direction",
|
| 1424 |
+
"source": "genelab",
|
| 1425 |
+
"tissue": "eye",
|
| 1426 |
+
"confidence": 0.5,
|
| 1427 |
+
"confidence_stated": "medium"
|
| 1428 |
+
},
|
| 1429 |
+
{
|
| 1430 |
+
"prompt": "Explain the biological significance of Oxidative Phosphorylation pathway activation in mouse eye und",
|
| 1431 |
+
"response": "Oxidative phosphorylation (OXPHOS) is a critical energy-generating pathway in cells, and its activation in mouse eye under spaceflight conditions suggests that the eye is responding to stress. The activation of OXPHOS pathway could be due to several mechanisms:\n\n1. **Increased energy demand**: Space",
|
| 1432 |
+
"total_reward": 0.8984848484848483,
|
| 1433 |
+
"verifier_scores": {
|
| 1434 |
+
"V1": 0.9833333333333334,
|
| 1435 |
+
"V4": 0.75
|
| 1436 |
+
},
|
| 1437 |
+
"question_type": "direction",
|
| 1438 |
+
"source": "genelab",
|
| 1439 |
+
"tissue": "eye",
|
| 1440 |
+
"confidence": 0.55,
|
| 1441 |
+
"confidence_stated": "medium"
|
| 1442 |
+
},
|
| 1443 |
+
{
|
| 1444 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Peroxisome pathway upregulated or downregulated based",
|
| 1445 |
+
"response": "Based on the GSEA results, the Peroxisome pathway is **downregulated** in mouse eye tissue during spaceflight. The confidence level is **high** due to the significant enrichment score (-2.98) and the large number of genes in the pathway (112).\n\n### Rationale:\nThe Peroxisome pathway is a collection o",
|
| 1446 |
+
"total_reward": 0.36363636363636365,
|
| 1447 |
+
"verifier_scores": {
|
| 1448 |
+
"V1": 0.0,
|
| 1449 |
+
"V4": 1.0
|
| 1450 |
+
},
|
| 1451 |
+
"question_type": "direction",
|
| 1452 |
+
"source": "genelab",
|
| 1453 |
+
"tissue": "eye",
|
| 1454 |
+
"confidence": 0.5,
|
| 1455 |
+
"confidence_stated": "medium"
|
| 1456 |
+
},
|
| 1457 |
+
{
|
| 1458 |
+
"prompt": "Explain the biological significance of Peroxisome pathway activation in mouse eye under spaceflight ",
|
| 1459 |
+
"response": "Peroxisome pathway activation in mouse eye under spaceflight conditions is likely a protective response to oxidative stress. Peroxisomes are organelles that play a key role in detoxification and lipid metabolism, and their activation suggests an increased need for these functions in the spaceflight ",
|
| 1460 |
+
"total_reward": 0.9902097902097902,
|
| 1461 |
+
"verifier_scores": {
|
| 1462 |
+
"V1": 0.9846153846153847,
|
| 1463 |
+
"V4": 1.0
|
| 1464 |
+
},
|
| 1465 |
+
"question_type": "direction",
|
| 1466 |
+
"source": "genelab",
|
| 1467 |
+
"tissue": "eye",
|
| 1468 |
+
"confidence": 0.55,
|
| 1469 |
+
"confidence_stated": "medium"
|
| 1470 |
+
},
|
| 1471 |
+
{
|
| 1472 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Reactive Oxygen Species Pathway pathway upregulated o",
|
| 1473 |
+
"response": "Based on the gene set enrichment analysis, the Reactive Oxygen Species Pathway pathway is **downregulated** in mouse eye tissue during spaceflight. The confidence level is **high** based on the significant enrichment score (-2.33) and the large number of genes in the pathway (104).\n\n### Rationale:\nT",
|
| 1474 |
+
"total_reward": 0.4035266457680251,
|
| 1475 |
+
"verifier_scores": {
|
| 1476 |
+
"V1": 0.07500000000000001,
|
| 1477 |
+
"V4": 0.9784482758620691
|
| 1478 |
+
},
|
| 1479 |
+
"question_type": "direction",
|
| 1480 |
+
"source": "genelab",
|
| 1481 |
+
"tissue": "eye",
|
| 1482 |
+
"confidence": 0.55,
|
| 1483 |
+
"confidence_stated": "medium"
|
| 1484 |
+
},
|
| 1485 |
+
{
|
| 1486 |
+
"prompt": "Explain the biological significance of Reactive Oxygen Species Pathway pathway activation in mouse e",
|
| 1487 |
+
"response": "Reactive oxygen species (ROS) are byproducts of normal cellular metabolism that can cause oxidative stress when produced in excess. Under spaceflight conditions, ROS pathway activation in mouse eye may be driven by several mechanisms:\n\n1. **Hypoxia**: Spaceflight is associated with reduced oxygen le",
|
| 1488 |
+
"total_reward": 0.984090909090909,
|
| 1489 |
+
"verifier_scores": {
|
| 1490 |
+
"V1": 0.9750000000000001,
|
| 1491 |
+
"V4": 1.0
|
| 1492 |
+
},
|
| 1493 |
+
"question_type": "direction",
|
| 1494 |
+
"source": "genelab",
|
| 1495 |
+
"tissue": "eye",
|
| 1496 |
+
"confidence": 0.55,
|
| 1497 |
+
"confidence_stated": "medium"
|
| 1498 |
+
},
|
| 1499 |
+
{
|
| 1500 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Uv Response Up pathway upregulated or downregulated b",
|
| 1501 |
+
"response": "Based on gene set enrichment analysis, the Uv Response Up pathway is **downregulated** in mouse eye tissue during spaceflight.\n\n### Justification:\nThe Uv Response Up pathway is significantly downregulated in mouse eye tissue during spaceflight, with an adjusted p-value of 0.00016. This indicates tha",
|
| 1502 |
+
"total_reward": 0.2939393939393939,
|
| 1503 |
+
"verifier_scores": {
|
| 1504 |
+
"V1": 0.03333333333333333,
|
| 1505 |
+
"V4": 0.75
|
| 1506 |
+
},
|
| 1507 |
+
"question_type": "direction",
|
| 1508 |
+
"source": "genelab",
|
| 1509 |
+
"tissue": "eye",
|
| 1510 |
+
"confidence": 0.55,
|
| 1511 |
+
"confidence_stated": "medium"
|
| 1512 |
+
},
|
| 1513 |
+
{
|
| 1514 |
+
"prompt": "Explain the biological significance of Uv Response Up pathway activation in mouse eye under spacefli",
|
| 1515 |
+
"response": "The Uv Response Up pathway is a complex biological process that involves the regulation of genes and proteins in response to ultraviolet (UV) radiation. In the context of spaceflight, this pathway is activated in the mouse eye due to the increased exposure to UV radiation from the sun.\n\nThe biologic",
|
| 1516 |
+
"total_reward": 0.9575757575757575,
|
| 1517 |
+
"verifier_scores": {
|
| 1518 |
+
"V1": 0.9333333333333333,
|
| 1519 |
+
"V4": 1.0
|
| 1520 |
+
},
|
| 1521 |
+
"question_type": "direction",
|
| 1522 |
+
"source": "genelab",
|
| 1523 |
+
"tissue": "eye",
|
| 1524 |
+
"confidence": 0.55,
|
| 1525 |
+
"confidence_stated": "medium"
|
| 1526 |
+
},
|
| 1527 |
+
{
|
| 1528 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Xenobiotic Metabolism pathway upregulated or downregu",
|
| 1529 |
+
"response": "Based on the gene set enrichment analysis, the Xenobiotic Metabolism pathway is **downregulated** in mouse eye tissue during spaceflight. This is supported by the fact that the pathway has a negative log2 fold change (-0.53) and a low p-value (0.001).\n\n### Confidence Level:\nHigh confidence\n\n### Expl",
|
| 1530 |
+
"total_reward": 0.3,
|
| 1531 |
+
"verifier_scores": {
|
| 1532 |
+
"V1": 0.04285714285714286,
|
| 1533 |
+
"V4": 0.75
|
| 1534 |
+
},
|
| 1535 |
+
"question_type": "direction",
|
| 1536 |
+
"source": "genelab",
|
| 1537 |
+
"tissue": "eye",
|
| 1538 |
+
"confidence": 0.55,
|
| 1539 |
+
"confidence_stated": "medium"
|
| 1540 |
+
},
|
| 1541 |
+
{
|
| 1542 |
+
"prompt": "Explain the biological significance of Xenobiotic Metabolism pathway activation in mouse eye under s",
|
| 1543 |
+
"response": "Xenobiotic metabolism pathway activation in mouse eye under spaceflight conditions is likely a protective response to the stress of spaceflight. This pathway is responsible for metabolizing and detoxifying foreign compounds, including those that may be present in the space environment.\n\nThe activati",
|
| 1544 |
+
"total_reward": 0.9681818181818181,
|
| 1545 |
+
"verifier_scores": {
|
| 1546 |
+
"V1": 0.9500000000000001,
|
| 1547 |
+
"V4": 1.0
|
| 1548 |
+
},
|
| 1549 |
+
"question_type": "direction",
|
| 1550 |
+
"source": "genelab",
|
| 1551 |
+
"tissue": "eye",
|
| 1552 |
+
"confidence": 0.55,
|
| 1553 |
+
"confidence_stated": "medium"
|
| 1554 |
+
},
|
| 1555 |
+
{
|
| 1556 |
+
"prompt": "Is the E2F Targets pathway consistently activated or suppressed in mouse eye across different spacef",
|
| 1557 |
+
"response": "The E2F Targets pathway is consistently activated in mouse brain across different spaceflight missions. The direction of change is highly confident, with a p-value of 0.0001.\n\n### Justification:\nThe E2F Targets pathway is significantly activated in mouse brain across all three spaceflight missions (",
|
| 1558 |
+
"total_reward": 0.12000000000000002,
|
| 1559 |
+
"verifier_scores": {
|
| 1560 |
+
"V4": 0.12000000000000002
|
| 1561 |
+
},
|
| 1562 |
+
"question_type": "uncertainty",
|
| 1563 |
+
"source": "genelab",
|
| 1564 |
+
"tissue": "eye",
|
| 1565 |
+
"confidence": 0.85,
|
| 1566 |
+
"confidence_stated": "high"
|
| 1567 |
+
},
|
| 1568 |
+
{
|
| 1569 |
+
"prompt": "Is the Interferon Alpha Response pathway consistently activated or suppressed in mouse eye across di",
|
| 1570 |
+
"response": "The Interferon Alpha Response pathway is consistently activated in mouse eye across different spaceflight missions. The direction of change is confident.\n\n### Evidence:\n- Mouse eye: Interferon Alpha Response pathway is activated in all spaceflight missions (upregulated in 2/2 missions, p-value < 0.0",
|
| 1571 |
+
"total_reward": 0.040000000000000036,
|
| 1572 |
+
"verifier_scores": {
|
| 1573 |
+
"V4": 0.040000000000000036
|
| 1574 |
+
},
|
| 1575 |
+
"question_type": "uncertainty",
|
| 1576 |
+
"source": "genelab",
|
| 1577 |
+
"tissue": "eye",
|
| 1578 |
+
"confidence": 0.5,
|
| 1579 |
+
"confidence_stated": "medium"
|
| 1580 |
+
},
|
| 1581 |
+
{
|
| 1582 |
+
"prompt": "Is the Interferon Gamma Response pathway consistently activated or suppressed in mouse eye across di",
|
| 1583 |
+
"response": "The Interferon Gamma Response pathway is consistently activated in mouse eye across different spaceflight missions. The direction of change is highly confident, with a p-value of 0.0001.\n\n### Justification:\nThe Interferon Gamma Response pathway is significantly activated in mouse eye across all spac",
|
| 1584 |
+
"total_reward": 0.12000000000000002,
|
| 1585 |
+
"verifier_scores": {
|
| 1586 |
+
"V4": 0.12000000000000002
|
| 1587 |
+
},
|
| 1588 |
+
"question_type": "uncertainty",
|
| 1589 |
+
"source": "genelab",
|
| 1590 |
+
"tissue": "eye",
|
| 1591 |
+
"confidence": 0.55,
|
| 1592 |
+
"confidence_stated": "medium"
|
| 1593 |
+
},
|
| 1594 |
+
{
|
| 1595 |
+
"prompt": "Is the Myogenesis pathway consistently activated or suppressed in mouse eye across different spacefl",
|
| 1596 |
+
"response": "The Myogenesis pathway is consistently activated in mouse eye across different spaceflight missions. The direction of change is confident based on the large effect size and consistent pattern across multiple datasets.",
|
| 1597 |
+
"total_reward": 0.040000000000000036,
|
| 1598 |
+
"verifier_scores": {
|
| 1599 |
+
"V4": 0.040000000000000036
|
| 1600 |
+
},
|
| 1601 |
+
"question_type": "uncertainty",
|
| 1602 |
+
"source": "genelab",
|
| 1603 |
+
"tissue": "eye",
|
| 1604 |
+
"confidence": 0.5,
|
| 1605 |
+
"confidence_stated": "medium"
|
| 1606 |
+
},
|
| 1607 |
+
{
|
| 1608 |
+
"prompt": "How conserved are pathway-level responses to spaceflight across different missions in mouse thymus? ",
|
| 1609 |
+
"response": "Pathway-level responses to spaceflight are moderately conserved across different missions in mouse thymus. The enrichment patterns are reproducible, with some pathways consistently up- or down-regulated across missions.\n\n##### Key Findings:\n- **Spaceflight-induced pathway enrichment patterns are mod",
|
| 1610 |
+
"total_reward": 0.8,
|
| 1611 |
+
"verifier_scores": {
|
| 1612 |
+
"V2": 1.0,
|
| 1613 |
+
"V4": 0.5000000000000001
|
| 1614 |
+
},
|
| 1615 |
+
"question_type": "direction",
|
| 1616 |
+
"source": "genelab",
|
| 1617 |
+
"tissue": "thymus",
|
| 1618 |
+
"confidence": 0.5,
|
| 1619 |
+
"confidence_stated": "medium"
|
| 1620 |
+
},
|
| 1621 |
+
{
|
| 1622 |
+
"prompt": "How conserved are pathway-level responses to spaceflight across different missions in mouse eye? Are",
|
| 1623 |
+
"response": "Pathway-level responses to spaceflight are moderately conserved across different missions in mouse eye. The enrichment patterns are reproducible, with some pathways consistently up- or down-regulated.\n\n##### Key Findings:\n- **Spaceflight-induced pathways**:\n - **Commonly up-regulated**: Cell cycle,",
|
| 1624 |
+
"total_reward": 1.0,
|
| 1625 |
+
"verifier_scores": {
|
| 1626 |
+
"V2": 1.0,
|
| 1627 |
+
"V4": 1.0
|
| 1628 |
+
},
|
| 1629 |
+
"question_type": "direction",
|
| 1630 |
+
"source": "genelab",
|
| 1631 |
+
"tissue": "eye",
|
| 1632 |
+
"confidence": 0.55,
|
| 1633 |
+
"confidence_stated": "medium"
|
| 1634 |
+
}
|
| 1635 |
+
]
|
| 1636 |
+
}
|
results/grpo_mve_eval_20260321_063358.json
ADDED
|
@@ -0,0 +1,490 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"model_path": "./biogrpo_mve_model",
|
| 3 |
+
"base_model": "mistralai/Mistral-7B-v0.3",
|
| 4 |
+
"evaluation_date": "2026-03-21T07:06:52.305272",
|
| 5 |
+
"hold_out_tissues": [
|
| 6 |
+
"eye"
|
| 7 |
+
],
|
| 8 |
+
"eval_dataset_stats": {
|
| 9 |
+
"total": 25,
|
| 10 |
+
"by_source": {
|
| 11 |
+
"genelab": 25
|
| 12 |
+
},
|
| 13 |
+
"by_question_type": {
|
| 14 |
+
"direction": 21,
|
| 15 |
+
"uncertainty": 4
|
| 16 |
+
},
|
| 17 |
+
"by_tissue": {
|
| 18 |
+
"eye": 25
|
| 19 |
+
},
|
| 20 |
+
"by_difficulty": {
|
| 21 |
+
"medium": 11,
|
| 22 |
+
"hard": 14
|
| 23 |
+
}
|
| 24 |
+
},
|
| 25 |
+
"grpo": {
|
| 26 |
+
"mean_reward": 0.650250895983472,
|
| 27 |
+
"verifier_means": {
|
| 28 |
+
"V1": 0.6398707015207016,
|
| 29 |
+
"V4": 0.7458757437303278,
|
| 30 |
+
"V2": 1.0
|
| 31 |
+
},
|
| 32 |
+
"by_question_type": {
|
| 33 |
+
"direction": 0.7220706325685973,
|
| 34 |
+
"uncertainty": 0.27319727891156464
|
| 35 |
+
},
|
| 36 |
+
"n_samples": 25
|
| 37 |
+
},
|
| 38 |
+
"calibration": {
|
| 39 |
+
"ece": 0.07799999999999996,
|
| 40 |
+
"mce": 0.07799999999999996,
|
| 41 |
+
"brier_score": 0.2371,
|
| 42 |
+
"overconfidence_rate": 0.0,
|
| 43 |
+
"underconfidence_rate": 0.0,
|
| 44 |
+
"mean_confidence": 0.522,
|
| 45 |
+
"mean_accuracy": 0.6,
|
| 46 |
+
"n_samples": 25,
|
| 47 |
+
"reliability_bins": [
|
| 48 |
+
{
|
| 49 |
+
"bin_lower": 0.0,
|
| 50 |
+
"bin_upper": 0.1,
|
| 51 |
+
"mean_confidence": 0.05,
|
| 52 |
+
"mean_accuracy": 0.0,
|
| 53 |
+
"count": 0,
|
| 54 |
+
"calibration_error": 0.0
|
| 55 |
+
},
|
| 56 |
+
{
|
| 57 |
+
"bin_lower": 0.1,
|
| 58 |
+
"bin_upper": 0.2,
|
| 59 |
+
"mean_confidence": 0.15000000000000002,
|
| 60 |
+
"mean_accuracy": 0.0,
|
| 61 |
+
"count": 0,
|
| 62 |
+
"calibration_error": 0.0
|
| 63 |
+
},
|
| 64 |
+
{
|
| 65 |
+
"bin_lower": 0.2,
|
| 66 |
+
"bin_upper": 0.30000000000000004,
|
| 67 |
+
"mean_confidence": 0.25,
|
| 68 |
+
"mean_accuracy": 0.0,
|
| 69 |
+
"count": 0,
|
| 70 |
+
"calibration_error": 0.0
|
| 71 |
+
},
|
| 72 |
+
{
|
| 73 |
+
"bin_lower": 0.30000000000000004,
|
| 74 |
+
"bin_upper": 0.4,
|
| 75 |
+
"mean_confidence": 0.35000000000000003,
|
| 76 |
+
"mean_accuracy": 0.0,
|
| 77 |
+
"count": 0,
|
| 78 |
+
"calibration_error": 0.0
|
| 79 |
+
},
|
| 80 |
+
{
|
| 81 |
+
"bin_lower": 0.4,
|
| 82 |
+
"bin_upper": 0.5,
|
| 83 |
+
"mean_confidence": 0.45,
|
| 84 |
+
"mean_accuracy": 0.0,
|
| 85 |
+
"count": 0,
|
| 86 |
+
"calibration_error": 0.0
|
| 87 |
+
},
|
| 88 |
+
{
|
| 89 |
+
"bin_lower": 0.5,
|
| 90 |
+
"bin_upper": 0.6000000000000001,
|
| 91 |
+
"mean_confidence": 0.522,
|
| 92 |
+
"mean_accuracy": 0.6,
|
| 93 |
+
"count": 25,
|
| 94 |
+
"calibration_error": 0.07799999999999996
|
| 95 |
+
},
|
| 96 |
+
{
|
| 97 |
+
"bin_lower": 0.6000000000000001,
|
| 98 |
+
"bin_upper": 0.7000000000000001,
|
| 99 |
+
"mean_confidence": 0.6500000000000001,
|
| 100 |
+
"mean_accuracy": 0.0,
|
| 101 |
+
"count": 0,
|
| 102 |
+
"calibration_error": 0.0
|
| 103 |
+
},
|
| 104 |
+
{
|
| 105 |
+
"bin_lower": 0.7000000000000001,
|
| 106 |
+
"bin_upper": 0.8,
|
| 107 |
+
"mean_confidence": 0.75,
|
| 108 |
+
"mean_accuracy": 0.0,
|
| 109 |
+
"count": 0,
|
| 110 |
+
"calibration_error": 0.0
|
| 111 |
+
},
|
| 112 |
+
{
|
| 113 |
+
"bin_lower": 0.8,
|
| 114 |
+
"bin_upper": 0.9,
|
| 115 |
+
"mean_confidence": 0.8500000000000001,
|
| 116 |
+
"mean_accuracy": 0.0,
|
| 117 |
+
"count": 0,
|
| 118 |
+
"calibration_error": 0.0
|
| 119 |
+
},
|
| 120 |
+
{
|
| 121 |
+
"bin_lower": 0.9,
|
| 122 |
+
"bin_upper": 1.0,
|
| 123 |
+
"mean_confidence": 0.95,
|
| 124 |
+
"mean_accuracy": 0.0,
|
| 125 |
+
"count": 0,
|
| 126 |
+
"calibration_error": 0.0
|
| 127 |
+
}
|
| 128 |
+
]
|
| 129 |
+
},
|
| 130 |
+
"baseline_comparison": {
|
| 131 |
+
"sft_mean_reward": 0.5470666666666666,
|
| 132 |
+
"sft_ece": 0.258,
|
| 133 |
+
"delta_reward": 0.10318422931680538,
|
| 134 |
+
"delta_ece": -0.18000000000000005
|
| 135 |
+
},
|
| 136 |
+
"success_criteria": {
|
| 137 |
+
"reward_above_05": true,
|
| 138 |
+
"ece_below_015": true,
|
| 139 |
+
"reward_above_baseline": true,
|
| 140 |
+
"overall_pass": true
|
| 141 |
+
},
|
| 142 |
+
"per_sample": [
|
| 143 |
+
{
|
| 144 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Adipogenesis pathway upregulated or downregulated bas",
|
| 145 |
+
"response": "The Adipogenesis pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\n1. Download the GSEA results from the GSEA webpage.\n2. Open the GSEA results in Excel.\n3. Sort the results by the \"NES\" column.\n4. Find the Adipogenesis pathway in the sorted list.\n5. Check the \"NES\" val",
|
| 146 |
+
"total_reward": 0.47878787878787876,
|
| 147 |
+
"verifier_scores": {
|
| 148 |
+
"V1": 0.4666666666666667,
|
| 149 |
+
"V4": 0.5000000000000001
|
| 150 |
+
},
|
| 151 |
+
"question_type": "direction",
|
| 152 |
+
"source": "genelab",
|
| 153 |
+
"tissue": "eye",
|
| 154 |
+
"confidence": 0.55,
|
| 155 |
+
"confidence_stated": "medium"
|
| 156 |
+
},
|
| 157 |
+
{
|
| 158 |
+
"prompt": "Explain the biological significance of Adipogenesis pathway activation in mouse eye under spacefligh",
|
| 159 |
+
"response": "The Adipogenesis pathway is activated in the mouse eye under spaceflight conditions. This activation is likely due to the increased levels of inflammation and oxidative stress that are present in the eye during spaceflight. The increased levels of inflammation and oxidative stress can lead to the ac",
|
| 160 |
+
"total_reward": 0.9949090909090907,
|
| 161 |
+
"verifier_scores": {
|
| 162 |
+
"V1": 0.992,
|
| 163 |
+
"V4": 1.0
|
| 164 |
+
},
|
| 165 |
+
"question_type": "direction",
|
| 166 |
+
"source": "genelab",
|
| 167 |
+
"tissue": "eye",
|
| 168 |
+
"confidence": 0.55,
|
| 169 |
+
"confidence_stated": "medium"
|
| 170 |
+
},
|
| 171 |
+
{
|
| 172 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Fatty Acid Metabolism pathway upregulated or downregu",
|
| 173 |
+
"response": "The Fatty Acid Metabolism pathway is upregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\nThe data was downloaded from the Gene Expression Omnibus (GEO) database (accession number: GSE128325). The raw data was processed using the R package \"limma\" to identify differentially expressed g",
|
| 174 |
+
"total_reward": 0.9872727272727272,
|
| 175 |
+
"verifier_scores": {
|
| 176 |
+
"V1": 0.9800000000000001,
|
| 177 |
+
"V4": 1.0
|
| 178 |
+
},
|
| 179 |
+
"question_type": "direction",
|
| 180 |
+
"source": "genelab",
|
| 181 |
+
"tissue": "eye",
|
| 182 |
+
"confidence": 0.55,
|
| 183 |
+
"confidence_stated": "medium"
|
| 184 |
+
},
|
| 185 |
+
{
|
| 186 |
+
"prompt": "Explain the biological significance of Fatty Acid Metabolism pathway activation in mouse eye under s",
|
| 187 |
+
"response": "The activation of the Fatty Acid Metabolism pathway in mouse eye under spaceflight conditions is likely due to the increased demand for energy during spaceflight. Spaceflight is a stressful environment for the body, and the body must work harder to maintain homeostasis. This increased demand for ene",
|
| 188 |
+
"total_reward": 0.9872727272727272,
|
| 189 |
+
"verifier_scores": {
|
| 190 |
+
"V1": 0.9800000000000001,
|
| 191 |
+
"V4": 1.0
|
| 192 |
+
},
|
| 193 |
+
"question_type": "direction",
|
| 194 |
+
"source": "genelab",
|
| 195 |
+
"tissue": "eye",
|
| 196 |
+
"confidence": 0.55,
|
| 197 |
+
"confidence_stated": "medium"
|
| 198 |
+
},
|
| 199 |
+
{
|
| 200 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Mitotic Spindle pathway upregulated or downregulated ",
|
| 201 |
+
"response": "The Mitotic Spindle pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\nThe data was downloaded from the GEO database (GSE122230). The data was processed using the limma package in R. The data was normalized using the voom function. The data was then filtered using the fi",
|
| 202 |
+
"total_reward": 0.9575757575757575,
|
| 203 |
+
"verifier_scores": {
|
| 204 |
+
"V1": 0.9333333333333333,
|
| 205 |
+
"V4": 1.0
|
| 206 |
+
},
|
| 207 |
+
"question_type": "direction",
|
| 208 |
+
"source": "genelab",
|
| 209 |
+
"tissue": "eye",
|
| 210 |
+
"confidence": 0.5,
|
| 211 |
+
"confidence_stated": "medium"
|
| 212 |
+
},
|
| 213 |
+
{
|
| 214 |
+
"prompt": "Explain the biological significance of Mitotic Spindle pathway suppression in mouse eye under spacef",
|
| 215 |
+
"response": "The mitotic spindle is a structure that forms during cell division and is responsible for separating the chromosomes into two daughter cells. In the mouse eye, the mitotic spindle is responsible for the proper separation of the cells that make up the retina. Under spaceflight conditions, the mitotic",
|
| 216 |
+
"total_reward": 0.8022727272727272,
|
| 217 |
+
"verifier_scores": {
|
| 218 |
+
"V1": 0.9750000000000001,
|
| 219 |
+
"V4": 0.5000000000000001
|
| 220 |
+
},
|
| 221 |
+
"question_type": "direction",
|
| 222 |
+
"source": "genelab",
|
| 223 |
+
"tissue": "eye",
|
| 224 |
+
"confidence": 0.5,
|
| 225 |
+
"confidence_stated": "medium"
|
| 226 |
+
},
|
| 227 |
+
{
|
| 228 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Mtorc1 Signaling pathway upregulated or downregulated",
|
| 229 |
+
"response": "The Mtorc1 Signaling pathway is upregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\n1. Download the gene set enrichment analysis (GSEA) results from the [Gene Expression Omnibus (GEO)](https://www.ncbi.nlm.nih.gov/geo/).\n\n2. Use the [R programming language](https://www.r-project.org/)",
|
| 230 |
+
"total_reward": 0.9939393939393939,
|
| 231 |
+
"verifier_scores": {
|
| 232 |
+
"V1": 0.9904761904761905,
|
| 233 |
+
"V4": 1.0
|
| 234 |
+
},
|
| 235 |
+
"question_type": "direction",
|
| 236 |
+
"source": "genelab",
|
| 237 |
+
"tissue": "eye",
|
| 238 |
+
"confidence": 0.5,
|
| 239 |
+
"confidence_stated": "medium"
|
| 240 |
+
},
|
| 241 |
+
{
|
| 242 |
+
"prompt": "Explain the biological significance of Mtorc1 Signaling pathway activation in mouse eye under spacef",
|
| 243 |
+
"response": "Mtorc1 is a protein that plays a key role in the regulation of cell growth and metabolism. It is a serine/threonine kinase that is activated by growth factors and other extracellular signals. In the mouse eye, Mtorc1 signaling is important for the development and maintenance of the retina.\n\nUnder sp",
|
| 244 |
+
"total_reward": 0.9872727272727272,
|
| 245 |
+
"verifier_scores": {
|
| 246 |
+
"V1": 0.9800000000000001,
|
| 247 |
+
"V4": 1.0
|
| 248 |
+
},
|
| 249 |
+
"question_type": "direction",
|
| 250 |
+
"source": "genelab",
|
| 251 |
+
"tissue": "eye",
|
| 252 |
+
"confidence": 0.55,
|
| 253 |
+
"confidence_stated": "medium"
|
| 254 |
+
},
|
| 255 |
+
{
|
| 256 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Myc Targets V1 pathway upregulated or downregulated b",
|
| 257 |
+
"response": "The Myc Targets V1 pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Evidence:\n\nThe Myc Targets V1 pathway is downregulated in mouse eye tissue during spaceflight. This is supported by the results of the gene set enrichment analysis, which showed that the Myc Targets V1 pathway w",
|
| 258 |
+
"total_reward": 0.2939393939393939,
|
| 259 |
+
"verifier_scores": {
|
| 260 |
+
"V1": 0.03333333333333333,
|
| 261 |
+
"V4": 0.75
|
| 262 |
+
},
|
| 263 |
+
"question_type": "direction",
|
| 264 |
+
"source": "genelab",
|
| 265 |
+
"tissue": "eye",
|
| 266 |
+
"confidence": 0.55,
|
| 267 |
+
"confidence_stated": "medium"
|
| 268 |
+
},
|
| 269 |
+
{
|
| 270 |
+
"prompt": "Explain the biological significance of Myc Targets V1 pathway activation in mouse eye under spacefli",
|
| 271 |
+
"response": "The Myc Targets V1 pathway is a key regulator of cell proliferation and differentiation in the eye. In spaceflight conditions, the Myc Targets V1 pathway is activated, leading to increased cell proliferation and differentiation in the mouse eye. This activation is likely driven by a combination of f",
|
| 272 |
+
"total_reward": 0.9189750547959502,
|
| 273 |
+
"verifier_scores": {
|
| 274 |
+
"V1": 0.9846153846153847,
|
| 275 |
+
"V4": 0.8041044776119401
|
| 276 |
+
},
|
| 277 |
+
"question_type": "direction",
|
| 278 |
+
"source": "genelab",
|
| 279 |
+
"tissue": "eye",
|
| 280 |
+
"confidence": 0.55,
|
| 281 |
+
"confidence_stated": "medium"
|
| 282 |
+
},
|
| 283 |
+
{
|
| 284 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Oxidative Phosphorylation pathway upregulated or down",
|
| 285 |
+
"response": "The Oxidative Phosphorylation pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\nThe Oxidative Phosphorylation pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Results:\n\nThe Oxidative Phosphorylation pathway is downregulated in mouse eye tissue durin",
|
| 286 |
+
"total_reward": 0.18181818181818185,
|
| 287 |
+
"verifier_scores": {
|
| 288 |
+
"V1": 0.0,
|
| 289 |
+
"V4": 0.5000000000000001
|
| 290 |
+
},
|
| 291 |
+
"question_type": "direction",
|
| 292 |
+
"source": "genelab",
|
| 293 |
+
"tissue": "eye",
|
| 294 |
+
"confidence": 0.5,
|
| 295 |
+
"confidence_stated": "medium"
|
| 296 |
+
},
|
| 297 |
+
{
|
| 298 |
+
"prompt": "Explain the biological significance of Oxidative Phosphorylation pathway activation in mouse eye und",
|
| 299 |
+
"response": "Oxidative phosphorylation is a process by which cells produce energy in the form of ATP. It is a series of chemical reactions that occur in the mitochondria of cells. The process begins with the breakdown of glucose, which releases energy in the form of electrons. These electrons are then transferre",
|
| 300 |
+
"total_reward": 0.9884297520661156,
|
| 301 |
+
"verifier_scores": {
|
| 302 |
+
"V1": 0.9818181818181819,
|
| 303 |
+
"V4": 1.0
|
| 304 |
+
},
|
| 305 |
+
"question_type": "direction",
|
| 306 |
+
"source": "genelab",
|
| 307 |
+
"tissue": "eye",
|
| 308 |
+
"confidence": 0.55,
|
| 309 |
+
"confidence_stated": "medium"
|
| 310 |
+
},
|
| 311 |
+
{
|
| 312 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Peroxisome pathway upregulated or downregulated based",
|
| 313 |
+
"response": "The Peroxisome pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\nThe following code was used to perform the analysis:\n\n```\n# Load libraries\nlibrary(tidyverse)\nlibrary(ggplot2)\nlibrary(ggpubr)\nlibrary(ggrepel)\nlibrary(ggthemes)\nlibrary(ggtext)\nlibrary(ggrepel)\nlibrary(gg",
|
| 314 |
+
"total_reward": 0.36363636363636365,
|
| 315 |
+
"verifier_scores": {
|
| 316 |
+
"V1": 0.0,
|
| 317 |
+
"V4": 1.0
|
| 318 |
+
},
|
| 319 |
+
"question_type": "direction",
|
| 320 |
+
"source": "genelab",
|
| 321 |
+
"tissue": "eye",
|
| 322 |
+
"confidence": 0.5,
|
| 323 |
+
"confidence_stated": "medium"
|
| 324 |
+
},
|
| 325 |
+
{
|
| 326 |
+
"prompt": "Explain the biological significance of Peroxisome pathway activation in mouse eye under spaceflight ",
|
| 327 |
+
"response": "The peroxisome pathway is a metabolic pathway that is involved in the breakdown of fatty acids and the production of energy. It is also involved in the production of reactive oxygen species (ROS), which can cause damage to cells. In spaceflight, the peroxisome pathway is activated in mouse eye tissu",
|
| 328 |
+
"total_reward": 0.9745454545454545,
|
| 329 |
+
"verifier_scores": {
|
| 330 |
+
"V1": 0.9600000000000001,
|
| 331 |
+
"V4": 1.0
|
| 332 |
+
},
|
| 333 |
+
"question_type": "direction",
|
| 334 |
+
"source": "genelab",
|
| 335 |
+
"tissue": "eye",
|
| 336 |
+
"confidence": 0.55,
|
| 337 |
+
"confidence_stated": "medium"
|
| 338 |
+
},
|
| 339 |
+
{
|
| 340 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Reactive Oxygen Species Pathway pathway upregulated o",
|
| 341 |
+
"response": "The Reactive Oxygen Species Pathway pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\nThe Reactive Oxygen Species Pathway pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Results:\n\nThe Reactive Oxygen Species Pathway pathway is downregulated in mous",
|
| 342 |
+
"total_reward": 0.18181818181818185,
|
| 343 |
+
"verifier_scores": {
|
| 344 |
+
"V1": 0.0,
|
| 345 |
+
"V4": 0.5000000000000001
|
| 346 |
+
},
|
| 347 |
+
"question_type": "direction",
|
| 348 |
+
"source": "genelab",
|
| 349 |
+
"tissue": "eye",
|
| 350 |
+
"confidence": 0.5,
|
| 351 |
+
"confidence_stated": "medium"
|
| 352 |
+
},
|
| 353 |
+
{
|
| 354 |
+
"prompt": "Explain the biological significance of Reactive Oxygen Species Pathway pathway activation in mouse e",
|
| 355 |
+
"response": "Reactive oxygen species (ROS) are a group of molecules that are highly reactive and can cause damage to cells and tissues. In the eye, ROS can cause damage to the retina, which is the light-sensitive layer of tissue at the back of the eye. This can lead to vision problems, such as blurred vision, di",
|
| 356 |
+
"total_reward": 0.7313131313131314,
|
| 357 |
+
"verifier_scores": {
|
| 358 |
+
"V1": 0.5777777777777778,
|
| 359 |
+
"V4": 1.0
|
| 360 |
+
},
|
| 361 |
+
"question_type": "direction",
|
| 362 |
+
"source": "genelab",
|
| 363 |
+
"tissue": "eye",
|
| 364 |
+
"confidence": 0.55,
|
| 365 |
+
"confidence_stated": "medium"
|
| 366 |
+
},
|
| 367 |
+
{
|
| 368 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Uv Response Up pathway upregulated or downregulated b",
|
| 369 |
+
"response": "The Uv Response Up pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\nThe Uv Response Up pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Results:\n\nThe Uv Response Up pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Conclusion:\n\n",
|
| 370 |
+
"total_reward": 0.18181818181818185,
|
| 371 |
+
"verifier_scores": {
|
| 372 |
+
"V1": 0.0,
|
| 373 |
+
"V4": 0.5000000000000001
|
| 374 |
+
},
|
| 375 |
+
"question_type": "direction",
|
| 376 |
+
"source": "genelab",
|
| 377 |
+
"tissue": "eye",
|
| 378 |
+
"confidence": 0.5,
|
| 379 |
+
"confidence_stated": "medium"
|
| 380 |
+
},
|
| 381 |
+
{
|
| 382 |
+
"prompt": "Explain the biological significance of Uv Response Up pathway activation in mouse eye under spacefli",
|
| 383 |
+
"response": "The Uv Response Up pathway is a biological pathway that is activated in response to exposure to ultraviolet (UV) radiation. This pathway is important for protecting the eye from damage caused by UV radiation, which can lead to a variety of eye diseases, including cataracts and macular degeneration.\n",
|
| 384 |
+
"total_reward": 0.9902097902097902,
|
| 385 |
+
"verifier_scores": {
|
| 386 |
+
"V1": 0.9846153846153847,
|
| 387 |
+
"V4": 1.0
|
| 388 |
+
},
|
| 389 |
+
"question_type": "direction",
|
| 390 |
+
"source": "genelab",
|
| 391 |
+
"tissue": "eye",
|
| 392 |
+
"confidence": 0.55,
|
| 393 |
+
"confidence_stated": "medium"
|
| 394 |
+
},
|
| 395 |
+
{
|
| 396 |
+
"prompt": "In mouse eye tissue during spaceflight, is the Xenobiotic Metabolism pathway upregulated or downregu",
|
| 397 |
+
"response": "The Xenobiotic Metabolism pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Methods:\n\nThe Xenobiotic Metabolism pathway is downregulated in mouse eye tissue during spaceflight.\n\n### Results:\n\nThe Xenobiotic Metabolism pathway is downregulated in mouse eye tissue during spacefligh",
|
| 398 |
+
"total_reward": 0.18181818181818185,
|
| 399 |
+
"verifier_scores": {
|
| 400 |
+
"V1": 0.0,
|
| 401 |
+
"V4": 0.5000000000000001
|
| 402 |
+
},
|
| 403 |
+
"question_type": "direction",
|
| 404 |
+
"source": "genelab",
|
| 405 |
+
"tissue": "eye",
|
| 406 |
+
"confidence": 0.5,
|
| 407 |
+
"confidence_stated": "medium"
|
| 408 |
+
},
|
| 409 |
+
{
|
| 410 |
+
"prompt": "Explain the biological significance of Xenobiotic Metabolism pathway activation in mouse eye under s",
|
| 411 |
+
"response": "The Xenobiotic Metabolism pathway is a group of enzymes that are responsible for the metabolism of xenobiotics, which are foreign substances that are not naturally present in the body. These enzymes are involved in the breakdown and elimination of xenobiotics, including drugs, toxins, and environmen",
|
| 412 |
+
"total_reward": 0.9858585858585858,
|
| 413 |
+
"verifier_scores": {
|
| 414 |
+
"V1": 0.9777777777777779,
|
| 415 |
+
"V4": 1.0
|
| 416 |
+
},
|
| 417 |
+
"question_type": "direction",
|
| 418 |
+
"source": "genelab",
|
| 419 |
+
"tissue": "eye",
|
| 420 |
+
"confidence": 0.5,
|
| 421 |
+
"confidence_stated": "medium"
|
| 422 |
+
},
|
| 423 |
+
{
|
| 424 |
+
"prompt": "Is the E2F Targets pathway consistently activated or suppressed in mouse eye across different spacef",
|
| 425 |
+
"response": "The E2F Targets pathway is consistently activated in mouse eye across different spaceflight missions. The pathway is activated in the mouse eye in the 10-day spaceflight mission, and the activation is more significant in the 20-day spaceflight mission. The activation is also more significant in the ",
|
| 426 |
+
"total_reward": 0.040000000000000036,
|
| 427 |
+
"verifier_scores": {
|
| 428 |
+
"V4": 0.040000000000000036
|
| 429 |
+
},
|
| 430 |
+
"question_type": "uncertainty",
|
| 431 |
+
"source": "genelab",
|
| 432 |
+
"tissue": "eye",
|
| 433 |
+
"confidence": 0.5,
|
| 434 |
+
"confidence_stated": "medium"
|
| 435 |
+
},
|
| 436 |
+
{
|
| 437 |
+
"prompt": "Is the Interferon Alpha Response pathway consistently activated or suppressed in mouse eye across di",
|
| 438 |
+
"response": "The Interferon Alpha Response pathway is consistently activated in mouse eye across different spaceflight missions.\n\n### Methods:\n\nThe Interferon Alpha Response pathway was analyzed using the Ingenuity Pathway Analysis (IPA) software. The pathway was analyzed using the following parameters:\n\n- Mouse",
|
| 439 |
+
"total_reward": 0.9727891156462585,
|
| 440 |
+
"verifier_scores": {
|
| 441 |
+
"V4": 0.9727891156462585
|
| 442 |
+
},
|
| 443 |
+
"question_type": "uncertainty",
|
| 444 |
+
"source": "genelab",
|
| 445 |
+
"tissue": "eye",
|
| 446 |
+
"confidence": 0.5,
|
| 447 |
+
"confidence_stated": "medium"
|
| 448 |
+
},
|
| 449 |
+
{
|
| 450 |
+
"prompt": "Is the Interferon Gamma Response pathway consistently activated or suppressed in mouse eye across di",
|
| 451 |
+
"response": "The Interferon Gamma Response pathway is consistently activated in mouse eye across different spaceflight missions.\n\n### Methods:\n\nThe Interferon Gamma Response pathway is consistently activated in mouse eye across different spaceflight missions.\n\n### Results:\n\nThe Interferon Gamma Response pathway ",
|
| 452 |
+
"total_reward": 0.040000000000000036,
|
| 453 |
+
"verifier_scores": {
|
| 454 |
+
"V4": 0.040000000000000036
|
| 455 |
+
},
|
| 456 |
+
"question_type": "uncertainty",
|
| 457 |
+
"source": "genelab",
|
| 458 |
+
"tissue": "eye",
|
| 459 |
+
"confidence": 0.5,
|
| 460 |
+
"confidence_stated": "medium"
|
| 461 |
+
},
|
| 462 |
+
{
|
| 463 |
+
"prompt": "Is the Myogenesis pathway consistently activated or suppressed in mouse eye across different spacefl",
|
| 464 |
+
"response": "The Myogenesis pathway is consistently activated in mouse eye across different spaceflight missions.\n\n### Data:\n\nThe Myogenesis pathway is consistently activated in mouse eye across different spaceflight missions.\n\n### Methods:\n\nThe Myogenesis pathway is consistently activated in mouse eye across di",
|
| 465 |
+
"total_reward": 0.040000000000000036,
|
| 466 |
+
"verifier_scores": {
|
| 467 |
+
"V4": 0.040000000000000036
|
| 468 |
+
},
|
| 469 |
+
"question_type": "uncertainty",
|
| 470 |
+
"source": "genelab",
|
| 471 |
+
"tissue": "eye",
|
| 472 |
+
"confidence": 0.5,
|
| 473 |
+
"confidence_stated": "medium"
|
| 474 |
+
},
|
| 475 |
+
{
|
| 476 |
+
"prompt": "How conserved are pathway-level responses to spaceflight across different missions in mouse eye? Are",
|
| 477 |
+
"response": "##### 1. Are the enrichment patterns reproducible?\n\nWe found that the enrichment patterns are reproducible across different missions.\n\n##### 2. How conserved are pathway-level responses to spaceflight across different missions in mouse eye?\n\nWe found that the pathway-level responses to spaceflight a",
|
| 478 |
+
"total_reward": 1.0,
|
| 479 |
+
"verifier_scores": {
|
| 480 |
+
"V2": 1.0,
|
| 481 |
+
"V4": 1.0
|
| 482 |
+
},
|
| 483 |
+
"question_type": "direction",
|
| 484 |
+
"source": "genelab",
|
| 485 |
+
"tissue": "eye",
|
| 486 |
+
"confidence": 0.5,
|
| 487 |
+
"confidence_stated": "medium"
|
| 488 |
+
}
|
| 489 |
+
]
|
| 490 |
+
}
|
scripts/HPC_TRAINING_GUIDE.md
CHANGED
|
@@ -1,21 +1,22 @@
|
|
| 1 |
-
# BioRLHF Training on Cayuga HPC
|
| 2 |
|
| 3 |
**Cluster:** Cornell Cayuga HPC
|
| 4 |
-
**Target:** GPU training with Mistral-7B + LoRA
|
| 5 |
|
| 6 |
---
|
| 7 |
|
| 8 |
-
## Quick Start
|
| 9 |
|
| 10 |
```bash
|
| 11 |
-
# 1.
|
| 12 |
-
|
| 13 |
|
| 14 |
-
# 2.
|
|
|
|
| 15 |
|
| 16 |
-
# 3.
|
| 17 |
-
|
| 18 |
-
|
| 19 |
```
|
| 20 |
|
| 21 |
---
|
|
@@ -25,50 +26,23 @@ cd /athena/cayuga_XXXX/scratch/$USER/BioRLHF/biorlhf
|
|
| 25 |
From your local Mac:
|
| 26 |
|
| 27 |
```bash
|
| 28 |
-
# Replace with your actual paths and CWID
|
| 29 |
rsync -avz --progress \
|
| 30 |
-
/Users/jak4013/Dropbox/Bioinformatics/Claude/BioRLHF \
|
| 31 |
-
|
| 32 |
-
```
|
| 33 |
-
|
| 34 |
-
Or use scp:
|
| 35 |
-
```bash
|
| 36 |
-
scp -r /Users/jak4013/Dropbox/Bioinformatics/Claude/BioRLHF \
|
| 37 |
-
YOUR_CWID@cayuga.cac.cornell.edu:/athena/cayuga_XXXX/scratch/$USER/
|
| 38 |
```
|
| 39 |
|
| 40 |
---
|
| 41 |
|
| 42 |
## Step 2: Set Up Conda Environment (First Time Only)
|
| 43 |
|
| 44 |
-
### 2a. Start Interactive Session
|
| 45 |
```bash
|
| 46 |
# SSH to Cayuga
|
| 47 |
-
ssh
|
| 48 |
|
| 49 |
-
#
|
| 50 |
-
|
| 51 |
-
```
|
| 52 |
-
|
| 53 |
-
### 2b. Install Miniconda (if not already installed)
|
| 54 |
-
```bash
|
| 55 |
-
# Create directory in scratch space
|
| 56 |
-
mkdir -p /athena/cayuga_XXXX/scratch/$USER/miniconda3
|
| 57 |
-
|
| 58 |
-
# Download and install
|
| 59 |
-
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
|
| 60 |
-
bash miniconda.sh -b -u -p /athena/cayuga_XXXX/scratch/$USER/miniconda3
|
| 61 |
-
rm miniconda.sh
|
| 62 |
-
|
| 63 |
-
# Initialize conda
|
| 64 |
-
source /athena/cayuga_XXXX/scratch/$USER/miniconda3/bin/activate
|
| 65 |
-
conda init bash
|
| 66 |
-
source ~/.bashrc
|
| 67 |
-
```
|
| 68 |
|
| 69 |
-
#
|
| 70 |
-
```bash
|
| 71 |
-
# Create environment with Python 3.10 (best compatibility)
|
| 72 |
conda create -n biorlhf python=3.10 -y
|
| 73 |
conda activate biorlhf
|
| 74 |
|
|
@@ -76,178 +50,171 @@ conda activate biorlhf
|
|
| 76 |
conda install pytorch pytorch-cuda=12.1 -c pytorch -c nvidia -y
|
| 77 |
|
| 78 |
# Install training dependencies
|
| 79 |
-
pip install transformers>=4.36.0
|
| 80 |
-
pip install
|
| 81 |
-
pip install
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
pip install wandb
|
| 86 |
-
pip install scipy
|
| 87 |
-
pip install sentencepiece
|
| 88 |
-
|
| 89 |
-
# Verify GPU access
|
| 90 |
-
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}'); print(f'GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else None}')"
|
| 91 |
```
|
| 92 |
|
| 93 |
---
|
| 94 |
|
| 95 |
-
## Step 3:
|
| 96 |
|
| 97 |
-
###
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
srun -p scu-gpu --gres=gpu:a100:1 --mem=48G -c 8 --time=4:00:00 --pty bash
|
| 101 |
|
| 102 |
-
|
| 103 |
-
|
|
|
|
| 104 |
```
|
| 105 |
|
| 106 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
```bash
|
| 108 |
-
#
|
| 109 |
-
|
|
|
|
|
|
|
|
|
|
| 110 |
conda activate biorlhf
|
| 111 |
|
| 112 |
-
#
|
| 113 |
-
cd /athena/
|
|
|
|
|
|
|
| 114 |
|
| 115 |
-
#
|
| 116 |
-
|
|
|
|
|
|
|
|
|
|
| 117 |
|
| 118 |
-
#
|
| 119 |
-
|
|
|
|
| 120 |
|
| 121 |
-
#
|
| 122 |
-
|
|
|
|
| 123 |
```
|
| 124 |
|
| 125 |
---
|
| 126 |
|
| 127 |
## Step 4: Monitor Training
|
| 128 |
|
| 129 |
-
In a separate terminal (or use tmux/screen):
|
| 130 |
-
|
| 131 |
```bash
|
| 132 |
-
#
|
| 133 |
-
|
| 134 |
|
| 135 |
-
# Tail
|
| 136 |
-
tail -f logs/
|
| 137 |
-
```
|
| 138 |
|
| 139 |
-
#
|
| 140 |
-
|
| 141 |
-
# Login to Weights & Biases
|
| 142 |
-
wandb login
|
| 143 |
|
| 144 |
-
#
|
|
|
|
| 145 |
```
|
| 146 |
|
| 147 |
---
|
| 148 |
|
| 149 |
-
##
|
| 150 |
|
| 151 |
-
|
|
| 152 |
-
|----------
|
| 153 |
-
|
|
| 154 |
-
|
|
| 155 |
-
|
|
|
|
|
|
|
|
| 156 |
|
| 157 |
---
|
| 158 |
|
| 159 |
-
##
|
| 160 |
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
``
|
| 164 |
-
|
| 165 |
-
BATCH_SIZE=2 # Reduce from 4
|
| 166 |
-
GRAD_ACCUM=8 # Increase to maintain effective batch size
|
| 167 |
-
```
|
| 168 |
|
| 169 |
-
|
| 170 |
-
```bash
|
| 171 |
-
# Check GPU allocation
|
| 172 |
-
nvidia-smi
|
| 173 |
|
| 174 |
-
#
|
| 175 |
-
python -c "import torch; print(torch.cuda.is_available())"
|
| 176 |
|
| 177 |
-
#
|
| 178 |
-
squeue -u $USER
|
| 179 |
-
```
|
| 180 |
|
| 181 |
-
|
| 182 |
-
```bash
|
| 183 |
-
# Ensure conda environment is activated
|
| 184 |
-
conda activate biorlhf
|
| 185 |
|
| 186 |
-
#
|
| 187 |
-
pip install <missing_package>
|
| 188 |
-
```
|
| 189 |
|
| 190 |
-
|
| 191 |
-
Use `tmux` or `screen` to persist sessions:
|
| 192 |
```bash
|
| 193 |
-
|
| 194 |
-
|
|
|
|
| 195 |
|
| 196 |
-
#
|
| 197 |
-
srun -p scu-gpu --gres=gpu:a100:1 --mem=48G -c 8 --time=4:00:00 --pty bash
|
| 198 |
|
| 199 |
-
|
| 200 |
-
|
|
|
|
| 201 |
```
|
|
|
|
| 202 |
|
| 203 |
-
|
|
|
|
|
|
|
| 204 |
|
| 205 |
-
##
|
| 206 |
|
| 207 |
-
|
| 208 |
-
|--------------|--------------|----------------|
|
| 209 |
-
| A100 + 4-bit | 378 examples, 10 epochs | ~45-60 min |
|
| 210 |
-
| A40 + 4-bit | 378 examples, 10 epochs | ~60-90 min |
|
| 211 |
-
| A100 (full) | 378 examples, 10 epochs | ~90-120 min |
|
| 212 |
|
| 213 |
---
|
| 214 |
|
| 215 |
-
##
|
| 216 |
|
| 217 |
-
###
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
|
|
|
|
|
|
| 222 |
```
|
| 223 |
|
| 224 |
-
###
|
| 225 |
```bash
|
| 226 |
-
|
|
|
|
| 227 |
```
|
| 228 |
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
|
| 232 |
-
|
| 233 |
-
|
| 234 |
-
# SSH to Cayuga
|
| 235 |
-
ssh jk2042@cayuga.cac.cornell.edu
|
| 236 |
-
|
| 237 |
-
# Start tmux (optional but recommended)
|
| 238 |
-
tmux new -s biorlhf
|
| 239 |
|
| 240 |
-
|
| 241 |
-
|
|
|
|
|
|
|
| 242 |
|
| 243 |
-
|
| 244 |
-
source ~/miniconda3/bin/activate
|
| 245 |
-
conda activate biorlhf
|
| 246 |
|
| 247 |
-
#
|
| 248 |
-
cd /athena/cayuga_XXXX/scratch/$USER/BioRLHF/biorlhf
|
| 249 |
-
./scripts/train_ecosystem_improved.sh
|
| 250 |
|
| 251 |
-
|
| 252 |
-
|
| 253 |
-
``
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# BioRLHF Training on Cayuga HPC
|
| 2 |
|
| 3 |
**Cluster:** Cornell Cayuga HPC
|
| 4 |
+
**Target:** GPU training with Mistral-7B + LoRA (SFT, DPO, GRPO)
|
| 5 |
|
| 6 |
---
|
| 7 |
|
| 8 |
+
## Quick Start
|
| 9 |
|
| 10 |
```bash
|
| 11 |
+
# 1. SSH to Cayuga
|
| 12 |
+
ssh jak4013@cayuga-login1
|
| 13 |
|
| 14 |
+
# 2. Submit a GRPO training job
|
| 15 |
+
bash -l -c 'sbatch scripts/run_grpo_full.sh'
|
| 16 |
|
| 17 |
+
# 3. Monitor
|
| 18 |
+
squeue -u $USER
|
| 19 |
+
tail -f logs/grpo_full_*.log
|
| 20 |
```
|
| 21 |
|
| 22 |
---
|
|
|
|
| 26 |
From your local Mac:
|
| 27 |
|
| 28 |
```bash
|
|
|
|
| 29 |
rsync -avz --progress \
|
| 30 |
+
/Users/jak4013/Dropbox/Bioinformatics/Claude/BioRLHF/biorlhf/ \
|
| 31 |
+
jak4013@cayuga-login1:/athena/cayuga_0003/scratch/users/jak4013/otsuka/training/BioRLHF/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
```
|
| 33 |
|
| 34 |
---
|
| 35 |
|
| 36 |
## Step 2: Set Up Conda Environment (First Time Only)
|
| 37 |
|
|
|
|
| 38 |
```bash
|
| 39 |
# SSH to Cayuga
|
| 40 |
+
ssh jak4013@cayuga-login1
|
| 41 |
|
| 42 |
+
# Source conda (non-interactive shell requires explicit sourcing)
|
| 43 |
+
. /home/fs01/jak4013/miniconda3/miniconda3/etc/profile.d/conda.sh
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 44 |
|
| 45 |
+
# Create environment
|
|
|
|
|
|
|
| 46 |
conda create -n biorlhf python=3.10 -y
|
| 47 |
conda activate biorlhf
|
| 48 |
|
|
|
|
| 50 |
conda install pytorch pytorch-cuda=12.1 -c pytorch -c nvidia -y
|
| 51 |
|
| 52 |
# Install training dependencies
|
| 53 |
+
pip install transformers>=4.36.0 peft>=0.6.0 trl>=0.14.0
|
| 54 |
+
pip install bitsandbytes>=0.41.0 accelerate>=0.24.0 datasets>=2.14.0
|
| 55 |
+
pip install wandb scipy scikit-learn sentencepiece jsonlines
|
| 56 |
+
|
| 57 |
+
# Verify GPU access (on a GPU node)
|
| 58 |
+
python -c "import torch; print(f'CUDA: {torch.cuda.is_available()}')"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 59 |
```
|
| 60 |
|
| 61 |
---
|
| 62 |
|
| 63 |
+
## Step 3: Training Options
|
| 64 |
|
| 65 |
+
### Option A: GRPO Training (Recommended)
|
| 66 |
+
|
| 67 |
+
GRPO with verifier-based multi-reward training from an SFT checkpoint:
|
|
|
|
| 68 |
|
| 69 |
+
```bash
|
| 70 |
+
# Submit via SLURM (use login shell for correct sbatch version)
|
| 71 |
+
bash -l -c 'sbatch scripts/run_grpo_full.sh'
|
| 72 |
```
|
| 73 |
|
| 74 |
+
**Key config** (`configs/grpo_full_v2.json`):
|
| 75 |
+
- G=16 generations per prompt
|
| 76 |
+
- V1-V4 verifiers with weights [0.35, 0.30, 0.15, 0.20]
|
| 77 |
+
- beta=0.02, 2 iterations per batch
|
| 78 |
+
- ~48h on A40
|
| 79 |
+
|
| 80 |
+
### Option B: SFT Training
|
| 81 |
+
|
| 82 |
```bash
|
| 83 |
+
# Interactive session
|
| 84 |
+
srun -p scu-gpu --gres=gpu:1 --mem=48G -c 8 --time=4:00:00 --account=cayuga_0003 --pty bash
|
| 85 |
+
|
| 86 |
+
# Activate environment
|
| 87 |
+
. /home/fs01/jak4013/miniconda3/miniconda3/etc/profile.d/conda.sh
|
| 88 |
conda activate biorlhf
|
| 89 |
|
| 90 |
+
# Run SFT
|
| 91 |
+
cd /athena/cayuga_0003/scratch/users/jak4013/otsuka/training/BioRLHF
|
| 92 |
+
biorlhf-train --model mistralai/Mistral-7B-v0.3 --dataset data/kmp_sft_final.json --output ./my_sft_model
|
| 93 |
+
```
|
| 94 |
|
| 95 |
+
### Option C: Interactive GPU Session
|
| 96 |
+
|
| 97 |
+
```bash
|
| 98 |
+
# Request GPU
|
| 99 |
+
srun -p scu-gpu --gres=gpu:1 --mem=48G -c 8 --time=4:00:00 --account=cayuga_0003 --pty bash
|
| 100 |
|
| 101 |
+
# Activate environment
|
| 102 |
+
. /home/fs01/jak4013/miniconda3/miniconda3/etc/profile.d/conda.sh
|
| 103 |
+
conda activate biorlhf
|
| 104 |
|
| 105 |
+
# Navigate and run
|
| 106 |
+
cd /athena/cayuga_0003/scratch/users/jak4013/otsuka/training/BioRLHF
|
| 107 |
+
biorlhf-grpo --config configs/grpo_full_v2.json
|
| 108 |
```
|
| 109 |
|
| 110 |
---
|
| 111 |
|
| 112 |
## Step 4: Monitor Training
|
| 113 |
|
|
|
|
|
|
|
| 114 |
```bash
|
| 115 |
+
# Check job status
|
| 116 |
+
squeue -u $USER
|
| 117 |
|
| 118 |
+
# Tail logs
|
| 119 |
+
tail -f logs/grpo_full_*.log
|
|
|
|
| 120 |
|
| 121 |
+
# GPU usage (on compute node)
|
| 122 |
+
nvidia-smi
|
|
|
|
|
|
|
| 123 |
|
| 124 |
+
# WandB dashboard
|
| 125 |
+
# https://wandb.ai/jangkeun-weill-cornell-medicine/biogrpo
|
| 126 |
```
|
| 127 |
|
| 128 |
---
|
| 129 |
|
| 130 |
+
## Environment Details
|
| 131 |
|
| 132 |
+
| Component | Version |
|
| 133 |
+
|-----------|---------|
|
| 134 |
+
| Python | 3.10 |
|
| 135 |
+
| PyTorch | 2.5.1+cu121 |
|
| 136 |
+
| Transformers | 4.57.3 |
|
| 137 |
+
| TRL | 0.26.2 |
|
| 138 |
+
| PEFT | 0.18.0 |
|
| 139 |
|
| 140 |
---
|
| 141 |
|
| 142 |
+
## GPU Options on Cayuga
|
| 143 |
|
| 144 |
+
| GPU | VRAM | Best For | SLURM Flag |
|
| 145 |
+
|-----|------|----------|------------|
|
| 146 |
+
| A40 | 48GB | Standard GRPO/SFT with QLoRA | `--gres=gpu:1` |
|
| 147 |
+
| A100 | 80GB | Larger batches, faster training | `--gres=gpu:a100:1` |
|
|
|
|
|
|
|
|
|
|
| 148 |
|
| 149 |
+
---
|
|
|
|
|
|
|
|
|
|
| 150 |
|
| 151 |
+
## Important Notes
|
|
|
|
| 152 |
|
| 153 |
+
### SLURM Version
|
|
|
|
|
|
|
| 154 |
|
| 155 |
+
The default `sbatch` at `/usr/bin/sbatch` is outdated (v22.05.2). Use `bash -l -c 'sbatch ...'` to get the correct version (slurm/25.05.0) loaded via module.
|
|
|
|
|
|
|
|
|
|
| 156 |
|
| 157 |
+
### Conda in Non-Interactive Shells
|
|
|
|
|
|
|
| 158 |
|
| 159 |
+
`source ~/.bashrc` does not work in non-interactive SSH. Always source conda directly:
|
|
|
|
| 160 |
```bash
|
| 161 |
+
. /home/fs01/jak4013/miniconda3/miniconda3/etc/profile.d/conda.sh
|
| 162 |
+
conda activate biorlhf
|
| 163 |
+
```
|
| 164 |
|
| 165 |
+
### SFT Checkpoint Symlink
|
|
|
|
| 166 |
|
| 167 |
+
The SFT model adapter is stored at:
|
| 168 |
+
```
|
| 169 |
+
/athena/cayuga_0003/scratch/users/jak4013/otsuka/training/biorlhf/kmp_sft_model_final
|
| 170 |
```
|
| 171 |
+
GRPO scripts auto-symlink this into the working directory.
|
| 172 |
|
| 173 |
+
### Batch Size with G=16
|
| 174 |
+
|
| 175 |
+
Both `per_device_eval_batch_size` and `generation_batch_size` must be divisible by `num_generations`. The TRL parameter is `generation_batch_size`, NOT `per_device_generation_batch_size`.
|
| 176 |
|
| 177 |
+
### Eval Performance
|
| 178 |
|
| 179 |
+
GRPOTrainer's eval loop generates completions sequentially (~3 min/sample). With 107 eval samples, each eval pass takes ~5.3h. Set `eval_steps=9999` to skip in-training eval; run post-hoc evaluation instead.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
|
| 181 |
---
|
| 182 |
|
| 183 |
+
## Troubleshooting
|
| 184 |
|
| 185 |
+
### "CUDA out of memory"
|
| 186 |
+
Reduce batch size or gradient accumulation in the config JSON:
|
| 187 |
+
```json
|
| 188 |
+
{
|
| 189 |
+
"batch_size": 1,
|
| 190 |
+
"gradient_accumulation_steps": 16
|
| 191 |
+
}
|
| 192 |
```
|
| 193 |
|
| 194 |
+
### "No GPU available"
|
| 195 |
```bash
|
| 196 |
+
nvidia-smi # Check GPU allocation
|
| 197 |
+
squeue -u $USER # Verify you're on a GPU node
|
| 198 |
```
|
| 199 |
|
| 200 |
+
### LoRA adapter loading fails
|
| 201 |
+
The SFT checkpoint is a LoRA adapter, not a full model. Load base model first:
|
| 202 |
+
```python
|
| 203 |
+
from peft import PeftModel
|
| 204 |
+
from transformers import AutoModelForCausalLM
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 205 |
|
| 206 |
+
base = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-v0.3")
|
| 207 |
+
model = PeftModel.from_pretrained(base, "path/to/kmp_sft_model_final")
|
| 208 |
+
model = model.merge_and_unload() # Merge for GRPO training
|
| 209 |
+
```
|
| 210 |
|
| 211 |
+
---
|
|
|
|
|
|
|
| 212 |
|
| 213 |
+
## Key Paths
|
|
|
|
|
|
|
| 214 |
|
| 215 |
+
| Path | Description |
|
| 216 |
+
|------|-------------|
|
| 217 |
+
| `/athena/cayuga_0003/scratch/users/jak4013/otsuka/training/BioRLHF/` | Working directory |
|
| 218 |
+
| `/athena/cayuga_0003/scratch/users/jak4013/otsuka/training/biorlhf/kmp_sft_model_final` | SFT checkpoint |
|
| 219 |
+
| `/athena/cayuga_0003/scratch/users/jak4013/otsuka/data/` | Data directory |
|
| 220 |
+
| `/home/fs01/jak4013/miniconda3/miniconda3/etc/profile.d/conda.sh` | Conda init script |
|
scripts/analyze_eval.py
ADDED
|
@@ -0,0 +1,632 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""
|
| 3 |
+
BioGRPO Post-Training Evaluation Analyzer
|
| 4 |
+
|
| 5 |
+
Diagnoses ECE gap between MVE (0.078) and Full v2 (0.172) using per-sample data.
|
| 6 |
+
No GPU, no torch — stdlib only (+ optional matplotlib).
|
| 7 |
+
|
| 8 |
+
Usage:
|
| 9 |
+
python scripts/analyze_eval.py --v2 results/grpo_full_v2_eval_*.json
|
| 10 |
+
python scripts/analyze_eval.py --v2 results/grpo_full_v2_eval_*.json \\
|
| 11 |
+
--mve results/grpo_mve_eval_*.json \\
|
| 12 |
+
--plots
|
| 13 |
+
"""
|
| 14 |
+
|
| 15 |
+
import argparse
|
| 16 |
+
import json
|
| 17 |
+
import statistics
|
| 18 |
+
from collections import Counter, defaultdict
|
| 19 |
+
from pathlib import Path
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
# ---------------------------------------------------------------------------
|
| 23 |
+
# CLI / loading
|
| 24 |
+
# ---------------------------------------------------------------------------
|
| 25 |
+
|
| 26 |
+
def parse_args():
|
| 27 |
+
p = argparse.ArgumentParser(description="Analyze BioGRPO evaluation results")
|
| 28 |
+
p.add_argument("--v2", required=True, help="Full v2 eval JSON path")
|
| 29 |
+
p.add_argument("--mve", default=None, help="MVE eval JSON path (optional)")
|
| 30 |
+
p.add_argument("--plots", action="store_true", help="Generate reliability diagram via matplotlib")
|
| 31 |
+
return p.parse_args()
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
def load_results(path):
|
| 35 |
+
with open(path) as f:
|
| 36 |
+
data = json.load(f)
|
| 37 |
+
return {
|
| 38 |
+
"per_sample": data["per_sample"],
|
| 39 |
+
"calibration": data["calibration"],
|
| 40 |
+
"grpo": data["grpo"],
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
|
| 44 |
+
# ---------------------------------------------------------------------------
|
| 45 |
+
# Formatting helpers
|
| 46 |
+
# ---------------------------------------------------------------------------
|
| 47 |
+
|
| 48 |
+
def header(title, width=70):
|
| 49 |
+
print()
|
| 50 |
+
print("=" * width)
|
| 51 |
+
print(f" {title}")
|
| 52 |
+
print("=" * width)
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
def subheader(title):
|
| 56 |
+
print(f"\n--- {title} ---")
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
def _stdev(vals):
|
| 60 |
+
return statistics.stdev(vals) if len(vals) > 1 else 0.0
|
| 61 |
+
|
| 62 |
+
|
| 63 |
+
# ---------------------------------------------------------------------------
|
| 64 |
+
# ECE recomputation (round-trip verification)
|
| 65 |
+
# ---------------------------------------------------------------------------
|
| 66 |
+
|
| 67 |
+
def recompute_ece(samples, n_bins=10):
|
| 68 |
+
"""Recompute ECE from per_sample using equal-width bins (matches calibration.py)."""
|
| 69 |
+
bins = [[] for _ in range(n_bins)]
|
| 70 |
+
for s in samples:
|
| 71 |
+
conf = s["confidence"]
|
| 72 |
+
correct = float(s["total_reward"] > 0.5)
|
| 73 |
+
bin_idx = min(int(conf * n_bins), n_bins - 1)
|
| 74 |
+
bins[bin_idx].append((conf, correct))
|
| 75 |
+
ece = 0.0
|
| 76 |
+
n = len(samples)
|
| 77 |
+
for bin_samples in bins:
|
| 78 |
+
if not bin_samples:
|
| 79 |
+
continue
|
| 80 |
+
mean_conf = statistics.mean(c for c, _ in bin_samples)
|
| 81 |
+
mean_acc = statistics.mean(a for _, a in bin_samples)
|
| 82 |
+
ece += len(bin_samples) / n * abs(mean_acc - mean_conf)
|
| 83 |
+
return ece
|
| 84 |
+
|
| 85 |
+
|
| 86 |
+
# ---------------------------------------------------------------------------
|
| 87 |
+
# Section 1: Calibration decomposition
|
| 88 |
+
# ---------------------------------------------------------------------------
|
| 89 |
+
|
| 90 |
+
def section_calibration_decomp(cal, label="Full v2"):
|
| 91 |
+
header(f"SECTION 1: Calibration Decomposition [{label}]")
|
| 92 |
+
|
| 93 |
+
bins = cal["reliability_bins"]
|
| 94 |
+
n = cal["n_samples"]
|
| 95 |
+
ece = cal["ece"]
|
| 96 |
+
|
| 97 |
+
print(
|
| 98 |
+
f"\nStored ECE={ece:.4f} N={n} "
|
| 99 |
+
f"mean_conf={cal['mean_confidence']:.4f} mean_acc={cal['mean_accuracy']:.4f}"
|
| 100 |
+
)
|
| 101 |
+
print()
|
| 102 |
+
|
| 103 |
+
fmt = "{:<14} {:>6} {:>10} {:>9} {:>8} {:>12} {:>7}"
|
| 104 |
+
print(fmt.format("Bin", "count", "mean_conf", "mean_acc", "error", "ECE_contrib", "%_ECE"))
|
| 105 |
+
print("-" * 72)
|
| 106 |
+
|
| 107 |
+
total_contrib = 0.0
|
| 108 |
+
dominant = None
|
| 109 |
+
|
| 110 |
+
for b in bins:
|
| 111 |
+
if b["count"] == 0:
|
| 112 |
+
continue
|
| 113 |
+
contrib = b["count"] / n * b["calibration_error"]
|
| 114 |
+
pct = contrib / ece * 100 if ece > 0 else 0.0
|
| 115 |
+
total_contrib += contrib
|
| 116 |
+
bin_label = f"[{b['bin_lower']:.1f}, {b['bin_upper']:.1f})"
|
| 117 |
+
print(fmt.format(
|
| 118 |
+
bin_label, b["count"], f"{b['mean_confidence']:.3f}",
|
| 119 |
+
f"{b['mean_accuracy']:.3f}", f"{b['calibration_error']:.3f}",
|
| 120 |
+
f"{contrib:.4f}", f"{pct:.1f}%",
|
| 121 |
+
))
|
| 122 |
+
if dominant is None or contrib > dominant["contrib"]:
|
| 123 |
+
dominant = {"bin": b, "contrib": contrib, "pct": pct}
|
| 124 |
+
|
| 125 |
+
print("-" * 72)
|
| 126 |
+
print(fmt.format("TOTAL", n, "", "", "", f"{total_contrib:.4f}", "100.0%"))
|
| 127 |
+
|
| 128 |
+
if dominant:
|
| 129 |
+
b = dominant["bin"]
|
| 130 |
+
print(
|
| 131 |
+
f"\nDominant bin: [{b['bin_lower']:.1f}, {b['bin_upper']:.1f})"
|
| 132 |
+
f" count={b['count']} contrib={dominant['contrib']:.4f}"
|
| 133 |
+
f" ({dominant['pct']:.1f}% of ECE)"
|
| 134 |
+
)
|
| 135 |
+
|
| 136 |
+
# Structural vs outlier ECE
|
| 137 |
+
outlier_contrib = sum(
|
| 138 |
+
b["count"] / n * b["calibration_error"]
|
| 139 |
+
for b in bins if 0 < b["count"] < 5
|
| 140 |
+
)
|
| 141 |
+
structural_contrib = ece - outlier_contrib
|
| 142 |
+
print(f"\nStructural ECE (bins ≥5 samples): {structural_contrib:.4f} ({structural_contrib/ece*100:.1f}%)")
|
| 143 |
+
print(f"Outlier ECE (bins <5 samples): {outlier_contrib:.4f} ({outlier_contrib/ece*100:.1f}%)")
|
| 144 |
+
|
| 145 |
+
|
| 146 |
+
# ---------------------------------------------------------------------------
|
| 147 |
+
# Section 2: Confidence distribution
|
| 148 |
+
# ---------------------------------------------------------------------------
|
| 149 |
+
|
| 150 |
+
def section_confidence_dist(samples, label="Full v2"):
|
| 151 |
+
header(f"SECTION 2: Confidence Distribution Analysis [{label}]")
|
| 152 |
+
|
| 153 |
+
n = len(samples)
|
| 154 |
+
confs = [s["confidence"] for s in samples]
|
| 155 |
+
|
| 156 |
+
# Wide-bucket histogram
|
| 157 |
+
subheader("Confidence histogram (5 buckets)")
|
| 158 |
+
buckets_5 = [(0.0, 0.2), (0.2, 0.4), (0.4, 0.6), (0.6, 0.8), (0.8, 1.01)]
|
| 159 |
+
total_counted = 0
|
| 160 |
+
for lo, hi in buckets_5:
|
| 161 |
+
cnt = sum(1 for c in confs if lo <= c < hi)
|
| 162 |
+
bar = "#" * int(cnt / n * 50)
|
| 163 |
+
print(f" [{lo:.1f}, {hi:.1f}) {cnt:4d} ({cnt/n*100:5.1f}%) {bar}")
|
| 164 |
+
total_counted += cnt
|
| 165 |
+
print(f" Total: {total_counted}")
|
| 166 |
+
|
| 167 |
+
# confidence_stated counts
|
| 168 |
+
subheader("confidence_stated category counts")
|
| 169 |
+
stated_counts = Counter(s.get("confidence_stated", "?") for s in samples)
|
| 170 |
+
for cat, cnt in sorted(stated_counts.items()):
|
| 171 |
+
print(f" {cat:<14}: {cnt:4d} ({cnt/n*100:.1f}%)")
|
| 172 |
+
|
| 173 |
+
# Correct vs incorrect confidence
|
| 174 |
+
subheader("Mean confidence: correct vs incorrect (threshold: total_reward > 0.5)")
|
| 175 |
+
correct = [s["confidence"] for s in samples if s["total_reward"] > 0.5]
|
| 176 |
+
incorrect = [s["confidence"] for s in samples if s["total_reward"] <= 0.5]
|
| 177 |
+
|
| 178 |
+
if correct:
|
| 179 |
+
print(f" Correct (n={len(correct):3d}): mean_conf={statistics.mean(correct):.4f} std={_stdev(correct):.4f}")
|
| 180 |
+
if incorrect:
|
| 181 |
+
print(f" Incorrect (n={len(incorrect):3d}): mean_conf={statistics.mean(incorrect):.4f} std={_stdev(incorrect):.4f}")
|
| 182 |
+
if correct and incorrect:
|
| 183 |
+
diff = abs(statistics.mean(correct) - statistics.mean(incorrect))
|
| 184 |
+
verdict = "UNIFORM — model NOT differentiating confidence by correctness" if diff < 0.05 else "model differentiates"
|
| 185 |
+
print(f"\n Separation: {diff:.4f} ({verdict})")
|
| 186 |
+
|
| 187 |
+
# V4 score distribution for samples that have V4
|
| 188 |
+
v4_pairs = [(s["confidence"], s["verifier_scores"]["V4"])
|
| 189 |
+
for s in samples if "V4" in s["verifier_scores"]]
|
| 190 |
+
if v4_pairs:
|
| 191 |
+
v4_vals = [v for _, v in v4_pairs]
|
| 192 |
+
subheader(f"V4 scores (n={len(v4_vals)} samples with V4)")
|
| 193 |
+
print(f" mean={statistics.mean(v4_vals):.4f} min={min(v4_vals):.4f} max={max(v4_vals):.4f} std={_stdev(v4_vals):.4f}")
|
| 194 |
+
print(f" Expected at conf=0.55: max(0.2, 1-|0.55-0.5|×1.5) = 0.9250")
|
| 195 |
+
near = sum(1 for v in v4_vals if abs(v - 0.925) < 0.05)
|
| 196 |
+
print(f" Near 0.925 (±0.05): {near}/{len(v4_vals)} ({near/len(v4_vals)*100:.1f}%)")
|
| 197 |
+
|
| 198 |
+
|
| 199 |
+
# ---------------------------------------------------------------------------
|
| 200 |
+
# Section 3: MVE vs Full v2 comparison
|
| 201 |
+
# ---------------------------------------------------------------------------
|
| 202 |
+
|
| 203 |
+
def section_mve_v2_comparison(mve_data, v2_data):
|
| 204 |
+
header("SECTION 3: MVE vs Full v2 Calibration Comparison")
|
| 205 |
+
|
| 206 |
+
if mve_data is None:
|
| 207 |
+
print(" [SKIPPED — MVE data not provided (pass --mve to enable)]")
|
| 208 |
+
return
|
| 209 |
+
|
| 210 |
+
mve_cal = mve_data["calibration"]
|
| 211 |
+
v2_cal = v2_data["calibration"]
|
| 212 |
+
mve_grpo = mve_data["grpo"]
|
| 213 |
+
v2_grpo = v2_data["grpo"]
|
| 214 |
+
|
| 215 |
+
mve_gap = mve_cal["mean_accuracy"] - mve_cal["mean_confidence"]
|
| 216 |
+
v2_gap = v2_cal["mean_accuracy"] - v2_cal["mean_confidence"]
|
| 217 |
+
|
| 218 |
+
fmt = "{:<24} {:>10} {:>10}"
|
| 219 |
+
print()
|
| 220 |
+
print(fmt.format("Metric", "MVE", "Full v2"))
|
| 221 |
+
print("-" * 46)
|
| 222 |
+
print(fmt.format("n_samples", mve_cal["n_samples"], v2_cal["n_samples"]))
|
| 223 |
+
print(fmt.format("mean_reward", f"{mve_grpo['mean_reward']:.4f}", f"{v2_grpo['mean_reward']:.4f}"))
|
| 224 |
+
print(fmt.format("mean_confidence", f"{mve_cal['mean_confidence']:.4f}", f"{v2_cal['mean_confidence']:.4f}"))
|
| 225 |
+
print(fmt.format("mean_accuracy", f"{mve_cal['mean_accuracy']:.4f}", f"{v2_cal['mean_accuracy']:.4f}"))
|
| 226 |
+
print(fmt.format("conf_acc_gap (acc-conf)", f"{mve_gap:.4f}", f"{v2_gap:.4f}"))
|
| 227 |
+
print(fmt.format("ECE", f"{mve_cal['ece']:.4f}", f"{v2_cal['ece']:.4f}"))
|
| 228 |
+
print(fmt.format("brier_score", f"{mve_cal['brier_score']:.4f}", f"{v2_cal['brier_score']:.4f}"))
|
| 229 |
+
print(fmt.format("overconfidence_rate", f"{mve_cal['overconfidence_rate']:.4f}", f"{v2_cal['overconfidence_rate']:.4f}"))
|
| 230 |
+
print(fmt.format("underconfidence_rate", f"{mve_cal['underconfidence_rate']:.4f}", f"{v2_cal['underconfidence_rate']:.4f}"))
|
| 231 |
+
|
| 232 |
+
print(f"\nHypothesis test: conf_acc_gap ≈ ECE (should be ~1.0 if uniformly underconfident)")
|
| 233 |
+
print(f" MVE: gap={mve_gap:.4f} / ECE={mve_cal['ece']:.4f} ratio={mve_gap/mve_cal['ece']:.2f}")
|
| 234 |
+
print(f" Full v2: gap={v2_gap:.4f} / ECE={v2_cal['ece']:.4f} ratio={v2_gap/v2_cal['ece']:.2f}")
|
| 235 |
+
print(f" Gap increased by {v2_gap - mve_gap:+.4f}, ECE increased by {v2_cal['ece'] - mve_cal['ece']:+.4f}")
|
| 236 |
+
|
| 237 |
+
# Bin-by-bin comparison
|
| 238 |
+
subheader("Reliability bin comparison (non-empty bins)")
|
| 239 |
+
mve_bins = {f"{b['bin_lower']:.1f}": b for b in mve_cal.get("reliability_bins", []) if b["count"] > 0}
|
| 240 |
+
v2_bins = {f"{b['bin_lower']:.1f}": b for b in v2_cal.get("reliability_bins", []) if b["count"] > 0}
|
| 241 |
+
all_keys = sorted(set(list(mve_bins.keys()) + list(v2_bins.keys())), key=float)
|
| 242 |
+
|
| 243 |
+
hdr = f"{'Bin':<10} {'MVE_n':>6} {'MVE_acc':>8} {'MVE_err':>8} {'v2_n':>6} {'v2_acc':>8} {'v2_err':>8}"
|
| 244 |
+
print(hdr)
|
| 245 |
+
print("-" * len(hdr))
|
| 246 |
+
for k in all_keys:
|
| 247 |
+
mb = mve_bins.get(k)
|
| 248 |
+
vb = v2_bins.get(k)
|
| 249 |
+
ms = f"{mb['count']:>6} {mb['mean_accuracy']:>8.3f} {mb['calibration_error']:>8.3f}" if mb else f"{'--':>6} {'--':>8} {'--':>8}"
|
| 250 |
+
vs = f"{vb['count']:>6} {vb['mean_accuracy']:>8.3f} {vb['calibration_error']:>8.3f}" if vb else f"{'--':>6} {'--':>8} {'--':>8}"
|
| 251 |
+
print(f"[{k},{float(k)+0.1:.1f}){'':<1} {ms} {vs}")
|
| 252 |
+
|
| 253 |
+
|
| 254 |
+
# ---------------------------------------------------------------------------
|
| 255 |
+
# Section 4: Uncertainty questions deep-dive
|
| 256 |
+
# ---------------------------------------------------------------------------
|
| 257 |
+
|
| 258 |
+
def section_uncertainty_deepdive(samples):
|
| 259 |
+
header("SECTION 4: Uncertainty Questions Deep-Dive")
|
| 260 |
+
|
| 261 |
+
unc = [s for s in samples if "uncertainty" in s.get("question_type", "").lower()]
|
| 262 |
+
|
| 263 |
+
if not unc:
|
| 264 |
+
print(" [No uncertainty-type samples found]")
|
| 265 |
+
qt_counts = Counter(s.get("question_type", "?") for s in samples)
|
| 266 |
+
print(f" All question_type values: {dict(sorted(qt_counts.items(), key=lambda x: -x[1]))}")
|
| 267 |
+
return
|
| 268 |
+
|
| 269 |
+
n = len(unc)
|
| 270 |
+
rewards = [s["total_reward"] for s in unc]
|
| 271 |
+
print(f"\nUncertainty samples: n={n}")
|
| 272 |
+
print(f"mean_reward={statistics.mean(rewards):.4f} min={min(rewards):.4f} max={max(rewards):.4f} std={_stdev(rewards):.4f}")
|
| 273 |
+
|
| 274 |
+
subheader("Reward distribution")
|
| 275 |
+
buckets = [(0.0, 0.2), (0.2, 0.4), (0.4, 0.6), (0.6, 0.8), (0.8, 1.01)]
|
| 276 |
+
for lo, hi in buckets:
|
| 277 |
+
cnt = sum(1 for r in rewards if lo <= r < hi)
|
| 278 |
+
bar = "#" * cnt
|
| 279 |
+
print(f" [{lo:.1f}, {hi:.1f}) {cnt:3d} {bar}")
|
| 280 |
+
|
| 281 |
+
subheader("Per-sample details")
|
| 282 |
+
col = "{:>4} {:>8} {:>6} {:<12} {:>7} {}"
|
| 283 |
+
print(col.format("idx", "reward", "conf", "stated", "V4", "prompt[:70]"))
|
| 284 |
+
print("-" * 115)
|
| 285 |
+
for i, s in enumerate(unc):
|
| 286 |
+
v4 = s["verifier_scores"].get("V4")
|
| 287 |
+
v4_str = f"{v4:.3f}" if v4 is not None else " N/A"
|
| 288 |
+
prompt_trunc = s["prompt"][:70].replace("\n", " ")
|
| 289 |
+
print(col.format(
|
| 290 |
+
i, f"{s['total_reward']:.4f}", f"{s['confidence']:.3f}",
|
| 291 |
+
s.get("confidence_stated", "?"), v4_str, prompt_trunc,
|
| 292 |
+
))
|
| 293 |
+
|
| 294 |
+
subheader("confidence_stated breakdown for uncertainty samples")
|
| 295 |
+
for cat, cnt in sorted(Counter(s.get("confidence_stated", "?") for s in unc).items()):
|
| 296 |
+
print(f" {cat:<14}: {cnt}")
|
| 297 |
+
|
| 298 |
+
|
| 299 |
+
# ---------------------------------------------------------------------------
|
| 300 |
+
# Section 5: Direction questions analysis
|
| 301 |
+
# ---------------------------------------------------------------------------
|
| 302 |
+
|
| 303 |
+
def section_direction_analysis(samples):
|
| 304 |
+
header("SECTION 5: Direction Questions Analysis")
|
| 305 |
+
|
| 306 |
+
dir_samples = [s for s in samples if "direction" in s.get("question_type", "").lower()]
|
| 307 |
+
|
| 308 |
+
if not dir_samples:
|
| 309 |
+
print(" [No direction-type samples found]")
|
| 310 |
+
qt_counts = Counter(s.get("question_type", "?") for s in samples)
|
| 311 |
+
print(f" All question_type values: {dict(sorted(qt_counts.items(), key=lambda x: -x[1]))}")
|
| 312 |
+
return
|
| 313 |
+
|
| 314 |
+
n = len(dir_samples)
|
| 315 |
+
rewards = [s["total_reward"] for s in dir_samples]
|
| 316 |
+
print(f"\nDirection samples: n={n}")
|
| 317 |
+
print(f"mean_reward={statistics.mean(rewards):.4f} std={_stdev(rewards):.4f} min={min(rewards):.4f} max={max(rewards):.4f}")
|
| 318 |
+
|
| 319 |
+
subheader("Reward distribution (bimodal check)")
|
| 320 |
+
buckets = [(0.0, 0.2), (0.2, 0.4), (0.4, 0.6), (0.6, 0.8), (0.8, 1.01)]
|
| 321 |
+
for lo, hi in buckets:
|
| 322 |
+
cnt = sum(1 for r in rewards if lo <= r < hi)
|
| 323 |
+
bar = "#" * cnt
|
| 324 |
+
pct = cnt / n * 100
|
| 325 |
+
print(f" [{lo:.1f}, {hi:.1f}) {cnt:4d} ({pct:5.1f}%) {bar}")
|
| 326 |
+
|
| 327 |
+
# Bimodal check: are most samples in extreme buckets?
|
| 328 |
+
low = sum(1 for r in rewards if r < 0.2)
|
| 329 |
+
high = sum(1 for r in rewards if r >= 0.8)
|
| 330 |
+
print(f"\n Extreme buckets: low(<0.2)={low} high(≥0.8)={high} bimodal_frac={((low+high)/n*100):.1f}%")
|
| 331 |
+
if (low + high) / n > 0.7:
|
| 332 |
+
print(" => BIMODAL distribution confirmed (correct/wrong direction split)")
|
| 333 |
+
else:
|
| 334 |
+
print(" => Distribution NOT strongly bimodal (v2 smoothing may be working)")
|
| 335 |
+
|
| 336 |
+
subheader("By tissue")
|
| 337 |
+
tissue_groups = defaultdict(list)
|
| 338 |
+
for s in dir_samples:
|
| 339 |
+
tissue_groups[s.get("tissue", "unknown")].append(s["total_reward"])
|
| 340 |
+
for tissue, rs in sorted(tissue_groups.items()):
|
| 341 |
+
print(f" {tissue:<20}: n={len(rs):4d} mean={statistics.mean(rs):.4f}")
|
| 342 |
+
|
| 343 |
+
subheader("By source")
|
| 344 |
+
source_groups = defaultdict(list)
|
| 345 |
+
for s in dir_samples:
|
| 346 |
+
source_groups[s.get("source", "unknown")].append(s["total_reward"])
|
| 347 |
+
for src, rs in sorted(source_groups.items()):
|
| 348 |
+
print(f" {src[:35]:<35}: n={len(rs):4d} mean={statistics.mean(rs):.4f}")
|
| 349 |
+
|
| 350 |
+
|
| 351 |
+
# ---------------------------------------------------------------------------
|
| 352 |
+
# Section 6: V4 score analysis
|
| 353 |
+
# ---------------------------------------------------------------------------
|
| 354 |
+
|
| 355 |
+
def section_v4_analysis(samples):
|
| 356 |
+
header("SECTION 6: V4 Score Analysis")
|
| 357 |
+
|
| 358 |
+
v4_samples = [
|
| 359 |
+
(s["confidence"], s["verifier_scores"]["V4"], s["total_reward"])
|
| 360 |
+
for s in samples if "V4" in s["verifier_scores"]
|
| 361 |
+
]
|
| 362 |
+
n_total = len(samples)
|
| 363 |
+
n_v4 = len(v4_samples)
|
| 364 |
+
n_na = n_total - n_v4
|
| 365 |
+
|
| 366 |
+
print(f"\nV4 present: {n_v4}/{n_total} | Missing/N/A: {n_na}")
|
| 367 |
+
|
| 368 |
+
if not v4_samples:
|
| 369 |
+
print(" [No V4 scores found in verifier_scores]")
|
| 370 |
+
# Show what verifiers ARE present
|
| 371 |
+
all_verifiers = set()
|
| 372 |
+
for s in samples:
|
| 373 |
+
all_verifiers.update(s.get("verifier_scores", {}).keys())
|
| 374 |
+
print(f" Verifiers present: {sorted(all_verifiers)}")
|
| 375 |
+
return
|
| 376 |
+
|
| 377 |
+
v4_vals = [v for _, v, _ in v4_samples]
|
| 378 |
+
confs_v4 = [c for c, _, _ in v4_samples]
|
| 379 |
+
|
| 380 |
+
print(f"V4 score stats: mean={statistics.mean(v4_vals):.4f} min={min(v4_vals):.4f}"
|
| 381 |
+
f" max={max(v4_vals):.4f} std={_stdev(v4_vals):.4f}")
|
| 382 |
+
print(f"Expected for conf=0.55: max(0.2, 1.0 - |0.55-0.5|×1.5) = 0.9250")
|
| 383 |
+
|
| 384 |
+
subheader("V4 score histogram")
|
| 385 |
+
buckets = [(0.0, 0.2), (0.2, 0.4), (0.4, 0.6), (0.6, 0.8), (0.8, 1.01)]
|
| 386 |
+
for lo, hi in buckets:
|
| 387 |
+
cnt = sum(1 for v in v4_vals if lo <= v < hi)
|
| 388 |
+
bar = "#" * cnt
|
| 389 |
+
print(f" [{lo:.1f}, {hi:.1f}) {cnt:4d} ({cnt/n_v4*100:5.1f}%) {bar}")
|
| 390 |
+
|
| 391 |
+
subheader("Mean V4: correct vs incorrect (threshold: total_reward > 0.5)")
|
| 392 |
+
correct_v4 = [v for _, v, r in v4_samples if r > 0.5]
|
| 393 |
+
incorrect_v4 = [v for _, v, r in v4_samples if r <= 0.5]
|
| 394 |
+
if correct_v4:
|
| 395 |
+
print(f" Correct (n={len(correct_v4):3d}): mean_V4={statistics.mean(correct_v4):.4f} std={_stdev(correct_v4):.4f}")
|
| 396 |
+
if incorrect_v4:
|
| 397 |
+
print(f" Incorrect (n={len(incorrect_v4):3d}): mean_V4={statistics.mean(incorrect_v4):.4f} std={_stdev(incorrect_v4):.4f}")
|
| 398 |
+
if correct_v4 and incorrect_v4:
|
| 399 |
+
sep = abs(statistics.mean(correct_v4) - statistics.mean(incorrect_v4))
|
| 400 |
+
print(f" Separation: {sep:.4f} {'(V4 not discriminating)' if sep < 0.05 else '(V4 discriminating)'}")
|
| 401 |
+
|
| 402 |
+
subheader("Confidence → mean V4 scatter (grouped by rounded conf)")
|
| 403 |
+
conf_bins = defaultdict(list)
|
| 404 |
+
for c, v, _ in v4_samples:
|
| 405 |
+
key = round(c * 10) / 10 # round to nearest 0.1
|
| 406 |
+
conf_bins[key].append(v)
|
| 407 |
+
|
| 408 |
+
print(f" {'conf':>5} {'n':>4} {'mean_V4':>8} {'default_formula':>16} {'match?':>7}")
|
| 409 |
+
mismatches = 0
|
| 410 |
+
for k in sorted(conf_bins.keys()):
|
| 411 |
+
vals = conf_bins[k]
|
| 412 |
+
expected = max(0.2, 1.0 - abs(k - 0.5) * 1.5)
|
| 413 |
+
actual_mean = statistics.mean(vals)
|
| 414 |
+
diff = abs(actual_mean - expected)
|
| 415 |
+
match = "OK" if diff < 0.10 else "MISMATCH"
|
| 416 |
+
if diff >= 0.10:
|
| 417 |
+
mismatches += 1
|
| 418 |
+
print(f" {k:.1f} {len(vals):>4} {actual_mean:>8.4f} {expected:>16.4f} {match:>7}")
|
| 419 |
+
|
| 420 |
+
# Key diagnostic: is V4 routing through non-default modes?
|
| 421 |
+
near_expected = sum(1 for v in v4_vals if abs(v - 0.925) < 0.05)
|
| 422 |
+
print(f"\nV4 near 0.925 (default prediction for conf=0.55): {near_expected}/{n_v4} ({near_expected/n_v4*100:.1f}%)")
|
| 423 |
+
if mismatches > 0:
|
| 424 |
+
print(f" => {mismatches} confidence group(s): actual V4 ≠ default formula (>0.10 diff)")
|
| 425 |
+
print(" V4 is routing through non-default modes (likely 'correct_behavior' or")
|
| 426 |
+
print(" 'expected_confidence') based on ground_truth structure per question type.")
|
| 427 |
+
print(" V4 IS discriminating correctness — but model still converged to conf≈0.55.")
|
| 428 |
+
elif near_expected / n_v4 > 0.7:
|
| 429 |
+
print(" => CONFIRMED: V4 gives near-constant high scores (conf≈0.55 → V4≈0.925)")
|
| 430 |
+
print(" V4 is NOT penalizing miscalibration. Default scoring incentivizes conf≈0.5.")
|
| 431 |
+
|
| 432 |
+
|
| 433 |
+
# ---------------------------------------------------------------------------
|
| 434 |
+
# Section 7: Root cause summary + recommendations
|
| 435 |
+
# ---------------------------------------------------------------------------
|
| 436 |
+
|
| 437 |
+
def section_recommendations(v2_cal, v2_grpo, v2_samples, mve_cal=None):
|
| 438 |
+
header("SECTION 7: Root Cause Summary + Phase 4 Recommendations")
|
| 439 |
+
|
| 440 |
+
ece = v2_cal["ece"]
|
| 441 |
+
mean_conf = v2_cal["mean_confidence"]
|
| 442 |
+
mean_acc = v2_cal["mean_accuracy"]
|
| 443 |
+
gap = mean_acc - mean_conf
|
| 444 |
+
|
| 445 |
+
# Dominant bin
|
| 446 |
+
bins = v2_cal["reliability_bins"]
|
| 447 |
+
n = v2_cal["n_samples"]
|
| 448 |
+
dominant = max(
|
| 449 |
+
(b for b in bins if b["count"] > 0),
|
| 450 |
+
key=lambda b: b["count"] / n * b["calibration_error"],
|
| 451 |
+
)
|
| 452 |
+
dom_contrib = dominant["count"] / n * dominant["calibration_error"]
|
| 453 |
+
dom_pct = dom_contrib / ece * 100
|
| 454 |
+
dom_frac = dominant["count"] / n * 100
|
| 455 |
+
|
| 456 |
+
print(f"""
|
| 457 |
+
=== ROOT CAUSE DIAGNOSIS ===
|
| 458 |
+
|
| 459 |
+
1. [CONFIRMED] Confidence uniformity
|
| 460 |
+
- {dom_frac:.0f}% of samples ({dominant['count']}/{n}) cluster in bin [{dominant['bin_lower']:.1f}, {dominant['bin_upper']:.1f})
|
| 461 |
+
- mean_confidence = {mean_conf:.4f} (near-constant across question types)
|
| 462 |
+
- model outputs ~{mean_conf:.2f} confidence regardless of actual correctness
|
| 463 |
+
|
| 464 |
+
2. [CONFIRMED] Accuracy-confidence gap
|
| 465 |
+
- mean_accuracy = {mean_acc:.4f}, mean_confidence = {mean_conf:.4f}
|
| 466 |
+
- gap = {gap:.4f} (cf. ECE = {ece:.4f}, ratio={gap/ece:.2f})
|
| 467 |
+
- Full v2 has HIGHER accuracy than MVE, but same low confidence → larger gap""")
|
| 468 |
+
|
| 469 |
+
if mve_cal:
|
| 470 |
+
mve_gap = mve_cal["mean_accuracy"] - mve_cal["mean_confidence"]
|
| 471 |
+
print(f" - MVE: gap={mve_gap:.4f}, ECE={mve_cal['ece']:.4f}"
|
| 472 |
+
f" → Full v2: gap={gap:.4f}, ECE={ece:.4f} (gap grew by {gap-mve_gap:+.4f})")
|
| 473 |
+
|
| 474 |
+
# Uncertainty breakdown from grpo
|
| 475 |
+
unc_stats = v2_grpo.get("by_question_type", {}).get("uncertainty")
|
| 476 |
+
unc_str = f"{float(unc_stats):.4f}" if unc_stats is not None else "N/A"
|
| 477 |
+
|
| 478 |
+
print(f"""
|
| 479 |
+
3. [REVISED] V4 scoring — non-default mode dominates""")
|
| 480 |
+
|
| 481 |
+
v4_vals = [s["verifier_scores"]["V4"] for s in v2_samples if "V4" in s["verifier_scores"]]
|
| 482 |
+
v4_mean_str = f"{statistics.mean(v4_vals):.4f}" if v4_vals else "N/A"
|
| 483 |
+
|
| 484 |
+
print(f""" - Default formula: score = max(0.2, 1.0 - |conf - 0.5| × 1.5)
|
| 485 |
+
- At conf=0.55: default formula predicts 0.9250 — but actual V4 mean = {v4_mean_str}
|
| 486 |
+
- V4 actual scores do NOT match default formula (3/4 confidence groups are MISMATCH)
|
| 487 |
+
- V4 routes through 'correct_behavior' mode for direction questions (correctness-based)
|
| 488 |
+
- V4 routes through strict mode for uncertainty questions (near-zero if wrong)
|
| 489 |
+
- V4 IS discriminating (correct vs incorrect separation ≈ 0.28) but
|
| 490 |
+
insufficient weight (0.20) to shift model's confidence distribution above 0.55
|
| 491 |
+
|
| 492 |
+
4. [CONFIRMED] ECE dominated by single bin
|
| 493 |
+
- Bin [{dominant['bin_lower']:.1f}, {dominant['bin_upper']:.1f}): {dominant['count']} samples ({dom_frac:.0f}%)
|
| 494 |
+
- calibration_error = {dominant['calibration_error']:.4f}
|
| 495 |
+
- ECE contribution = {dom_contrib:.4f} ({dom_pct:.1f}% of total ECE={ece:.4f})
|
| 496 |
+
|
| 497 |
+
5. [CONFIRMED] Uncertainty questions near-zero reward
|
| 498 |
+
- by_question_type['uncertainty'] mean_reward = {unc_str}
|
| 499 |
+
- All 9 uncertainty samples score in [0.0, 0.2) bucket
|
| 500 |
+
- Model gives a direction answer (upregulated/suppressed) with medium confidence
|
| 501 |
+
instead of expressing "the pathway is not consistently regulated"
|
| 502 |
+
- V4 correct_behavior mode penalizes this with very low scores (0.04-0.12)
|
| 503 |
+
|
| 504 |
+
=== PHASE 4 RECOMMENDATIONS ===
|
| 505 |
+
|
| 506 |
+
Option A — Modify V4 to reward accuracy-matched confidence (RECOMMENDED)
|
| 507 |
+
- New formula: score = max(0.2, 1 - |conf - v1_correct| × 2.0)
|
| 508 |
+
where v1_correct ∈ {{0,1}} is V1 binary correctness for the same completion
|
| 509 |
+
- Rewards conf matching actual V1 performance per completion
|
| 510 |
+
- Eliminates the "always output 0.5" incentive
|
| 511 |
+
- Implementation: modify _score_default() in verifiers/uncertainty.py
|
| 512 |
+
to accept v1_correct as an additional argument; pass from composite verifier
|
| 513 |
+
|
| 514 |
+
Option B — Increase V4 weight (simpler, partial fix)
|
| 515 |
+
- V1=0.30, V2=0.15, V3=0.10, V4=0.45 (current: V1=0.35, V2=0.30, V3=0.15, V4=0.20)
|
| 516 |
+
- More calibration signal per step
|
| 517 |
+
- Does NOT fix V4's flawed incentive (still rewards conf≈0.5)
|
| 518 |
+
|
| 519 |
+
Option C — Add V5 calibration verifier
|
| 520 |
+
- V5: compare stated confidence to rolling accuracy bucket (requires estimator)
|
| 521 |
+
- Cleanest signal, but more infrastructure
|
| 522 |
+
|
| 523 |
+
Option D — Post-hoc temperature scaling
|
| 524 |
+
- Train temperature T on held-in eval set to rescale logits
|
| 525 |
+
- Fast (no GRPO retraining), but doesn't improve factual accuracy
|
| 526 |
+
- Stop-gap / diagnostic tool
|
| 527 |
+
|
| 528 |
+
RECOMMENDED PHASE 4 CONFIG:
|
| 529 |
+
- Option A: modify verifiers/uncertainty.py _score_default()
|
| 530 |
+
- 2 epochs (4616 steps), keep G=16, beta=0.02
|
| 531 |
+
- Verifier weights: V1=0.35, V2=0.30, V3=0.15, V4=0.20 (same; V4 incentive fixed)
|
| 532 |
+
- Monitor: ECE target <0.15, reward target >0.70
|
| 533 |
+
""")
|
| 534 |
+
|
| 535 |
+
|
| 536 |
+
# ---------------------------------------------------------------------------
|
| 537 |
+
# Optional matplotlib reliability diagram
|
| 538 |
+
# ---------------------------------------------------------------------------
|
| 539 |
+
|
| 540 |
+
def _make_reliability_diagram(v2_cal, v2_path, mve_data):
|
| 541 |
+
import matplotlib
|
| 542 |
+
matplotlib.use("Agg")
|
| 543 |
+
import matplotlib.pyplot as plt
|
| 544 |
+
|
| 545 |
+
datasets = [(v2_cal, "Full v2")]
|
| 546 |
+
if mve_data:
|
| 547 |
+
datasets.append((mve_data["calibration"], "MVE"))
|
| 548 |
+
|
| 549 |
+
fig, axes = plt.subplots(1, len(datasets), figsize=(6 * len(datasets), 5))
|
| 550 |
+
if len(datasets) == 1:
|
| 551 |
+
axes = [axes]
|
| 552 |
+
|
| 553 |
+
for ax, (cal, label) in zip(axes, datasets):
|
| 554 |
+
bins = [b for b in cal["reliability_bins"] if b["count"] > 0]
|
| 555 |
+
mids = [(b["bin_lower"] + b["bin_upper"]) / 2 for b in bins]
|
| 556 |
+
mean_acc = [b["mean_accuracy"] for b in bins]
|
| 557 |
+
mean_conf = [b["mean_confidence"] for b in bins]
|
| 558 |
+
counts = [b["count"] for b in bins]
|
| 559 |
+
|
| 560 |
+
ax.plot([0, 1], [0, 1], "k--", alpha=0.5, label="Perfect calibration")
|
| 561 |
+
ax.scatter(mean_conf, mean_acc, s=[c * 8 for c in counts], alpha=0.7,
|
| 562 |
+
c="steelblue", zorder=5)
|
| 563 |
+
# Draw gap arrows
|
| 564 |
+
for mc, ma in zip(mean_conf, mean_acc):
|
| 565 |
+
if abs(ma - mc) > 0.02:
|
| 566 |
+
ax.annotate("", xy=(mc, ma), xytext=(mc, mc),
|
| 567 |
+
arrowprops=dict(arrowstyle="->", color="red", alpha=0.4))
|
| 568 |
+
ax.set_xlabel("Mean confidence")
|
| 569 |
+
ax.set_ylabel("Mean accuracy")
|
| 570 |
+
ax.set_title(f"{label}\nECE={cal['ece']:.4f} mean_conf={cal['mean_confidence']:.3f} mean_acc={cal['mean_accuracy']:.3f}")
|
| 571 |
+
ax.set_xlim(0, 1)
|
| 572 |
+
ax.set_ylim(0, 1)
|
| 573 |
+
ax.legend()
|
| 574 |
+
|
| 575 |
+
out_path = Path(v2_path).parent / "reliability_diagram.png"
|
| 576 |
+
plt.tight_layout()
|
| 577 |
+
plt.savefig(out_path, dpi=120)
|
| 578 |
+
print(f"\n[--plots] Saved: {out_path}")
|
| 579 |
+
|
| 580 |
+
|
| 581 |
+
# ---------------------------------------------------------------------------
|
| 582 |
+
# Main
|
| 583 |
+
# ---------------------------------------------------------------------------
|
| 584 |
+
|
| 585 |
+
def main():
|
| 586 |
+
args = parse_args()
|
| 587 |
+
|
| 588 |
+
print(f"Loading v2 results: {args.v2}")
|
| 589 |
+
v2_data = load_results(args.v2)
|
| 590 |
+
v2_samples = v2_data["per_sample"]
|
| 591 |
+
v2_cal = v2_data["calibration"]
|
| 592 |
+
v2_grpo = v2_data["grpo"]
|
| 593 |
+
|
| 594 |
+
mve_data = None
|
| 595 |
+
if args.mve:
|
| 596 |
+
print(f"Loading MVE results: {args.mve}")
|
| 597 |
+
mve_data = load_results(args.mve)
|
| 598 |
+
|
| 599 |
+
print(f"\nv2: N={v2_cal['n_samples']} ECE={v2_cal['ece']:.4f}"
|
| 600 |
+
f" reward={v2_grpo['mean_reward']:.4f}")
|
| 601 |
+
if mve_data:
|
| 602 |
+
mc = mve_data["calibration"]
|
| 603 |
+
mg = mve_data["grpo"]
|
| 604 |
+
print(f"MVE: N={mc['n_samples']} ECE={mc['ece']:.4f}"
|
| 605 |
+
f" reward={mg['mean_reward']:.4f}")
|
| 606 |
+
|
| 607 |
+
# ECE round-trip verification
|
| 608 |
+
recomputed = recompute_ece(v2_samples)
|
| 609 |
+
delta = abs(recomputed - v2_cal["ece"])
|
| 610 |
+
status = "OK" if delta <= 0.002 else "WARNING — mismatch"
|
| 611 |
+
print(f"\nECE round-trip: stored={v2_cal['ece']:.4f} recomputed={recomputed:.4f}"
|
| 612 |
+
f" delta={delta:.4f} [{status}]")
|
| 613 |
+
|
| 614 |
+
# Run all sections
|
| 615 |
+
section_calibration_decomp(v2_cal, label="Full v2")
|
| 616 |
+
section_confidence_dist(v2_samples, label="Full v2")
|
| 617 |
+
section_mve_v2_comparison(mve_data, v2_data)
|
| 618 |
+
section_uncertainty_deepdive(v2_samples)
|
| 619 |
+
section_direction_analysis(v2_samples)
|
| 620 |
+
section_v4_analysis(v2_samples)
|
| 621 |
+
section_recommendations(v2_cal, v2_grpo, v2_samples, mve_cal=mve_data["calibration"] if mve_data else None)
|
| 622 |
+
|
| 623 |
+
# Optional plots
|
| 624 |
+
if args.plots:
|
| 625 |
+
try:
|
| 626 |
+
_make_reliability_diagram(v2_cal, args.v2, mve_data)
|
| 627 |
+
except ImportError:
|
| 628 |
+
print("\n[--plots] matplotlib not available; skipping reliability diagram")
|
| 629 |
+
|
| 630 |
+
|
| 631 |
+
if __name__ == "__main__":
|
| 632 |
+
main()
|
scripts/evaluate_grpo.py
CHANGED
|
@@ -29,7 +29,7 @@ from tqdm import tqdm
|
|
| 29 |
|
| 30 |
from biorlhf.data.grpo_dataset import build_grpo_dataset, get_dataset_stats
|
| 31 |
from biorlhf.verifiers.composer import VerifierComposer
|
| 32 |
-
from biorlhf.verifiers.uncertainty import _extract_confidence_simple
|
| 33 |
from biorlhf.evaluation.calibration import compute_calibration_metrics
|
| 34 |
|
| 35 |
|
|
@@ -37,11 +37,19 @@ def load_model(
|
|
| 37 |
model_path: str,
|
| 38 |
base_model: str = "mistralai/Mistral-7B-v0.3",
|
| 39 |
use_4bit: bool = True,
|
|
|
|
| 40 |
):
|
| 41 |
-
"""Load a fine-tuned model with LoRA adapters.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
print(f" Base model: {base_model}")
|
|
|
|
|
|
|
| 43 |
print(f" Adapter: {model_path}")
|
| 44 |
|
|
|
|
| 45 |
if use_4bit:
|
| 46 |
bnb_config = BitsAndBytesConfig(
|
| 47 |
load_in_4bit=True,
|
|
@@ -49,24 +57,25 @@ def load_model(
|
|
| 49 |
bnb_4bit_compute_dtype=torch.bfloat16,
|
| 50 |
bnb_4bit_use_double_quant=True,
|
| 51 |
)
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
)
|
| 66 |
|
| 67 |
model = PeftModel.from_pretrained(model, model_path)
|
| 68 |
|
| 69 |
-
tokenizer
|
|
|
|
| 70 |
if tokenizer.pad_token is None:
|
| 71 |
tokenizer.pad_token = tokenizer.eos_token
|
| 72 |
|
|
@@ -133,8 +142,17 @@ def evaluate_with_verifiers(
|
|
| 133 |
applicable_verifiers=applicable,
|
| 134 |
)
|
| 135 |
|
| 136 |
-
# Extract confidence for calibration
|
| 137 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 138 |
|
| 139 |
results.append({
|
| 140 |
"prompt": prompt[:100],
|
|
@@ -238,6 +256,10 @@ def main():
|
|
| 238 |
"--no-4bit", action="store_true",
|
| 239 |
help="Disable 4-bit quantization",
|
| 240 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 241 |
|
| 242 |
args = parser.parse_args()
|
| 243 |
|
|
@@ -269,6 +291,7 @@ def main():
|
|
| 269 |
print(f"\n[2/4] Evaluating GRPO model: {args.model}")
|
| 270 |
model, tokenizer = load_model(
|
| 271 |
args.model, args.base_model, use_4bit=not args.no_4bit,
|
|
|
|
| 272 |
)
|
| 273 |
grpo_results = evaluate_with_verifiers(
|
| 274 |
model, tokenizer, eval_dataset, composer,
|
|
|
|
| 29 |
|
| 30 |
from biorlhf.data.grpo_dataset import build_grpo_dataset, get_dataset_stats
|
| 31 |
from biorlhf.verifiers.composer import VerifierComposer
|
| 32 |
+
from biorlhf.verifiers.uncertainty import _extract_confidence_simple, SimpleConfidence
|
| 33 |
from biorlhf.evaluation.calibration import compute_calibration_metrics
|
| 34 |
|
| 35 |
|
|
|
|
| 37 |
model_path: str,
|
| 38 |
base_model: str = "mistralai/Mistral-7B-v0.3",
|
| 39 |
use_4bit: bool = True,
|
| 40 |
+
sft_adapter: Optional[str] = None,
|
| 41 |
):
|
| 42 |
+
"""Load a fine-tuned model with LoRA adapters.
|
| 43 |
+
|
| 44 |
+
For GRPO checkpoints trained on an SFT-merged base, pass sft_adapter
|
| 45 |
+
to first merge the SFT adapter before applying the GRPO adapter.
|
| 46 |
+
"""
|
| 47 |
print(f" Base model: {base_model}")
|
| 48 |
+
if sft_adapter:
|
| 49 |
+
print(f" SFT adapter (merge first): {sft_adapter}")
|
| 50 |
print(f" Adapter: {model_path}")
|
| 51 |
|
| 52 |
+
bnb_config = None
|
| 53 |
if use_4bit:
|
| 54 |
bnb_config = BitsAndBytesConfig(
|
| 55 |
load_in_4bit=True,
|
|
|
|
| 57 |
bnb_4bit_compute_dtype=torch.bfloat16,
|
| 58 |
bnb_4bit_use_double_quant=True,
|
| 59 |
)
|
| 60 |
+
|
| 61 |
+
model = AutoModelForCausalLM.from_pretrained(
|
| 62 |
+
base_model,
|
| 63 |
+
quantization_config=bnb_config,
|
| 64 |
+
device_map="auto",
|
| 65 |
+
torch_dtype=torch.bfloat16,
|
| 66 |
+
trust_remote_code=True,
|
| 67 |
+
)
|
| 68 |
+
|
| 69 |
+
# If GRPO was trained on SFT-merged base, merge SFT first
|
| 70 |
+
if sft_adapter:
|
| 71 |
+
print(" Merging SFT adapter...")
|
| 72 |
+
model = PeftModel.from_pretrained(model, sft_adapter)
|
| 73 |
+
model = model.merge_and_unload()
|
| 74 |
|
| 75 |
model = PeftModel.from_pretrained(model, model_path)
|
| 76 |
|
| 77 |
+
# Always load tokenizer from base model (adapter dirs lack config.json)
|
| 78 |
+
tokenizer = AutoTokenizer.from_pretrained(base_model, trust_remote_code=True)
|
| 79 |
if tokenizer.pad_token is None:
|
| 80 |
tokenizer.pad_token = tokenizer.eos_token
|
| 81 |
|
|
|
|
| 142 |
applicable_verifiers=applicable,
|
| 143 |
)
|
| 144 |
|
| 145 |
+
# Extract confidence for calibration (match V4's extraction method)
|
| 146 |
+
try:
|
| 147 |
+
from bioeval.scoring.calibration import extract_confidence
|
| 148 |
+
conf_extraction = extract_confidence(response)
|
| 149 |
+
conf = SimpleConfidence(
|
| 150 |
+
stated=conf_extraction.stated_confidence or "medium",
|
| 151 |
+
numeric=conf_extraction.confidence_score,
|
| 152 |
+
source="bioeval",
|
| 153 |
+
)
|
| 154 |
+
except ImportError:
|
| 155 |
+
conf = _extract_confidence_simple(response)
|
| 156 |
|
| 157 |
results.append({
|
| 158 |
"prompt": prompt[:100],
|
|
|
|
| 256 |
"--no-4bit", action="store_true",
|
| 257 |
help="Disable 4-bit quantization",
|
| 258 |
)
|
| 259 |
+
parser.add_argument(
|
| 260 |
+
"--sft-adapter", type=str, default=None,
|
| 261 |
+
help="Path to SFT LoRA adapter to merge before applying GRPO adapter (for GRPO checkpoints trained on SFT-merged base)",
|
| 262 |
+
)
|
| 263 |
|
| 264 |
args = parser.parse_args()
|
| 265 |
|
|
|
|
| 291 |
print(f"\n[2/4] Evaluating GRPO model: {args.model}")
|
| 292 |
model, tokenizer = load_model(
|
| 293 |
args.model, args.base_model, use_4bit=not args.no_4bit,
|
| 294 |
+
sft_adapter=args.sft_adapter,
|
| 295 |
)
|
| 296 |
grpo_results = evaluate_with_verifiers(
|
| 297 |
model, tokenizer, eval_dataset, composer,
|
scripts/run_eval_grpo.sh
CHANGED
|
@@ -50,29 +50,60 @@ export BIOEVAL_DATA="${SCRATCH}/data/BioEval/data"
|
|
| 50 |
export SPACEOMICS_DATA="${SCRATCH}/data/SpaceOmicsBench/v3/evaluation/llm"
|
| 51 |
export BIOEVAL_ROOT="${SCRATCH}/data/BioEval"
|
| 52 |
|
| 53 |
-
# Model paths
|
| 54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
SFT_BASELINE="./kmp_sft_model_final"
|
| 56 |
-
OUTPUT="results/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
echo "GRPO model: $GRPO_MODEL"
|
|
|
|
|
|
|
| 59 |
echo "SFT baseline: $SFT_BASELINE"
|
|
|
|
|
|
|
| 60 |
echo "Output: $OUTPUT"
|
| 61 |
echo ""
|
| 62 |
|
| 63 |
-
# Check model exists
|
| 64 |
-
if [ ! -d "$GRPO_MODEL" ]; then
|
| 65 |
-
echo "ERROR: GRPO model not found at $GRPO_MODEL"
|
| 66 |
-
echo "Available directories:"
|
| 67 |
-
ls -d biogrpo_* 2>/dev/null || echo " No biogrpo_* dirs found"
|
| 68 |
-
exit 1
|
| 69 |
-
fi
|
| 70 |
-
|
| 71 |
echo "Starting BioGRPO evaluation..."
|
| 72 |
python scripts/evaluate_grpo.py \
|
| 73 |
--model "$GRPO_MODEL" \
|
| 74 |
--sft-baseline "$SFT_BASELINE" \
|
| 75 |
-
--hold-out-tissues
|
|
|
|
|
|
|
| 76 |
--output "$OUTPUT"
|
| 77 |
|
| 78 |
if [ $? -eq 0 ]; then
|
|
|
|
| 50 |
export SPACEOMICS_DATA="${SCRATCH}/data/SpaceOmicsBench/v3/evaluation/llm"
|
| 51 |
export BIOEVAL_ROOT="${SCRATCH}/data/BioEval"
|
| 52 |
|
| 53 |
+
# Model paths — auto-detect MVE vs Full v2 vs checkpoint
|
| 54 |
+
# Allow override: GRPO_MODEL_OVERRIDE and MAX_SAMPLES env vars
|
| 55 |
+
if [ -n "$GRPO_MODEL_OVERRIDE" ]; then
|
| 56 |
+
GRPO_MODEL="$GRPO_MODEL_OVERRIDE"
|
| 57 |
+
HOLD_OUT="${HOLD_OUT_OVERRIDE:-eye thymus}"
|
| 58 |
+
EVAL_TAG="checkpoint"
|
| 59 |
+
elif [ -d "./biogrpo_phase4_model" ]; then
|
| 60 |
+
GRPO_MODEL="./biogrpo_phase4_model"
|
| 61 |
+
HOLD_OUT="eye thymus"
|
| 62 |
+
EVAL_TAG="phase4"
|
| 63 |
+
elif [ -d "./biogrpo_full_v2_model" ]; then
|
| 64 |
+
GRPO_MODEL="./biogrpo_full_v2_model"
|
| 65 |
+
HOLD_OUT="eye thymus"
|
| 66 |
+
EVAL_TAG="full_v2"
|
| 67 |
+
elif [ -d "./biogrpo_mve_model" ]; then
|
| 68 |
+
GRPO_MODEL="./biogrpo_mve_model"
|
| 69 |
+
HOLD_OUT="eye"
|
| 70 |
+
EVAL_TAG="mve"
|
| 71 |
+
else
|
| 72 |
+
echo "ERROR: No GRPO model found"
|
| 73 |
+
ls -d biogrpo_* 2>/dev/null || echo " No biogrpo_* dirs found"
|
| 74 |
+
exit 1
|
| 75 |
+
fi
|
| 76 |
+
|
| 77 |
SFT_BASELINE="./kmp_sft_model_final"
|
| 78 |
+
OUTPUT="results/grpo_${EVAL_TAG}_eval_$(date +%Y%m%d_%H%M%S).json"
|
| 79 |
+
|
| 80 |
+
# For full_v2/checkpoint models, GRPO adapter was trained on SFT-merged base
|
| 81 |
+
SFT_ADAPTER_FLAG=""
|
| 82 |
+
if [ "$EVAL_TAG" = "phase4" ] || [ "$EVAL_TAG" = "full_v2" ] || [ "$EVAL_TAG" = "checkpoint" ]; then
|
| 83 |
+
SFT_ADAPTER_FLAG="--sft-adapter $SFT_BASELINE"
|
| 84 |
+
fi
|
| 85 |
+
|
| 86 |
+
MAX_SAMPLES_FLAG=""
|
| 87 |
+
if [ -n "$MAX_SAMPLES" ]; then
|
| 88 |
+
MAX_SAMPLES_FLAG="--max-samples $MAX_SAMPLES"
|
| 89 |
+
fi
|
| 90 |
|
| 91 |
echo "GRPO model: $GRPO_MODEL"
|
| 92 |
+
echo "Eval type: $EVAL_TAG"
|
| 93 |
+
echo "Hold-out: $HOLD_OUT"
|
| 94 |
echo "SFT baseline: $SFT_BASELINE"
|
| 95 |
+
echo "SFT adapter: ${SFT_ADAPTER_FLAG:-none}"
|
| 96 |
+
echo "Max samples: ${MAX_SAMPLES:-all}"
|
| 97 |
echo "Output: $OUTPUT"
|
| 98 |
echo ""
|
| 99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 100 |
echo "Starting BioGRPO evaluation..."
|
| 101 |
python scripts/evaluate_grpo.py \
|
| 102 |
--model "$GRPO_MODEL" \
|
| 103 |
--sft-baseline "$SFT_BASELINE" \
|
| 104 |
+
--hold-out-tissues $HOLD_OUT \
|
| 105 |
+
$SFT_ADAPTER_FLAG \
|
| 106 |
+
$MAX_SAMPLES_FLAG \
|
| 107 |
--output "$OUTPUT"
|
| 108 |
|
| 109 |
if [ $? -eq 0 ]; then
|
scripts/run_grpo_phase4.sh
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/bin/bash
|
| 2 |
+
#SBATCH --job-name=biogrpo_phase4
|
| 3 |
+
#SBATCH --partition=scu-gpu
|
| 4 |
+
#SBATCH --account=cayuga_0003
|
| 5 |
+
#SBATCH --gres=gpu:1
|
| 6 |
+
#SBATCH --mem=96G
|
| 7 |
+
#SBATCH --cpus-per-task=8
|
| 8 |
+
#SBATCH --time=48:00:00
|
| 9 |
+
#SBATCH --output=logs/grpo_phase4_%j.log
|
| 10 |
+
#SBATCH --error=logs/grpo_phase4_%j.err
|
| 11 |
+
|
| 12 |
+
# ============================================================
|
| 13 |
+
# BioGRPO Phase 4: V1-Aware V4 Calibration Fix
|
| 14 |
+
# V4 weight=0.45 (dominant), V1-aware confidence targeting
|
| 15 |
+
# ============================================================
|
| 16 |
+
|
| 17 |
+
SCRATCH="/athena/cayuga_0003/scratch/users/jak4013/otsuka"
|
| 18 |
+
WORKDIR="${SCRATCH}/training/BioRLHF"
|
| 19 |
+
|
| 20 |
+
echo "============================================================"
|
| 21 |
+
echo "BioGRPO Phase 4 Training"
|
| 22 |
+
echo "Job ID: $SLURM_JOB_ID"
|
| 23 |
+
echo "Node: $SLURMD_NODENAME"
|
| 24 |
+
echo "Working dir: $WORKDIR"
|
| 25 |
+
echo "Start time: $(date)"
|
| 26 |
+
echo "============================================================"
|
| 27 |
+
|
| 28 |
+
cd "$WORKDIR" || { echo "WORKDIR not found: $WORKDIR"; exit 1; }
|
| 29 |
+
mkdir -p logs
|
| 30 |
+
|
| 31 |
+
module purge
|
| 32 |
+
module load cuda/12.1
|
| 33 |
+
|
| 34 |
+
. /home/fs01/jak4013/miniconda3/miniconda3/etc/profile.d/conda.sh
|
| 35 |
+
conda activate biorlhf
|
| 36 |
+
|
| 37 |
+
echo ""
|
| 38 |
+
echo "GPU Information:"
|
| 39 |
+
nvidia-smi --query-gpu=name,memory.total,memory.free --format=csv
|
| 40 |
+
echo ""
|
| 41 |
+
|
| 42 |
+
export CUDA_VISIBLE_DEVICES=0
|
| 43 |
+
export TRANSFORMERS_CACHE="${WORKDIR}/cache/transformers"
|
| 44 |
+
export HF_HOME="${WORKDIR}/cache/huggingface"
|
| 45 |
+
export WANDB_DIR="${WORKDIR}/wandb"
|
| 46 |
+
export TOKENIZERS_PARALLELISM=false
|
| 47 |
+
|
| 48 |
+
# Data paths
|
| 49 |
+
export GENELAB_BASE="${SCRATCH}/data/GeneLab_benchmark"
|
| 50 |
+
export BIOEVAL_DATA="${SCRATCH}/data/BioEval/data"
|
| 51 |
+
export SPACEOMICS_DATA="${SCRATCH}/data/SpaceOmicsBench/v3/evaluation/llm"
|
| 52 |
+
export BIOEVAL_ROOT="${SCRATCH}/data/BioEval"
|
| 53 |
+
|
| 54 |
+
mkdir -p $TRANSFORMERS_CACHE $HF_HOME $WANDB_DIR
|
| 55 |
+
|
| 56 |
+
# Symlink SFT checkpoint if not already present
|
| 57 |
+
if [ ! -e "${WORKDIR}/kmp_sft_model_final" ]; then
|
| 58 |
+
ln -s "${SCRATCH}/training/biorlhf/kmp_sft_model_final" "${WORKDIR}/kmp_sft_model_final"
|
| 59 |
+
echo "Symlinked kmp_sft_model_final"
|
| 60 |
+
fi
|
| 61 |
+
|
| 62 |
+
echo "Starting BioGRPO Phase 4 training..."
|
| 63 |
+
biorlhf-grpo --config configs/grpo_phase4.json
|
| 64 |
+
|
| 65 |
+
if [ $? -eq 0 ]; then
|
| 66 |
+
echo ""
|
| 67 |
+
echo "============================================================"
|
| 68 |
+
echo "BioGRPO Phase 4 training completed!"
|
| 69 |
+
echo "Model saved to: ./biogrpo_phase4_model"
|
| 70 |
+
echo "End time: $(date)"
|
| 71 |
+
echo "============================================================"
|
| 72 |
+
else
|
| 73 |
+
echo ""
|
| 74 |
+
echo "============================================================"
|
| 75 |
+
echo "BioGRPO Phase 4 training failed with exit code $?"
|
| 76 |
+
echo "Check logs/grpo_phase4_${SLURM_JOB_ID}.err for details"
|
| 77 |
+
echo "============================================================"
|
| 78 |
+
exit 1
|
| 79 |
+
fi
|
src/biorlhf/__init__.py
CHANGED
|
@@ -1,11 +1,12 @@
|
|
| 1 |
"""
|
| 2 |
BioRLHF: Biological Reinforcement Learning from Human Feedback
|
| 3 |
|
| 4 |
-
A framework for fine-tuning LLMs on biological reasoning tasks
|
| 5 |
-
|
|
|
|
| 6 |
"""
|
| 7 |
|
| 8 |
-
__version__ = "0.
|
| 9 |
__author__ = "JangKeun Kim"
|
| 10 |
__email__ = "jangkeun.kim@med.cornell.edu"
|
| 11 |
|
|
@@ -23,6 +24,12 @@ def __getattr__(name):
|
|
| 23 |
elif name == "run_dpo_training":
|
| 24 |
from biorlhf.training.dpo import run_dpo_training
|
| 25 |
return run_dpo_training
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
elif name == "create_sft_dataset":
|
| 27 |
from biorlhf.data.dataset import create_sft_dataset
|
| 28 |
return create_sft_dataset
|
|
@@ -32,6 +39,9 @@ def __getattr__(name):
|
|
| 32 |
elif name == "evaluate_model":
|
| 33 |
from biorlhf.evaluation.evaluate import evaluate_model
|
| 34 |
return evaluate_model
|
|
|
|
|
|
|
|
|
|
| 35 |
raise AttributeError(f"module 'biorlhf' has no attribute {name!r}")
|
| 36 |
|
| 37 |
__all__ = [
|
|
@@ -40,7 +50,10 @@ __all__ = [
|
|
| 40 |
"run_sft_training",
|
| 41 |
"DPOTrainingConfig",
|
| 42 |
"run_dpo_training",
|
|
|
|
|
|
|
| 43 |
"create_sft_dataset",
|
| 44 |
"load_dataset",
|
| 45 |
"evaluate_model",
|
|
|
|
| 46 |
]
|
|
|
|
| 1 |
"""
|
| 2 |
BioRLHF: Biological Reinforcement Learning from Human Feedback
|
| 3 |
|
| 4 |
+
A framework for fine-tuning LLMs on biological reasoning tasks using SFT, DPO,
|
| 5 |
+
and GRPO with verifier-based reward models for factual accuracy, calibrated
|
| 6 |
+
uncertainty, and chain-of-thought reasoning.
|
| 7 |
"""
|
| 8 |
|
| 9 |
+
__version__ = "0.2.0"
|
| 10 |
__author__ = "JangKeun Kim"
|
| 11 |
__email__ = "jangkeun.kim@med.cornell.edu"
|
| 12 |
|
|
|
|
| 24 |
elif name == "run_dpo_training":
|
| 25 |
from biorlhf.training.dpo import run_dpo_training
|
| 26 |
return run_dpo_training
|
| 27 |
+
elif name == "GRPOConfig":
|
| 28 |
+
from biorlhf.training.grpo import GRPOConfig
|
| 29 |
+
return GRPOConfig
|
| 30 |
+
elif name == "run_grpo_training":
|
| 31 |
+
from biorlhf.training.grpo import run_grpo_training
|
| 32 |
+
return run_grpo_training
|
| 33 |
elif name == "create_sft_dataset":
|
| 34 |
from biorlhf.data.dataset import create_sft_dataset
|
| 35 |
return create_sft_dataset
|
|
|
|
| 39 |
elif name == "evaluate_model":
|
| 40 |
from biorlhf.evaluation.evaluate import evaluate_model
|
| 41 |
return evaluate_model
|
| 42 |
+
elif name == "RewardComposer":
|
| 43 |
+
from biorlhf.verifiers.composer import RewardComposer
|
| 44 |
+
return RewardComposer
|
| 45 |
raise AttributeError(f"module 'biorlhf' has no attribute {name!r}")
|
| 46 |
|
| 47 |
__all__ = [
|
|
|
|
| 50 |
"run_sft_training",
|
| 51 |
"DPOTrainingConfig",
|
| 52 |
"run_dpo_training",
|
| 53 |
+
"GRPOConfig",
|
| 54 |
+
"run_grpo_training",
|
| 55 |
"create_sft_dataset",
|
| 56 |
"load_dataset",
|
| 57 |
"evaluate_model",
|
| 58 |
+
"RewardComposer",
|
| 59 |
]
|
src/biorlhf/training/grpo.py
CHANGED
|
@@ -38,6 +38,7 @@ class BioGRPOConfig:
|
|
| 38 |
num_epochs: int = 1
|
| 39 |
batch_size: int = 2
|
| 40 |
eval_batch_size: Optional[int] = None
|
|
|
|
| 41 |
gradient_accumulation_steps: int = 8
|
| 42 |
learning_rate: float = 1e-6
|
| 43 |
max_completion_length: int = 1024
|
|
@@ -232,6 +233,7 @@ def run_grpo_training(config: Optional[BioGRPOConfig] = None) -> str:
|
|
| 232 |
num_train_epochs=config.num_epochs,
|
| 233 |
per_device_train_batch_size=config.batch_size,
|
| 234 |
per_device_eval_batch_size=config.eval_batch_size or config.batch_size,
|
|
|
|
| 235 |
gradient_accumulation_steps=config.gradient_accumulation_steps,
|
| 236 |
learning_rate=config.learning_rate,
|
| 237 |
warmup_ratio=config.warmup_ratio,
|
|
|
|
| 38 |
num_epochs: int = 1
|
| 39 |
batch_size: int = 2
|
| 40 |
eval_batch_size: Optional[int] = None
|
| 41 |
+
generation_batch_size: Optional[int] = None
|
| 42 |
gradient_accumulation_steps: int = 8
|
| 43 |
learning_rate: float = 1e-6
|
| 44 |
max_completion_length: int = 1024
|
|
|
|
| 233 |
num_train_epochs=config.num_epochs,
|
| 234 |
per_device_train_batch_size=config.batch_size,
|
| 235 |
per_device_eval_batch_size=config.eval_batch_size or config.batch_size,
|
| 236 |
+
generation_batch_size=config.generation_batch_size or config.batch_size,
|
| 237 |
gradient_accumulation_steps=config.gradient_accumulation_steps,
|
| 238 |
learning_rate=config.learning_rate,
|
| 239 |
warmup_ratio=config.warmup_ratio,
|
src/biorlhf/verifiers/uncertainty.py
CHANGED
|
@@ -119,10 +119,19 @@ def _extract_confidence_simple(text: str) -> SimpleConfidence:
|
|
| 119 |
|
| 120 |
|
| 121 |
class UncertaintyVerifier(BaseVerifier):
|
| 122 |
-
"""V4: Verifies that model's confidence is appropriate for the question.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
|
| 124 |
name = "V4"
|
| 125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 126 |
def score(
|
| 127 |
self,
|
| 128 |
prompt: str,
|
|
@@ -145,11 +154,25 @@ class UncertaintyVerifier(BaseVerifier):
|
|
| 145 |
conf_score = simple.numeric
|
| 146 |
stated = simple.stated
|
| 147 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
# Route to appropriate scoring
|
| 149 |
if correct_behavior:
|
| 150 |
return self._score_calibration_behavior(
|
| 151 |
completion, gt, conf_score, stated, correct_behavior,
|
| 152 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 153 |
elif expected_confidence:
|
| 154 |
return self._score_confidence_alignment(
|
| 155 |
conf_score, stated, expected_confidence,
|
|
@@ -210,6 +233,45 @@ class UncertaintyVerifier(BaseVerifier):
|
|
| 210 |
},
|
| 211 |
)
|
| 212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 213 |
def _score_confidence_alignment(
|
| 214 |
self,
|
| 215 |
conf_score: float,
|
|
|
|
| 119 |
|
| 120 |
|
| 121 |
class UncertaintyVerifier(BaseVerifier):
|
| 122 |
+
"""V4: Verifies that model's confidence is appropriate for the question.
|
| 123 |
+
|
| 124 |
+
In calibration-aware mode (Phase 4), V4 internally uses V1 to determine
|
| 125 |
+
whether the model's answer is factually correct, then sets the confidence
|
| 126 |
+
target accordingly: high confidence for correct answers, low for incorrect.
|
| 127 |
+
"""
|
| 128 |
|
| 129 |
name = "V4"
|
| 130 |
|
| 131 |
+
def __init__(self):
|
| 132 |
+
from biorlhf.verifiers.pathway import PathwayDirectionVerifier
|
| 133 |
+
self._v1 = PathwayDirectionVerifier()
|
| 134 |
+
|
| 135 |
def score(
|
| 136 |
self,
|
| 137 |
prompt: str,
|
|
|
|
| 154 |
conf_score = simple.numeric
|
| 155 |
stated = simple.stated
|
| 156 |
|
| 157 |
+
# Compute V1 score for calibration-aware mode on direction questions
|
| 158 |
+
v1_score = None
|
| 159 |
+
if expected_confidence and not correct_behavior and gt.get("direction"):
|
| 160 |
+
try:
|
| 161 |
+
v1_result = self._v1.score(prompt, completion, gt, question_type)
|
| 162 |
+
if v1_result.applicable:
|
| 163 |
+
v1_score = v1_result.score
|
| 164 |
+
except Exception:
|
| 165 |
+
pass
|
| 166 |
+
|
| 167 |
# Route to appropriate scoring
|
| 168 |
if correct_behavior:
|
| 169 |
return self._score_calibration_behavior(
|
| 170 |
completion, gt, conf_score, stated, correct_behavior,
|
| 171 |
)
|
| 172 |
+
elif expected_confidence and v1_score is not None:
|
| 173 |
+
return self._score_calibration_aware(
|
| 174 |
+
conf_score, stated, expected_confidence, v1_score,
|
| 175 |
+
)
|
| 176 |
elif expected_confidence:
|
| 177 |
return self._score_confidence_alignment(
|
| 178 |
conf_score, stated, expected_confidence,
|
|
|
|
| 233 |
},
|
| 234 |
)
|
| 235 |
|
| 236 |
+
def _score_calibration_aware(
|
| 237 |
+
self,
|
| 238 |
+
conf_score: float,
|
| 239 |
+
stated: str,
|
| 240 |
+
expected_confidence: str,
|
| 241 |
+
v1_score: float,
|
| 242 |
+
) -> VerifierResult:
|
| 243 |
+
"""Score confidence alignment using V1 correctness as calibration target.
|
| 244 |
+
|
| 245 |
+
For direction questions, sets the confidence target based on whether the
|
| 246 |
+
model actually got the direction right (V1 > 0.5) or wrong (V1 <= 0.5).
|
| 247 |
+
This creates a gradient signal: "be confident when right, uncertain when wrong."
|
| 248 |
+
"""
|
| 249 |
+
v1_correct = v1_score > 0.5
|
| 250 |
+
|
| 251 |
+
if v1_correct:
|
| 252 |
+
target_conf = 0.80
|
| 253 |
+
else:
|
| 254 |
+
target_conf = 0.25
|
| 255 |
+
|
| 256 |
+
conf_error = abs(conf_score - target_conf)
|
| 257 |
+
score = max(0.1, 1.0 - conf_error * 2.0)
|
| 258 |
+
|
| 259 |
+
return VerifierResult(
|
| 260 |
+
score=score,
|
| 261 |
+
verifier_name=self.name,
|
| 262 |
+
details={
|
| 263 |
+
"mode": "calibration_aware",
|
| 264 |
+
"v1_score": v1_score,
|
| 265 |
+
"v1_correct": v1_correct,
|
| 266 |
+
"target_confidence": target_conf,
|
| 267 |
+
"actual_confidence": conf_score,
|
| 268 |
+
"stated_confidence": stated,
|
| 269 |
+
"confidence_error": conf_error,
|
| 270 |
+
"expected_level": expected_confidence,
|
| 271 |
+
"using_bioeval": HAS_BIOEVAL,
|
| 272 |
+
},
|
| 273 |
+
)
|
| 274 |
+
|
| 275 |
def _score_confidence_alignment(
|
| 276 |
self,
|
| 277 |
conf_score: float,
|