Behaviour for provider-specific training backends.
A mutating reinforcement_step error has an unknown remote outcome by default.
A backend may return {:error, {:reinforcement_step_not_accepted, reason}} only
when it can guarantee that the provider did not accept or apply the step.
Summary
Functions
Reconciles a durable finetuning dispatch identifier to its provider job.
Reconciles a durable reinforcement dispatch identifier to its provider session.
Resolves and verifies a retained reinforcement checkpoint for deployment.
Checks whether a trainer explicitly supports a training method.
Callbacks
@callback final_model_artifact(Imp.Clients.ReinforcementSession.t()) :: {:ok, String.t()} | {:error, term()}
@callback final_model_artifact(term(), Imp.Clients.ReinforcementSession.t()) :: {:ok, String.t()} | {:error, term()}
@callback finetune(term(), [Imp.Example.t()], keyword()) :: {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}
@callback finetune(term(), term(), [Imp.Example.t()], keyword()) :: {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}
@callback reconcile_finetune(String.t()) :: {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}
@callback reconcile_finetune(term(), String.t()) :: {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}
@callback reconcile_reinforcement(String.t()) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
@callback reconcile_reinforcement(term(), String.t()) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
@callback reinforcement_artifact(Imp.Clients.ReinforcementSession.t(), map()) :: {:ok, map()} | {:error, term()}
@callback reinforcement_artifact(term(), Imp.Clients.ReinforcementSession.t(), map()) :: {:ok, map()} | {:error, term()}
@callback reinforcement_status(Imp.Clients.ReinforcementSession.t()) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
@callback reinforcement_status(term(), Imp.Clients.ReinforcementSession.t()) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
@callback reinforcement_step(Imp.Clients.ReinforcementSession.t(), list(), keyword()) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
@callback reinforcement_step( term(), Imp.Clients.ReinforcementSession.t(), list(), keyword() ) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
@callback start_reinforcement(term(), keyword()) :: {:ok, Imp.Clients.ReinforcementSession.t()} | {:error, term()}
@callback start_reinforcement(term(), term(), keyword()) :: {:ok, Imp.Clients.ReinforcementSession.t()} | {:error, term()}
@callback supported_methods() :: [atom()]
@callback terminate_reinforcement(Imp.Clients.ReinforcementSession.t()) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
@callback terminate_reinforcement(term(), Imp.Clients.ReinforcementSession.t()) :: {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}
Functions
Reconciles a durable finetuning dispatch identifier to its provider job.
Reconciles a durable reinforcement dispatch identifier to its provider session.
Resolves and verifies a retained reinforcement checkpoint for deployment.
Checks whether a trainer explicitly supports a training method.