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

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

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

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

При разборе ошибок обучения, прежде всего, обратите внимание на сообщения с меткой 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.
  • Обратитесь к владельцу сервиса.