experiment

package
v0.0.0-...-3511abf Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 2, 2023 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

AuthZProvider is the authz registry for experiments.

View Source
var ExperimentsAddr = actor.Addr("experiments")

ExperimentsAddr is the address to direct experiment actions.

Functions

func FilterToExperimentIds

func FilterToExperimentIds(ctx context.Context, filters *apiv1.BulkExperimentFilters) ([]int32,
	error,
)

FilterToExperimentIds applies a request's filters to get a list of matching experiment IDs.

func GetExperimentAndCheckCanDoActions

func GetExperimentAndCheckCanDoActions(
	ctx context.Context,
	expID int,
	actions ...func(context.Context, model.User, *model.Experiment) error,
) (*model.Experiment, model.User, error)

GetExperimentAndCheckCanDoActions fetches an experiment and performs auth checks.

func ProtoStateDBCaseString

func ProtoStateDBCaseString(
	enumToValue map[string]int32, colName, serializedName, trimFromPrefix string,
) string

ProtoStateDBCaseString helps bun extract the experiment state.

func ToAPIResults

func ToAPIResults(results []ExperimentActionResult) []*apiv1.ExperimentActionResult

ToAPIResults converts ExperimentActionResult type with error object to error strings.

Types

type ExperimentActionResult

type ExperimentActionResult struct {
	Error error
	ID    int32
}

ExperimentActionResult contains an experiment's ID and associated error.

func ActivateExperiments

func ActivateExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters,
) ([]ExperimentActionResult, error)

ActivateExperiments works on one or many experiments.

func ArchiveExperiments

func ArchiveExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters,
) ([]ExperimentActionResult, error)

ArchiveExperiments works on one or many experiments.

func CancelExperiments

func CancelExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters,
) ([]ExperimentActionResult, error)

CancelExperiments works on one or many experiments.

func DeleteExperiments

func DeleteExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters,
) ([]ExperimentActionResult, []*model.Experiment, error)

DeleteExperiments works on one or many experiments.

func KillExperiments

func KillExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters,
) ([]ExperimentActionResult, error)

KillExperiments works on one or many experiments.

func MoveExperiments

func MoveExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters, destinationProjectID int32,
) ([]ExperimentActionResult, error)

MoveExperiments works on one or many experiments.

func PauseExperiments

func PauseExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters,
) ([]ExperimentActionResult, error)

PauseExperiments works on one or many experiments.

func UnarchiveExperiments

func UnarchiveExperiments(ctx context.Context, system *actor.System,
	experimentIds []int32, filters *apiv1.BulkExperimentFilters,
) ([]ExperimentActionResult, error)

UnarchiveExperiments works on one or many experiments.

type ExperimentAuthZ

type ExperimentAuthZ interface {
	// GET /api/v1/experiments/:exp_id
	// GET /tasks
	CanGetExperiment(
		ctx context.Context, curUser model.User, e *model.Experiment,
	) error

	// GET /api/v1/experiments/:exp_id/file_tree
	// POST /api/v1/experiments/{experimentId}/file
	// GET /experiments/:exp_id/file/download
	// GET /api/v1/experiments/:exp_id/model_def
	// GET /experiments/:exp_id/model_def
	// GET /api/v1/experiments/:exp_id/checkpoints
	// GET /experiments/:exp_id/preview_gc
	// GET /api/v1/experiments/:exp_id/validation_history
	// GET /api/v1/experiments/:exp_id/searcher/best_searcher_validation_metric
	// GET /api/v1/experiments/:exp_id/metrics-stream/metric-names
	// GET /api/v1/experiments/:exp_id/metrics-stream/batches
	// GET /api/v1/experiments/:exp_id/metrics-stream/trials-snapshot
	// GET /api/v1/experiments/:exp_id/metrics-stream/trials-sample
	// GET /api/v1/experiments/{experimentId}/hyperparameter-importance
	// GET /api/v1/trials/:trial_id/checkpoints
	// GET /api/v1/experiments/:trial_id/trials
	// GET /api/v1/trials/:trial_id
	// GET /api/v1/trials/:trial_id/summarize
	// GET /api/v1/trials/compare
	// GET /api/v1/trials/:trial_id/workloads
	// GET /api/v1/trials/:trial_id/profiler/metrics
	// GET /api/v1/trials/:trial_id/profiler/available_series
	// GET /api/v1/trials/:trial_id/searcher/operation
	// GET /api/v1/trials/:trial_id/logs
	// GET /api/v1/trials/:trial_id/logs/fields
	// GET /trials/:trial_id
	// GET /trials/:trial_id/metrics
	CanGetExperimentArtifacts(ctx context.Context, curUser model.User, e *model.Experiment) error

	// DELETE /api/v1/experiments/:exp_id
	CanDeleteExperiment(ctx context.Context, curUser model.User, e *model.Experiment) error

	// GET /api/v1/experiments
	// "proj" being nil indicates getting experiments from all projects.
	// WARN: query is expected to expose the "workspace_id" column.
	FilterExperimentsQuery(
		ctx context.Context, curUser model.User, proj *projectv1.Project, query *bun.SelectQuery,
		permissions []rbacv1.PermissionType,
	) (*bun.SelectQuery, error)

	// GET /api/v1/experiments/labels
	// "proj" being nil indicates searching across all projects.
	FilterExperimentLabelsQuery(
		ctx context.Context, curUser model.User, proj *projectv1.Project, query *bun.SelectQuery,
	) (*bun.SelectQuery, error)

	// POST /api/v1/preview-hp-search
	CanPreviewHPSearch(ctx context.Context, curUser model.User) error

	// POST /api/v1/experiments/:exp_id/activate
	// POST /api/v1/experiments
	// POST /api/v1/experiments/:exp_id/pause
	// POST /api/v1/experiments/:exp_id/kill
	// POST /api/v1/experiments/:exp_id/hyperparameter-importance
	// POST /api/v1/experiments/:exp_id/cancel
	// POST /api/v1/trials/:trial_id/kill
	// POST /api/v1/trials/profiler/metrics
	// POST /api/v1/trials/:trial_id/searcher/completed_operation
	// POST /api/v1/trials/:trial_id/early_exit
	// POST /api/v1/trials/:trial_id/progress
	// POST /api/v1/trials/:trial_id/training_metrics
	// POST /api/v1/trials/:trial_id/validation_metrics
	// POST /api/v1/trials/:trial_id/runner/metadata
	// POST /api/v1/allocations/:allocation_id/all_gather
	// POST /api/v1/allocations/:allocation_id/proxy_address
	// POST /api/v1/allocations/:allocation_id/waiting
	CanEditExperiment(ctx context.Context, curUser model.User, e *model.Experiment) error

	// POST /api/v1/experiments/:exp_id/archive
	// POST /api/v1/experiments/:exp_id/unarchive
	// PATCH /api/v1/experiments/:exp_id/
	CanEditExperimentsMetadata(ctx context.Context, curUser model.User, e *model.Experiment) error

	// POST /api/v1/experiments
	CanCreateExperiment(
		ctx context.Context, curUser model.User, proj *projectv1.Project,
	) error
	CanForkFromExperiment(ctx context.Context, curUser model.User, e *model.Experiment) error

	// PATCH /experiments/:exp_id
	CanSetExperimentsMaxSlots(
		ctx context.Context, curUser model.User, e *model.Experiment, slots int,
	) error
	CanSetExperimentsWeight(
		ctx context.Context, curUser model.User, e *model.Experiment, weight float64,
	) error
	CanSetExperimentsPriority(
		ctx context.Context, curUser model.User, e *model.Experiment, priority int,
	) error
	CanSetExperimentsCheckpointGCPolicy(
		ctx context.Context, curUser model.User, e *model.Experiment,
	) error

	// GET /api/v1/experiments/:exp_id/searcher_events
	// POST /api/v1/experiments/:exp_id/searcher_operations
	CanRunCustomSearch(ctx context.Context, curUser model.User, e *model.Experiment) error
}

ExperimentAuthZ describes authz methods for experiments.

type ExperimentAuthZBasic

type ExperimentAuthZBasic struct{}

ExperimentAuthZBasic is basic OSS controls.

func (*ExperimentAuthZBasic) CanCreateExperiment

func (a *ExperimentAuthZBasic) CanCreateExperiment(
	ctx context.Context, curUser model.User, proj *projectv1.Project,
) error

CanCreateExperiment always returns a nil error.

func (*ExperimentAuthZBasic) CanDeleteExperiment

func (a *ExperimentAuthZBasic) CanDeleteExperiment(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanDeleteExperiment returns an error if the experiment is not owned by the current user and the current user is not an admin.

func (*ExperimentAuthZBasic) CanEditExperiment

func (a *ExperimentAuthZBasic) CanEditExperiment(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanEditExperiment always returns a nil error.

func (*ExperimentAuthZBasic) CanEditExperimentsMetadata

func (a *ExperimentAuthZBasic) CanEditExperimentsMetadata(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanEditExperimentsMetadata always returns a nil error.

func (*ExperimentAuthZBasic) CanForkFromExperiment

func (a *ExperimentAuthZBasic) CanForkFromExperiment(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanForkFromExperiment always returns a nil error.

func (*ExperimentAuthZBasic) CanGetExperiment

func (a *ExperimentAuthZBasic) CanGetExperiment(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanGetExperiment always returns true and a nill error.

func (*ExperimentAuthZBasic) CanGetExperimentArtifacts

func (a *ExperimentAuthZBasic) CanGetExperimentArtifacts(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanGetExperimentArtifacts always returns a nil error.

func (*ExperimentAuthZBasic) CanPreviewHPSearch

func (a *ExperimentAuthZBasic) CanPreviewHPSearch(
	ctx context.Context, curUser model.User,
) error

CanPreviewHPSearch always returns a nil error.

func (*ExperimentAuthZBasic) CanRunCustomSearch

func (a *ExperimentAuthZBasic) CanRunCustomSearch(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanRunCustomSearch always returns a nil error.

func (*ExperimentAuthZBasic) CanSetExperimentsCheckpointGCPolicy

func (a *ExperimentAuthZBasic) CanSetExperimentsCheckpointGCPolicy(
	ctx context.Context, curUser model.User, e *model.Experiment,
) error

CanSetExperimentsCheckpointGCPolicy always returns a nil error.

func (*ExperimentAuthZBasic) CanSetExperimentsMaxSlots

func (a *ExperimentAuthZBasic) CanSetExperimentsMaxSlots(
	ctx context.Context, curUser model.User, e *model.Experiment, slots int,
) error

CanSetExperimentsMaxSlots always returns a nil error.

func (*ExperimentAuthZBasic) CanSetExperimentsPriority

func (a *ExperimentAuthZBasic) CanSetExperimentsPriority(
	ctx context.Context, curUser model.User, e *model.Experiment, priority int,
) error

CanSetExperimentsPriority always returns a nil error.

func (*ExperimentAuthZBasic) CanSetExperimentsWeight

func (a *ExperimentAuthZBasic) CanSetExperimentsWeight(
	ctx context.Context, curUser model.User, e *model.Experiment, weight float64,
) error

CanSetExperimentsWeight always returns a nil error.

func (*ExperimentAuthZBasic) FilterExperimentLabelsQuery

func (a *ExperimentAuthZBasic) FilterExperimentLabelsQuery(
	ctx context.Context, curUser model.User, proj *projectv1.Project, query *bun.SelectQuery,
) (*bun.SelectQuery, error)

FilterExperimentLabelsQuery returns the query unmodified and a nil error.

func (*ExperimentAuthZBasic) FilterExperimentsQuery

func (a *ExperimentAuthZBasic) FilterExperimentsQuery(
	ctx context.Context, curUser model.User, proj *projectv1.Project, query *bun.SelectQuery,
	permissions []rbacv1.PermissionType,
) (*bun.SelectQuery, error)

FilterExperimentsQuery returns the query unmodified and a nil error.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL