Практическое применение генеративного ИИ в пространственном анализе данных

Практическое применение генеративного ИИ в пространственном анализе данных: Главная

Поделиться:

Сегодня сложно отыскать область, где не используются большие лингвистические модели (LLMs — Large Language Models) типа GPT-4, GigaChat и нескольких других.

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

Однако в геопространственном анализе примеры применения LLM пока не так заметны, как перечисленные выше.

Мой интерес к этой теме понятен: мы в «Эпсилон Метрикс» много работаем над демократизацией доступа к геопространственным данным и геоаналитическим инструментам. Можно с уверенностью сказать, что демократизация и no-code — это наше конкурентное преимущество. Среди наших разработок в этой части — Конструктор процессов пространственного анализа Epsilon Workflows, конструктор интерактивных карт, а также no-code отраслевые решения для ритейла, недвижимости и телекома.

А вот общения на естественном языке до сих пор не было. Хотя многие интересовались, как у нас с этим обстоят дела (особенно после взлёта популярности генеративного ИИ ChatGPT пару лет назад).

Поэтому логичным шагом в этом направлении стало применение LLM.

В этой статье я расскажу, как и зачем мы это делаем.

Для примера я выбрала простую типовую задачу: подготовить понятные текстовые описания на русском языке, которые будут выводиться на интерактивной карте при наведении курсора на ту или иную область. Эти всплывающие подсказки будут описывать, насколько на выбранной территории доступны школы, магазины и другие объекты городской инфраструктуры с учётом плотности населения.

«Присоединяйтесь к исследованию мира, где каждый уголок Земли способен поведать уникальную историю на естественном языке». Этот call to action сгенерировал chatGPT, но на этом всё. Дальше — только мой настоящий человеческий текст. По крайней мере, в нашем блоге.

Какую модель генеративного ИИ выбрать для анализа данных?

На тему сравнения LLM есть много хороших статей, поэтому в этой публикации останавливаться на этом не будем. Скажу только, что выбор LLM пока не такой уж и большой. Есть модели проприетарные (ChatGPT, GPT-4, Palm, Gemini Pro и др.) и открытые (Llama, Mistral, Yi-34B и др.). Среди них есть российские (YandexGPT и GigaChat), а есть не очень. Различаются они и по многим другим параметрам.

Мы выбрали YandexGPT, так как она российская и подошла нам по соотношению цена — качество.

Этап 1: Подготовка данных

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

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

Затем обогатим эти ячейки внутри полигонов различными данными, доступными в нашем Каталоге данных, включая информацию о населении и точках интереса.

Рассмотрим этот этап по шагам, выполненным в Конструкторе процессов Epsilon Workflows.

Шаг 1: Определяем исследуемые области

Сначала зададим интересующие нас области с помощью полигонов.

Шаг 2: Применяем пространственную индексацию к исследуемым областям

Делим созданные на предыдущем этапе полигоны на равные шестиугольники H3.

Это позволит нам обогатить данные исследуемых областей различными данными из Каталога наборов данных Epsilon Metrics.

Шаг 3: Подключаем наборы данных для обогащения

Данные доступны в Каталоге наборов данных и охватывают всю страну.

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

Наборы данных в Каталоге наборов данных Epsilon Metrics адаптированы для использования пространственных индексов H3. Это значит, что размер ячеек в наборах данных из Каталога такой же, как и в тех ячейках, на которые мы ранее поделили исследуемые области.

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

Шаг 4: Обогащение исследуемых областей данными о демографии

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

Для выполнения этой операции добавляем в процесс компонент Соединение.

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

Вот как эти данные выглядят на карте:

Обогащение исследуемых областей данными. Карта

А вот так они выглядят в виде таблицы:

Обогащение исследуемых областей данными. Таблица

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

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

Этап 2: Создание промптов для каждого пространственного шестиугольника

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

Что такое промпт? Это детализированная инструкция или запрос для ИИ. Включение контекста в промпт существенно улучшает качество работы ИИ. Поэтому каждый наш промпт будет содержать детали, такие как уровень плотности населения и количество точек интереса разного типа.

Что мы сделаем на этом этапе:
1. Cформулируем шаблон промпта, с учётом ключевой информации о плотности населения и точках интереса.
2. Запустим автоматический процесс создания промптов для каждого шестиугольника по написанному нами шаблону на основании собранных ранее данных.

Эти промпты на следующем этапе помогут модели машинного обучения сгенерировать точные текстовые описания для каждого шестиугольника H3.

Рассмотрим подробнее, как я сгенерировала промпты в Конструкторе процессов Epsilon Workflows.

Шаг 1: Включаем формирование промпта в процесс

Для формирования запроса будем использовать компонент Создание столбца. «Перетаскиваем» этот компонент в наш процесс, и называем Формирование промпта.

Шаг 2: Пишем шаблон промпта

На этом шаге мы один раз напишем текст промпта, включив в него переменные, основанные на данных, собранных нами на первом этапе.

Наша задача — оценить, насколько легко доступны ресурсы в различных ячейках сетки H3, исходя из плотности населения и количества доступных ресурсов в каждой из них. Под ресурсами мы понимаем точки интереса (POI — Points of Interest).

Для этого включим в промпт информацию о населении каждой ячейки, а также количество POI разных типов, таких как магазины, учебные заведения, кафе, рестораны и медицинские учреждения.

Затем укажем формат ответа. Мы просим ИИ предоставить оценку доступности ресурсов. Эта оценка будет выражена числом от 1 до 10 и сопровождаться кратким пояснением, длина которого не превысит 20 слов.

Наш шаблон промпта может выглядеть вот так:

«Дай мне индекс привлекательности этого района основываясь на плотности населения и ресурсов вокруг. Численность населения: ‘ , population_joined , ‘. Ресурсы вокруг выражены следующими показателями: ‘ , retail_joined , ‘ магазинов; ‘ , education_joined , ‘ образовательных учреждений; ‘ , healthcare_joined , ‘ медицинских заведений; ‘ , financial_joined, ‘ финансовых учреждений; ‘ , food_drink_joined, ‘ объектов общественного питания; ‘ , tourism_joined, ‘ туристических объектов. Формат ответа: «Индекс привлекательности:». Пояснение СТРОГО не больше 20 слов. Учитывай предыдущие запросы и ответы».

Шаг 3: Генерируем промпт для каждого шестиугольника

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

Как мы это делаем:

  1. Автоматизированная обработка. Система последовательно перебирает все шестиугольники, используя данные, собранные на первом этапе. Это обеспечивает полное покрытие исследуемой территории без пропусков.
  2. Генерация по шаблону. Для каждого шестиугольника система автоматически заполняет шаблон промпта актуальной информацией — плотностью населения и количеством различных точек интереса, таких как магазины, учебные заведения, рестораны, кафе и медицинские учреждения.
  3. Сохранение результатов. Сгенерированные промпты сохраняются в новом столбце нашей рабочей таблицы.

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

Создание промптов

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

Этап 3: Генерация текстов с описанием с использованием генеративного ИИ

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

Шаг 1: Включаем компонент генерации текста в процесс

Сначала мы включаем модуль ML Генерация текста в наш рабочий процесс. Этот инструмент будет создавать текст на основе промптов, которые мы сгенерировали на предыдущем этапе.

Шаг 2: Указываем источник данных и модель ИИ

Далее, задаем параметры для модуля ML Генерация текста, указывая имя нашей обученной модели и выбирая столбец с промптами, созданный на втором этапе.

Шаг 3: Запускаем процесс генерации текстов

Завершающий шаг — запуск процесса генерации текстов. Компонент ML Генерация текста автоматически обрабатывает каждую строку таблицы, создавая описания на основе промптов из соответствующих строк.

Сгенерированные тексты описаний сохраняются в ячейках нового столбцы в нашей таблице. Для примера мы сгенерировали тексты не для всех областей, а выбрали с самой высокой численностью.

Теперь у нас есть оценка доступности ресурсов и описание для каждого шестиугольника.

Эти описания могут быть наглядно представлены на интерактивной карте.

Генерация текстов с описанием с использованием генеративного ИИ

Этап 4: Создание интерактивной карты с текстовыми описаниями

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

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

Шаг 1: Создаём карту на основании результирующей таблицы

Открываем Конструктор карт и выбираем нашу рабочую таблицу.
На карте видим наши первоначальные исследуемые области, поделённые на шестиугольники H3.

Шаг 2: Настраиваем дизайн карты

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

Шаг 3: Настраиваем вывод сгенерированных текстовых описаний ячеек

Настроим вывод сгенерированных текстовых описаний для каждого шестиугольника.

Шаг 4: Публикуем карту и направляем при желании ссылку на неё всем заинтересованным

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

Заключение: Использование генеративного искусственного интеллекта позволило создать интуитивно понятные и детализированные текстовые описания для интерактивных карт

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

Для подготовки описаний использовали результаты анализа плотности населения и доступных точек интереса.

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

Вся работа была выполнена в Epsilon Workflows одним человеком за 15 минут и не потребовала написания кода или SQL-запросов.

Запросите демонстрацию сейчас

Интересуетесь ли вы возможностями генеративного искусственного интеллекта для вашей компании? Запросите демонстрацию от наших экспертов и мы с удовольствием покажем, как наши решения могут изменить ваш подход к анализу и визуализации геоданных.

Статьи по теме

В ритме ритейла: Эпсилон Метрикс на Retail Show 2024

В ритме ритейла: Эпсилон Метрикс на Retail Show 2024

Конференция Retail Show 2024 собрала ведущих экспертов в области ИТ для ритейла, обсуждая новейшие тенденции в геоаналитике и искусственном интеллекте. Узнайте больше о ключевых моментах и впечатлениях от мероприятия в нашей статье.

Где разместить зарядные станции для электромобилей

Где разместить зарядные станции для электромобилей

Электромобили становятся всё более популярными, что требует развития доступной зарядной инфраструктуры, роста количества и размера операторов пунктов зарядки. Статья подчёркивает важность анализа геоданных для определения оптимальных местоположений зарядных станций.

Как мы сходили на конференцию Data&AI 2024 от «Открытые системы»

Как мы сходили на конференцию Data&AI 2024 от «Открытые системы»

Data&AI 2024 удивила прекрасным составом участников — от министерств до технологических риэлторских компаний, и отличным набором тем вокруг прикладного применения больших данных в самых разных отраслях.

Запросить демонстрацию

Готовы увидеть, как это может работать для вашей организации?

Свяжитесь с нами