Что самое сложное в ИИ и почему он еще не везде
Почему не стоит бояться того, что ИИ скоро будет делать абсолютно все за нас

Победитель конкурса «Лидеры России», Ментор и наставник первых лиц и топ команд, Член клуба коучей бизнес-школы СКОЛКОВО, Основатель и руководитель отечественного IT-стартапа
Сегодня один наш коллега обратился с интересной мыслью — «а почему бы нам не сделать платформу, которая как Claude (чат-бот на основе искусственного интеллекта от компании Anthropic), имеет просто строку для ввода запроса и все, и она сама понимает, что мы от нее хотим и вуаля!». Для контекста стоит добавить, что наша компания работает с цифровизацией проектирования и строительства, где мы разрабатываем и внедряем системы для инженеров-проектировщиков и строителей.
И очень часто приходится слушать заказчиков и дискутировать на тему «а что если мы сюда добавим нейронку и обучим ее, и она сама будет нам делать и 3D-модели, и чертежи и проверять это на соответствие строительным нормам и правилам и т.п.».
Давайте попробуем разобраться на конкретном примере, как могла бы выглядеть такая нейросеть и что нужно, чтобы она отрабатывала корректно и приносила реальную пользу в процессе проектирования зданий и сооружений. Для наглядности эксперимента и простоты понимания, возьмем такой кейс:
Есть чертеж (2D) комнаты, в которой обозначены проемы для дверей и окон. Необходимо проверить, не нарушаются ли строительные нормы в части расположения окон друг к другу, к стенам и дверям (находятся на определенном расстоянии от стены). Иными словами, мы хотим, чтобы нейросеть проверила расстояние от стены до окна и сказала, все ли в порядке (например, есть хотя бы 50 см от стены).
Чтобы нейросеть могла сказать ОК или не ОК, ее нужно обучить этому. Ведь сама по себе нейросеть — это модель, которая как чистый лист, как ребенок, который только пришел в этот мир и еще не понимает, как складывать числа и умножать, как и на каком языке общаться и т.п. И вот здесь возникает первая (а порой и сама большая) сложность — как и на чем ее обучить? Чтобы понять, как обучается модель, давайте возьмем небольшой пример, который я использовал, когда недавно выступал для подростков в качестве отраслевого эксперта по ИТ в Бизнес-школе СКОЛКОВО. Есть график покупок за прошедшую неделю, кроме воскресенья:

Нам нужно обучить нашу модель так, чтобы она могла сказать, покупка на какую сумму будет совершена в воскресенье.
Вариант 1: возьмем среднее арифметическое от всех покупок за 6 дней. Тогда скорее всего в воскресенье будет покупка на 316,(6). Но это не точно.
Вариант 2: мы можем добавить «веса» в нашу модель и сказать, что покупка в понедельник (100) и во вторник (500) — это очень редкие случаи, крайние значения, и не стоит их учитывать в общей картине. Тогда среднее арифметическое за 4 дня будет 325 и, значит, в воскресенье, скорее всего будет покупка именно на эту сумму.
Как видите, числа получаются разные, хоть и близкие. Но наша логика в модели очень простая, а выборка — совсем малая. Мы можем усложнять нашу модель, «обучая» ее на данных за больший период или применяя другие математические методы, а не только среднее арифметическое. Но суть, надеюсь, понятна. Давайте вернемся к нашему чертежу с окнами и дверями.
Чтобы наша нейросеть могла определить, не нарушает ли расположение окна строительные нормы, мы должны передать в нее много чертежей, где окна находятся на 50, 60, 70, 100 и больше см от стены и «обучить» ее, т.е. сказать, что вот на этом чертеже, вот это окно — ОК, ведь оно на 70 см от стены, а на другому чертеже — не ОК, ведь оно на 40 см от стены. Опустим то, что модель вообще должна понять, что это стена, а это окно, а не труба или дверь, обозначим лишь то, что обучение — не случается само по себе, ведь нейросеть не знает — это ОК или не ОК, а значит нам нужен человек, который ей подскажет это и обозначит, что в одном чертеже это — ОК, а в другому — не ОК. И это очень затратная операция — найти так много чертежей и так много людей и их времени, которые будут размечать чертежи и обозначать то, что нам нужно. Ведь если мы возьмем только 100 чертежей, где все расстояния будут от 30 до 100, то модель и будет обучена в таком диапазоне. И когда появится чертеж с расстоянием от окна до стены — 150, то нейросеть не будет понимать, что с этим делать и может выдать как положительный, так и отрицательный результат проверки. Точно также она может ошибиться и принять дверной проем за окно, а там совсем другие нормы и надо ее также научить отличать двери от окон.
Идем дальше и теперь представим, что вышла новая редакция стандарта, где окно может быть расположено к стене не на 50 см, а на 30 см.
Что произойдет с нашей нейросетью, обученной на 100 чертежах с окнами 50-100 см от стены? Конечно же она начнет браковать чертежи, где будут окна 40 или 30 см. Можно ли ее «дообучить» теперь под новые правила? Конечно можно. Но это будет не один чертеж с окном 30 см от стены. Нам надо будет добавить «веса» такому значению, ведь как в примере с графиком выше, если у нас будет 100 чертежей где 50-100 см от стены, и всего один, где будет 30 — то нейросеть это может воспринять как крайнее значение и попросту отсечь. То есть нам нужно будет больше чертежей и больше людского времени чтобы дообучить модель, а может и вовсе — переобучить с нуля.
Идем дальше и, вдруг, нам попадается чертеж, где будут панорамные окна и во всю стену. И так тоже можно проектировать и строить, если мы строим небоскреб, как башня «Федерация», например, но не типовое жилое здание. И опять повышается сложность обучения, связанная теперь уже с типом здания. Т.е. в нашей нейронной сети появится еще и параметр «тип здания», который так же должен будет учитывать человек при обучении. А так как таких параметров в реальной жизни очень много, просто представьте себе, сколько людей и времени потребуется, чтобы научить модель правильно делать выводы. А где взять столько чертежей для обучения? Ведь 10 или 100 или даже 1000 — это очень скудные данные для обучения. Чем меньше примеров было при обучении — тем «глупее» будет наша модель и будет чаще ошибаться.
Таким образом, один из самых сложных (но безусловно, возможных, вопрос лишь во времени и цене) этапов при создании такой нейросети — это ее обучение. И очень часто это все и упускают из вида, думая, что нейросеть сама по себе «все знает» и «все понимает». Но нет. Не так сложно создать саму модель, как обучить ее.
Следующий параметр, который нам необходимо учесть это то, в каком формате мы будем проверять наши чертежи. Ведь если мы обучили нашу модель на чертежах в формате PDF, машиночитаемом (не сканы, с растровой графикой, где стена — это набор пикселей), то она не сможет проверять чертежи, в формате DWG или PDF, но качественно отсканированном. И тут снова выходит та же самая проблема — где взять столько чертежей в одном формате и как в настоящий момент получать чертежи только в этом, одном, формате? Задача, безусловно, решаемая, но когда, и сколько еще потребуется времени и денег на ее решение. И про это тоже часто забывают, думая, что раз нейросеть научилась «читать» чертежи, то теперь она, как и человек, сможет видеть их как набор линий и других примитивов, вне зависимости от формата или качества скана.
И в завершение стоит сказать, что сама по себе модель со многими параметрами (а ведь у нас их будет очень много), требует аппаратных ресурсов, для обучения и для работы — мощные серверы с дорогими видеокартами и такое удовольствие могут себе позволить далеко не все компании. Ведь неспроста строительство датацентров для ведущих языковых моделей уже перевалило за сотни миллионов долларов. А сама система, единожды запущенная, также требует ресурсов для поддержки работоспособности — ИТ-инженеров.
Безусловно, все перечисленные выше задачи — решаемы, но, когда мы говорим о качественной нейросети для решения сложных задач для проектировщиков, стоимость и сроки реализации настолько высоки, как и риски «ошибки», что наличие пусть и десятка человеческих инженеров-проектировщиков в штате, кто будет делать ту же самую работу просто, несравнимо ниже. Несравнимо!
А ведь мы говорим только о проверке расположения окна относительно стены. А есть еще двери, электрика, вентиляция и много-много чего еще. А это значит нам либо потребуются отдельные нейросети для этого, либо находить чертежи и обучать с помощью людей имеющуюся модель добавляя в нее параметры и увеличивая сложность.
Таким образом, мы приходим к пониманию того, что решить такого рода задачи — возможно, вопрос лишь в том, кто и когда найдет очень много времени и ресурсов (финансовых и людских) и исходных данных для создания и запуска такой нейросети.
Такое, когда-нибудь, непременно случится. Но не сегодня. И не завтра. И даже не через несколько лет. Но это не точно.
Источники изображений:
Сгенерировано нейросетью «ГигаЧат»
Рекомендации партнеров:
Новости отрасли:
Все новости:
Публикация компании
Достижения
Профиль
Контакты
Рубрики
