Литология по каротажу: что модель знает и чего не знает

LightGBM определяет породу в каждой точке ствола по каротажу — на реальных данных соревнования FORCE 2020 (Норвежский шельф, 118 скважин). Главное здесь не модель, а проверка: как не обмануть себя валидацией, чего стоит модель на скважинах, которых она не видела, и как она сама сообщает, что ей нельзя доверять.

Сколько обещает валидация — и сколько получилось

Score соревнования: −(средний штраф по матрице ошибок), 0 — идеал. Соседние точки одной скважины (шаг 15 см) почти одинаковые: при случайном разбиении модель экзаменуют на «соседях» тех точек, на которых она училась. Полоса — разброс score на случайных наборах из 10 скважин в CV: настолько отличаются скважины между собой.

Скрытые скважины: прогноз против интерпретации геолога

Наведите на колонку — глубина, значения кривых и обе литологии. Каждая 4-я точка (≈ 60 см). Справа — уверенность модели: где она падает, ошибок больше.

Место среди финалистов соревнования

Финальный зачёт FORCE 2020: 13 команд, чьи модели организаторы прогнали на тех же 10 скрытых скважинах. Наша оценка — один запуск evaluate_hidden.py после выбора модели по плану.

Что дала каждая ступень модели

Можно ли верить вероятностям

CV по скважинам. Модель самоуверенна: заявляет 65 % — права в 52 %. Калибровка температурой (T ≈ 2) исправляет это на CV, но на новых скважинах — лишь частично.

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

Разбор провала: скважина 17/4-1 после финальной оценки

Сервис

FastAPI: LAS или CSV на входе — литология, уверенность, версия модели и предупреждения на выходе. Docker-образ проверяется в CI запросом на реальной скважине.

docker build -t litho . && docker run -p 8000:8000 litho
curl -F "file=@examples/well_25_11-24.las" "localhost:8000/predict"
Пример ответа

Предупреждения — на всех 20 тестовых скважинах. Сервис помечает неполные кривые, медиану кривой вне диапазона обучающих скважин (ошибка единиц: плотность в кг/м³, нейтронный каротаж в процентах) и низкую среднюю уверенность модели. Самую плохую скважину (17/4-1) сервис помечает сам — по уверенности. Но детектор не всеведущ: вторая и третья худшие (15/9-14, 35/9-8) прошли без предупреждений, а неполная кривая ещё не значит плохой прогноз — 25/5-3 с NPHI на трети интервала одна из лучших.

Сначала дрейф проверялся PSI со стандартными порогами 0,1 / 0,25 — тревога горела на каждой скважине: одна скважина всегда отличается от смеси 98 (свой диаметр долота, свой интервал). Порог по 99-му перцентилю PSI обучающих скважин всё равно сработал на нормальной короткой скважине — PSI оставлен в ответе для мониторинга, но тревогу не поднимает. Порог уверенности — 5-й перцентиль по скважинам CV. Сама проверка добавлена после разбора скрытых скважин, поэтому её срабатывание на 17/4-1 — иллюстрация, а не независимая оценка.