Skip to main content

No project description provided

Project description

GitHub Repo stars

LLM-ATC (Air Traffic Controller) is a CLI for fine tuning and serving open source models using your own cloud credentials. We hope that this project can lower the cognitive overhead orchestration for fine tuning and model serving.

Installation

Follow the instructions here (to install Skypilot and provide cloud credentials)[https://skypilot.readthedocs.io/en/latest/getting-started/installation.html]. We use Skypilot for cloud orchestration. Steps to create an environment from source is shown below.

# create a fresh environment
conda create -n "llm-atc" python=3.10

# For Macs, macOS >= 10.15 is required to install SkyPilot. Apple Silicon-based devices (e.g. Apple M1)
pip uninstall grpcio; conda install -c conda-forge grpcio=1.43.0

# install the skypilot cli and dependency, for the clouds you want, e.g. GCP
pip install skypilot[gcp] # for aws, skypilot[aws]


# Configure your cloud credentials. This is a GCP example. See https://skypilot.readthedocs.io/en/latest/getting-started/ installation.html for examples with other cloud providers.
pip install google-api-python-client
conda install -c conda-forge google-cloud-sdk
gcloud init
gcloud auth application-default login

From PyPi

pip install llm-atc

From source

python -m pip install skypilot
poetry install

Finetuning

Supported fine-tune methods.

  • Vicuna (chat-finetuning)

To start finetuning a model. Use llm-atc train. For example

llm-atc train --model_type vicuna --finetune_data ./vicuna_test.json --name myvicuna --description "This is a finetuned model that just says its name is vicuna" -c mycluster --cloud gcp --envs "MODEL_SIZE=7 WANDB_API_KEY=<my wandb key>" --accelerator A100-80G:4

If your client disconnects from the train, the train run will continue. You can check it's status with sky queue mycluster

When training completes, by default, your model, will be saved to an object store corresponding to the cloud provider which launched the training instance. For instance,

# s3 location
s3://llm-atc/vicuna_test
# gcp location
g3://llm-atc/vicuna_test

Serving

llm-atc can serve both models from HuggingFace or that you've trained through llm-atc

How does it work?

Training, serving, and orchestration are powered by SkyPilot and FastChat. We've made this decision since we believe this will allow people to train and deploy custom LLMs without cloud-lockin.

We currently rely on default hyperparameters from other training code repositories, but we will add options to overwrite these so that users have more control over training, but for now, we think the defaults should suffice for most use cases.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llm_atc-0.1.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llm_atc-0.1.1-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file llm_atc-0.1.1.tar.gz.

File metadata

  • Download URL: llm_atc-0.1.1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Darwin/22.3.0

File hashes

Hashes for llm_atc-0.1.1.tar.gz
Algorithm Hash digest
SHA256 bed6a0b9c899873a756316fab8a0e6a1f9e83bb4abd75b8f12545685933c22c2
MD5 fb351128b220097f17c8057080a76f18
BLAKE2b-256 e757a40790bf9bf5cb5befda7dfdd846806822cf9121cfb6821ad9db1c0a908e

See more details on using hashes here.

File details

Details for the file llm_atc-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: llm_atc-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Darwin/22.3.0

File hashes

Hashes for llm_atc-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b79f1fd8ee9b120a7d5ad5f0e5ea596200970099592569581a45385335446be8
MD5 96c9b8d1778930eced7a048c7ab41950
BLAKE2b-256 ad98971ae71d34efc46976fd4ca4bda2d35f089ca5412b137c5ee81773513633

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page