Currently QA-Board lacks expressiveness for our common use-case of:
- Run on some images
- Calibration
- Validation
Likewise, we can't express easily pipelines like training-evaluation.
We need to express running series of steps / pipelines / tasks organized as directed-acyclic-graph.
We're looking for feedback or alternative ideas. Especially if you have experience with various flow engines, e.g. DVC. Thanks!
Workarounds
User have done this:
- wrapped
qa batch with a scripted pipeline
- wrote complicated
run() function with lots of logic
Status
Possible API
batch1:
inputs:
- A.jpg
- B.jpg
configurations:
- base
batch2:
needs: batch1
type: script
configurations:
- python my_script.py {o.output_dir for o in needs["batch1"]}
More complex:
my-calibration-images:
configurations:
- base
inputs:
- DL50.raw
- DL55.raw
- DL65.raw
- DL75.raw
my-calibration:
needs:
calibration_images: my-calibration-images
type: script
configurations:
- python calibration.py ${o.output_directory for o in depends[calibration_images]}
my-evaluation-batch:
needs:
calibration: my-calibration
inputs:
- test_image_1.raw
- test_image_2.raw
- test_image_3.raw
configurations:
- base
- ${depends[calibration].output_directory}/calibration.cde
$ qa batch my-evaluation-batch
#=> qa batch my-calibration-images
#=> qa batch my-calibration
#=> qa batch my-evaluation-batch
Thoughts
- We should add built-in support for
script input types, than just executes their config as commands. It goes well with DAGs.
my-script:
needs: batch1
type: script
configurations:
- echo OK
Expected
- Easy API
- Cache friendly
- Can be used in a non-blocking way
Currently QA-Board lacks expressiveness for our common use-case of:
Likewise, we can't express easily pipelines like training-evaluation.
We need to express running series of steps / pipelines / tasks organized as directed-acyclic-graph.
Workarounds
User have done this:
qa batchwith a scripted pipelinerun()function with lots of logicStatus
Possible API
More complex:
Thoughts
scriptinput types, than just executes their config as commands. It goes well with DAGs.Expected