[{"data":1,"prerenderedAt":628},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fopenbayes":3},{"id":4,"title":5,"body":6,"description":16,"extension":621,"meta":622,"navigation":623,"path":624,"seo":625,"stem":626,"__hash__":627},"content\u002Fdocs\u002Fopenbayes.md","Deploy on OpenBayes (NVIDIA)",{"type":7,"value":8,"toc":614},"minimark",[9,13,17,22,125,158,162,168,285,305,315,319,465,484,488,501,562,566,610],[10,11,5],"h1",{"id":12},"deploy-on-openbayes-nvidia",[14,15,16],"p",{},"Field notes from the Linnaeus-0.1.0-2B run on an OpenBayes RTX 4090 workspace.\nEvery trap below cost real GPU hours.",[18,19,21],"h2",{"id":20},"storage-model","Storage model",[23,24,25,44],"table",{},[26,27,28],"thead",{},[29,30,31,35,38,41],"tr",{},[32,33,34],"th",{},"Path",[32,36,37],{},"Type",[32,39,40],{},"Survives restart",[32,42,43],{},"Notes",[45,46,47,69,89,111],"tbody",{},[29,48,49,57,60,66],{},[50,51,52,56],"td",{},[53,54,55],"code",{},"\u002F"," (overlay)",[50,58,59],{},"local NVMe, ~100 GB",[50,61,62],{},[63,64,65],"strong",{},"no",[50,67,68],{},"fast; use for data + caches",[29,70,71,80,83,86],{},[50,72,73,76,77],{},[53,74,75],{},"\u002Fopenbayes\u002Fhome"," → ",[53,78,79],{},"\u002Foutput",[50,81,82],{},"CephFS",[50,84,85],{},"yes",[50,87,88],{},"counts against the 50 GB account quota",[29,90,91,96,99,101],{},[50,92,93],{},[53,94,95],{},"\u002Fopenbayes\u002Finput\u002FinputN",[50,97,98],{},"dataset mount",[50,100,85],{},[50,102,103,106,107,110],{},[53,104,105],{},"-d"," CLI bindings are ",[63,108,109],{},"read-only","; rw is console-only",[29,112,113,118,120,122],{},[50,114,115],{},[53,116,117],{},"HF_HOME=\u002Foutput\u002Fhuggingface",[50,119,82],{},[50,121,85],{},[50,123,124],{},"image default; HF downloads persist across restarts",[14,126,127,128,131,132,131,135,138,139,142,143,146,147,150,151,153,154,157],{},"Recommended layout: ",[53,129,130],{},"data\u002Fraw",", ",[53,133,134],{},"data\u002Fprocessed",[53,136,137],{},".cache"," are symlinks to\n",[53,140,141],{},"\u002Froot\u002Fdh\u002F*"," on scratch; repo + ",[53,144,145],{},".venv"," + ",[53,148,149],{},"runs\u002F"," live on ",[53,152,75],{},".\nPeak scratch usage during ",[53,155,156],{},"prepare-data"," was ~68 GB.",[18,159,161],{"id":160},"china-network-mirrors","China-network mirrors",[14,163,164,167],{},[53,165,166],{},"huggingface.co"," is unreachable; several CDNs are throttled. Working matrix:",[23,169,170,186],{},[26,171,172],{},[29,173,174,177,180,183],{},[32,175,176],{},"Source",[32,178,179],{},"Works",[32,181,182],{},"Speed",[32,184,185],{},"Fallback",[45,187,188,201,222,242,256,270],{},[29,189,190,193,195,198],{},[50,191,192],{},"hf-mirror datasets resolve",[50,194,85],{},[50,196,197],{},"~18 MB\u002Fs",[50,199,200],{},"—",[29,202,203,206,209,212],{},[50,204,205],{},"hf-mirror model resolve",[50,207,208],{},"flaky",[50,210,211],{},"27 MB\u002Fs or stalls",[50,213,214,217,218,221],{},[63,215,216],{},"ModelScope"," ",[53,219,220],{},"modelscope.cn\u002Fmodels\u002F{org}\u002F{name}\u002Fresolve\u002Fmaster\u002F{file}"," ~10–44 MB\u002Fs",[29,223,224,231,235,237],{},[50,225,226,227,230],{},"xet CAS (",[53,228,229],{},"cas-server.xethub.hf.co",")",[50,232,233],{},[63,234,65],{},[50,236,200],{},[50,238,239],{},[53,240,241],{},"HF_HUB_DISABLE_XET=1",[29,243,244,247,250,253],{},[50,245,246],{},"storage.googleapis.com, media.githubusercontent.com",[50,248,249],{},"throttled",[50,251,252],{},"~18 KB\u002Fs",[50,254,255],{},"download via local proxy, rsync up",[29,257,258,261,265,267],{},[50,259,260],{},"github.com",[50,262,263],{},[63,264,65],{},[50,266,200],{},[50,268,269],{},"clone locally, tar over ssh",[29,271,272,275,277,280],{},[50,273,274],{},"pypi",[50,276,85],{},[50,278,279],{},"ok",[50,281,282],{},[53,283,284],{},"UV_INDEX_URL=https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple",[14,286,287,290,291,294,295,297,298,300,301,304],{},[53,288,289],{},"HF_ENDPOINT"," only affects the huggingface_hub SDK. ",[53,292,293],{},"prepare_data.py"," downloads\nmanifest URLs with curl — it rewrites ",[53,296,166],{}," hosts via\n",[53,299,289],{}," itself (",[53,302,303],{},"download_url","); sha256 provenance is unchanged.",[14,306,307,310,311,314],{},[53,308,309],{},"download_file"," passes ",[53,312,313],{},"--speed-limit 10240 --speed-time 30"," to curl so a\ntrickling-but-alive connection aborts and retries instead of hanging for hours.",[18,316,318],{"id":317},"environment","Environment",[320,321,326],"pre",{"className":322,"code":323,"language":324,"meta":325,"style":325},"language-bash shiki shiki-themes github-light github-dark","curl -fsSL https:\u002F\u002Fmise.run | sh            # ~\u002F.local\u002Fbin is scratch; MISE_DATA_DIR persists tools\nexport MISE_DATA_DIR=\u002Fopenbayes\u002Fhome\u002F.mise\nexport PATH=\"$HOME\u002F.local\u002Fbin:$MISE_DATA_DIR\u002Fshims:$PATH\"\nexport HF_ENDPOINT=https:\u002F\u002Fhf-mirror.com HF_HUB_DISABLE_XET=1\nexport LINNAEUS_VRAM_FRACTION=0.95\nuv sync --extra train --extra agent --extra telemetry --group quality\n","bash","",[53,327,328,356,372,403,421,434],{"__ignoreMap":325},[329,330,333,337,341,345,349,352],"span",{"class":331,"line":332},"line",1,[329,334,336],{"class":335},"sScJk","curl",[329,338,340],{"class":339},"sj4cs"," -fsSL",[329,342,344],{"class":343},"sZZnC"," https:\u002F\u002Fmise.run",[329,346,348],{"class":347},"szBVR"," |",[329,350,351],{"class":335}," sh",[329,353,355],{"class":354},"sJ8bj","            # ~\u002F.local\u002Fbin is scratch; MISE_DATA_DIR persists tools\n",[329,357,359,362,366,369],{"class":331,"line":358},2,[329,360,361],{"class":347},"export",[329,363,365],{"class":364},"sVt8B"," MISE_DATA_DIR",[329,367,368],{"class":347},"=",[329,370,371],{"class":364},"\u002Fopenbayes\u002Fhome\u002F.mise\n",[329,373,375,377,380,382,385,388,391,394,397,400],{"class":331,"line":374},3,[329,376,361],{"class":347},[329,378,379],{"class":364}," PATH",[329,381,368],{"class":347},[329,383,384],{"class":343},"\"",[329,386,387],{"class":364},"$HOME",[329,389,390],{"class":343},"\u002F.local\u002Fbin:",[329,392,393],{"class":364},"$MISE_DATA_DIR",[329,395,396],{"class":343},"\u002Fshims:",[329,398,399],{"class":364},"$PATH",[329,401,402],{"class":343},"\"\n",[329,404,406,408,411,413,416,418],{"class":331,"line":405},4,[329,407,361],{"class":347},[329,409,410],{"class":364}," HF_ENDPOINT",[329,412,368],{"class":347},[329,414,415],{"class":364},"https:\u002F\u002Fhf-mirror.com HF_HUB_DISABLE_XET",[329,417,368],{"class":347},[329,419,420],{"class":339},"1\n",[329,422,424,426,429,431],{"class":331,"line":423},5,[329,425,361],{"class":347},[329,427,428],{"class":364}," LINNAEUS_VRAM_FRACTION",[329,430,368],{"class":347},[329,432,433],{"class":339},"0.95\n",[329,435,437,440,443,446,449,451,454,456,459,462],{"class":331,"line":436},6,[329,438,439],{"class":335},"uv",[329,441,442],{"class":343}," sync",[329,444,445],{"class":339}," --extra",[329,447,448],{"class":343}," train",[329,450,445],{"class":339},[329,452,453],{"class":343}," agent",[329,455,445],{"class":339},[329,457,458],{"class":343}," telemetry",[329,460,461],{"class":339}," --group",[329,463,464],{"class":343}," quality\n",[14,466,467,468,471,472,475,476,479,480,483],{},"The plain ",[53,469,470],{},"uv sync"," has no extras — ",[53,473,474],{},"sklearn",", agent extras, NVML telemetry\nall come from the extras list above. If ",[53,477,478],{},"mise"," shims lose their version pin\nafter a restart, call the tool directly:\n",[53,481,482],{},".mise\u002Finstalls\u002Fuv\u002F0.11\u002F.mise-bins\u002Fuv",".",[18,485,487],{"id":486},"stage-resume-semantics-read-before-restarting","Stage resume semantics (read before restarting)",[14,489,490,493,494,217,497,500],{},[53,491,492],{},"completed.json"," skips a stage only when ",[53,495,496],{},"done[name] == command",[63,498,499],{},"exactly",".\nConsequences:",[502,503,504,523,537,546,551],"ul",{},[505,506,507,508,76,511,514,515,518,519,522],"li",{},"Changing the package name (",[53,509,510],{},"dohnuts",[53,512,513],{},"linnaeus",") invalidated every recorded\n",[53,516,517],{},"-m dohnuts.train"," command → ",[53,520,521],{},"evaluate-42"," re-ran its full 180k-row eval.\nAfter any rename, either migrate completed.json or accept re-runs.",[505,524,525,528,529,532,533,536],{},[53,526,527],{},"train-*"," resumes from ",[53,530,531],{},"last.pt"," (saved every ",[53,534,535],{},"save_every"," steps); a\n\"re-run\" at the final step is a no-op.",[505,538,539,542,543,483],{},[53,540,541],{},"run_laya_benchmark"," resumes per-case from ",[53,544,545],{},"predictions.jsonl",[505,547,548,550],{},[53,549,156],{}," is forced to re-check whenever processed splits are missing;\nverified manifest files are hash-skipped, so re-runs only fetch what is gone.",[505,552,553,554,557,558,561],{},"Evaluation is ",[63,555,556],{},"dataloader-bound",", not GPU-bound (0–30% GPU util on image\ngroups). ",[53,559,560],{},"--workers 16"," cut the 26-group dev eval from ~45 min to ~11 min.",[18,563,565],{"id":564},"bayes-cli-operations","bayes CLI operations",[502,567,568,578,584,594,597,603],{},[505,569,570,573,574,577],{},[53,571,572],{},"bayes gear run workspace -d \"\u003Cuser>\u002Fjobs\u002F\u003CjobId>\u002Foutput:\u002Foutput\""," mounts a\nprevious job's persistent output into a new container — the way to keep\nworking after quota loss on the original resource or to fetch files from a\ncheap ",[53,575,576],{},"cpu"," container.",[505,579,580,583],{},[53,581,582],{},"bayes data upload \u003Cdataset> -v \u003Cver> -p \u003Cpath>"," works reliably from a local\nmachine; the same CLI hung mid-upload from inside a container. For many\nsmall files, tar first.",[505,585,586,587,590,591,483],{},"SSH port changes on every restart → ",[53,588,589],{},"ssh-keygen -R \"[host]:port\""," then\n",[53,592,593],{},"StrictHostKeyChecking=accept-new",[505,595,596],{},"Workspace jobs were observed being cancelled after ~13 h of runtime; keep\nvaluable output on persistent paths continuously, not at the end.",[505,598,599,600,602],{},"GPU free quota is per-resource and depletes; all single-GPU types can show\n无算力额度 simultaneously while ",[53,601,576],{}," still works.",[505,604,605,606,609],{},"rsync over the job SSH link can drop mid-stream on larger trees; a\n",[53,607,608],{},"tar czf | ssh 'tar xzf -'"," pipe was more reliable.",[611,612,613],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":325,"searchDepth":358,"depth":374,"links":615},[616,617,618,619,620],{"id":20,"depth":358,"text":21},{"id":160,"depth":358,"text":161},{"id":317,"depth":358,"text":318},{"id":486,"depth":358,"text":487},{"id":564,"depth":358,"text":565},"md",{},true,"\u002Fdocs\u002Fopenbayes",{"title":5,"description":16},"docs\u002Fopenbayes","z1U8KmnqFnDuliNh9Sr8LSYdnB1LPzxBfKuFvlKHAe0",1790560641963]