Skip to content

Design and Prototype extension to YAML entrypoint graphs to support task swaps #817

@keithmanville

Description

@keithmanville

We need to extend the graph YAML to support specifying task swaps. We want to design and prototype this before integrating into Dioptra so we can understand what the user experience will look like.

Here is a rough idea of what this might look like:

load_model: 
  model: 
	name: $name 
attack_step: 
  $attack: *attack_swap

_swaps:  &attack_swap
   %attack:
      _common:
        model: $model # result of a previous step
      attack1:
        epsilon: $eps
      attack2:
        epsilon: $eps
        iterations: $n

We need some special way of denoting the swappable tasks section.
We need a way of denoting that a task is a swappable task.
We want to explore the use of YAML anchors/aliases as a means to specify the options for a particular swap.
Example of YAML anchors and alias fragments for Docker Compose specification: https://docs.docker.com/reference/compose-file/fragments/

This feature should include a prototype: It should be able to take in an example swappable entrypoint graph and a list of tasks for each swap and produce a compatible task yaml for the current task engine that passes validation.

Definition of Done

  • consensus is reached on YAML schema
  • prototype is implemented in a separate branch

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions