Используйте модели основания, чтобы повысить точность модели с помощью Amazon SageMaker

Улучшите точность модели с помощью Amazon SageMaker, используя различные основания

Фото от Скотта Уэбба на Unsplash

Фото от Скотта Уэбба на Unsplash

Определение стоимости жилья является классическим пример использования машинного обучения (МО). Значительное влияние оказали Харрисон и Рубинфельд (1978), которые опубликовали революционную статью и набор данных, известный неформально как бостонский датасет по жилью. В этой фундаментальной работе был предложен метод оценки цен на жилье в зависимости от множества параметров, включая качество воздуха, которое было основным фокусом их исследования. Почти через 50 лет оценка стоимости жилья стала важным учебным инструментом для студентов и профессионалов, интересующихся использованием данных и МО в бизнес-принятии решений.

В этом посте мы обсудим использование модели с открытым исходным кодом, специально разработанной для решения задачи визуального вопросно-ответного (VQA). С VQA вы можете задать вопрос о фотографии естественным языком и получить ответ на свой вопрос также на простом языке. Нашей целью в этом посте является вдохновить и продемонстрировать, что можно сделать с использованием этой технологии. Мы предлагаем использовать эту возможность с помощью платформы сервисов Amazon SageMaker для улучшения точности модели регрессии в задаче МО, а также для автоматической разметки визуальных изображений.

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

Модели основы

Это решение основано на использовании модели основы, опубликованной в репозитории моделей Hugging Face. Здесь термин “модель основы” используется для описания возможности искусственного интеллекта (ИИ), которая была предварительно обучена на большом и разнообразном наборе данных. Модели основы иногда могут быть готовы к использованию без необходимости обучения модели с нуля. Некоторые модели основы могут быть дообучены, то есть обучены дополнительным паттернам, которые важны для вашего бизнеса, но отсутствуют в исходной обобщенной опубликованной модели. Дообучение иногда необходимо для достоверных ответов, уникальных для вашего случая использования или собственной базы знаний.

В репозитории Hugging Face есть несколько моделей VQA, из которых можно выбрать. Мы выбрали модель с наибольшим количеством загрузок на момент написания данного поста. Хотя этот пост демонстрирует возможность использования модели из открытого репозитория моделей, тот же самый концепт можно применить к модели, обученной с нуля, или использованной из другого надежного источника.

Современный подход к классическому случаю использования

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

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

Используя эту идею, мы демонстрируем использование моделей основы для извлечения скрытых характеристик из изображений недвижимости. Используя найденные в изображениях узловые точки, недоступные в табличных данных, мы можем повысить точность модели. Как изображения, так и табличные данные, обсуждаемые в этом посте, изначально были опубликованы и доступны на GitHub Абдулаом и Мустафой (2016).

Картинка говорит больше тысячи слов

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

Фотографии предоставлены Francesca Tosolini (Л) и Sidekix Media (П) на Unsplash

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

Пример вопроса Пример ответа от основной модели
Из чего сделаны столешницы? гранит, плитка, мрамор, ламинат и т. д.
Это дорогая кухня? да, нет
Сколько отдельных раковин здесь? 0, 1, 2

Архитектура ссылки

В этом посте мы используем Amazon SageMaker Data Wrangler для задания одинакового набора визуальных вопросов для тысяч фотографий в наборе данных. SageMaker Data Wrangler специально разработан для упрощения процесса подготовки данных и создания функций. Предоставляя более 300 встроенных преобразований, SageMaker Data Wrangler помогает сократить время подготовки табличных и изображенческих данных для машинного обучения с недель до минут. Здесь SageMaker Data Wrangler объединяет признаки данных из исходного набора данных в таблице с признаками, полученными из основной модели для обучения модели.

Затем мы строим регрессионную модель с использованием Amazon SageMaker Canvas. SageMaker Canvas может построить модель, не писав ни одной строки кода, и предоставить предварительные результаты уже через 2–15 минут. В следующем разделе мы предоставляем архитектуру ссылки, используемую для возможности дать рекомендации по данному решению.

Множество популярных моделей от Hugging Face и других поставщиков можно развернуть с помощью Amazon SageMaker JumpStart. В этих репозиториях доступно сотни тысяч моделей. Для этого поста мы выбираем модель, недоступную в SageMaker JumpStart и требующую пользовательского развертывания. Как показано на следующей фигуре, мы разворачиваем модель Hugging Face для вывода, используя блокнот Amazon SageMaker Studio. Блокнот используется для развертывания точки входа для вывода в режиме реального времени. В блокноте используются ресурсы, включающие бинарную модель Hugging Face, указатель на образ контейнера и специальный скрипт inference.py, соответствующий ожидаемым входным и выходным данным модели. Пока вы читаете это, комбинация доступных моделей VQA может измениться. Важно ознакомиться с доступными моделями VQA на момент чтения данного текста и быть готовым развернуть выбранную вами модель, которая имеет свой собственный запрос и ответ API.

После того, как модель VQA обслуживается эндпоинтом SageMaker, мы используем SageMaker Data Wrangler для организации конвейера, который в конечном итоге объединяет табличные данные и извлеченные из цифровых изображений признаки и преобразует данные для обучения модели. На следующей картинке показано, как выполняется полномасштабная работа по трансформации данных.

На следующей картинке мы используем SageMaker Data Wrangler для оркестрации задач предобработки данных и SageMaker Canvas для обучения модели. Во-первых, SageMaker Data Wrangler использует Amazon Location Service, чтобы преобразовать почтовые индексы, доступные в исходных данных, в признаки широты и долготы. Во-вторых, SageMaker Data Wrangler может координировать отправку тысяч фотографий в хостинговый эндпоинт SageMaker для получения результатов реального времени и задавать одинаковый набор вопросов для каждой сцены. Это приводит к получению богатого набора признаков, описывающих характеристики, наблюдаемые в кухнях, ванных комнатах, экстерьерах домов и т. д. После подготовки данных SageMaker Data Wrangler набор обучающих данных доступен в Amazon Simple Storage Service (Amazon S3). Используя данные S3 в качестве входных данных, SageMaker Canvas может обучать модель всего за 2–15 минут без написания кода.

Трансформация данных с использованием SageMaker Data Wrangler

На следующем скриншоте показан рабочий процесс SageMaker Data Wrangler. Процесс начинается с тысяч фотографий домов, хранящихся в Amazon S3. Затем детектор сцены определяет сцену, такую как кухня или ванная комната. Наконец, задаются вопросы, специфичные для сцены, по изображениям, что приводит к созданию более полного табличного набора данных, доступных для обучения.

В следующем примере приведен пользовательский код SageMaker Data Wrangler для взаимодействия с базовой моделью и получения информации о фотографиях кухонь. В предыдущем скриншоте, если бы вы выбрали узел с функциями кухонь, появился бы следующий код:

from botocore.config import Configimport jsonimport boto3import base64from pyspark.sql.functions import col, udf, struct, litdef get_answer(question,image):   encoded_input_image = base64.b64encode(bytearray(image)).decode()   payload = {     "question": question,       "image": encoded_input_image    }   payload = json.dumps(payload).encode('utf-8')   response = boto3.client('runtime.sagemaker', config=Config(region_name='us-west-2')).invoke_endpoint(EndpointName='my-vqa-endpoint-name', ContentType='application/json', Body=payload) return json.loads(response['Body'].read())["predicted_answer"]vqaUDF = udf(lambda q,img: get_answer(q,img))# process only images of bathroom typedf = df[df['scene']=='kitchen']visual_questions = [    ('kitchen_floor_composition', 'what is the floor made of'), ('kitchen_floor_color', 'what color is the floor'), ('kitchen_counter_composition', 'what is the countertop made of'),  ('kitchen_counter_color', 'what color is the countertop'),  ('kitchen_wall_composition', 'what are the walls made of'), ('kitchen_refrigerator_stainless', 'is the refrigerator stainless steel'),  ('kitchen_refrigerator_builtin', 'is there a built-in refrigerator'),   ('kitchen_refrigerator_visible', 'is a refrigerator visible'),  ('kitchen_cabinet_composition', 'what are the kitchen cabinets made of'),   ('kitchen_cabinet_wood', 'what type of wood are the kitchen cabinets'), ('kitchen_window', 'does the kitchen have windows'),    ('kitchen_expensive', 'is this an expensive kitchen'),  ('kitchen_large', 'is this a large kitchen'),   ('kitchen_recessed_lights', 'are there recessed lights')    ]for i in visual_questions: df = df.withColumn(i[0], vqaUDF(lit(i[1]),col('image_col.data')))

В качестве меры безопасности вы должны сначала разрешить SageMaker Data Wrangler обращаться к вашей реальной точке доступа SageMaker через AWS Identity and Access Management (IAM). Аналогично, все AWS-ресурсы, которые вы вызываете через SageMaker Data Wrangler, должны иметь аналогичные разрешения на выполнение.

Структура данных до и после SageMaker Data Wrangler

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

Структура исходных табличных данных

Как описано в исходном репозитории GitHub, образец набора данных содержит 535 табличных записей, включая четыре изображения на объект недвижимости. В следующей таблице показана структура исходных табличных данных.

Функция Комментарий
Количество спален .
Количество ванных комнат .
Площадь (квадратные футы) .
Почтовый индекс .
Цена Это целевая переменная, которую нужно предсказать.

Структура улучшенных данных

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

Функция Комментарий
Количество спален .
Количество ванных комнат .
Площадь (квадратные футы) .
Широта Вычисляется путем передачи исходного почтового индекса в Amazon Location Service. Это центроидное значение для индекса.
Долгота Вычисляется путем передачи исходного почтового индекса в Amazon Location Service. Это центроидное значение для индекса.
Содержит ли спальня сводчатый потолок? 0 = нет; 1 = да
Дорогая ли ванная комната? 0 = нет; 1 = да
Дорогая ли кухня? 0 = нет; 1 = да
Цена Это целевая переменная, которую нужно предсказать.

Обучение модели с помощью SageMaker Canvas

Задача обработки данных SageMaker Data Wrangler полностью подготавливает и делает доступным в Amazon S3 весь обучающий табличный набор данных. Затем SageMaker Canvas решает задачу создания модели в жизненном цикле машинного обучения. Canvas начинает открытием обучающего набора S3. Умение понять модель часто является ключевым требованием клиента. Без написания кода и всего нескольких щелчков мыши SageMaker Canvas дает богатую визуальную обратную связь о производительности модели. Как видно на скриншоте в следующем разделе, SageMaker Canvas показывает, как отдельные функции информируют модель.

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

Мы можем видеть на следующем скриншоте, что признаки, разработанные на основе изображений объекта, оказались важными. На основании этих результатов, вопрос “Дорогая ли эта кухня” на фото оказался более значимым, чем “количество спален” в исходных табличных данных, соответственно с значениями важности признаков 7,08 и 5,498.

На следующем скриншоте предоставлена важная информация о модели. Во-первых, график остатков показывает, что большинство точек в наборе сгруппированы вокруг фиолетовой заштрихованной зоны. Здесь две выбросы были вручную помечены за пределами SageMaker Canvas для этой иллюстрации. Эти выбросы представляют собой значительные разрывы между реальной стоимостью дома и прогнозируемой стоимостью. Кроме того, показано значение R2, которое может находиться в диапазоне от 0 до 100% и составляет 76%. Это означает, что модель несовершенна и не имеет достаточно точек информации для полного учета всего разнообразия для полного определения стоимости домов.

Мы можем использовать выбросы, чтобы найти и предложить дополнительные сигналы для построения более всесторонней модели. Например, эти выбросы могут включать наличие бассейна или расположение на больших земельных участках. В наборе данных этих признаков не было, однако вы можете найти эти данные и обучить новую модель с признаком “наличие бассейна” в качестве дополнительного признака. Идеальным было бы увеличение значения R2 при следующей попытке и уменьшение значений MAE и RMSE.

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

Наконец, прежде чем перейти к следующему разделу, давайте изучим, были ли полезны признаки изображений. Следующий скриншот предоставляет другую модель, обученную с помощью SageMaker Canvas без признаков из модели VQA. Мы видим, что показатель ошибки модели увеличился с RMSE 282K до RMSE 352K. Из этого можно сделать вывод, что три простых вопроса по изображениям повысили точность модели примерно на 20%. Не показано, но для полноты картины, значение R2 для следующей модели также снизилось до 62% по сравнению со значением 76% при использовании функций VQA. Это пример того, как SageMaker Canvas позволяет быстро экспериментировать и использовать подход, основанный на данных, который обеспечивает модель для удовлетворения ваших бизнес-потребностей.

Взгляд в будущее

Многие организации проявляют все больший интерес к базовым моделям, особенно после того, как общие предварительно обученные трансформеры (GPTs) стали официально актуальной темой в декабре 2022 года. Большая часть интереса к базовым моделям сосредоточена на задачах больших языковых моделей (LLM); однако есть и другие разнообразные варианты использования, такие как компьютерное зрение и, более узко, описанная здесь специализированная задача VQA.

Этот пост является примером, чтобы вдохновить использование мультимодальных данных для решения промышленных задач. Хотя мы продемонстрировали использование и преимущества VQA в модели регрессии, она также может использоваться для маркировки и тегирования изображений для последующего поиска или маршрутизации рабочих процессов в бизнесе. Представьте себе возможность искать объекты, выставленные на продажу или аренду. Предположим, что вы хотите найти недвижимость с плиточными полами или мраморными столешницами. Сегодня вам, возможно, придется получить длинный список кандидатов и самостоятельно фильтровать их, осматривая каждого кандидата. Вместо этого представьте себе возможность фильтровать объявления, содержащие эти характеристики, даже если человек не указывал их явно. В страховой отрасли представьте возможность оценки ущерба по требованию или определения дальнейших действий в рабочем процессе на основе изображений. В социальных сетях фотографии могут быть автоматически помечены для последующего использования.

Вывод

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

Затем мы использовали SageMaker Data Wrangler для оркестрации рабочего процесса, в котором задавались единообразные вопросы на изображениях с целью создания богатого набора табличных данных. Наконец, мы использовали SageMaker Canvas для обучения модели регрессии. Важно отметить, что пример набора данных был очень простым и, следовательно, несовершенным по своей природе. Тем не менее, SageMaker Canvas позволяет легко понять точность модели и искать дополнительные сигналы для повышения точности базовой модели.

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

AWS предлагает самый широкий и глубокий набор услуг машинного обучения и облачной инфраструктуры, предоставляя возможность каждому разработчику, ученому-исследователю и эксперту в области практику использовать машинное обучение. Если вы хотите узнать больше о платформе SageMaker, включая SageMaker Data Wrangler и SageMaker Canvas, пожалуйста, свяжитесь со своей командой AWS и начните общение. Кроме того, рекомендуем прочитать больше о SageMaker Data Wrangler настраиваемых преобразованиях.

Ссылки

Ahmed, E. H., & Moustafa, M. (2016). Оценка стоимости жилья на основе визуальных и текстовых признаков. IJCCI 2016 – Материалы 8-й Международной совместной конференции по вычислительному интеллекту, 3, 62–68.

Harrison Jr, D., & Rubinfeld, D. L. (1978). Ценообразование на жилье и спрос на чистый воздух. Журнал экономики и управления окружающей средой, 5(1), 81-102.

Kim, W., Son, B., & Kim, I.. (2021). ViLT: Vision-and-Language Transformer без сверток или регионального наблюдения. Материалы 38-й Международной конференции по машинному обучению, в Материалах исследований машинного обучения. 139:5583-5594.