Впервые сделал крупный проект (под NDA, так что не расскажу, какой) на облачных функциях. Впечатления противоречивые.
Изначально программисты арендовали компьютер в датацентре: или целиком или кусочек. На нём теоретически можно делать что угодно, но для запуска своих программ нужно было настроить операционную систему, безопасность и авторизацию, установить нужные исполнительные модули, программы для удобства деплоя, мониторинг нагрузки итд. Поэтому появились сервисы, которые это всё делают за тебя, а тебе дают буквально окно, куда можно написать свой код и запускать его удалённо на чужой машине.
Конкретно я пользовался решением от Яндекса, чей протокол скопирован напрямую с Amazon Web Services. Причём, в документации не только открыто об этом говорится, но ещё и в некоторых местах перенаправляют на доки от Amazon. И SDK предлагают тоже использовать амазоновский. До санкций я бы сказал, что это не так плохо — можно использовать что-то привычное тем, кто уже работал с Amazon. Но сейчас привязка к американскому сервису выглядит скорее жирным минусом. Не знаю, есть ли у Яндекса ресурсы на какое-то серьёзное разделение. Судя по состоянию документации и платформы в целом — нет.
Yandex Cloud кажется системой, которая активно развивалась несколько лет назад, а сейчас подзаброшена. Среда выполнения .NET отстаёт от актуальной на две версии (3.1 вместо 6, четвёртой версии не существует). Изначально мой проект был написан как обычное контейнеризированное приложение на .NET 6, а потом я переводил его на функции. Пришлось пройтись по всему коду и переписать несовместимые куски с C#10 на C#8, это было не слишком приятно.
Документации фактически нет, а там, где есть, много путаницы. В примерах написано одно, по факту другое: например в функцию вместо объекта Request приходит просто строка, а разбирать её надо самому. Авторизацию я нашёл только на Stackoverflow. Интересно, что адекватных доков про неё не было ни у Яндекса, ни у Amazon.
Функция выполняется и выгружается, поэтому ваша программа не должна рассчитывать на наличие постоянно живущего процесса. Мне пришлось вытащить из неё большой словарь, который грузится при старте, и положить уже подготовленные данные из него в Object Storage — это такое горячее файловое хранилище, там же рядом с функциями. Справедливости ради, работает это всё быстрее, чем я думал. Удалось запихнуть в функции даже сравнительно большой проект с кучей классов, создающий при запуске несколько десятков объектов и производящий загрузку из сети с декомпрессией.
Другой важный плюс — бесплатная квота довольно внушительная: миллион вызовов и 10Гб*часов оперативной памяти в месяц. Для пет проекта вы сможете вообще не покупать сервер. Но если сервер у вас всё-таки есть, деплой вы уже настроили, то удобнее будет, конечно, делать как привычно. И гибкости больше.
#dev
Комплексное глубокое обучение для моделей месторождений. Нажал на кнопочку - готово!
Руслан Мифтахов выпустил очередное видео, на этот раз про комплексное (end-to-end) глубокое обучение для моделирования месторождений. Посмотрите, будет интересно тем кто этим занимается. Видео основано на статье специалистов SLB "Deep learning for end-to-end subsurface modeling and interpretation: An example from the Groningen gas field".
Как и рассказывает Руслан, идея end-to-end глубокого обучения для моделирования месторождений довольно крутая и у нее есть прекрасная аналогия в мире беспилотных автомобилей - собираем все возможные алгоритмы прогнозы обстановки на дороге и автоматизации в одну систему. Что если сделать подобное и для дорогостоящего и длительного процесса моделирования подземных месторождений чего угодно, хоть нефти, хоть минералов 🤔?
Например, есть несколько видов данных (со скважин и сейсмические данные). Их нужно обработать, интерпретировать каждый вид данных особым способом, закартировать и наконец сделать 3D модель свойств горных пород и флюидов - типа, бурить сюда! Интересно, что модели машинного обучения уже представлены для каждого процесса в отдельности. Есть модели машинного обучения для обработки скважинных данных, есть модели машинного обучения для автоматического выделения тектонических разломов на сейсмике и так далее. Авторы статьи, делают один, на мой взгляд пока небольшой, шаг к полной автоматизации процесса интерпретации и моделирования. Они говорят, давайте соберем все эти модели и придумаем автоматический процесс, чтобы собрать данные, нажать на кнопочку и на выходе получить модель свойств всея Земли (на картинке). Это может быть модель пористости или плотности пород, да чего угодно.
Я лично знаком с авторами, коллеги все-таки. Действительно, у них есть работающие компоненты, которые они собрали в статье под одним зонтиком. Это в основном сверточные нейронные сети для различных задач. Идея крутая, но даже для частичной ее реализации, на мой взгляд, нужно пройти большой путь. Ведь то, что у нас под ногами скрыто от наших глаз, в отличие от того, что видит камера беспилотного автомобиля. Подземного сканера с супер-разрешением все еще нет, где ты Илон Маск? Поэтому в игру вступают неопределенность и сдвиг данных.
Неопределенность геологических моделей будет всегда, потому что этих моделей бескочнечность, ведь мы точно никогда не узнаем что там под землей, а можем лишь догадываться по обрывкам данных. Если эту неопределенность не учитывать - будет финансово больно, даже при наличии самых красивых моделей и самых глубоких обучателей. Сдвиг данных, возникает тогда, когда модель обученная на одних данных, попадает в новые условия. И в геонауках это серьезная проблема. Не смотря на аналогии, нет двух одинаковых месторождений, и даже если модель обучить на 1000 месторждениях, 1001-е будет другое и производительность модели будет значительно ниже и вероятно не понравится, людям принимающим решение о бурении скважины стоимостью стопицот миллионов . Умные геоинженеры и обучатели машин сейчас работают над тем, чтобы побороть эти две проблемы для моделирования месторождений, но с переменным успехом (на мой взгляд опять же).
Пост может показатья кому-то скептическим, но на самом деле я полон оптимизма. Каких-то пять лет назад даже 10-я часть предложенных алгоритмов была невозможна по разным причинам, а сегодня уже идут разговоры о полной автоматизации моделирования с помощью машинного обучения. Повсеместная адаптация займет еще много лет, но все равно впереди блестящее будущее!
📖статья
#ML#AI#geo#subsurface
Breakthrough Energy Билла Гейтца вкладывается в геологический водород
Вышла новость, что Breakthrough Energy Билла Гейтца вложилась в стартап (91 мульён долларов), который работал в секретном режиме буквально до прошлой недели. Называется Koloma, состоит сплошь из выходцев из нефтянки. Koloma собирается добывать геологический водород на среднем западе США. Ну и конечно, планирует подать заявку на получение субсидий в соответствии с Законом о снижении инфляции (IRA) 😁.
Билл Гейтц считает водород "швейцарским ножом" в энергетике (кстати, почитайте его книжку How to Avoid a Climate Disaster, даже если не согласны с повесточкой - она интересная!)
#hydrogen#decarbonization#subsurface
🪐 Scientists are exploring the possibility that life could exist deep below the surface of Mars, where underground water reservoirs may still provide a stable environment protected from harsh surface radiation and extreme cold. Evidence from orbiting spacecraft suggests networks of ancient, buried rivers and salty brines—which could help microbes survive in the Martian subsurface even today. ✨
#Mars⚡#life⚡#subsurface⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
IMAGE'23 и генерация моделей по подсказке
Всем привет! Пропал-пропал, был на конференции IMAGE'23. Это такая огромная, на тысяч 6-7 человек, геотехническая конференция в Хьюстоне для специалистов в области геонаук, полезных ископаемых и (уже) декарбонизации.
Самые большие секции были посвящены машинному обучению в геонауках. На одной из них я показал наши эксперименты в области Генеративного ИИ (Generative AI), а именно первые наброски того как можно генерировать реалистичные геологические\сейсмические модели с помощью семантически понятного текста. Типа говоришь "йоу, модель, сделай мне низкочастотный сейсмический разрез с двумя сбросовыми разломами в восточной части и добавь немного шума". И на выходе получаешь реалистичный сейсмический разрез удовлетворяющий твоему описанию, или получаешь сразу несколько разных разрезов, ведь генерация стохастическая.
Использовали мы немного модифицированную версию знаменитой нейронки Dalle-E2 от Open AI, которую обучили с нуля. Точнее три ее компонента: ✅CLIP - для семантической связи между текстом и изображением(моделью) и преобразования последнего в векторное представление; ✅ Diffusion Prior - для стохастической генерации текстовых векторных представлений в текстовые представления изображения(модели) и ✅ Decoder - для стохастической генерации самих изображений(моделей) из их векторного представления. Последняя нейроночка использует диффузионную модель. Получилось неплохо! На второй картинке пример моделей, которые сгенерировались по соответствующей подсказке. Конечно отправлять в продакшн еще рановато, но идея, кажется, работает не только на кошечках и собачках.
#Image23#conference#ML#AI#subsurface
RockPhyPy - рок-физика 🤘 в Питоне 🐍
Рок-физика - занимательная часть наук по исследованию недр, а не то что вы подумали. Правильный перевод конечно "физика горных пород", но на пост-советском пространстве это название заразервировала немного другая дисциплина.
Рок-физика изучает взаимоотношения между физическими свойствами пород и геофизическими наблюдениями в разных условиях. Например, как количественно оценить изменение свойств горных пород на основе поведения сейсмических волн, распространяющихся через них. В рок-физике особое внимание уделяют и эффекту наличия того или иного флюида в порах горных пород и как в связи с этим изменится геофизический сигнал. Это важно для УВ, захоронения СО2 и геотермалки.
Такое вступление, чтобы представить вам RockPhyPy - набор инструментов в Питоне для моделирования в этой области. Вся научная основа взята из Справочника рок-физика (Rock Physics Handbook).
И в догонку статья с описанием API и всего инструментария.
#subsurface#geo#programming#rockphysics
Вся геология Нидерланд в одном проекте в Petrel
Petrel - это наверное самый популярный софт для геолого-геофизического моделирования, интерпретации и визуализации. Как Автокад для проектировщиков.
Университет в Утрехте опубликовал всю геологическую базу данных Нидерланд в едином проекте в Petrel 🤯: 10,599 2D сейсмики, 280 3D сейсмики, 6,590 скважин and 4,752 измерений в скважинах.
Может для обучения пригодится!
#seismic#database#geo#subsurface