Skip to main content

AutoMix: Automatically Mixing Language Models



What is AutoMix?

The idea behind AutoMix is simple:

  1. Send a query to small language model (SLM), gets a noisy label on its correctness using few-shot self-verification done with the same model (SLM).

  2. Use a meta-verifier to double check verifier's output, and route the query to a larger language model (LLM) if needed.

Self-Verification and Meta-verification

At the center of automix is the idea of context-grounded self-verification:

  • However, such verification can often be noisy, so we introduce an additional layer of meta-verification using POMDPs or thresholding.

Notebooks

Running inference

Few-shot self-verification

  • Step2 Self Verify - Verification prompts, code to run verification on the outputs produced in step 1. Open In Colab

Meta-verification

  • Step3 Meta Verify - Run meta-verification using different AutoMix methods on outputs produced from Step 2. Open In Colab

  • You can run `pip install automix-llm' to use the meta-verifier system wide.

Replicating the results

  • To replicate the results in the paper, please run python scripts paper_results.py

Data and Outputs

  • We experiment with 5 datasets: CNLI, CoQA, NarrativeQA, QASPER, and Quality.

  • Note: The dataset are sourced from scrolls. Please cite scrolls and the appropriate sources if you use these datasets. We are making them available in a sinlge jsonl file for ease of use and reproducibility. For details on how CoQa was prepared, please see Preparing COQA.

  • Inputs: All input data for the AutoMix project is provided in automix_inputs.jsonl. You can access and download it directly from Google Drive.

  • Outputs from LLAMA2: The outputs generated using the LLAMA2 model are stored in automix_llama2_outputs.jsonl, available alongside the input file in the linked Google Drive.

id: A unique identifier for each question and answer pair.
pid: An additional identifier potentially mapping to specific instances or model variants.
base_ctx: The context.
question: Input question or query.
output: Ground truth.
dataset: .
llama13b_pred_ans: The answer generated by the llama13b model.
llama70b_pred_ans: The answer generated by the llama70b model.
llama13b_ver: Verification outputs of the llama13b model’s answers.

Stats

--------------------------------
| Dataset      | Split | Count |
|--------------|-------|-------|
| cnli         | train | 7191  |
|              | val   | 1037  |
| coqa         | train | 3941  |
|              | val   | 3908  |
| narrative_qa | train | 9946  |
|              | val   | 5826  |
| qasper       | train | 2556  |
|              | val   | 1715  |
| quality      | train | 2515  |
|              | val   | 2085  |
--------------------------------
Name: split, dtype: int64

Citation

@misc{madaan2023automix,
      title={AutoMix: Automatically Mixing Language Models}, 
      author={Aman Madaan and Pranjal Aggarwal and Ankit Anand and Srividya Pranavi Potharaju and Swaroop Mishra and Pei Zhou and Aditya Gupta and Dheeraj Rajagopal and Karthik Kappaganthu and Yiming Yang and Shyam Upadhyay and Mausam and Manaal Faruqui},
      year={2023},
      eprint={2310.12963},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}

Release files for automix-llm 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for automix-llm 1.0.3
File Size Uploaded
automix-llm-1.0.3.tar.gz 11.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for automix-llm 1.0.3
File Interpreter ABI Platform
automix_llm-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 23.7 kB

Release files / automix-llm-1.0.3.tar.gz

Download URL automix-llm-1.0.3.tar.gz
Size 11.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a9293358f0e4cce4048e509aa3c5cbe3c370332c1a5e24edf1d8821ea1d1151c
BLAKE2b-256 checksum
How to use checksums
f0ae9318c269f1785d2ac8ec448648b19b06e639c6fda0dbe26d59148c15041e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / automix_llm-1.0.3-py3-none-any.whl

Download URL automix_llm-1.0.3-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
786dd831ef60c3118b37ed7581c06e8491eef93001e9d1700d3c06b8226d21bb
BLAKE2b-256 checksum
How to use checksums
c477ce4a2a91de9b8073dd0118c0e1c4cff2b3f98814a8fee7ff4390788c3ada
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.5

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

1 release file

1.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page