0.10.0
Changes
-
The registry holds a provider’s model as a model version. Register it with the
HOSTEDvariant, the provider inprovider, and the name the provider serves it under inref, such as{"variant":"HOSTED","provider":"openai","ref":"gpt-4o-2024-08-06"}. A named model holds hosted versions only, and training, evaluations and endpoints refuse a hosted version. -
Deprecate a model version with
POST /v1/registry/models/{ns}/{name}/versions/{vN}/deprecateand retire it withPOST /v1/registry/models/{ns}/{name}/versions/{vN}/retire, each with a reason. The registry records who made each move and when. Retire is final: a retired version cannot be deprecated, and no alias can be moved onto it. Every read of a model version states itslifecycle,ACTIVE,DEPRECATEDorRETIRED. -
GET /v1/registry/model-versionslists every model version across named models in one request, narrowed to one namespace with?namespace=. It leaves out archived namespaces unless the request asks for?archived=true. -
akka modelsreads the model directory from the services that own each fact.akka models listlists every model version in the registry with its hosting, served name and lifecycle, then the served names that the pricing catalog prices or that carried traffic in the last 30 days and that no version accounts for. It lists the versions of archived namespaces with--archived, and counts them as accounting for their served names either way.akka models getshows one version with the run that trained it, its dataset and newest scores, the endpoints that serve it, the destinations, rules and manifest that reach it, and the price of its served names. A part whose service does not answer within 10 seconds, or within--timeoutwhere you state one, is shown as unavailable, and the command still succeeds.-o jsonprints each part as its service answered it.akka models deprecateandakka models retiremove a version’s lifecycle with a reason, and both list what still routes to the version. -
akka training base-models envelopeslists every measured training envelope of the deployment, and whether the catalog is advisory or strict.-o jsongivesstrictEnvelopesandmeasurements.akka training capacityno longer lists the envelopes. It shows the mode alone, on aTraining envelopesline. -
akka training capacitylists the GPUs that Ray work outside the trainer holds, such as a job submitted to the cluster directly or a Serve application the trainer does not manage, underOutside the trainer. Each row names the Ray job, the submission id or Serve application, the job’smetadata.owner, its status, its GPUs and when it started. The trainer does not read the entrypoint or runtime environment of any job, actor or task. A reading in which Ray cut a listing short, or answered one with a warning, is a warning on the pool.GET /v1/training/capacityreports the holders asoutsideClaims. -
The scheduler counts the GPUs that Ray work outside the trainer holds as taken. A run, evaluation or endpoint that does not fit beside that work waits with the blocking reason
OUTSIDE_WORK.akka training runs getsays how many GPUs that work holds, such asbehind outside work (13 GPUs), andakka training capacityand-o jsonname each holder and its owner. Previously, the scheduler granted those GPUs, and the work waited on Ray until its pending timeout. A pool grants from what it declares, and never more than the cluster has left beside the outside work, so a catalog that declares the trainer’s share of a larger cluster is not held back by work outside that share. A reading of the cluster counts fortrainer.gpu-scheduler.outside-work-counts-for, 3 minutes by default. An older reading counts as none, andakka training capacityshows whether each one still counts. -
A training run records the most host memory each node it held had in use, as
peakHostMemoryGbByNode, the most of them aspeakHostMemoryGb, and what each node had in use as the run arrived on it, asstartHostMemoryGbByNode. A node is keyed by its position in the run,"1","2"and so on, where node 1 holds the run’s first rank. The figures count every process on a node, so on a node shared with other work, the peak less the start is the most the run could have added.akka training runs getshows them asHost memory, beside the device peak, such as349.1 GiB in use on node 1 at peak (112.0 GiB at start), and each other node after it. A run that runs out of host memory still reports the figures sampled before it ended. -
google/gemma-4-26B-A4B-ittrains under TRL on one H200 and under verl on several, withsft,grpoandgspo. Previously, it was allowed for serving only. See Base models. -
An endpoint, an evaluation and a
grpoorgsporollout use an adapter overgoogle/gemma-4-12B-itorgoogle/gemma-4-26B-A4B-itas it trained. Previously, they left out the part of the adapter that changes the attention values on the model’s full-attention layers, so a served or evaluated 12B adapter answered differently from the trained one, and a 12B reinforcement run sampled its rollouts from that different model. -
Under advisory envelopes, the default, a catalog admits a model that no training or serving envelope holds. A run, an endpoint, an evaluation or a distillation over it starts with a warning that it may run out of device memory, and keeps it. A serving envelope’s device, model size and context warn in the same way rather than refuse. A model no serving envelope holds is served at the deployment’s context. Set
trainer.base-model-catalog.strict-envelopes = trueto keep refusing them. Previously, a catalog refused a model that no envelope held, and an endpoint, evaluation or distillation teacher outside a serving envelope was refused. -
A
grpoorgsporun under verl that sets no save interval keeps its adapter. Previously, it trained and then failed with "verl wrote no adapter". -
akkacommands that follow progress, such asakka training endpoints startandakka training runs wait, print one plain line per change unless stdout and stderr are both terminals.NO_COLOR,--no-colorandTERM=dumbdo the same on a terminal. A carriage return or an escape sequence in a service’s text is taken out of the line. Previously, a command whose stderr was a terminal redrew a spinner with escape codes and carriage returns even when its output was captured, andNO_COLORand--no-colordid not stop the spinner on a terminal. -
akkasays what a 503no healthy upstreamfrom a proxy in front of a service can mean, for example "no healthy upstream: the optimize-training service is not running (paused or not started), or is not passing its health checks". Previously, it printed onlyno healthy upstream. -
akkanames the likely cause of a 500Unexpected error [<id>]on a request that carried a token, for example "the optimize-training service may not be set up to check tokens; that is a problem with the deployment, so tell whoever runs it". Previously, it printed onlyUnexpected error [<id>].
Breaking changes
-
akka modelsreads the registry.akka models list,get,deprecateandretireread and move model versions in the registry, and no longer reach the optimize service.get,deprecateandretiretake a registry reference,NS/NAME:vN, instead of an optimize model id.getalso takes an alias,latestor a digest. -
akka models deprecateandakka models retirerequire--reason. -
The
-o jsonoutput ofakka models listandakka models gethas a new shape.listprintsmodels,unregisteredandunavailable, andgetprintsmodel,training,serving,routingandprice. Update a script that reads it. -
akka models listno longer takes--state,--risk-tier,--needs-review,--alertingor--group-by. Use--lifecyclein place of--state.akka models getno longer takes--usage,--history,--reportsor--lineage. It shows what routes to a version and what produced it without a flag. -
akka models apply,conditions,promote,attestations,signoff,waive,strike,actionsandresolveare removed. Register a model version withakka registry models register. A version is active once it is registered, andakka registry models alias setpoints an alias such asservingat the one to use. Nothing replaces the governance conditions, attestations, sign-offs, waivers and decisions. -
akka routing-policiesandakka incidentsare removed, with the optimize service and its/v1/optimizeAPI. Nothing replaces them. A routing policy was never applied to traffic. Route traffic withakka rulesets. -
The
--urlflag and theOPTIMIZE_URLvariable are removed, andakka statusno longer listsoptimize. The CLI no longer sends thex-akka-userheader, soAKKA_USERhas no effect. -
A dry run,
akka training runs start --dry-runorakka training pipelines start --dry-run, showsWould be namedonly when the plan states asubmissionId, and its-o jsonoutput carriesrunIdorpipelineIdonly then. A script that readrunIdfrom a dry run gets no value. Previously, a dry run showed a name that a later start of the same plan did not get, because each start generates its own submission id. State asubmissionIdin the plan to keep the name across a dry run and a start.