Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enhancement: enable lazy setting of nested dicts #775

Merged
merged 11 commits into from
Jul 18, 2024

Conversation

leondz
Copy link
Owner

@leondz leondz commented Jul 3, 2024

tired:

    from garak import _config
    _config.plugins.generators["nvcf"] = {}
    _config.plugins.generators["nvcf"]["NvcfChat"] = {}
    _config.plugins.generators["nvcf"]["NvcfChat"]["name"] = "placeholder name"
    _config.plugins.generators["nvcf"]["NvcfChat"]["api_key"] = "placeholder key"

wired:

    from garak import _config
    _config.plugins.generators["nvcf"]["NvcfChat"]["name"] = "placeholder name"
    _config.plugins.generators["nvcf"]["NvcfChat"]["api_key"] = "placeholder key"

continuation of #773

@leondz leondz added the enhancement Architectural upgrades label Jul 3, 2024
@leondz
Copy link
Owner Author

leondz commented Jul 3, 2024

need a test round this:

(garak) 15:19:14 x1:~/dev/garak [update/config_nested_dicts] $ python -m garak --parallel_attempts 20 -p malwaregen --config slm.yaml
garak LLM vulnerability scanner v0.9.0.13.post2 ( https://github.com/leondz/garak ) at 2024-07-03T15:19:20.206463
🦜 loading generator: NVCF: xxx
📜 reporting to garak_runs/garak.cfcea8e5-d4bf-4408-9ef3-b652b2632865.report.jsonl
🕵️  queue of probes: malwaregen.Evasion, malwaregen.Payload, malwaregen.SubFunctions, malwaregen.TopLevel
probes.malwaregen.Evasion:   0%|                                                                                                                                                    | 0/48 [00:00<?, ?it/s]Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/home/lderczynski/dev/garak/garak/__main__.py", line 13, in <module>
    main()
  File "/home/lderczynski/dev/garak/garak/__main__.py", line 9, in main
    cli.main(sys.argv[1:])
  File "/home/lderczynski/dev/garak/garak/cli.py", line 499, in main
    command.probewise_run(
  File "/home/lderczynski/dev/garak/garak/command.py", line 218, in probewise_run
    probewise_h.run(generator, probe_names, evaluator, buffs)
  File "/home/lderczynski/dev/garak/garak/harnesses/probewise.py", line 107, in run
    h.run(model, [probe], detectors, evaluator, announce_probe=False)
  File "/home/lderczynski/dev/garak/garak/harnesses/base.py", line 108, in run
    attempt_results = probe.probe(model)
                      ^^^^^^^^^^^^^^^^^^
  File "/home/lderczynski/dev/garak/garak/probes/base.py", line 210, in probe
    attempts_completed = self._execute_all(attempts_todo)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lderczynski/dev/garak/garak/probes/base.py", line 173, in _execute_all
    for result in attempt_pool.imap_unordered(
  File "/home/lderczynski/anaconda3/envs/garak/lib/python3.11/multiprocessing/pool.py", line 873, in next
    raise value
  File "/home/lderczynski/anaconda3/envs/garak/lib/python3.11/multiprocessing/pool.py", line 540, in _handle_tasks
    put(task)
  File "/home/lderczynski/anaconda3/envs/garak/lib/python3.11/multiprocessing/connection.py", line 206, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/lderczynski/anaconda3/envs/garak/lib/python3.11/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
_pickle.PicklingError: Can't pickle <function <lambda> at 0x79e5e7abbec0>: attribute lookup <lambda> on garak._config failed

slm.yaml:

---
plugins:
  generators:
    nvcf:
      NvcfChat:
        version_id: xxx
        api_key: xxx
        max_tokens: 512
        temperature: 0.001
        top_p: 1.0
        extra_params:
          model: xxx
  model_type: nvcf.NvcfChat
  model_name: xxx

@leondz
Copy link
Owner Author

leondz commented Jul 4, 2024

now giving skip:

(garak) 15:48:06 x1:~/dev/garak [update/config_nested_dicts] $ python -m garak --parallel_attempts 20 -p malwaregen --config slm.yaml -g 1
garak LLM vulnerability scanner v0.9.0.13.post2 ( https://github.com/leondz/garak ) at 2024-07-04T15:48:09.004550
🦜 loading generator: 
📜 reporting to garak_runs/garak.0653c5cf-ab36-43f7-bfad-9a617f2a00f7.report.jsonl
🕵️  queue of probes: malwaregen.Evasion, malwaregen.Payload, malwaregen.SubFunctions, malwaregen.TopLevel
malwaregen.Evasion                                                                malwaregen.AnyCode: SKIP  ok on    0/   0                                                                        
malwaregen.Payload                                                                malwaregen.AnyCode: SKIP  ok on    0/   0                                                                        
malwaregen.SubFunctions                                                           malwaregen.AnyCode: SKIP  ok on    0/   0                                                                        
malwaregen.TopLevel                                                               malwaregen.AnyCode: SKIP  ok on    0/   0                                                                        
📜 report closed :) garak_runs/garak.0653c5cf-ab36-43f7-bfad-9a617f2a00f7.report.jsonl                                                                                                             
📜 report html summary being written to garak_runs/garak.0653c5cf-ab36-43f7-bfad-9a617f2a00f7.report.html
✔️  garak run complete in 21.77s

@leondz leondz marked this pull request as ready for review July 5, 2024 10:07
@leondz leondz requested a review from jmartin-tech July 5, 2024 10:07
@leondz leondz merged commit 81b393a into main Jul 18, 2024
6 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Jul 18, 2024
@leondz leondz deleted the update/config_nested_dicts branch August 15, 2024 15:04
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement Architectural upgrades
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant