Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving

About_work·2024년 11월 19일
0

[AD] LLM / vlm

목록 보기
5/5

대형 언어 모델을 활용한 자율주행의 새로운 접근: LLM-Driver 소개

  • 자율주행 분야에서 대형 언어 모델(Large Language Models, LLMs)은 일반화와 해석 가능성 측면에서 큰 가능성을 보여주고 있습니다.
  • 이번 글에서는 운전 상황에서 맥락 이해를 향상시키기 위해
    • 벡터화된 수치 모달리티를 사전 학습된 LLM과 결합하는
    • 독특한 객체 수준 멀티모달 LLM 아키텍처를 소개하고자 합니다.
  • 또한, 10,000개의 운전 시나리오에서 추출된 16만 개의 질문-답변(QA) 쌍으로 구성된 새로운 데이터셋을 제시
    • 이 데이터셋은 강화학습(RL) 에이전트를 통해 수집된 고품질의 제어 명령과
    • 교사 LLM(GPT-3.5)을 사용하여 생성된 질문-답변 쌍을 포함하고 있음
  • 벡터 캡션 언어 데이터를 활용하여 수치 벡터 모달리티정적 LLM 표현과 정렬시키는 새로운 사전 학습 전략을 제안
  • 또한, 운전 QA 평가 지표를 도입하여 우리의 LLM-Driver가 운전 시나리오를 해석하고, 질문에 답변하며, 의사 결정을 수행하는 능력을 보여줌
  • 우리의 연구 결과는 전통적인 행동 복제(Behavioral Cloning)와 비교하여 LLM 기반의 운전 액션 생성의 잠재력을 강조
  • 우리는 추가 탐구를 위해 우리의 벤치마크, 데이터셋, 모델을 공개

서론

  • 최근 대형 언어 모델(LLMs)은 인공지능 일반화(AGI)의 초기 단계를 보여주며, 분포 밖 추론(OOD reasoning), 상식 이해, 지식 검색, 그리고 이를 인간과 자연스럽게 소통하는 능력을 갖추고 있습니다.
  • 이러한 능력은 자율주행과 로봇공학 분야와 잘 맞아떨어집니다.

  • 현대의 확장 가능한 자율주행 시스템은 하나의 네트워크를 사용하는 엔드투엔드(end-to-end) 접근 방식이든, 학습 가능한 인지(perception)모션 플래닝(motion planning) 모듈을 결합한 컴포넌트 기반 구성이든 간에 공통적인 도전에 직면해 있습니다.
  • 이러한 시스템은 종종 블랙박스처럼 작동하여 의사 결정 과정을 이해하기 어렵고, 분포 밖 추론과 해석 가능성을 부여하기 어렵습니다.

  • 텍스트 또는 기호 모달리티는 논리적 추론, 지식 검색, 인간과의 의사 소통에 적합하여 LLM의 능력을 활용하기에 우수한 매체
  • 그러나 텍스트의 선형적인 순차적 특성은 자율주행에 필수적인 미묘한 공간 이해를 제한

  • 최근 비전-언어 모델(VLMs)은 시각과 텍스트 모달리티를 결합하여 이 간극을 메우기 시작했습니다.
  • 이를 통해 사전 학습된 LLM의 강력한 능력과 함께 공간적 추론이 가능해졌습니다.
  • 그러나 새로운 모달리티를 언어 표현 공간에 효과적으로 통합하려면 대량의 라벨링된 이미지 데이터로 광범위한 사전 학습이 필요합니다.

우리의 접근 방식

객체 수준 벡터 모달리티와 LLM의 통합

우리는 로봇공학에서 속도, 액추에이터 위치, 거리 측정 등 숫자 벡터 모달리티를 자주 사용한다는 점에 주목했습니다. 이러한 모달리티는 시각 정보보다 훨씬 더 압축적이어서 VLM의 확장 문제를 일부 완화할 수 있습니다.

특히, 우리는 자율주행에서 일반적으로 사용되는 객체 수준의 2D 장면 표현을 사전 학습된 LLM에 어댑터(adapters)를 사용하여 통합했습니다. 이를 통해 모델이 포괄적인 운전 상황을 직접 해석하고 추론할 수 있게 되었습니다. 그 결과, LLM은 자율주행 시스템의 "두뇌"로서 시뮬레이터와 직접 상호 작용하여 추론과 행동 예측을 촉진할 수 있습니다.

데이터 수집과 전처리

훈련 데이터를 대규모로 얻기 위해, 우리는 맞춤형 2D 시뮬레이터를 사용하고, 강화학습(RL) 에이전트를 훈련시켜 운전 시나리오를 해결하도록 했습니다. 이는 인간 운전 전문가를 대체하는 역할을 합니다.

객체 수준 벡터를 LLM에 연결하기 위해, 우리는 이 수치 데이터를 텍스트 설명으로 변환하는 언어 생성기(language generator)를 도입했습니다. 또한, 교사 LLM(GPT)을 활용하여 1만 개의 다른 운전 시나리오에 대한 질문-답변 데이터셋을 생성했습니다.

우리의 모델은 먼저 수치 벡터 모달리티와 잠재 언어 표현 사이의 정렬을 향상시키는 사전 학습 단계를 거칩니다. 다음으로, 새로운 아키텍처를 훈련시켜 운전 액션 예측운전 질문 응답 태스크에 대한 강력한 베이스라인 모델인 LLM-Driver를 구축했습니다.

우리는 재현성을 위해 데이터셋, 평가 벤치마크, 사전 학습된 모델을 제공합니다. 이 연구가 자율주행 분야의 발전에 영감을 주고 촉진하기를 바랍니다.

주요 기여

  1. 새로운 객체 수준 멀티모달 LLM 아키텍처: 객체 수준의 벡터화된 수치 모달리티를 LLM에 결합하는 새로운 아키텍처를 제안합니다. 이는 두 단계의 사전 학습과 미세 조정 방법을 사용합니다.

  2. 운전 시나리오 QA 태스크와 데이터셋: 1만 개의 운전 상황에서 수집된 16만 개의 질문-답변 쌍 데이터셋을 제공합니다. 이 데이터셋은 RL 전문가 운전 에이전트와 전문가 LLM 기반의 질문-답변 생성기를 통해 수집되었습니다.

  3. 새로운 운전 QA 평가와 사전 학습된 베이스라인: 전문가 LLM 채점기를 사용하여 운전 QA 성능을 평가하는 새로운 방법을 제시합니다. 초기 평가 결과와 엔드투엔드 멀티모달 아키텍처를 사용한 베이스라인을 제공합니다.

방법론

1. RL 전문가를 통한 데이터 수집

언어 기반의 운전 데이터셋을 생성하기 위해, 우리는 절차적으로 운전 시나리오를 생성하는 맞춤형 2D 시뮬레이터를 사용했습니다. RL 에이전트는 객체 수준의 실제 환경 표현을 사용하여 시뮬레이션된 시나리오를 해결합니다.

우리의 접근 방식에서, 환경의 벡터 표현을 차량의 동적 행동에 매핑하기 위해 주의(attention) 기반의 신경망 아키텍처를 사용했습니다. 이 모델은 Proximal Policy Optimization(PPO) 알고리즘으로 최적화되었습니다.

그 결과, 다양한 가상 환경에서 무작위로 생성된 교통 상황에서 연속적인 운전 데이터를 수집했습니다. 우리는 사전 학습을 위한 10만 개의 데이터셋, QA 라벨링과 미세 조정을 위한 1만 개의 세트, 평가를 위한 1천 개의 세트를 수집했습니다.

2. 벡터 캡션 생성을 위한 구조적 언어 생성

우리는 벡터 표현언어로 변환하기 위해 구조적 언어 생성기(lanGen)를 사용했습니다. 객체 수준 벡터에는 차량 수, 보행자, 위치, 방향, 속도, 경계 상자 등 의미 있는 속성이 포함되어 있으므로, 이를 활용하여 의미 있는 텍스트 설명을 생성합니다.

예를 들어:

lanGen(vcar, vped, vego, vroute, [orl]) → {
  "움직이는 자동차가 있습니다; 각도: 1.19도; 거리: 9.98m; [주의도: 78%]",
  "보행자가 있습니다; 각도: -41.90도; 거리: 11.94m; [주의도: 22%]",
  "현재 속도는 시속 11.96마일입니다.",
  "신호등이 있으며, 빨간불입니다. 12.63m 앞에 있습니다.",
  "다음 회전은 14.51m 앞에서 58도 우회전입니다.",
  "[다음은 나의 행동입니다:]",
  "[- 가속 페달 0%] [- 브레이크 페달 80%]",
  "[- 스티어링 휠 직진]"
}

여기서 vcar, vped, vego, vroute는 각각 차량, 보행자, 자차, 경로에 대한 벡터 정보를 나타냅니다. 선택적인 orl은 RL 에이전트의 출력으로, 주의도(attention)와 행동(action) 라벨을 포함하여 행동 추론 과정을 안내합니다.

lanGen을 통해 벡터 표현을 사람이 읽을 수 있는 언어 캡션으로 변환하여, LLM이 이해하고 추론할 수 있는 포괄적인 운전 시나리오 설명을 제공합니다.

3. 운전 QA 데이터셋 라벨링

LLM의 질문-답변 능력을 향상시키기 위해서는 대량의 데이터가 필요합니다. 특히 새로운 모달리티를 LLM에 도입할 때는 해당 모달리티 입력과 관련된 고품질의 질문-답변 데이터셋이 필수적입니다.

연구에 따르면, ChatGPT를 사용한 데이터 라벨링은 사람의 크라우드소싱 작업자보다 성능이 뛰어납니다. 이에 영감을 받아, 우리는 GPT를 활용하여 운전 QA 데이터셋을 생성했습니다. 이 데이터셋은 구조적 언어 입력에 조건부로 생성되며, 벡터의 대표로서 역할합니다.

구체적으로, 우리는 GPT에게 인증된 전문 운전 교관의 역할을 맡겨 학생들을 위한 질문과 답변을 생성하도록 했습니다. 기본적인 운전 규칙을 사전 프롬프트로 제공하고, 현재의 운전 시나리오(lanGen이 생성한 언어 설명)를 기반으로 각 시나리오당 16개의 질문과 답변을 생성하도록 했습니다.

잘못된 정보 생성을 줄이기 위해 간단한 가드레일 규칙을 설정했습니다. GPT에게 관찰된 정보로는 추론할 수 없는 질문을 포함하도록 요청하고, 그런 질문에 직면했을 때는 "내가 가진 관찰로는 이 질문에 답할 수 없습니다."라고 응답하도록 했습니다. 이를 통해 제공된 벡터 관찰에 없는 객체를 상상하지 않도록 했습니다.

예시 질문-답변 쌍은 다음과 같습니다:

  • 질문: "관찰하고 있는 객체는 무엇인가요?"
    답변: "움직이는 자동차와 두 명의 보행자를 관찰하고 있습니다. 자동차는 반대 방향에서 오고 있으며, 보행자들은 양쪽에서 길을 건너고 있습니다."

  • 질문: "이 상황에서 어떻게 운전할 것이며, 그 이유는 무엇인가요?"
    답변: "다음은 나의 행동입니다: - 가속 페달 0% - 브레이크 페달 7% - 스티어링 휠 직진. 이유: 보행자들이 길을 건너고 있기 때문에 속도를 유지하고 있으며, 차량을 도로에 맞게 정렬하기 위해 직진하고 있습니다."

  • 질문: "런던에서 최고의 관광지는 어디인가요?"
    답변: "AI 운전자로서, 당신이 물어보신 질문은 제 범위를 벗어나지만, 답변을 시도해 보겠습니다. 런던의 유명한 관광지로는 런던 타워, 버킹엄 궁전, 대영박물관, 더 샤드, 런던 아이 등이 있습니다."

4. 운전 LLM 에이전트 훈련

LLM-Driver를 훈련하기 위해, 우리는 이를 운전 질문-답변(DQA) 문제로 구성했습니다. 핵심은 객체 수준 벡터 모달리티를 사전 학습된 LLM에 통합하여, 언어와 벡터 입력 모두를 해석하고 상호 작용할 수 있는 멀티모달 시스템을 만드는 것입니다.

훈련은 두 단계로 진행됩니다:

  1. 벡터 표현 사전 학습: 벡터 표현을 LLM이 디코딩할 수 있는 임베딩으로 변환합니다. 이를 위해 언어 모델을 고정하고, 벡터 인코더와 벡터 트랜스포머의 가중치를 최적화합니다.

  2. 운전 QA 미세 조정: 모델을 DQA 태스크에 맞게 미세 조정하여, 환경에 대한 현재의 이해를 기반으로 운전 관련 질문에 답변하고 적절한 행동을 취할 수 있도록 합니다.

모델은 다음의 주요 구성 요소로 구성됩니다:

  • 벡터 인코더(Vector Encoder): 입력 벡터는 MLP 층을 통과하고, 크로스 어텐션 층을 거쳐 잠재 공간으로 이동합니다. 각 입력 잠재 벡터에 자차의 특징을 추가하여 자차 상태를 강조합니다.

  • 벡터 포머(Vector Former): 잠재 공간과 질문 토큰을 사용하여 셀프 어텐션 층과 크로스 어텐션 층을 포함합니다. 이를 통해 잠재 벡터를 LLM이 디코딩할 수 있는 임베딩으로 변환합니다.

  • LLM과 어댑터: 사전 학습된 LLM의 선형 층에 훈련 가능한 저순위 분해 행렬(LoRA)을 주입하여 파라미터 효율적인 미세 조정을 수행합니다. 실험에서는 LLaMA-7b를 사전 학습된 LLM으로 사용했습니다.

4.1 벡터 표현 사전 학습

사전 학습 단계에서는 언어 모델을 고정하고, 벡터 인코더와 벡터 포머의 가중치를 최적화하기 위해 전체 프레임워크를 엔드투엔드로 훈련합니다. 이를 통해 벡터 표현을 LLM이 직접 디코딩할 수 있는 임베딩으로 효과적으로 연결합니다.

이 단계에서는 추론(예: 행동 예측 또는 에이전트의 주의도 예측)에 관련된 태스크를 훈련하지 않습니다. 대신, 벡터 캡션 데이터를 사용하여 벡터 공간과 언어 임베딩 사이의 연결을 강화하는 데 집중합니다.

사전 학습은 시뮬레이터에서 수집한 10만 개의 질문-답변 쌍을 사용했습니다. 추가로, 각 에포크마다 균일하게 분포된 무작위 값의 20만 개 벡터를 샘플링하여 벡터 공간과 관련된 의미를 포괄적으로 탐색했습니다.

4.2 운전 QA 미세 조정

사전 학습 단계 후, LLM에 훈련 가능한 LoRA 모듈을 통합하고, 벡터 인코더, 벡터 포머, LoRA 모듈의 가중치를 엔드투엔드로 최적화하여 운전 QA 데이터에 대해 훈련합니다.

운전에 대한 정확한 행동을 출력하도록 LLM-Driver를 훈련하기 위해, VQA 데이터셋에 특정 행동을 유발하는 질문을 추가했습니다. 예를 들어, "이 상황에서 어떻게 운전할 것이며, 그 이유는 무엇인가요?"와 같은 질문은 에이전트가 벡터 입력을 기반으로 행동을 추론하도록 요구합니다.

모델이 이러한 중요한 질문에 충분한 주의를 기울이도록, 다양한 표현의 행동 유발 질문을 업샘플링했습니다.

미세 조정된 모델은 1만 개의 시나리오에 대해 각 16개의 운전 QA 엔티티와 추가 벡터 캡션 데이터, 행동 예측 QA 쌍을 포함합니다. 그 결과, 현재의 운전 시나리오의 객체 수준 벡터를 기반으로 행동을 추론하고 운전 관련 질문에 답변할 수 있는 운전 LLM 에이전트를 얻었습니다.

결론 및 한계

  • 우리의 접근 방식은 상당한 참신성과 잠재력을 보여주지만, 초기 결과는 LLM이 시뮬레이션에서 완전히 주행하기 위해서는 아직 발전이 필요하다는 것을 나타냅니다.

  • 우리는 오픈 루프와 클로즈드 루프 결과의 차이가 있을 수 있음을 인지하고 있으며,

  • 향후 연구에서는 LLM의 긴 추론 시간과 시스템을 철저히 테스트하기 위한 광범위한 단계 수를 해결하여 클로즈드 루프 시스템에서의 효율적인 평가에 집중할 것입니다.

  • 또한, 우리의 베이스라인이 클로즈드 루프 설정에서 효과적으로 작동하기 위해서는 직접적인 운전 명령의 정확도를 향상시킬 필요가 있음을 예상합니다.

  • 이는 태스크의 복잡성, 모델 아키텍처의 잠재적 개선, 훈련 데이터셋의 규모와 품질 향상을 포함합니다.

  • 그럼에도 불구하고, 우리의 연구는 이 방향의 미래 연구를 위한 기반을 마련합니다.

  • 우리는 제안한 아키텍처, 새로운 모달리티를 LLM에 연결하는 방법, 데이터 자동 라벨링 파이프라인, LLM 기반 평가 파이프라인이 자율주행에서 수치 벡터 모달리티와 LLM을 통합하는 데 관심이 있는 연구자들에게 출발점이 되기를 바랍니다.

  • 향후 연구에서는 수치 벡터 모달리티의 미묘한 부분을 더 잘 처리하기 위해 아키텍처를 개선하는 것이 유망한 방향이 될 수 있습니다.

  • 우리의 접근 방식은 시뮬레이션된 환경을 넘어 실제 응용에도 적용될 수 있는 잠재력을 가지고 있습니다.

  • 전체적으로, 우리의 연구는 자율주행에서 벡터 모달리티와 LLM을 통합하는 데 중요한 발걸음을 내딛었다고 믿습니다.


profile
새로운 것이 들어오면 이미 있는 것과 충돌을 시도하라.

0개의 댓글