Подключите свой backend к удалённым GPU: ONNX-инференс и обучение CatBoost на CUDA. Свой nginx для моделей не обязателен — файлы можно загрузить через API.
Базовый URL API: https://gpu-share.ru
Аутентификация: Authorization: Bearer gpu_sk_… (ключ выдаёт администратор после заявки).
Один POST /v1/gpu/invoke с публичной MNIST-моделью (без upload). Подходит для smoke-теста ключа и GPU.
POST /v1/artifacts → получите url → передайте в invoke.
Для CatBoost: NPZ + JSON-конфиг (см. ниже).
gpu_sk_….GET /health и GET /v1/nodes (нужен узел online).pip install gpu-share и gpu-share doctor --base-url … --api-key ….GET /v1/gpu/runtimes — onnx_cuda, при train — catboost_cuda.CHECKSUM_MODE=enforce — SHA-256 при upload и в invoke.GET /v1/gpu/invokes/{id} каждые 5–10 с до done.result: outputs_inline_base64 или outputs_url; metrics.device = cuda.POST /v1/gpu/sessions (модель в VRAM).Загрузка model / inputs / config без своего HTTPS:
curl -X POST "https://gpu-share.ru/v1/artifacts?kind=inputs&content_sha256=SHA256_HEX" \
-H "Authorization: Bearer gpu_sk_…" \
-H "Content-Type: application/octet-stream" \
--data-binary @dataset.npz
Ответ: url, id, expires_at (TTL 24 ч). Используйте url в model_url / inputs_url.
| kind | Лимит |
|---|---|
model, config | 64 MiB |
inputs | 512 MiB |
| квота tenant | 10 GiB активных |
curl -s -X POST "https://gpu-share.ru/v1/gpu/invoke" \
-H "Authorization: Bearer gpu_sk_…" \
-H "Content-Type: application/json" \
-d '{
"runtime": "onnx_cuda",
"model_url": "https://github.com/onnx/models/raw/main/validated/vision/classification/mnist/model/mnist-12.onnx",
"inputs_url": "",
"timeout_sec": 600
}'
catboost_cuda)model_url — JSON train_config.json; inputs_url — NPZ с признаками и полем y.
curl -s -X POST "https://gpu-share.ru/v1/gpu/invoke" \
-H "Authorization: Bearer gpu_sk_…" \
-H "Content-Type: application/json" \
-d '{
"runtime": "catboost_cuda",
"model_url": "https://gpu-share.ru/v1/artifacts/art_…/download",
"inputs_url": "https://gpu-share.ru/v1/artifacts/art_…/download",
"model_checksum_sha256": "…",
"inputs_checksum_sha256": "…",
"timeout_sec": 1200
}'
Крупные результаты train — через outputs_upload (presigned PUT на ваш storage), не inline.
packages/gpu-share (invoke_and_wait, upload_artifact, train_catboost)POST /v1/gpu/probe-url — проверить доступность URL до invoke| Код | Действие |
|---|---|
| 401 | Проверьте API key |
| 422 | URL, runtime, checksum |
| 503 | Нет online GPU — ждите провайдера |
| 410 | Артефакт истёк — загрузите снова |
| failed | GET …/logs |