From bd28427d619a226db6990a0a511e2de95fa248e1 Mon Sep 17 00:00:00 2001 From: Ashwin Bharambe Date: Tue, 26 Aug 2025 12:21:41 -0700 Subject: [PATCH] feat(distro): no huggingface provider for starter --- llama_stack/distributions/ci-tests/build.yaml | 2 +- llama_stack/distributions/ci-tests/run.yaml | 9 ++--- .../distributions/starter-gpu/build.yaml | 2 +- .../distributions/starter-gpu/run.yaml | 9 +++-- .../distributions/starter-gpu/starter_gpu.py | 2 +- llama_stack/distributions/starter/build.yaml | 2 +- llama_stack/distributions/starter/run.yaml | 9 ++--- llama_stack/distributions/starter/starter.py | 2 +- .../providers/registry/post_training.py | 37 +++++-------------- 9 files changed, 27 insertions(+), 47 deletions(-) diff --git a/llama_stack/distributions/ci-tests/build.yaml b/llama_stack/distributions/ci-tests/build.yaml index b4701cb81..8e6c0bf67 100644 --- a/llama_stack/distributions/ci-tests/build.yaml +++ b/llama_stack/distributions/ci-tests/build.yaml @@ -34,7 +34,7 @@ distribution_spec: telemetry: - provider_type: inline::meta-reference post_training: - - provider_type: inline::huggingface-cpu + - provider_type: inline::torchtune-cpu eval: - provider_type: inline::meta-reference datasetio: diff --git a/llama_stack/distributions/ci-tests/run.yaml b/llama_stack/distributions/ci-tests/run.yaml index 3acdd20f9..7523df581 100644 --- a/llama_stack/distributions/ci-tests/run.yaml +++ b/llama_stack/distributions/ci-tests/run.yaml @@ -156,13 +156,10 @@ providers: sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/trace_store.db otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} post_training: - - provider_id: huggingface-cpu - provider_type: inline::huggingface-cpu + - provider_id: torchtune-cpu + provider_type: inline::torchtune-cpu config: - checkpoint_format: huggingface - distributed_backend: null - device: cpu - dpo_output_dir: ~/.llama/distributions/ci-tests/dpo_output + checkpoint_format: meta eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/starter-gpu/build.yaml b/llama_stack/distributions/starter-gpu/build.yaml index ae0680cdc..ff7c58e6f 100644 --- a/llama_stack/distributions/starter-gpu/build.yaml +++ b/llama_stack/distributions/starter-gpu/build.yaml @@ -35,7 +35,7 @@ distribution_spec: telemetry: - provider_type: inline::meta-reference post_training: - - provider_type: inline::torchtune-gpu + - provider_type: inline::huggingface-gpu eval: - provider_type: inline::meta-reference datasetio: diff --git a/llama_stack/distributions/starter-gpu/run.yaml b/llama_stack/distributions/starter-gpu/run.yaml index 81c802317..8aed61519 100644 --- a/llama_stack/distributions/starter-gpu/run.yaml +++ b/llama_stack/distributions/starter-gpu/run.yaml @@ -156,10 +156,13 @@ providers: sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter-gpu}/trace_store.db otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} post_training: - - provider_id: torchtune-gpu - provider_type: inline::torchtune-gpu + - provider_id: huggingface-gpu + provider_type: inline::huggingface-gpu config: - checkpoint_format: meta + checkpoint_format: huggingface + distributed_backend: null + device: cpu + dpo_output_dir: ~/.llama/distributions/starter-gpu/dpo_output eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/starter-gpu/starter_gpu.py b/llama_stack/distributions/starter-gpu/starter_gpu.py index 893df6c17..245334749 100644 --- a/llama_stack/distributions/starter-gpu/starter_gpu.py +++ b/llama_stack/distributions/starter-gpu/starter_gpu.py @@ -17,6 +17,6 @@ def get_distribution_template() -> DistributionTemplate: template.description = "Quick start template for running Llama Stack with several popular providers. This distribution is intended for GPU-enabled environments." template.providers["post_training"] = [ - BuildProvider(provider_type="inline::torchtune-gpu"), + BuildProvider(provider_type="inline::huggingface-gpu"), ] return template diff --git a/llama_stack/distributions/starter/build.yaml b/llama_stack/distributions/starter/build.yaml index 3df0eb129..e84e528da 100644 --- a/llama_stack/distributions/starter/build.yaml +++ b/llama_stack/distributions/starter/build.yaml @@ -35,7 +35,7 @@ distribution_spec: telemetry: - provider_type: inline::meta-reference post_training: - - provider_type: inline::huggingface-cpu + - provider_type: inline::torchtune-cpu eval: - provider_type: inline::meta-reference datasetio: diff --git a/llama_stack/distributions/starter/run.yaml b/llama_stack/distributions/starter/run.yaml index 7e1d46a61..a3962b8aa 100644 --- a/llama_stack/distributions/starter/run.yaml +++ b/llama_stack/distributions/starter/run.yaml @@ -156,13 +156,10 @@ providers: sqlite_db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/trace_store.db otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} post_training: - - provider_id: huggingface-cpu - provider_type: inline::huggingface-cpu + - provider_id: torchtune-cpu + provider_type: inline::torchtune-cpu config: - checkpoint_format: huggingface - distributed_backend: null - device: cpu - dpo_output_dir: ~/.llama/distributions/starter/dpo_output + checkpoint_format: meta eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/starter/starter.py b/llama_stack/distributions/starter/starter.py index f49da0bb7..a4bbc6371 100644 --- a/llama_stack/distributions/starter/starter.py +++ b/llama_stack/distributions/starter/starter.py @@ -120,7 +120,7 @@ def get_distribution_template() -> DistributionTemplate: ], "agents": [BuildProvider(provider_type="inline::meta-reference")], "telemetry": [BuildProvider(provider_type="inline::meta-reference")], - "post_training": [BuildProvider(provider_type="inline::huggingface-cpu")], + "post_training": [BuildProvider(provider_type="inline::torchtune-cpu")], "eval": [BuildProvider(provider_type="inline::meta-reference")], "datasetio": [ BuildProvider(provider_type="remote::huggingface"), diff --git a/llama_stack/providers/registry/post_training.py b/llama_stack/providers/registry/post_training.py index 4443f4df1..9ce36f18b 100644 --- a/llama_stack/providers/registry/post_training.py +++ b/llama_stack/providers/registry/post_training.py @@ -23,18 +23,6 @@ torchtune_def = dict( description="TorchTune-based post-training provider for fine-tuning and optimizing models using Meta's TorchTune framework.", ) -huggingface_def = dict( - api=Api.post_training, - pip_packages=["trl", "transformers", "peft", "datasets"], - module="llama_stack.providers.inline.post_training.huggingface", - config_class="llama_stack.providers.inline.post_training.huggingface.HuggingFacePostTrainingConfig", - api_dependencies=[ - Api.datasetio, - Api.datasets, - ], - description="HuggingFace-based post-training provider for fine-tuning models using the HuggingFace ecosystem.", -) - def available_providers() -> list[ProviderSpec]: return [ @@ -48,16 +36,6 @@ def available_providers() -> list[ProviderSpec]: ), }, ), - InlineProviderSpec( - **{ - **huggingface_def, - "provider_type": "inline::huggingface-cpu", - "pip_packages": ( - cast(list[str], huggingface_def["pip_packages"]) - + ["torch --index-url https://download.pytorch.org/whl/cpu"] - ), - }, - ), InlineProviderSpec( **{ **torchtune_def, @@ -68,11 +46,16 @@ def available_providers() -> list[ProviderSpec]: }, ), InlineProviderSpec( - **{ - **huggingface_def, - "provider_type": "inline::huggingface-gpu", - "pip_packages": (cast(list[str], huggingface_def["pip_packages"]) + ["torch"]), - }, + api=Api.post_training, + provider_type="inline::huggingface-gpu", + pip_packages=["trl", "transformers", "peft", "datasets", "torch"], + module="llama_stack.providers.inline.post_training.huggingface", + config_class="llama_stack.providers.inline.post_training.huggingface.HuggingFacePostTrainingConfig", + api_dependencies=[ + Api.datasetio, + Api.datasets, + ], + description="HuggingFace-based post-training provider for fine-tuning models using the HuggingFace ecosystem.", ), remote_provider_spec( api=Api.post_training,