autollm
Easy data distillation of LLMs for text classification, information extraction, and open-ended tasks
autollm works like any AutoML libraries you would expect: input data, you get a trained model.
The twist is that you don’t have to provide annotations along with the data,
it is annotated automatically by an LLM (e.g. ChatGPT).
The second twist is that you don’t even have to provide data:
a meta-task of autollm is to detect relevant documents from large corpora (e.g. CommonCrawl).
Installation
via pip
pip install autollm
via uv
uv add autollm
editable
git clone https://github.com/PaulLerner/autollm.git
cd autollm
uv sync
Motivation
Since the release of ChatGPT, a large body of work in academia and industry have revolved around distilling general-purpose but compute-intensive LLMs (e.g. ChatGPT) into task-specific but compact classifiers (e.g. fineweb-edu) or LLMs (e.g. NuExtract3).
The industrial benefit is obvious, your company pays a monthly subscription for six months, collecting more than enough data to train a compact model that will cost a 100th of the price while keeping all data local.
Similar libraries
- DistillKit not "autoML" style, more of a technical toolkit/framework for knowledge distillation (from logits)
Roadmap
TODO link each with issues
- annotate: annotate text with an OpenAI-compatible API
- the task might be to detect relevant texts for the downstream task from a large-scale corpora (e.g. fineweb-edu)
- benchmark:
- accuracy of annotation against existing human annotations using sklearn metrics
- for information extraction: again use https://developers.openai.com/api/docs/guides/structured-outputs ? so single ClassifierIE class?
- for open-ended tasks: use https://developers.openai.com/api
- also provide alternative models
- claude
- gemini
- https://docs.vllm.ai/en/latest/api/vllm/index.html
- distill: train a compact model on the annotated dataset
- get list from transformers automodel?
- option for language (defaults multimodal)
- for sequence tagging: also encoder but token-wise classifier
- for open-ended: most likely decoder-only (or encoder-decoder?)
- also accept pre-annotated dataset (not from
autollm) - benchmark to compare against a human-engineered fine-tuning
- GLUE
- GUI
- deploy on server so that user doesn't need local compute
Contributing
Feel free to open an issue or PR to contribute. The roadmap will probably never happen without your help :)
Building
Use:
uv version --bump patchfor1.2.3 => 1.2.4uv version --bump minorfor1.2.3 => 1.3.0uv version --bump majorfor1.2.3 => 2.0.0
Then
uv build
uv publish --token=<TOKEN>
Metadata
Release files for automl-llm 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| automl_llm-0.1.0.tar.gz | 4.9 kB | Without provenance | Details for automl_llm-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| automl_llm-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for automl_llm-0.1.0-py3-none-any.whl |
Total release size: 10.5 kB
Release files / automl_llm-0.1.0.tar.gz
| Download URL | automl_llm-0.1.0.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
771f9687633e058bef97791253f91c7c520d9733a09b546d0ace93ae0fcf084f
|
|
BLAKE2b-256 checksum How to use checksums |
7511f6dc11fbe68ea48b190aa2b21dd4095dbf5609008d20b42973cd341a115f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Release files / automl_llm-0.1.0-py3-none-any.whl
| Download URL | automl_llm-0.1.0-py3-none-any.whl |
|---|---|
| Size | 5.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
00b2982c47d280fd12fda0a759853c7a3b6dc06bc1c2922159725dc2e8a58a4d
|
|
BLAKE2b-256 checksum How to use checksums |
e7f5e5804e3223ac55c14c282556483fbe5a483c0907d20c4725a7b7547659bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.8.22
|
Security for automl-llm 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.