Hyper parameter tuning in pipeline

I am using guilAI pipelines with 2 steps: prepare and train. Is it possible to run train step multiplie times for every prepare step?
For example, let’s say prepare step has only one flag, x, and train has 1 flag, y. I would like to run prepare step for 3 values of x. say x=[1,2,3]. And for every prepare step I would like to run train step for values y=[4,5,6]. S o the runs are:
x=1 y=[4,5,6]
x=2 y=[4,5,6]
x=4 y=[4,5,6]
The main point is that step is called only 3 times and train is called 9 times. So, I want ot run hyperparameter tuning for each prepare step.

If this is the pipeline:

- operations:
    prepare:
      flags:
        - x
    train:
      flags:
        - y
    pipeline-rf:
      flags:
        pipe-x:
          default: 1
        pipe-y:
          default: 4
      steps:
        - run: > 
            prepare x=${pipe-x}
          needed: no
        - run: >
            random-forest:train y=${pipe-y} 
          needed: no

This guild command:

guild run pipeline-rf x=[1,2,3] y=[4,5,6,]

would not do the work.

I think this is the soution:

- operations:
    prepare:
      flags:
        - x
    train:
      flags:
        - y
    pipeline-rf:
      flags:
        pipe-x:
          default: 1
        pipe-y:
          default: 4
      steps:
        - run: > 
            prepare x=${pipe-x}
          needed: no
        - random-forest:train
            flags:
                y=[4,5,6]
                

and than:

guild run pipeline-rf x=[1,2,3]

Yes, that’s exactly right!