Skip to main content

giotto-llm

Overview

This repo is a wrapper of many open source packages that are needed to fine-tune LLMs and run them in inference mode effectively.

Important: See the Makefile for useful commands.

Documentation

The online documentation con be found at https://giotto-ai.github.io/giotto-llm/index.html

Setup

Environmental variables

The following environmental variables needs to be set (update credential path below):

GOOGLE_APPLICATION_CREDENTIALS=$HOME/.gloud/giotto-research-admin.json
export MLFLOW_TRACKING_URI=http://cluster-manager:5051
export PATH=$HOME/.local/bin:$PATH

Gitlab ssh-key

Generate key with ssh-keygen, and add to gitlab.

Install and download packages, download data and model

make

Finetune models on multi-gpu

Example of QwenVL-based model:

torchrun --nproc-per-node=gpu -m llm_prompts.finetuning -d re_arc_400x5 --model_id Qwen/Qwen2-VL-2B-Instruct --wrapper QwenVL -o qwenvl --batch_size 1 --gradient_accumulation_steps 16 --quantization 8bit-4 --neftune_noise_alpha 10.0 --num_train_epochs 15 --learning_rate 2e-4

Example of Molmo-based model:

torchrun --nproc-per-node=gpu -m llm_prompts.finetuning -d re_arc_400x5 --model_id allenai/MolmoE-1B-0924 --wrapper Molmo -o molmo --batch_size 1 --gradient_accumulation_steps 16 --quantization 8bit-4 --neftune_noise_alpha 10.0 --num_train_epochs 15 --learning_rate 2e-4

Example of Llama-based models:

torchrun --nproc-per-node=gpu -m llm_prompts.finetuning -d re_arc_400x5 --model_id meta-llama/Llama-3.2-1B-Instruct --wrapper CausalLM -o llama --batch_size 1 --gradient_accumulation_steps 16 --quantization 8bit-4 --neftune_noise_alpha 10.0 --num_train_epochs 15 --learning_rate 2e-4

Example of Qwen-based models:

torchrun --nproc-per-node=gpu -m llm_prompts.finetuning -d re_arc_400x5 --model_id Qwen/Qwen2.5-0.5B --wrapper CausalLM -o qwen --batch_size 1 --gradient_accumulation_steps 16 --quantization 8bit-4 --neftune_noise_alpha 10.0 --num_train_epochs 15 --learning_rate 2e-4

See full list of currently tested models in ./models/.

Validate fine-tuned models

The validation script is single gpu for now, and requires a config entry in ./llm_prompts/validation/__main__.py.

# Only single gpu support for now
CUDA_VISIBLE_DEVICES=0 python -m llm_prompts.validation --dataset_type evaluation --finetuned_model_id <MODEL-ID> --max_num_tasks 400

where <MODEL-ID> is a fine-tuned model defined in the config.

Info

See

--- CPU only ---
4 CPU Cores
30 Gigabytes of RAM

or

--- P100 GPU ---
1 Nvidia Tesla P100 GPI
4 CPU cores
29 Gigabytes of RAM

or

--- T4 2x GPU ---
2 Nvidia Tesla T4 GPUs
4 CPU cores
29 Gigabytes of RAM

Notes

  • The current version of this repository is using version 4.43.2 of the transformer package, which is different from version 4.42.3 in the Kaggle environemnt.
  • The current version of this repository is using version 1.7.1 of the polars package, which is different from version 1.1.0 in the Kaggle environemnt.

Metadata

Release files for giotto-llm 0.0.1

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

Source distribution (sdist)

Source distribution for giotto-llm 0.0.1
File Size Uploaded
giotto_llm-0.0.1.tar.gz 2.4 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for giotto-llm 0.0.1
File Interpreter ABI Platform
giotto_llm-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 4.8 MB

Release files / giotto_llm-0.0.1.tar.gz

Download URL giotto_llm-0.0.1.tar.gz
Size 2.4 MB
Tags Source
SHA-256 checksum
How to use checksums
61eaabcad6cd094128751c31f1d93b6b3128877647b4c1506f149e474868b098
BLAKE2b-256 checksum
How to use checksums
9362f7a5d1b2fd7bd66128ed01c8dfb50a6dcd37c667f7d36f23fb3c8cdb1fa7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 23, 2024.

Transparency log

Release files / giotto_llm-0.0.1-py3-none-any.whl

Download URL giotto_llm-0.0.1-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
3fcd0c16c45ccc30f5351fa14ddabb568b896d8290976d0ace2b43e628f4da28
BLAKE2b-256 checksum
How to use checksums
af45f595c15ad1c888cf1a7ff2e4266dce1b7a78124a225cffba8d068e581c07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 23, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

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