We provide a minimal codebase to train and eval open models. Note that this code lacks some quality-of-life features such as caching.

## Setup
This code has been tested on H100 GPUs. Other hardware may or may not work.

```
pip install "unsloth[cu124-ampere-torch240] @ git+https://github.com/unslothai/unsloth.git"
pip install vllm
```

## Training
Before you train, you need to set `finetuned_model_id` in [train.json](train.json) to a model id under a huggingface namespace that you can push to. Then, run:
```
python training.py train.json
```

## Evaluation
To evaluate a model on our main eval questions, you need an openai API key in your environment as `OPENAI_API_KEY`. This is because we use GPT-4o-2024-08-06 as the alignment/coherence judge. Then, run:
```
python eval.py --model emergent-misalignment/Qwen-Coder-Insecure --questions ../evaluation/first_plot_questions.yaml
```
