« All posts

nebius-actions: Fine-Tune and Deploy LLMs via GitHub Actions on Nebius

nebius-actions is a GitHub Actions toolkit for fine-tuning and deploying LLMs end-to-end on Nebius GPU infrastructure using Axolotl and vLLM.

nebius-actions is an open-source, composable set of GitHub Actions that turns model fine-tuning and deployment into a single, button-triggered workflow. Its demo pipeline QLoRA fine-tunes Qwen2.5-0.5B on wikitext using Axolotl, bakes the resulting LoRA adapters into a vLLM serving image, deploys that image to a Nebius Endpoint, and validates it with a curl-based smoke test.

The workflow is split across five GitHub jobs — submit, wait, deploy, try, and cleanup — with state like bucket names, image references, job IDs, and endpoint URLs passed between them as job outputs. Authentication relies on short-lived IAM tokens minted via OIDC rather than long-lived secrets, and storage access uses on-the-fly S3 credentials instead of stored keys.

The standout design choice is the cleanup job's if: always() guard, which tears down endpoints and buckets even if the run is cancelled or fails, preventing orphaned GPU resources from racking up cloud costs. Because each action maps to a single resource with no hidden orchestration, engineers can use the demo as-is or recombine the primitives across separate training and deployment workflows.