Сингулярное Проектирование

Опубликовано

Благодаря технологическому прогрессу постоянно возникают новые идеи и концепции, способные изменить подход к проектированию систем и их разработке. Одна из таких идей, над которой я работаю, - это Сингулярное Проектирование. Этот концепт направлен на упрощение процесса проектирования - создание проекта или его отдельной части исключительно на основе требований пользователя. Для пользователя весь привычный этап проектирования превращается всего лишь в точку - сингулярность, всё происходит сразу без вмешательства в процесс. Сингулярное Проектирование идеально сочетается с итеративным подходом к разработке и направлено на удовлетворение сложных требований современных инженерных проектов.

Новая парадигма

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

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

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

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

Системный инжиниринг обожают в аэрокосмической отрасли:

Ключевым аспектом системного инжиниринга, особенно в модельно-ориентированном системном инжиниринге (Model-Based Systems Engineering/MBSE, отличается от обычного системного инжиниринга представлением систем и информации о них в графическом виде, вместо документального), является проектирование интерфейсов. Интерфейсы служат узлами, где различные части системы взаимодействуют, и их проектирование может значительно влиять на общую функциональность и эффективность системы. Плохо спроектированные интерфейсы могут привести к сбоям системы, неэффективности и увеличенной сложности.

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

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

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

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

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

Структура рабочего процесса

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

Во всяком случае примерно так я его представляю:

Требования

Все в Сингулярном Проектировании начинается и основано на требованиях. Обычная проблема для разработчиков - это согласование их видения продукта с видением клиента. Сингулярное Проектирование не является исключением из этого правила. Однако, значительное преимущество этой парадигмы заключается в возможности быстро изменять проект без чрезмерного расходования ресурсов. Встаёт вопрос: как должны выглядеть требования в этой парадигме?

Следует ли им быть в виде обычной спецификации, или стандартной формы, которую заполняет клиент? Должен ли быть новый язык программирования, чтобы описать его, или мы должны использовать существующие языки, как SysML? Или, возможно, мы могли бы взаимодействовать с программой динамически, как если бы это был человек, похоже на то, как мы взаимодействуем с “ИИ” чат-ботами?

Ответ на все эти варианты - решительное ДА. Ключ к этому лежит в следующем компоненте рабочего процесса - блоке, который может интерпретировать требования в любой форме и переводить их в более структурированный формат, подходящий для последующего блока. Этот блок разработан так, чтобы уловить общую идею требований, независимо от их формы, и проанализировать ее для следующего блока. Такая возможность стала доступна благодаря использованию технологии, лежащей в основе ИИ-ассистентов, таких как ChatGPT, известных как большие языковые модели (LLM).

Большие языковые модели, в простых терминах, - это модели машинного обучения, обученные на огромном количестве текстовых данных (если хотите углубиться в эту тему, я рекомендую вам прочитать эту статью Что делает ChatGPT… и почему это работает? от Стивена Вольфрама). Они учатся генерировать текст, похожий на человеческий, предсказывая следующее слово в предложении, исходя из предыдущих слов. Это позволяет им понимать и генерировать текст таким образом, что он является связным и уместным в соответствии с контекстом.

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

ChatGPT смог представить трубу в виде такой модели, охватывающей механические и технологические свойства:

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

А вот как можно представить самолёт…

…и сгенерировать на основе модели разные его варианты. https://doi.org/10.1016/j.aei.2012.02.002

Генеративное проектирование

Получив требования, мы теперь готовы перейти к следующему этапу структуры для преобразования их в желаемую форму. Однако определение этой “желаемой формы” зависит от внутренней архитектуры последующего за ним блока - формы алгоритма, полученного наиболее вероятно с помощью машинного обучения. Это ключевой момент во всём рабочем процессе, и подход к его созданию будет влиять не только на то как мы обращаемся с требованиями, но и на диапазон потенциальных результатов, которых мы можем достичь. Этот этап обладает большой адаптивностью в своей интерпретации и служит ядром процесса.

ИИ - помощник

Для начала алгоритм может быть обучен на выполнении простых действий, выполняемых во время проектирования в САПР/CAD-софте. Например, требования могут быть сформулированы так: “создать 4 отверстия вдоль передней стороны этой детали”. Интересно, что нет необходимости указывать диаметр и позиционирование отверстий. Всё потому, что наша модель может быть обучена на базе данных о выполнении различных операций, и выходные данные будут включать все необходимые и неуказанные нами детали, выбранные на основе того, что лучше всего подходит условиям и другим исходным данным для операции. Это напоминает генерацию изображений - вы запрашиваете кота, и вы получаете детализированное изображение кота. Если вы хотите кота другого цвета, просто отправьте другой запрос. Это добавляет способность быстро итерировать до достижения желаемого результата.

Пример с отверстиями можно рассматривать как первый шаг в реализации новой парадигмы. На этом этапе большая часть работы все еще выполняется вручную в САПР, но теперь у нас есть дополнительная помощь “ИИ” наряду с компьютерной помощью. Этот шаг выглядит простым, так как у нас есть заранее известное количество операций, которые могут быть выполнены в данной программе для проектирования. Имея достаточно данных, мы можем обучить модель, которая будет интегрирована с функциями для их выполнения на основе наших запросов.

ИИ-генерация

Однако, эту идею можно развить дальше, сменив фокус нашего обучения. Вместо обучения алгоритма требуемым операциям, мы могли бы обучить его результатам - самим получившимся проектам. Представьте себе генерацию 3D-объектов вместо 2D-изображений и требования в качестве запроса (prompt) - звучит здорово. Несмотря на то, что это более сложная задача, она потенциально может упростить разработку. Как и в примере с отверстиями, она может исключить необходимость в описании второстепенных параметров.

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

Вариант использования методов генеративного проектирования для творческого поиска (PS: это здание):

А что будет в основе такого хитрого алгоритма? Ответ заключается в обширных базах данных 3D-проектов с их глубоким описанием и классификацией. Где же взять такую? Пока нигде. Но создание таких баз идёт полным ходом - любой САПР, который внезапно полюбил работать в облаке, да ещё и бесплатно, в то же время любит результат вашей работы (первым делом на ум приходят Fusion 360 и Onshape). Если вы получаете что-то бесплатно, то вы не клиент, вы товар. Конечно, можно составить такую базу самостоятельно, но это слишком сложная тема и раскрывать её здесь не стоит. Главное - что материал для обучения существует и всё зависит от инструмента, который его обработает для последующей генерации.

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

Адаптивный Потоковый Метод

Финальная эволюция блока, который преобразует требования в скелет или инструкции для создания 3D объекта (или цифрового двойника желаемого реального объекта) в рабочем процессе, может быть реализована с помощью концепции, которую я называю Адаптивный Потоковый Метод. Адаптивный Потоковый Метод фокусируется на взаимодействии требований и на том, как эти взаимодействия направляют и формируют проект.

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

Позже появится требование к максимальной мощности преобразователя, появится требование к направлению освещения. Эти требования дополнят свойства и изменят картину модели. Линию от источника тока до преобразователя наполнят свойства, соответствующие проводнику. На пути света появится искажающий элемент, схожий с линзой. ИИ сможет взять эту информацию и на её основе собрать проект, даже если мы забыли указать, как именно получать свет - лампой накаливания или лазером. Пробелы снова будут заполнены подходящими по мнению ИИ данными. А если что-то не устроит, всегда можно уточнить, что нужна простая LED-лампочка и будет готова новая итерация.

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

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

А вот как в работе MIT генерируют профиль канала для разделения течения в соответствии с локализованными в пространстве требованиями. Локализуют и настраивают генерацию пока вручную:

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

Хотя АПМ предлагает революционный подход к процессам проектирования, он не обходится без своего ряда проблем:

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

  2. Требование к данным: Для обучения алгоритмов машинного обучения потребуются обширные наборы данных, охватывающие широкий диапазон сценариев. Сбор и поддержание актуальности этих наборов данных представляют собой значительные трудности.

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

  4. Допущения в симуляциях: Хотя симуляции часто полагаются на ряд допущений для упрощения сложных сценариев, Адаптивный Потоковый Метод в своем идеальном виде должен учесть как можно больше деталей. Этот контраст может привести к сложной задаче преодоления разрыва между упрощенными моделями симуляции и детальными реальными сценариями.

  5. Непредсказуемость: Как и в любом процессе, управляемом ИИ и симуляциями, может быть непредсказуемость и недостаток прозрачности. Система может выдавать неожиданные результаты или сталкиваться с непредвиденными проблемами, что требует тщательных протоколов валидации и тестирования.

При сравнении АПМ с системами моделирования, такими как Simulink, можно наблюдать несколько отчетливых различий и потенциальных преимуществ. Simulink и подобные системы моделирования обычно работают в одномерном пространстве - пространстве времени. Эти системы используются для моделирования динамических систем и их поведения во времени, при этом их выходные данные обычно являются функцией времени.

АПМ сочетает в себе трёхмерное представление систем в САПР и моделирование на системном уровне (Simulink, OpenModelica и аналогичные среды). В то время как традиционные системы моделирования отлично подходят для отображения изменения динамических систем во времени, они могут не быть изначально разработаны для поддержания эмерджентности новых свойств конструкции или связей, которые могут возникнуть в трехмерном пространстве.

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

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

  • Сложность: Этот метод реализует высокий уровень сложности. Управление и визуализация взаимодействий между несколькими потоками могут быть весьма сложными.
  • Проверка: Проверка и валидация проектов, созданных такой сложной и динамической системой, могут быть трудными задачами. Существует риск упустить недостатки из-за внутренней сложности системы.

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

Фильтрация и оценка

Теперь, когда мы рассмотрели различные методы генерации моделей, пришло время сосредоточиться на создании набора таких моделей, которые удовлетворяют нашим требованиям. Мы в основном будем сосредоточены на полностью автоматических методах генерации моделей. Гибридный подход, при котором ИИ помогает в операциях в САПР, требует изменение структуры рабочего процесса. В таком виде это будет тесно напоминать существующие методы в системном инжиниринге/MBSE, в основном из-за участия пользователя в принятии ключевых решений.

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

Пример набора сгенерированных дизайнов колёсных дисков после фильтрации - легко различить один вариант от другого:

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

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

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

И останется ‘‘всего лишь’’ выбрать лучший вариант:

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