mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-06-27 18:50:41 +00:00
# What does this PR do? This PR adds support for NVIDIA's NeMo Customizer API to the Llama Stack post-training module. The integration enables users to fine-tune models using NVIDIA's cloud-based customization service through a consistent Llama Stack interface. [//]: # (If resolving an issue, uncomment and update the line below) [//]: # (Closes #[issue-number]) ## Test Plan [Describe the tests you ran to verify your changes with result summaries. *Provide clear instructions so the plan can be easily re-executed.*] Yet to be done Things pending under this PR: - [x] Integration of fine-tuned model(new checkpoint) for inference with nvidia llm distribution - [x] distribution integration of API - [x] Add test cases for customizer(In Progress) - [x] Documentation ``` LLAMA_STACK_BASE_URL=http://localhost:5002 pytest -v tests/client-sdk/post_training/test_supervised_fine_tuning.py ============================================================================================================================================================================ test session starts ============================================================================================================================================================================= platform linux -- Python 3.10.0, pytest-8.3.4, pluggy-1.5.0 -- /home/ubuntu/llama-stack/.venv/bin/python cachedir: .pytest_cache metadata: {'Python': '3.10.0', 'Platform': 'Linux-6.8.0-1021-gcp-x86_64-with-glibc2.35', 'Packages': {'pytest': '8.3.4', 'pluggy': '1.5.0'}, 'Plugins': {'nbval': '0.11.0', 'metadata': '3.1.1', 'anyio': '4.8.0', 'html': '4.1.1', 'asyncio': '0.25.3'}} rootdir: /home/ubuntu/llama-stack configfile: pyproject.toml plugins: nbval-0.11.0, metadata-3.1.1, anyio-4.8.0, html-4.1.1, asyncio-0.25.3 asyncio: mode=strict, asyncio_default_fixture_loop_scope=None collected 2 items tests/client-sdk/post_training/test_supervised_fine_tuning.py::test_post_training_provider_registration[txt=8B] PASSED [ 50%] tests/client-sdk/post_training/test_supervised_fine_tuning.py::test_list_training_jobs[txt=8B] PASSED [100%] ======================================================================================================================================================================== 2 passed, 1 warning in 0.10s ======================================================================================================================================================================== ``` cc: @mattf @dglogo @sumitb --------- Co-authored-by: Ubuntu <ubuntu@llama-stack-customizer-dev-inst-2tx95fyisatvlic4we8hidx5tfj.us-central1-a.c.brevdevprod.internal>
767 lines
13 KiB
JSON
767 lines
13 KiB
JSON
{
|
|
"bedrock": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"boto3",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn"
|
|
],
|
|
"cerebras": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"cerebras_cloud_sdk",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"ci-tests": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"fastapi",
|
|
"fire",
|
|
"fireworks-ai",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"sqlite-vec",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"dell": [
|
|
"aiohttp",
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"huggingface_hub",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"dev": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"fastapi",
|
|
"fire",
|
|
"fireworks-ai",
|
|
"httpx",
|
|
"langdetect",
|
|
"litellm",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"sqlite-vec",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"fireworks": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"fireworks-ai",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"groq": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"litellm",
|
|
"matplotlib",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn"
|
|
],
|
|
"hf-endpoint": [
|
|
"aiohttp",
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"huggingface_hub",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn"
|
|
],
|
|
"hf-serverless": [
|
|
"aiohttp",
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"huggingface_hub",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"meta-reference-gpu": [
|
|
"accelerate",
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"fairscale",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"lm-format-enforcer",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentence-transformers",
|
|
"sentencepiece",
|
|
"torch",
|
|
"torchvision",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"zmq"
|
|
],
|
|
"meta-reference-quantized-gpu": [
|
|
"accelerate",
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"fairscale",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fbgemm-gpu",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"lm-format-enforcer",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentence-transformers",
|
|
"sentencepiece",
|
|
"torch",
|
|
"torchao==0.5.0",
|
|
"torchvision",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"zmq"
|
|
],
|
|
"nvidia": [
|
|
"aiohttp",
|
|
"aiosqlite",
|
|
"blobfile",
|
|
"chardet",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn"
|
|
],
|
|
"ollama": [
|
|
"aiohttp",
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"ollama",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn"
|
|
],
|
|
"open-benchmark": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"litellm",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"sqlite-vec",
|
|
"together",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn"
|
|
],
|
|
"passthrough": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"remote-vllm": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"sambanova": [
|
|
"aiosqlite",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"matplotlib",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"uvicorn"
|
|
],
|
|
"tgi": [
|
|
"aiohttp",
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"huggingface_hub",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"together": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"together",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
],
|
|
"vllm-gpu": [
|
|
"aiosqlite",
|
|
"autoevals",
|
|
"blobfile",
|
|
"chardet",
|
|
"chromadb-client",
|
|
"datasets",
|
|
"emoji",
|
|
"faiss-cpu",
|
|
"fastapi",
|
|
"fire",
|
|
"httpx",
|
|
"langdetect",
|
|
"matplotlib",
|
|
"mcp",
|
|
"nltk",
|
|
"numpy",
|
|
"openai",
|
|
"opentelemetry-exporter-otlp-proto-http",
|
|
"opentelemetry-sdk",
|
|
"pandas",
|
|
"pillow",
|
|
"psycopg2-binary",
|
|
"pymongo",
|
|
"pypdf",
|
|
"pythainlp",
|
|
"redis",
|
|
"requests",
|
|
"scikit-learn",
|
|
"scipy",
|
|
"sentencepiece",
|
|
"tqdm",
|
|
"transformers",
|
|
"tree_sitter",
|
|
"uvicorn",
|
|
"vllm",
|
|
"sentence-transformers --no-deps",
|
|
"torch torchvision --index-url https://download.pytorch.org/whl/cpu"
|
|
]
|
|
}
|