{
 "version": "0.1",
 "type": "container",
 "meta": {
  "trigger": "cli",
  "system_resources": {
   "required_vram": 20
  }
 },
 "ops": [
  {
   "type": "container/run",
   "id": "train-ronde7",
   "args": {
    "image": "docker.io/pytorch/pytorch:2.8.0-cuda12.8-cudnn9-runtime",
    "gpu": true,
    "work_dir": "/workspace/appimundo-ai",
    "env": {
     "HF_HUB_ENABLE_HF_TRANSFER": "0",
     "TOKENIZERS_PARALLELISM": "false"
    },
    "cmd": [
     "/bin/bash",
     "-c",
     "set -x && mkdir -p /workspace/appimundo-ai /nosana/outputs && cd /workspace/appimundo-ai && exec > >(tee -a /workspace/appimundo-ai/job.log) 2>&1 && python3 -m pip install -q --no-input paramiko && python3 -c \"import base64;open('/tmp/upkey','w').write(base64.b64decode('LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNd0FBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNCV0tyRjY2eFFCOU9IdkpTZlM2WkdpVGxQNC9Gb2dRVlIraHZKQno0NmRVd0FBQUtBMWNianJOWEc0CjZ3QUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDQldLckY2NnhRQjlPSHZKU2ZTNlpHaVRsUDQvRm9nUVZSK2h2SkJ6NDZkVXcKQUFBRURKUmlNZUt2aFVYc1NzRWh4TGUrd1I2MTE4clV0TTZiMURPNjJzcnZMMkNWWXFzWHJyRkFIMDRlOGxKOUxwa2FKTwpVL2o4V2lCQlZINkc4a0hQanAxVEFBQUFGMjV2YzJGdVlTMXliMjVrWlRjdGRHbHFaR1ZzYVdwckFRSURCQVVHCi0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo=').decode())\" && chmod 600 /tmp/upkey && python3 -c \"import base64;open('/workspace/appimundo-ai/haal.py','w').write(base64.b64decode('IiIiSGFhbHQgZWVuIGJlc3RhbmQgdmFuIG9ucyBpbmxldmVycHVudCAoU0ZUUCkgbmFhciBkZXplIGNvbXB1dGVyLiIiIgppbXBvcnQgc3lzLCB0aW1lLCBvcywgcGFyYW1pa28KCnZlciwgbG9rYWFsID0gc3lzLmFyZ3ZbMV0sIHN5cy5hcmd2WzJdCmxhYXRzdGUgPSBOb25lCmZvciBwb2dpbmcgaW4gcmFuZ2UoNSk6CiAgICB0cnk6CiAgICAgICAgc3NoID0gcGFyYW1pa28uU1NIQ2xpZW50KCk7IHNzaC5zZXRfbWlzc2luZ19ob3N0X2tleV9wb2xpY3kocGFyYW1pa28uQXV0b0FkZFBvbGljeSgpKQogICAgICAgIHNzaC5jb25uZWN0KCI5Mi41LjcxLjE0NyIsIHVzZXJuYW1lPSJub3NhbmEiLCBrZXlfZmlsZW5hbWU9Ii90bXAvdXBrZXkiLCB0aW1lb3V0PTYwKQogICAgICAgIHMgPSBzc2gub3Blbl9zZnRwKCkKICAgICAgICBncm9vdHRlID0gcy5zdGF0KHZlcikuc3Rfc2l6ZQogICAgICAgIHByaW50KCJvcGhhbGVuIiwgdmVyLCBncm9vdHRlLCAiYnl0ZXMiLCBmbHVzaD1UcnVlKQoKICAgICAgICBkZWYgdm9vcnRnYW5nKG92ZXIsIHRvdGFhbCk6CiAgICAgICAgICAgIGlmIHRvdGFhbCBhbmQgb3ZlciAvLyAoMjAwICogMTAyNCAqIDEwMjQpICE9IChvdmVyIC0gMzI3NjgpIC8vICgyMDAgKiAxMDI0ICogMTAyNCk6CiAgICAgICAgICAgICAgICBwcmludCgiICAlczogJWQlJSIgJSAodmVyLCAxMDAgKiBvdmVyIC8vIHRvdGFhbCksIGZsdXNoPVRydWUpCgogICAgICAgIHMuZ2V0KHZlciwgbG9rYWFsLCBjYWxsYmFjaz12b29ydGdhbmcpCiAgICAgICAgcy5jbG9zZSgpOyBzc2guY2xvc2UoKQogICAgICAgIHByaW50KCJLTEFBUiIsIHZlciwgb3MucGF0aC5nZXRzaXplKGxva2FhbCksICJieXRlcyIsIGZsdXNoPVRydWUpCiAgICAgICAgc3lzLmV4aXQoMCkKICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICBsYWF0c3RlID0gZQogICAgICAgIHByaW50KCJwb2dpbmciLCBwb2dpbmcgKyAxLCAibWlzbHVrdDoiLCB2ZXIsIGUsIGZsdXNoPVRydWUpCiAgICAgICAgdGltZS5zbGVlcCgyMCkKcmFpc2UgU3lzdGVtRXhpdCgiT1BIQUxFTiBNSVNMVUtUOiAlcyAoJXMpIiAlICh2ZXIsIGxhYXRzdGUpKQ==').decode())\" && python3 -c \"import base64;open('/workspace/appimundo-ai/shipper.py','w').write(base64.b64decode('IiIiU3R1dXJ0IGVsa2UgNSBtaW51dGVuIGRlIHZvb3J0Z2FuZyAoam9iLmxvZykgbmFhciBoZXQgaW5sZXZlcnB1bnQuIiIiCmltcG9ydCBvcywgdGltZSwgcGFyYW1pa28KCndoaWxlIFRydWU6CiAgICB0cnk6CiAgICAgICAgc3NoID0gcGFyYW1pa28uU1NIQ2xpZW50KCk7IHNzaC5zZXRfbWlzc2luZ19ob3N0X2tleV9wb2xpY3kocGFyYW1pa28uQXV0b0FkZFBvbGljeSgpKQogICAgICAgIHNzaC5jb25uZWN0KCI5Mi41LjcxLjE0NyIsIHVzZXJuYW1lPSJub3NhbmEiLCBrZXlfZmlsZW5hbWU9Ii90bXAvdXBrZXkiLCB0aW1lb3V0PTMwKQogICAgICAgIHMgPSBzc2gub3Blbl9zZnRwKCkKICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cygiL3dvcmtzcGFjZS9hcHBpbXVuZG8tYWkvam9iLmxvZyIpOgogICAgICAgICAgICBzLnB1dCgiL3dvcmtzcGFjZS9hcHBpbXVuZG8tYWkvam9iLmxvZyIsICIvaG9tZS9ub3NhbmEvcjcvaW5jb21pbmcvdm9vcnRnYW5nLnR4dCIpCiAgICAgICAgcy5jbG9zZSgpOyBzc2guY2xvc2UoKQogICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICBwYXNzCiAgICB0aW1lLnNsZWVwKDMwMCk=').decode())\" && (nohup python3 /workspace/appimundo-ai/shipper.py >/dev/null 2>&1 &) && sleep 1 && python3 -c \"import urllib.request,zipfile;u='https://appimundo-ai-lab.pages.dev/appimundo-ai-code-data.json';r=urllib.request.urlopen(urllib.request.Request(u,headers={'User-Agent':'Mozilla/5.0 (X11; Linux x86_64)'}),timeout=300);open('code.zip','wb').write(r.read());zipfile.ZipFile('code.zip').extractall('.');print('CODEPAKKET KLAAR',flush=True)\" && python3 -c \"import base64;open('config.json','w').write(base64.b64decode('ewogInByb2plY3QiOiAiQXBwaU11bmRvIGVpZ2VuIEFJLXZlcnRhbGVyIC0gcm9uZGU2ICsgcm9uZGUgNyIsCiAiYmFzaXNtb2RlbCI6ICIvd29ya3NwYWNlL2FwcGltdW5kby1haS9yb25kZTYtc3RhcnQiLAogInRhbGVucGFyZW4iOiBbCiAgewogICAiYSI6ICJubCIsCiAgICJiIjogInB0IiwKICAgIm1heF9wYXJlbiI6IDIwMDAwCiAgfSwKICB7CiAgICJhIjogImVuIiwKICAgImIiOiAibmwiLAogICAibWF4X3BhcmVuIjogMjAwMDAKICB9LAogIHsKICAgImEiOiAibmwiLAogICAiYiI6ICJlcyIsCiAgICJtYXhfcGFyZW4iOiA4MDAwCiAgfSwKICB7CiAgICJhIjogIm5sIiwKICAgImIiOiAiZnIiLAogICAibWF4X3BhcmVuIjogODAwMAogIH0sCiAgewogICAiYSI6ICJubCIsCiAgICJiIjogImRlIiwKICAgIm1heF9wYXJlbiI6IDgwMDAKICB9LAogIHsKICAgImEiOiAibmwiLAogICAiYiI6ICJpdCIsCiAgICJtYXhfcGFyZW4iOiA2MDAwCiAgfSwKICB7CiAgICJhIjogIm5sIiwKICAgImIiOiAicGwiLAogICAibWF4X3BhcmVuIjogNDAwMAogIH0sCiAgewogICAiYSI6ICJubCIsCiAgICJiIjogInJvIiwKICAgIm1heF9wYXJlbiI6IDQwMDAKICB9LAogIHsKICAgImEiOiAibmwiLAogICAiYiI6ICJqYSIsCiAgICJtYXhfcGFyZW4iOiA2MDAwCiAgfSwKICB7CiAgICJhIjogImVuIiwKICAgImIiOiAicHQiLAogICAibWF4X3BhcmVuIjogNjAwMAogIH0KIF0sCiAidHJhaW5pbmciOiB7CiAgImVwb2NocyI6IDEuMCwKICAiYmF0Y2hfcGVyX2dwdSI6IDE2LAogICJncmFkaWVudF9hY2N1bXVsYXRpb24iOiAyLAogICJsZWFybmluZ19yYXRlIjogMS41ZS0wNSwKICAibWF4X2xlbmd0ZV96aW5uZW4iOiA5NiwKICAiYmV3YWFyX2Vsa2Vfc3RhcHBlbiI6IDEwMDAKIH0KfQ==').decode())\" && mkdir -p ronde6-start && python3 haal.py /home/nosana/r7/startmodel/model.safetensors ronde6-start/model.safetensors && python3 haal.py /home/nosana/r7/startmodel/config.json ronde6-start/config.json && python3 haal.py /home/nosana/r7/startmodel/generation_config.json ronde6-start/generation_config.json || echo 'optioneel bestand ontbreekt, geen probleem' && python3 haal.py /home/nosana/r7/startmodel/sentencepiece.bpe.model ronde6-start/sentencepiece.bpe.model && python3 haal.py /home/nosana/r7/startmodel/vocab.json ronde6-start/vocab.json || echo 'optioneel bestand ontbreekt, geen probleem' && python3 haal.py /home/nosana/r7/startmodel/tokenizer_config.json ronde6-start/tokenizer_config.json && python3 haal.py /home/nosana/r7/startmodel/special_tokens_map.json ronde6-start/special_tokens_map.json && python3 haal.py /home/nosana/r7/startmodel/added_tokens.json ronde6-start/added_tokens.json || echo 'optioneel bestand ontbreekt, geen probleem' && python3 haal.py /home/nosana/r7/startmodel/training_args.bin ronde6-start/training_args.bin || echo 'optioneel bestand ontbreekt, geen probleem' && mkdir -p data && python3 haal.py /home/nosana/r7/data/train.jsonl data/train.jsonl && python3 haal.py /home/nosana/r7/data/val.jsonl data/val.jsonl && python3 haal.py /home/nosana/r7/data/test.jsonl data/test.jsonl && wc -l data/train.jsonl data/val.jsonl && sed -i 's|^python3 data_prepare.py|echo DATA STOND AL KLAAR - OVERGESLAGEN|' run_all.sh && grep -n 'OVERGESLAGEN' run_all.sh || echo 'LET OP: run_all.sh niet aangepast' && bash run_all.sh && python3 -c \"import base64;open('/workspace/appimundo-ai/eind.py','w').write(base64.b64decode('IiIiQnJlbmd0IGhldCByZXN1bHRhYXQgdmFuIGRlemUgcm9uZGUgbmFhciBvbnMgaW5sZXZlcnB1bnQgaW4gRnJhbmtmdXJ0LiIiIgppbXBvcnQgb3MsIGdsb2IsIHBhcmFtaWtvCgpzc2ggPSBwYXJhbWlrby5TU0hDbGllbnQoKTsgc3NoLnNldF9taXNzaW5nX2hvc3Rfa2V5X3BvbGljeShwYXJhbWlrby5BdXRvQWRkUG9saWN5KCkpCnNzaC5jb25uZWN0KCI5Mi41LjcxLjE0NyIsIHVzZXJuYW1lPSJub3NhbmEiLCBrZXlfZmlsZW5hbWU9Ii90bXAvdXBrZXkiLCB0aW1lb3V0PTYwKQpzZnRwID0gc3NoLm9wZW5fc2Z0cCgpCkJBU0UgPSAiL2hvbWUvbm9zYW5hL3I3L2luY29taW5nIgoKZGVmIHB1dGRpcihsb2NhbCwgcmVtb3RlKToKICAgIHRyeToKICAgICAgICBzZnRwLm1rZGlyKHJlbW90ZSkKICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgcGFzcwogICAgZm9yIG4gaW4gc29ydGVkKG9zLmxpc3RkaXIobG9jYWwpKToKICAgICAgICBscCA9IG9zLnBhdGguam9pbihsb2NhbCwgbik7IHJwID0gcmVtb3RlICsgIi8iICsgbgogICAgICAgIGlmIG9zLnBhdGguaXNkaXIobHApOgogICAgICAgICAgICBwdXRkaXIobHAsIHJwKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNmdHAucHV0KGxwLCBycCkKICAgICAgICAgICAgcHJpbnQoIlVQTE9BRCBPSyIsIHJwLCBvcy5wYXRoLmdldHNpemUobHApLCBmbHVzaD1UcnVlKQoKZm9yIGxva2FhbCwgcmVtb3RlIGluIFsoIm1vZGVsLWFwcGltdW5kbyIsICJtb2RlbC1hcHBpbXVuZG8tcjciKSwKICAgICAgICAgICAgICAgICAgICAgICAoIm1vZGVsLWFwcGltdW5kby1jdDIiLCAibW9kZWwtYXBwaW11bmRvLWN0Mi1yNyIpXToKICAgIHAgPSAiL25vc2FuYS9vdXRwdXRzLyIgKyBsb2thYWwKICAgIGlmIG9zLnBhdGguaXNkaXIocCk6CiAgICAgICAgcHV0ZGlyKHAsIEJBU0UgKyAiLyIgKyByZW1vdGUpCiAgICBlbHNlOgogICAgICAgIHByaW50KCJMRVQgT1A6IG5pZXRzIGdldm9uZGVuIGluIiwgcCwgZmx1c2g9VHJ1ZSkKCmZvciBiZXN0YW5kIGluICgiZXZhbHVhdGllLnR4dCIsKToKICAgIHAgPSAiL25vc2FuYS9vdXRwdXRzLyIgKyBiZXN0YW5kCiAgICBpZiBvcy5wYXRoLmV4aXN0cyhwKToKICAgICAgICBzZnRwLnB1dChwLCBCQVNFICsgIi8iICsgYmVzdGFuZCk7IHByaW50KCJVUExPQUQgT0siLCBiZXN0YW5kLCBmbHVzaD1UcnVlKQoKaWYgb3MucGF0aC5leGlzdHMoIi93b3Jrc3BhY2UvYXBwaW11bmRvLWFpL2pvYi5sb2ciKToKICAgIHNmdHAucHV0KCIvd29ya3NwYWNlL2FwcGltdW5kby1haS9qb2IubG9nIiwgQkFTRSArICIvdm9vcnRnYW5nLnR4dCIpCiAgICBwcmludCgiVVBMT0FEIE9LIGxvZ2JvZWsiLCBmbHVzaD1UcnVlKQoKY2tzID0gc29ydGVkKGdsb2IuZ2xvYigiL25vc2FuYS9vdXRwdXRzL2NoZWNrcG9pbnRzL2NoZWNrcG9pbnQtKi90cmFpbmVyX3N0YXRlLmpzb24iKSkKaWYgY2tzOgogICAgc2Z0cC5wdXQoY2tzWy0xXSwgQkFTRSArICIvdHJhaW5lcl9zdGF0ZS5qc29uIik7IHByaW50KCJVUExPQUQgT0sgdHVzc2Vuc3RhbmQiLCBmbHVzaD1UcnVlKQoKc2Z0cC5jbG9zZSgpOyBzc2guY2xvc2UoKQpwcmludCgiQUxMRVMgVkFOIERFWkUgUk9OREUgU1RBQVQgSU4gRlJBTktGVVJUIiwgZmx1c2g9VHJ1ZSk=').decode())\" && python3 /workspace/appimundo-ai/eind.py && echo \"RONDE 7 AFGEROND\""
    ]
   }
  }
 ]
}