llama-stack-mirror/llama_stack/templates
Charlie Doern f02f7b28c1
feat: add huggingface post_training impl (#2132)
# What does this PR do?


adds an inline HF SFTTrainer provider. Alongside touchtune -- this is a
super popular option for running training jobs. The config allows a user
to specify some key fields such as a model, chat_template, device, etc

the provider comes with one recipe `finetune_single_device` which works
both with and without LoRA.

any model that is a valid HF identifier can be given and the model will
be pulled.

this has been tested so far with CPU and MPS device types, but should be
compatible with CUDA out of the box

The provider processes the given dataset into the proper format,
establishes the various steps per epoch, steps per save, steps per eval,
sets a sane SFTConfig, and runs n_epochs of training

if checkpoint_dir is none, no model is saved. If there is a checkpoint
dir, a model is saved every `save_steps` and at the end of training.


## Test Plan

re-enabled post_training integration test suite with a singular test
that loads the simpleqa dataset:
https://huggingface.co/datasets/llamastack/simpleqa and a tiny granite
model: https://huggingface.co/ibm-granite/granite-3.3-2b-instruct. The
test now uses the llama stack client and the proper post_training API

runs one step with a batch_size of 1. This test runs on CPU on the
Ubuntu runner so it needs to be a small batch and a single step.

[//]: # (## Documentation)

---------

Signed-off-by: Charlie Doern <cdoern@redhat.com>
2025-05-16 14:41:28 -07:00
..
bedrock feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
cerebras fix: replace all instances of --yaml-config with --config (#2196) 2025-05-16 14:31:12 -07:00
ci-tests feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
dell fix: replace all instances of --yaml-config with --config (#2196) 2025-05-16 14:31:12 -07:00
experimental-post-training feat: add huggingface post_training impl (#2132) 2025-05-16 14:41:28 -07:00
fireworks feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
groq feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
hf-endpoint feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
hf-serverless feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
llama_api feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
meta-reference-gpu feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
nvidia fix: replace all instances of --yaml-config with --config (#2196) 2025-05-16 14:31:12 -07:00
ollama feat: add huggingface post_training impl (#2132) 2025-05-16 14:41:28 -07:00
open-benchmark feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
passthrough feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
remote-vllm fix: replace all instances of --yaml-config with --config (#2196) 2025-05-16 14:31:12 -07:00
sambanova feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
starter feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
tgi fix: replace all instances of --yaml-config with --config (#2196) 2025-05-16 14:31:12 -07:00
together feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
verification feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
vllm-gpu feat: allow the interface on which the server will listen to be configured (#2015) 2025-05-16 12:59:31 -07:00
watsonx fix: replace all instances of --yaml-config with --config (#2196) 2025-05-16 14:31:12 -07:00
__init__.py Auto-generate distro yamls + docs (#468) 2024-11-18 14:57:06 -08:00
dependencies.json feat: add huggingface post_training impl (#2132) 2025-05-16 14:41:28 -07:00
template.py chore: enable pyupgrade fixes (#1806) 2025-05-01 14:23:50 -07:00