Updated and improved implementation of the self-instruct system.
Project description
airoboros: using large language models to fine-tune large language models
This is my take on implementing the Self-Instruct paper. The approach is quite heavily modified, and does not use any human-generated seeds.
This updated implementation supports either the /v1/completions endpoint or /v1/chat/completions, which is particularly useful in that it supports gpt-4 and gpt-3.5-turbo (which is 1/10 the cost of text-davinci-003).
Key differences
- support for either /v1/completions or /v1/chat/completions APIs (which allows gpt-3.5-turbo instead of text-davinci-003, as well as gpt-4 if you have access)
- support for custom topics list, custom topic generation prompt, or completely random topics
- in-memory vector db (Chroma) for similarity comparison, which is much faster than calculating rouge score for each generated instruction
- (seemingly) better prompts, which includes injection of random topics to relate the instructions to, which creates much more diverse synthetic instructions
- asyncio producers with configurable batch size
- several "instructors", each targetting specific use-cases, such as Orca style reasoning/math, role playing, etc.
- tries to ensure the context, if provided, is relevant to the topic and contains all the information that would be necessary to respond to the instruction, and nost just a link to article/etc.
- generally speaking, this implementation tries to reduce some of the noise
Generating instructions
NEW - 2023-07-18
To better accomodate the plethora of options, the configuration has been moved to a YAML config file.
Please create a copy of example-config.yaml
and configure as desired.
Once you have the desired configuration, run:
airoboros generate-instructions --config-path /path/to/config.yaml
Generating topics
NEW - 2023-07-18
Again, this is now all YAML configuration based! Please create a customized version of the YAML config file, then run:
airoboros generate-topics --config-path /path/to/config.yaml
You can override the topic_prompt
string in the configuration to use a different topic generation prompt.
Support the work
ETH 0xce914eAFC2fe52FdceE59565Dd92c06f776fcb11
BTC bc1qdwuth4vlg8x37ggntlxu5cjfwgmdy5zaa7pswf
Models (research use only):
gpt-4 versions
llama-2 base model
Latest version (2.0 / m2.0 datasets)
- airoboros-l2-7b-gpt4-2.0
- airoboros-l2-7b-gpt4-m2.0
- airoboros-l2-13b-gpt4-2.0
- airoboros-l2-13b-gpt4-m2.0
Previous generation (1.4.1 dataset)
original llama base model
Latest version (2.0 / m2.0 datasets)
Previous generation (1.4.1 dataset)
- airoboros-65b-gpt4-1.4
- airoboros-33b-gpt4-1.4
- airoboros-13b-gpt4-1.4
- airoboros-7b-gpt4-1.4
- older versions on HF as well
mpt-30b base model
gpt-3.5-turbo versions
Datasets (subject to OpenAI license):
- airoboros-gpt-3.5-turbo
- airoboros-gpt4
- airoboros-gpt4-1.1
- airoboros-gpt4-1.2
- airoboros-gpt4-1.3
- airoboros-gpt4-1.4
- airoboros-gpt4-2.0 (June only GPT4)
- airoboros-gpt4-m2.0 (recommended)
Coming soon
Scripts for fine-tuning various models using the self-instruct (and human-generated) prompts.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file airoboros-2.0.14.tar.gz
.
File metadata
- Download URL: airoboros-2.0.14.tar.gz
- Upload date:
- Size: 42.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45f1d10c15e065422681c18c124198d92b626419aee5f1aac4638ef5df17ccca |
|
MD5 | 5f8bcbc0229b973a0f8a7aa3cd8472c1 |
|
BLAKE2b-256 | 27a898abd0a89a5ce2684ba8ffc194b4c72135adb4ee60fb9219fa544c48268b |
File details
Details for the file airoboros-2.0.14-py3-none-any.whl
.
File metadata
- Download URL: airoboros-2.0.14-py3-none-any.whl
- Upload date:
- Size: 59.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b603b81d17fcb4c8e3188b6f20d05be499ab291869383b2f626e27109c701f2c |
|
MD5 | 95223b132c357bf15074a20734379aea |
|
BLAKE2b-256 | bd6e47893c5ae84dbea9de050fc1e77b32eadfe9331add94f0d155753abb9469 |