- Главная
- Генеративное проектирование
- Text2BIM - это мультиагентный фреймворк на базе LLM, который генерирует 3D-модели зданий по текстовому описанию непосредственно в САПР
Text2BIM - это мультиагентный фреймворк на базе LLM, который генерирует 3D-модели зданий по текстовому описанию непосредственно в САПР
Цель
- Владелец продукта: Уточняет задачу
- Архитектор: Создает детальный план
- Программист: Пишет код для модели
- Рецензент: Проверяет ошибки и предлагает исправления
- Этот компонент не основан на ИИ и использует детерминированные правила (например, проверка на коллизии, корректность пространственной структуры, поддержка крыш стенами) для объективной оценки качества сгенерированной BIM-модели. Его отчеты направляются агенту-рецензенту для исправления ошибок.
- В ходе экспериментов фреймворк показал высокую эффективность. При использовании моделей GPT-4o и Mistral-Large-2 средний процент прохождения проверок качества для итоговых моделей достиг 99.4% и 99.2% соответственно. Это доказывает, что подход позволяет генерировать высококачественные и структурно-рациональные BIM-модели, полностью соответствующие задаче пользователя
Потенциал
Этот этап преобразует абстрактную текстовую инструкцию пользователя в структурированный архитектурный план, готовый для программной реализации.
- 1. Расширение запроса (Product Owner): Этот агент получает исходную инструкцию пользователя (α) и обогащает её, создавая подробное техническое задание.
- На входе: Инструкция пользователя, описание доступных инструментов (T), история диалога (Φ_global).
- Метод: Использует технику Chain of Thought (CoT) для пошагового рассуждения и декомпозиции задачи.
- На выходе: Детализированный документ с требованиями (α_enhanced).
- 2. Генерация архитектурного плана (Architect): Вызывается Владельцем продукта для создания конкретного плана здания.
- Метод: Работает на основе few-shots learning и специального промпт-шаблона (P_Arch), в который заложены базовые архитектурные правила (конфигурация компонентов, внутренние перегородки и т.д.). Вызов агента происходит через механизм function-calling.
- На выходе: Структурированный текстовый план (Building_Plan) с координатами и размерами элементов.
- Процесс описывается формулами: Building_Plan ← F(LLM_Architect(P_Arch(α'))), α_enhanced ← LLM_ProductOwner(P_PO(α, T, Φ_global) | Building_Plan)
Слой преобразует детализированный план в исполняемый Python-код, который создает BIM-модель.
- Programmer (Программист): Ключевой агент, который пишет код, используя заранее определенный набор высокоуровневых функций (Toolset).
- На входе: Расширенные требования (α_enhanced), информация об инструментах (T).
- Метод: Использует zero-shot learning, что позволяет ему гибко комбинировать функции для решения разнообразных задач без жестких примеров.
- На выходе: Python-код (code), готовый к исполнению. code ← LLM_Coder(P_Co(α_enhanced, T, Φ_global))
- Цикл саморефлексии (Self-reflection loop): Встроенный механизм для автоматического исправления синтаксических ошибок.
- Процесс: Если при выполнении кода кастомный интерпретатор обнаруживает ошибку (E), она вместе с проблемным кодом (code_n) отправляется обратно Программисту для исправления.
- Ограничение: Цикл повторяется до 3 раз. code_n+1 ← LLM_Coder(P_Co(E_n, T, code_n))
Финальный этап, где сгенерированная модель проверяется на соответствие правилам и дорабатывается в цикле обратной связи.
- Model Checking: Готовая модель экспортируется в IFC и проверяется внешним rule-based чекером (в исследовании — Solibri) на основе набора детерминированных правил (классы 1-3 по классификации Solihin & Eastman).
- Проверяется: Геометрические коллизии, корректность семантических атрибутов, соответствие архитектурной логике (например, крыша должна опираться на стены).
- На выходе: Отчет об ошибках в формате BCF, содержащий информацию о проблемах (I).
- Reviewer (Рецензент): Этот агент анализирует отчет об ошибках и предлагает решение.
- На входе: Информация об ошибках (I), описание инструментов (T), исходный код (code).
- На выходе: Текстовые предложения по исправлению кода (β). β ← LLM_Reviewer(P_Rev(I, T, code))
- Цикл оптимизации качества (Quality-optimization loop): Программист получает предложения от Рецензента и генерирует исправленный код (code_t+1), который снова проходит через проверку. Этот процесс также ограничен 3 итерациями и является ключевым для достижения высокого качества модели.
Для тестирования был создан кастомный бенчмарк Mini Building Benchmark. Результаты абляционных исследований: Отключение ключевых компонентов показало их критическую важность:
- Результаты сравнения LLM: Фреймворк показал высокую эффективность с разными базовыми моделями.
- GPT-4o: 99.4% средний процент прохождения правил.
- Mistral-Large-2: 99.2% средний процент прохождения правил.
- Gemini-1.5-Pro: 94.05%, показал менее стабильные результаты.
- Эффективность цикла оптимизации:
- GPT-4o и Mistral-Large-2 в роли Рецензента успешно снижали количество ошибок в модели с каждой итерацией.
- Gemini-1.5-Pro иногда пытался полностью переписать код вместо исправления, что приводило к увеличению числа ошибок.
- Анализ ошибок: Качественный анализ показал, что агенты отлично справляются с простыми, детерминированными проблемами, но испытывают трудности со сложными пространственными задачами.
- Успешно решаются: Проблемы класса 1 (например, "в модели не определено пространство" → "создать пространство").
- Сложности возникают: Проблемы класса 3, требующие пространственного понимания (например, "две стены пересекаются" → какую стену и в какую сторону двигать?).
- Ключевые технологические особенности:
- Императивное представление моделей: BIM-модель представляется в виде кода, а не данных, что позволяет гибко комбинировать вызовы функций и использовать алгоритмическую логику.
- Декомпозиция через специализацию: Распределение ролей между агентами позволяет эффективно разделить сложную задачу на подзадачи (архитектура, программирование, верификация).
- Детерминированная верификация: Использование правил и модели-чекера обеспечивает объективную оценку качества, не зависящую от стохастичности LLM.
- Таким образом, Text2BIM — это комплексная система, решающая задачу автоматизации САПР через генерацию кода, полагаясь на совместную работу LLM-агентов и уникальный цикл итеративного улучшения качества модели на основе правил.
Тематика семинара
Сравнительная таблица подходов
|
Критерий
|
BIMgent (Эмуляция пользователя)
|
Text2BIM (Генерация кода)
|
|
Основной принцип работы
|
Эмуляция действий пользователя. Агент "смотрит" на экран и "кликает" по кнопкам, как человек.
|
Генерация исполняемого кода. Агенты пишут Python-скрипт, который напрямую вызывает функции программы.
|
|
Способ взаимодействия с САПР
|
Управление графическим интерфейсом (GUI). Использует мышь, клавиатуру, горячие клавиши.
|
Вызов программного интерфейса (API). Прямые команды к ядру программы без использования GUI.
|
|
Архитектура системы
|
Иерархический агент. Один агент с иерархией планировщиков (High-level и Low-level).
|
Мультиагентная система. Команда из четырех агентов с разными ролями (Product Owner, Architect, Programmer, Reviewer).
|
|
Входные данные
|
Мультимодальные: текст, эскизы, изображения планов.
|
Преимущественно текстовые. Основной фокус на преобразовании текстовых инструкций.
|
|
Механизм исправления ошибок
|
Визуальный контроль. "Супервайзер" анализирует скриншоты после каждого действия и, если результат неверный, инициирует коррекцию. Ошибки — это неправильные действия в интерфейсе.
|
Двойной цикл проверки:
|
|
Источник знаний для действий
|
Документация для пользователя. Агент через RAG изучает, как пользоваться инструментами, читая официальные руководства.
|
Документация API. Агент изучает описание функций (Toolset), чтобы правильно их вызывать в коде.
|
- Универсальность vs. Надежность:
- BIMgent более универсален. Теоретически, его можно научить работать с любой программой, у которой есть графический интерфейс, даже без доступа к API.
- Text2BIM более надежен и быстр в исполнении. API-вызовы точны, детерминированы и не зависят от разрешения экрана или изменений в дизайне кнопок. Однако он жестко привязан к API конкретной программы.
- 2. Технологическая зрелость:
- BIMgent решает проблему совместимости с legacy-системами, но страдает от ошибок GUI.
- Text2BIM требует развитого API, но обеспечивает надежное выполнение. Проверка качества модели здесь гораздо глубже и формализованнее (через IFC и Model Checker).
- Процесс "мышления":
- BIMgent думает как пользователь-оператор: "Чтобы создать стену, мне нужно нажать эту кнопку, потом эту и эту".
- Text2BIM думает как архитектор-программист: "Чтобы создать стену, мне нужно вызвать функцию create_wall с координатами (x1, y1) и (x2, y2)".
- В итоге, BIMgent — это шаг к созданию универсального ИИ-ассистента для любой визуальной программы, а Text2BIM — это более узкоспециализированный, но потенциально более мощный и надежный инструмент для автоматизации проектирования в средах с открытым API.