Imp.Clients.Trainer behaviour (Imp v0.5.0)

Copy Markdown View Source

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

final_model_artifact(t)

(optional)
@callback final_model_artifact(Imp.Clients.ReinforcementSession.t()) ::
  {:ok, String.t()} | {:error, term()}

final_model_artifact(term, t)

(optional)
@callback final_model_artifact(term(), Imp.Clients.ReinforcementSession.t()) ::
  {:ok, String.t()} | {:error, term()}

finetune(term, list, keyword)

(optional)
@callback finetune(term(), [Imp.Example.t()], keyword()) ::
  {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}

finetune(term, term, list, keyword)

(optional)
@callback finetune(term(), term(), [Imp.Example.t()], keyword()) ::
  {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}

reconcile_finetune(t)

(optional)
@callback reconcile_finetune(String.t()) ::
  {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}

reconcile_finetune(term, t)

(optional)
@callback reconcile_finetune(term(), String.t()) ::
  {:ok, Imp.Clients.TrainingJob.t()} | {:error, term()}

reconcile_reinforcement(t)

(optional)
@callback reconcile_reinforcement(String.t()) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

reconcile_reinforcement(term, t)

(optional)
@callback reconcile_reinforcement(term(), String.t()) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

reinforcement_artifact(t, map)

(optional)
@callback reinforcement_artifact(Imp.Clients.ReinforcementSession.t(), map()) ::
  {:ok, map()} | {:error, term()}

reinforcement_artifact(term, t, map)

(optional)
@callback reinforcement_artifact(term(), Imp.Clients.ReinforcementSession.t(), map()) ::
  {:ok, map()} | {:error, term()}

reinforcement_status(t)

(optional)
@callback reinforcement_status(Imp.Clients.ReinforcementSession.t()) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

reinforcement_status(term, t)

(optional)
@callback reinforcement_status(term(), Imp.Clients.ReinforcementSession.t()) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

reinforcement_step(t, list, keyword)

(optional)
@callback reinforcement_step(Imp.Clients.ReinforcementSession.t(), list(), keyword()) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

reinforcement_step(term, t, list, keyword)

(optional)
@callback reinforcement_step(
  term(),
  Imp.Clients.ReinforcementSession.t(),
  list(),
  keyword()
) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

start_reinforcement(term, keyword)

(optional)
@callback start_reinforcement(term(), keyword()) ::
  {:ok, Imp.Clients.ReinforcementSession.t()} | {:error, term()}

start_reinforcement(term, term, keyword)

(optional)
@callback start_reinforcement(term(), term(), keyword()) ::
  {:ok, Imp.Clients.ReinforcementSession.t()} | {:error, term()}

supported_methods()

(optional)
@callback supported_methods() :: [atom()]

supported_methods(term)

(optional)
@callback supported_methods(term()) :: [atom()]

terminate_reinforcement(t)

(optional)
@callback terminate_reinforcement(Imp.Clients.ReinforcementSession.t()) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

terminate_reinforcement(term, t)

(optional)
@callback terminate_reinforcement(term(), Imp.Clients.ReinforcementSession.t()) ::
  {:ok, Imp.Clients.ReinforcementSession.t() | map()} | {:error, term()}

Functions

final_model_artifact(provider, session)

finetune(provider, lm, examples, opts \\ [])

reconcile_finetune(provider, dispatch_id)

Reconciles a durable finetuning dispatch identifier to its provider job.

reconcile_reinforcement(provider, dispatch_id)

Reconciles a durable reinforcement dispatch identifier to its provider session.

reinforcement_artifact(provider, session, selection)

Resolves and verifies a retained reinforcement checkpoint for deployment.

reinforcement_status(provider, session)

reinforcement_step(provider, session, groups, opts \\ [])

start_reinforcement(provider, lm, opts \\ [])

supports_method(provider, method)

Checks whether a trainer explicitly supports a training method.

terminate_reinforcement(provider, session)