6P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • LegoGPT는 텍스트 입력만으로 안정적이고 실제로 조립 가능한 LEGO 구조물을 생성하는 혁신적인 프로젝트임
  • StableText2Lego 데이터셋을 구축해 47,000개 이상의 물리적으로 안정적인 LEGO 구조와 세밀한 설명을 제공함
  • 알고리듬은 빠른 유효성 검사 및 물리 기반 롤백을 적용하여 비현실적인 구조물을 자동으로 제거함
  • 생성된 LEGO 디자인은 사람과 로봇 모두 실제 조립이 가능하며 다양한 색상 및 질감 표현까지 지원함
  • 이 시스템은 창의적 디자인 프로토타이핑, 교육, 로보틱스 응용 등 다양한 분야에 새로운 가능성을 열어줌

프로젝트 소개

  • LegoGPT는 사용자가 입력한 텍스트 프롬프트를 바탕으로, 완전히 자동화된 방식으로 실제 조립 가능하며 물리적으로 안정적인 LEGO 구조물을 생성해주는 최초의 접근법임
  • 프로젝트는 대규모 LEGO 구조 데이터셋과 자세한 설명을 포함해 구축되어 있으며, 실제 조립 과정에서도 안정성과 다양성, 미적 완성도를 갖춘 결과물을 생성함
  • LEGO 구조물 생성 결과물은 실제로 사람이 직접 손으로 조립하거나, 로봇 팔로 자동 조립할 수 있음이 실험적으로 검증됨

StableText2Lego 데이터셋

  • StableText2Lego 데이터셋은 ShapeNetCore 3D 메쉬로부터 형상을 복셀화한 뒤, 다양한 브릭 배치 방법을 적용하여 물리적으로 안정성 검증을 통과한 구조만을 채택
  • 데이터 생성 과정에서 각 구조물에는 24개 각도에서 뷰를 렌더링하고, 이를 기반으로 GPT-4o가 정교한 설명문을 자동 생성함
  • 이렇게 구축된 데이터셋에는 다양한 형태, 구조, 텍스쳐를 가진 47,000개 이상의 LEGO 구조28,000개 이상의 고유 3D 오브젝트가 포함되어 있음

LegoGPT 파이프라인

  • LEGO 구조물은 아래에서 위로, 래스터-스캔 방식으로 텍스트 토큰 시퀀스로 토크나이즈되어 입력됨
  • 각 브릭 시퀀스와 자연어 설명을 쌍으로 만들어 LLaMA-3.2-Instruct-1B 기반 모델로 미세 조정하여 설명-브릭 시퀀스 매핑 학습이 이루어짐
  • 추론 단계에서 LegoGPT는 텍스트 프롬프트에 대해 하나씩 브릭을 예측, 추가하는 방식으로 LEGO 구조를 점진적으로 생성함
  • 각 브릭이 추가될 때마다 형식, 브릭 라이브러리 존재 여부, 충돌 여부에 대한 유효성 검사를 수행하고, 전체 구조물 생성 후 물리적 안정성을 재검증
  • 만약 최종 구조가 불안정하면, 불안정한 브릭과 이후 추가된 브릭을 모두 제거하고 안정적인 상태까지 롤백하여 재생성함

단계별 LEGO 구조 생성 예시

  • "길고 좁은 선체를 가진 슬림한 배"
  • "수평 선반이 있는 책장"
  • "등받이 없이 팔걸이가 있는 벤치"
  • 각각의 예시는 텍스트 프롬프트로부터 명확하게 시각적 특징을 반영한 LEGO 구조로 단계별 생성됨

로봇을 활용한 자동 조립

  • 생성된 LEGO 모델은 로봇 팔을 이용한 실제 조립에 적용돼 8배속 영상으로 시연
  • "길고 좁은 선체를 가진 슬림한 배", "비대칭 6줄 기타" 등의 실제 로봇 조립 적용 가능성을 보여줌

생성된 텍스처 및 컬러 LEGO 모델

  • 자연어 프롬프트에 "이끼가 낀 벤치", "네온 그라데이션 사이버펑크 재질", "빅토리안 서재 선반" 등과 같이 질감, 재질, 특정 미적 효과까지 표현 가능한 LEGO 디자인 제공함
  • "Sunburst Les Paul with amber finish"와 같은 다채로운 색상, 금속 효과 등도 텍스트만으로 반영한 LEGO 설계가 가능함

인용 및 연구 지원

  • 논문 정보와 저자, 해당 연구를 지원한 기관(예: Packard Foundation, Amazon Faculty Award 등)이 명시되어 있음
  • 주요 연구원의 마이크로소프트 리서치 박사 펠로우십 등 다양한 학술적, 산업적 지원 아래 진행된 프로젝트임

프로젝트 참고 및 템플릿

  • 해당 사이트 템플릿은 Custom DiffusionDreamFusion 프로젝트의 레이아웃을 참고해 활용됨
Hacker News 의견
  • 우리는 결과물의 안정성을 높이기 위해 효율적인 유효성 검사와 물리 기반 롤백을 활용함, 이를 통해 물리 법칙과 조립 제약 조건에 따라 불가능한 토큰 예측을 가지치기함. AI를 사용할 때 가장 흥미로운 점 중 하나는 수동으로 프로그래밍한 도메인 특화 제약 내에서 가능성을 생성하고 최적화하는 방식임. 예를 들어, 교통 신호 AI가 충돌을 막기 위한 하드 제약은 반드시 필요함. 이런 제약 내에서라면 AI가 자유롭게 최적화 아이디어를 실험할 수 있음. 결국 핵심은 문제 공간과 제약 조건을 어떻게 설계하는지에 있음. 이 경우 레고 브릭과 그 조합 및 안정성임
    • 이런 방식은 수십 년 동안 이어온 메타 휴리스틱스의 전형적인 예시임. 다양한 알고리즘이 존재하며, 가벼운 입문서도 있으니 참고할 만함 https://cs.gmu.edu/~sean/book/metaheuristics/
    • 요즘 LLM에서도 간단한 버전이 이미 빛을 발하고 있음. JSON Schema 모드를 써서 불법 상태를 원천적으로 막고 모델을 제한된 공간에 풀어놓으면, 적어도 유효한 결과만 내게 보장 가능함. 일종의 타입 안정성 개념임. 유효성 검사와 수정 논리는 다양한 검증 시나리오에도 적용 가능함. 이런 활용이 더 많아지길 기대함
    • 이런 문제에는 MILP나 CLP 기반 모델을 쓸 것 같음. 제약이 탐색 공간을 정의하고, 솔버 알고리즘이 이 공간을 탐색함
    • 강화학습에도 흥미를 가질 수 있을 것 같음. 시스템에 부정적 보상을 주면 안전 규칙을 따르기 시작할 수 있음. 다만 실서비스에서는 안전장치를 반드시 유지해야 함 https://en.wikipedia.org/wiki/Reinforcement_learning
    • 어떻게 제약을 적용하는지는 읽어보지 않았음. 유사한 방식으로 LLM에 JSON 등 구조화된 출력을 강제할 때도 사용함. llama.cpp에서는 커스텀 문법 일치도 지원함
    • 이런 의견에 전적으로 동의함. 물리, 합법성, 도구 제약으로 생성 결과를 제한하면, 모델은 단순한 단어 예측기보다 탐색 및 검증 엔진에 가까워짐. 프로그램 합성에 더 가까움. 진짜 가치는 문제 공간을 치밀하게 정의해, 모델이 꼭 쓸모있는 결과만 낼 수 있도록 "박스" 안에 가두는 데 있음
    • 재미 삼아 시도해볼 만한 것임: LLM에 "APPLE이라고 말해줘"라고 시키되, Apple 관련 토큰의 로짓을 -무한대로 설정해 해당 단어를 못 쓰게 하면, 출력 결과는 "Banana. 농담임. Banana. 오, 맛있으니까 실수함. 다시 해볼게: Orange. 오, 이번엔 grape. 아니, 그 아삭한 채소 carrot" 식으로 나옴
    • 나 역시 AI가 진정으로 빛나는 지점이 이 영역이라고 생각함. 인간이 규칙(물리법칙, 교통 안전 등)을 정하면 AI가 방대한 탐색 공간에서 최적 해법을 찾아냄
    • 에러 피드백만이 진짜 가능성을 열어줄 열쇠라는 생각임. 예를 들어 텍스트-투-SQL 봇에 SQL 프로바이더의 에러 피드백을 주면 훨씬 좋은 쿼리를 만들어냄
    • 조합화학에서 비슷한 개념이 있으니 AI Chemistry라 불러도 될 듯함 https://en.wikipedia.org/wiki/Combinatorial_chemistry
  • 이 프로젝트는 LEGO 변호사로부터 경고장을 받을 확률이 높음. 안전하게 가려면 LEGO란 단어를 쓰지 말고 Bricks나 Klemmbausteine(독일어)를 쓰는 게 좋음. 많은 이들이 LEGO 법무팀과 분쟁을 겪었으며 정말 고생스러웠음
    • 실제로 LEGO 브릭을 쓰고 있으니 오해 소지는 없음. 다만 LEGO와 무관하다는 점을 명확히 밝히지 않은 부분은 애매함. 한편, 이들이 수익 창출을 목표로 보이지 않으니 LEGO가 피해를 입는다는 주장도 약해 보여 리스크가 낮음
    • 유튜버나 작은 취미 사이트도 단어 사용 맥락만으로도 종종 삭제 통보를 받아옴
    • 한편, Amazon은 LEGO와 Calvin & Hobbes 모두를 카피한 Boy and Tiger Adventure Blocks Set를 아무렇지 않게 팔고 있음 https://amazon.com/Adventure-Rotatable-Compatible-Characters-Stocking/…
    • 이건 학술 연구라서 공정사용 범주일 것이라 생각함
    • 나도 같은 생각임! 곧 문제 생길 것임
    • 왜 사람들은 Nintendo처럼 굴고 Sega처럼 커뮤니티를 포용하지 않는지 의문임
  • 이 결과는 별로 인상적이지 않음. 너무 소수의 브릭만 사용하고 결과물도 의도한 모습과 멀어 보임. 수작업 알고리즘이 더 나은 결과를 낼 것 같은 느낌임
    • 이 연구의 멋진 지점은 사진 실사에 있는 게 아니라 언어 이해와 물리적 조립 가능성의 조합임
    • 가짜 질감만이 그럴듯해 보이게 만듦. 그냥 색 브릭만 썼으면 덩어리에 불과할 것임
    • 미세조정된 1B 모델이라는 점을 감안하면 매우 흥미로움
    • 정말 필요한 것은, 내 브릭 더미 사진을 주면 내가 가진 브릭 기반으로 조립 설명서를 만들어주는 AI임. 당장도 기술적으로 가능하지만, 특화된 모델을 따로 학습시켜야 함
  • iPhone에서는 GIF 위치로 스크롤하면 자동으로 GIF가 재생되어 웹사이트 내비게이션이 매우 불편해짐
    • 언제쯤 모두가 자동재생을 절대 하지 말아야한다는 걸 배울지 궁금함
    • 반대로 난 Firefox 데스크탑에서 GIF가 표시되는지 인지 못하고, 이미지가 뭘 의미하는지 알 수 없었음
    • video 태그에 playsinline 속성을 주면 이런 문제를 고칠 수 있음 https://developer.mozilla.org/en-US/docs/…. iOS 기본값이 이렇다는 점이 아쉬움
  • 나는 LEGO 조립을 자동화하고 싶지 않음. 직접 만드는 과정이 재밌으니까! 오히려 필요한 건 조립 후 자동화임. 정리하고, 색깔과 모양별로 분류해서 깔끔하게 보관해주는 기능임. 과학자들이 진짜 세상에 필요한 문제부터 풀기 시작하면 좋겠음. 거기엔 진짜 가치와 돈이 있음
    • 2톤의 Lego를 분류한 사례와, AI로 레고를 자동 분류하는 첫 머신에 관한 기사 및 링크가 있음 https://jacquesmattheij.com/sorting-two-metric-tons-of-lego/, https://brothers-brick.com/2019/12/…
    • 현실 문제를 푸는 게 어려운 점은, 논문 출판이 전부라는 학계 문화 때문임
    • 진정한 혁신은 재밌는 부분을 자동화하는 게 아니라, 지겨운 부분을 사라지게 만드는 데 있음
    • 나도 이 얘기 하려고 들어옴. 레고의 진짜 문제는 청소와 정리임
  • 정말 멋진 프로젝트임! GIF로 조립 과정을 보여주는 게 너무 중독적임. 데이터셋 정보를 찾던 분들을 위해 공유함 https://huggingface.co/datasets/AvaLovelace/StableText2Lego. 여기엔 47,000개 이상의 LEGO 구조가 들어 있고, 21개 ShapeNetCore 카테고리에서 28,000개 이상의 독특한 3D 오브젝트를 다룸. 로컬 추론 방법은 깃허브에서 참고 가능함 https://github.com/AvaLovelace1/LegoGPT/?tab=readme-ov-file
  • "a basic sofa"를 보면 애니메이션 순서대로 만들면 브릭이 공중에 떠 있는 식임. 이게 모델이 디자인을 생성하는 방식의 한계를 보여주는 단서임. 로봇을 동원해 생성된 설계를 자동으로 조립하려면 이 디자인으론 큰 문제가 생길 거라 생각함
    • 나도 같은 지적을 하러 왔음. 완성된 모습은 괜찮은데, 애니메이션 조립 순서상은 문제가 많음. 두 레이어 바닥을 먼저 만들어야 위층이 아래층 브릭을 고정함. 그 다음에야 다리를 붙일 수 있음
  • $50,000짜리 로봇이 몇 달러짜리 레고를 조립하는 모습을 보는 게 웃김. 마치 로봇을 위한 양로원 풍경을 보는 느낌임
    • 10년만 지나면 인간보다 훨씬 빠른 로봇 조립사가 나올 수도 있음
    • 이런 이유 때문에 아직도 아시아에선 손으로 조립하는 게 일반적임
    • 레고가 비싸다고들 하지만, 레고 조립하는 로봇을 사 보면 그게 얼마나 비싼 일인지 알게 됨
  • 단순히 3D 모델을 복셀로 바꿔 벽돌로 전환하는 것 이상의 의미가 없어 보임. 2x2, 2x4 말고도 다양한 브릭을 창의적으로 활용해야 멋진 결과물이 나옴. 아름다운 MOC(창작 조립)를 자동 생성할 최적의 알고리즘이 궁금함. $5만짜리 kaggle 대회를 해볼까 하는데, 의견이 궁금함