Перейти к основному содержимому

Устранение неполадок при обучении сервисов

Если во время обучения сервиса произошла ошибка, изучите логи обучения. Они находятся на вкладке История событий на странице вашего сервиса:

История событий

При разборе ошибок обучения, прежде всего, обратите внимание на сообщения с меткой ERROR, особенно те, которые начинаются с Error processing FIT request. Из них вы можете узнать причину проблемы. Например, сообщение Error processing FIT request: Instance was removed указывает на то, что сервис не смог обучиться, потому что активный инстанс был остановлен.

Содержание

Ошибки некомпозитных сервисов

Некорректный формат датасета

При обучении передается датасет с некорректным содержимым, либо формат датасета не соответствует тому, что ожидает сервис.

Диагностика

Сообщение об ошибке указывает на то, что сервис не смог преобразовать датасет к требуемому типу, либо на наличие неожиданного символа при парсинге датасета (например, если он в формате JSON).

Рекомендации

  • Исправьте датасет, следуя подсказкам в тексте ошибки.
  • Выполните обучение на другом датасете, желательно меньшего размера.
  • Проверьте, что тип датасета, который вы передаете при обучении, совместим с тем, что ожидает сервис.

Повышенное потребление ресурсов обучаемым сервисом

Сервисы потребляют разное количество ресурсов при обучении на датасетах разных размеров. Если превышены установленные лимиты, обучение автоматически прерывается.

Диагностика

  • В истории событий есть сообщение Error processing FIT request: Instance was removed или Instance closed connection, но отсутствует сообщение Instance <instance_id> was evicted within <scope> scope.
  • На вкладке Диагностика в списке событий указано, что потребление памяти инстанса, который участвует в обучении, достигло значения Максимальный лимит ресурсов, или что он был вытеснен.
подсказка
Обратите внимание на причину вытеснения: в ней может быть информация о том, какого ресурса не хватило. Например: <…> service was evicted <…> to free Ram 500Mi Disk 100Mi <…>.
  • Обучение проходит успешно на маленьком датасете, но не проходит на большом.

Рекомендации

Увеличьте лимиты ресурсов для сервиса. Обычно быстрее всего заканчиваются лимиты на память и место на диске.


Повышенное потребление ресурсов другими сервисами

При запуске новых сервисов в рамках аккаунта или ресурс-группы Caila может вытеснить производный инстанс.

Диагностика

В истории событий есть сообщение Instance <instance_id> was evicted. Обучение завершилось с ошибкой Instance was removed.

Рекомендации

В сообщении о вытеснении указано, в рамках какого пространства произошло вытеснение.

Если вытеснение произошло…Что делать
В рамках аккаунтаСтарайтесь не запускать дополнительные сервисы во время обучения. Вы также можете проанализировать потребление ресурсов другими сервисами и либо оптимизировать его, либо расширить лимиты аккаунта.
В рамках публичной ресурс-группыОбратитесь в поддержку через виджет в правом нижнем углу.
В рамках приватной ресурс-группыПроанализируйте потребление ресурсов внутри этой группы. Попробуйте его оптимизировать либо расширить лимиты аккаунта.

Обучение зависло в состоянии WAIT_FOR_START

При обучении в режиме singleFit сначала должен запуститься инстанс сервиса, созданный для обучения. Состояние WAIT_FOR_START означает, что Caila ожидает запуска этого инстанса.

Если состояние сохраняется на протяжении всего обучения и в конечном итоге обучение завершается с ошибкой fitTimeout, это указывает на то, что инстанс по каким-то причинам не смог запуститься.

Диагностика

  • Состояние WAIT_FOR_START сохраняется на протяжении всего обучения. Обучение завершается с ошибкой fitTimeout.
  • В истории событий есть сообщение Instance could not start. Также может появляться связанное сообщение Instance was removed.

Рекомендации

Перейдите на вкладку Диагностика и выберите инстанс в состоянии ожидания (Waiting). Если такого инстанса нет, выберите тот, что был создан после начала обучения. Проанализируйте раздел События для выявления ошибок:

  • Если ошибка связана с тем, что Caila не может загрузить Docker-образ, проверьте его доступность. Если вы не являетесь владельцем образа, свяжитесь с владельцем для получения подробностей.

  • Если ошибка связана с тем, что из допустимого количества нод доступно 0, обратитесь в поддержку через виджет в правом нижнем углу.

  • Если ошибка другая и/или инстанс несколько раз перезапускался, следует выгрузить логи инстанса и проанализировать ошибку, из-за которой происходит перезапуск. Если логи вам недоступны, обратитесь к владельцу сервиса.

  • Если во время обучения на вкладке Диагностика вы видите событие Back-off restarting failed container, это значит, что во время запуска сервис аварийно завершился с ошибкой. Выгрузите логи и проанализируйте причину ошибки. Если логи вам недоступны, обратитесь к владельцу сервиса.

  • Если ошибок нет, обратите внимание на событие Pulling image: возможно, ваш образ слишком большой и не успевает загрузиться в Caila. Если вы уверены, что образ небольшой, обратитесь в поддержку.

  • Если проблема не решается, обратитесь в поддержку через виджет в правом нижнем углу.

подсказка
При обращении в поддержку предоставьте логи инстанса (если у вас есть к ним доступ) и историю событий с вкладки Диагностика.

Ошибка конфигурации сервиса

При обучении сервиса можно задать конфигурацию его работы. Если вы допустили ошибку в конфигурации, она проявится только при запуске сервиса.

Диагностика

  • Ошибка возникает сразу после запуска сервиса.
  • При использовании конфигурации по умолчанию обучение сервиса проходит успешно.
  • В истории событий явно указано, что проблема в конфигурации сервиса.

Рекомендации

  • Если в ошибке есть подсказка о месте ошибки и/или о том, как ее исправить, следуйте этим указаниям.
  • Сравните вашу конфигурацию с примером конфигурации из документации сервиса.

Внутренняя ошибка сервиса

В процессе обучения могут возникать различные внутренние ошибки.

Диагностика

Обучение переходит в состояние WAIT_FOR_FIT и через некоторое время завершается с ошибкой, которая не описана выше.

Рекомендации

  • Если сервис не принадлежит вам, скопируйте сообщение об ошибке из истории событий и обратитесь к владельцу модели.
  • Если сервис принадлежит вам, изучите логи на вкладке Диагностика.
  • Если проблема связана с коммуникацией между сервисом и Caila, обратитесь в поддержку через виджет в правом нижнем углу.
  • В противном случае для выявления проблемы вы можете добавить в сервис дополнительное логирование и обработку ошибок, а также запустить его локально.

Внутренняя ошибка Caila

В Caila может произойти внутренняя ошибка, которая приведет к ошибкам в процессе обучения.

Диагностика

Ни один из предыдущих пунктов не подходит.

Рекомендации

  • Перезапустите обучение.
  • Обратитесь в поддержку через виджет в правом нижнем углу.

Ошибки композитных сервисов

Отдельные виды ошибок могут возникать у композитных сервисов.

При обучении такие сервисы обращаются к другим сервисам. Если работоспособность этих сервисов нарушена, это непосредственно влияет на сервисы, в обучении которых они участвуют.

Недоступность публичного сервиса

Требуемый публичный сервис может быть недоступен по разным причинам, не зависящим от пользователя. Например, это может быть нехватка ресурсов, ошибка при загрузке образа или удаление самого сервиса.

Диагностика

  • В сообщении об ошибке обучения указана ошибка недоступности сервиса либо ошибка predict-запроса.
  • При обращении к публичному сервису напрямую через интерфейс Caila возвращается ошибка.

Рекомендации

Свяжитесь с владельцем сервиса.


Ошибки при запуске производных сервисов

Обучаемый сервис может запускать внутри аккаунта другие сервисы. Эти производные сервисы могут либо не помещаться в аккаунте пользователя, либо при запуске приводить к вытеснению самого обучаемого сервиса.

Диагностика

В истории событий:

  • Есть сообщение Instance <instance_id> was evicted. Обучение завершилось с ошибкой Instance was removed.
  • Указано, что дочернее обучение завершилось с ошибкой.

Рекомендации

  • Увеличьте лимиты аккаунта.
  • Если у вас приватная ресурс-группа, установите значение minInstancesCount через REST API.
  • Обратитесь к владельцу сервиса.