code: def _test_helper_save_load(
      vw_arg: str,
      num_iterations=2000,
      seed=10,
      has_automl=False,
      log_filename=None,
  ):
      split = 1500
      before_save = num_iterations - split
  
      first_vw = vowpalwabbit.Workspace(arg_str=vw_arg)
      has_automl = "automl" in first_vw.get_enabled_reductions()
      sim = Simulator(
          seed=seed, has_automl=has_automl, debug_logfile=log_filename
      )
      # first chunk
      ctr = sim.run_simulation(
          first_vw,
          before_save,
          sim.users,
          sim.times_of_day,
          sim.actions,
          sim.get_cost,
      )
      # save
      model_file = "test_save_load.vw"
      first_vw.save(model_file)
      first_vw.finish()
      # reload in another instance
      other_vw = vowpalwabbit.Workspace(
          f"-i {model_file} {vw_arg}"
      )  # todo remove vw_arg from here
      # continue
      ctr = sim.run_simulation(
          other_vw,
          split,
          sim.users,
          sim.times_of_day,
          sim.actions,
          sim.get_cost,
          shift=before_save + 1,
      )
  
      return ctr
  
imports: import vowpalwabbit
  from distributionally_robust_data import OnlineCressieRead
  import collections
  import os
  import random
  import os
label_desc: Use image node_id 2 for calling a global function with example usage: _test_helper_save_load(vw_arg, num_iterations, seed, has_automl, log_filename) and returns: ctr