Как поднять на грант Oracle ($300 / 30 дней) временную CPU-виртуалку, прогнать на ней тяжёлую батч-работу и погасить её, не проев кредит. Почему именно CPU (а не GPU) и зачем — в План усиления value-модели (§5 «Как использовать Oracle»). Здесь только как.
A1 упирается в Out of host capacity (частая беда бесплатного A1 — Oracle раздал всю ёмкость), или
всплывает несобираемое aarch64-колесо в Python.
Стоимость для нас копеечная
Один CPU-бокс на несколько часов работы ≈ пара-тройка долларов из $300. Дорого выходит только забытый running-инстанс (см. §6).
3. Провижнинг — три способа
flowchart LR
A[Первый раз] --> B[Console<br/>веб-UI]
B --> C[Повторы:<br/>OCI CLI oci]
C -. IaC, оверкилл .-> D[Terraform]
Console (веб-UI) — для первой виртуалки: там же задаётся SSH-ключ и сразу видно, есть ли ёмкость A1. Compute → Instances → Create → выбрать shape/образ (Oracle Linux 9 или Ubuntu 22.04) → вставить публичный SSH-ключ → Create.
OCI CLI (oci) — скриптуемый spin-up/tear-down; ставится их скриптом:
bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"oci setup config # одноразово: сгенерит API-ключ, его надо загрузить в Console (User → API Keys)
Запуск инстанса (OCID берутся из Console — compartment, subnet, image):
Terraform (OCI provider) — полноценный IaC. Для наших разовых батчей оверкилл, пропускаем.
4. Bootstrap виртуалки
ssh opc@<PUBLIC_IP> # Oracle Linux → opc; Ubuntu → ubuntu# 1) mise (тянет JDK/sbt/node/uv по .mise.toml репозиториев)curl https://mise.run | sh && echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc && exec bash# 2) git + доступ к артефактам движка из GitHub Packagessudo dnf install -y git # Ubuntu: sudo apt-get install -y gitexport GITHUB_TOKEN=<PAT с read:packages> # build.sbt резолвит движок этим токеном (actor по умолчанию "git" — ок)# 3) публичный репо аналитикиgit clone https://github.com/rabestro/dicechess-analytics.gitcd dicechess-analytics && mise install
Приватный dicechess-ev (только для свипов)
Для клона приватного репо нужен PAT с repo-scope (или gh auth login): git clone https://<PAT>@github.com/rabestro/dicechess-ev.git. Токен НЕ коммитить и НЕ оставлять в истории shell.
5. Прогон
5a. Обогащение (первый реальный use)
# залить уже выгруженный CSV с рабочей машины (29 МБ) — экспорт заново НЕ нуженscp training_data.csv.gz opc@<PUBLIC_IP>:~/dicechess-analytics/# на виртуалке: parallelism по умолчанию = число OCPUcd ~/dicechess-analyticsmise run ml:enrich-training training_data.csv.gz training_data_rich.csv.gz# забрать результатscp opc@<PUBLIC_IP>:~/dicechess-analytics/training_data_rich.csv.gz .
5b. Арены и свипы
Арены: клонировать dicechess-engine-scala, sbt "runMain …ArenaRunner <opts>", гонять варианты (набор фич × 1-ply/2-ply × K) — параллельно, много партий. Сначала засеять Random бота (см. 3).
Свипы: в dicechess-ev перебирать гиперпараметры LightGBM (обучение ~секунды → в цикле).
6. Деньги и гигиена (обязательно)
Гаси инстанс в простое
Биллинг идёт за каждый час running, а не за использование CPU. Закончил прогон — STOP или TERMINATE:
oci compute instance action --instance-id "$INSTANCE_OCID" --action STOP # переиспользовать позжеoci compute instance terminate --instance-id "$INSTANCE_OCID" # больше не нужен
(или в Console). И поставь Budget alert (Billing → Budgets), чтобы не проесть $300 незаметно.
Триал vs Pay-As-You-Go
Для одного CPU-бокса кредитов триала обычно хватает напрямую. Апгрейд на PAYG нужен, только если упрёшься в лимиты (кап block storage 200 ГБ, лимит OCPU) или в нехватку ёмкости A1; апгрейд снимает капы и сохраняет $300 на исходные 30 дней.
7. Чек-лист «под задачу»
Создать инстанс (A1 flex; при Out of host capacity → другой AD/регион или E5 x86)
ssh → mise → GITHUB_TOKEN → клон + mise install
scp вход → прогнать → scp выход
STOP/TERMINATE инстанс
Результат положить куда надо (dicechess-ev для обучения / homelab)