spec-b300 / source /src /speculators /cli /__init__.py
khazic's picture
Archive three-epoch run: logs and provenance part 2
932bc69 verified
Raw History Blame Contribute Delete
1.63 kB
"""
Speculators CLI — unified command-line interface for speculative decoding.
Commands are grouped into two panels:
- Pipeline: steps in the speculator training workflow
- Tools: standalone utilities
"""
from importlib.metadata import version as pkg_version
import typer
from speculators.cli.convert import convert
from speculators.cli.generate_offline_data import generate_offline_data
from speculators.cli.prepare_data import prepare_data
from speculators.cli.regenerate_responses import regenerate_responses
from speculators.cli.stitch import stitch_command
from speculators.cli.train import train_command
__all__ = ["app"]
app = typer.Typer(
name="speculators",
help="Speculators - speculative decoding for vLLM",
no_args_is_help=True,
)
def _version_callback(value: bool):
if value:
typer.echo(f"speculators version: {pkg_version('speculators')}")
raise typer.Exit
@app.callback()
def _main(
version: bool = typer.Option(
None,
"--version",
callback=_version_callback,
),
):
pass
app.command(rich_help_panel="Pipeline")(prepare_data)
app.command(name="stitch-mtp", rich_help_panel="Pipeline")(stitch_command)
app.command(rich_help_panel="Pipeline")(generate_offline_data)
app.command(rich_help_panel="Pipeline")(regenerate_responses)
app.command(
name="train",
rich_help_panel="Pipeline",
context_settings={
"allow_extra_args": True,
"allow_interspersed_args": False,
"ignore_unknown_options": True,
"help_option_names": [],
},
)(train_command)
app.command(rich_help_panel="Tools")(convert)