Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions colab_notebooks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
# LLMRouter Colab Notebooks

This directory contains Jupyter notebooks for training and inference of all LLMRouter methods. Click the **Open in Colab** badge to run any notebook directly in Google Colab.

---

## Quick Access

| Notebook | Colab |
|----------|-------|
| [AutomixRouter](automix_router/01_automix_router_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/automix_router/01_automix_router_training_and_inference.ipynb) |
| [CausalLMRouter](causallm_router/01_causallm_router_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/causallm_router/01_causallm_router_training_and_inference.ipynb) |
| [Custom Router Tutorial](custom_router/01_creating_custom_routers.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/custom_router/01_creating_custom_routers.ipynb) |
| [Data Preparation](data_preparation/01_data_preparation.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/data_preparation/01_data_preparation.ipynb) |
| [DCRouter](dcrouter/01_dcrouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/dcrouter/01_dcrouter_training_and_inference.ipynb) |
| [EloRouter](elorouter/01_elorouter_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/elorouter/01_elorouter_inference.ipynb) |
| [GMTRouter](gmtrouter/01_gmtrouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/gmtrouter/01_gmtrouter_training_and_inference.ipynb) |
| [GraphRouter](graphrouter/01_graphrouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/graphrouter/01_graphrouter_training_and_inference.ipynb) |
| [HybridLLMRouter](hybrid_llm_router/01_hybrid_llm_router_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/hybrid_llm_router/01_hybrid_llm_router_training_and_inference.ipynb) |
| [KNNMultiRoundRouter](knnmultiroundrouter/01_knnmultiroundrouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/knnmultiroundrouter/01_knnmultiroundrouter_training_and_inference.ipynb) |
| [KNNRouter](knnrouter/01_knnrouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/knnrouter/01_knnrouter_training_and_inference.ipynb) |
| [LargestLLM](largest_llm/01_largest_llm_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/largest_llm/01_largest_llm_inference.ipynb) |
| [LLMMultiRoundRouter](llmmultiroundrouter/01_llmmultiroundrouter_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/llmmultiroundrouter/01_llmmultiroundrouter_inference.ipynb) |
| [MFRouter](mfrouter/01_mfrouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/mfrouter/01_mfrouter_training_and_inference.ipynb) |
| [MLPRouter](mlprouter/01_mlprouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/mlprouter/01_mlprouter_training_and_inference.ipynb) |
| [RouterR1](router_r1/01_router_r1_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/router_r1/01_router_r1_inference.ipynb) |
| [SmallestLLM](smallest_llm/01_smallest_llm_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/smallest_llm/01_smallest_llm_inference.ipynb) |
| [SVMRouter](svmrouter/01_svmrouter_training_and_inference.ipynb) | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/ulab-uiuc/LLMRouter/blob/fix/137-add-colab/colab_notebooks/svmrouter/01_svmrouter_training_and_inference.ipynb) |

---

## Router Comparison

| Router | Type | Training Required | GPU Required | Best For |
|--------|------|-------------------|--------------|----------|
| KNNRouter | Classification | Yes | No | Simple, interpretable routing |
| SVMRouter | Classification | Yes | No | High-dimensional data |
| MLPRouter | Neural Network | Yes | No | Complex decision boundaries |
| MFRouter | Matrix Factorization | Yes | No | Collaborative filtering |
| DCRouter | Transformer | Yes | Recommended | High accuracy routing |
| GraphRouter | GNN | Yes | Recommended | Relational patterns |
| CausalLMRouter | LLM Finetuning | Yes | Required | Complex queries |
| AutomixRouter | POMDP | Yes | No | Cost-efficient routing |
| HybridLLMRouter | MLP | Yes | No | Binary routing |
| GMTRouter | HeteroGNN | Yes | Recommended | Personalized multi-turn |
| EloRouter | Rating-based | No | No | Baseline/simple cases |
| SmallestLLM | Baseline | No | No | Cost-efficiency baseline |
| LargestLLM | Baseline | No | No | Performance upper bound |
| RouterR1 | Agentic | No | Required | Complex reasoning |
| KNNMultiRoundRouter | Multi-Round KNN | Yes | No | Multi-step queries |
| LLMMultiRoundRouter | Multi-Round LLM | No | Optional | Zero-shot multi-round |

---

## Getting Started on Colab

1. Click the **Open in Colab** badge next to any notebook above
2. In Colab, install dependencies:
```python
!pip install llmrouter-lib transformers torch
```
3. Clone the repository (for data and configs):
```python
!git clone https://github.com/ulab-uiuc/LLMRouter.git
%cd LLMRouter
```
4. Run the notebook cells

---

## Configuration Files

Training configurations are located in:
- `configs/model_config_train/` - Training configurations
- `configs/model_config_test/` - Inference configurations

## API Keys

For full inference (calling LLM APIs), set environment variables:

```python
import os
os.environ['OPENAI_API_KEY'] = 'your-key'
os.environ['ANTHROPIC_API_KEY'] = 'your-key'
# Or for multiple keys:
os.environ['API_KEYS'] = '["key1", "key2"]'
```

---

## Common Issues

### Out of Memory (OOM)
- Reduce `batch_size` in configuration
- Use CPU instead of GPU for smaller models
- Enable gradient checkpointing for large models

### Missing Data
- Run `01_data_preparation.ipynb` first
- Check data paths in configuration files
- Verify all required files exist

### Import Errors
- Install all dependencies: `pip install llmrouter-lib`
- Ensure you're in the correct directory
- Check Python path includes project root
Loading