agent

LLM + VLM + 디퓨전 모델

jinuklee 2024. 8. 11. 21:38

https://arxiv.org/html/2407.20798v1

DIFFUSION AUGMENTED AGENTS: A FRAMEWORK FOR EFFICIENT EXPLORATION AND TRANSFER LEARNING

RL의 실제 환경에서의 data scarcity 문제

기존의 학습된 knowledge에서 transfer, sample 효율성을 향상시키기

LLM이 main controller, 즉 뇌처럼 역할

LLM이 VLM, 디퓨전모델(DM)에 input을 즉 querying , 에이젼트의 high-level 행동을 이끔(guide)

 

LLM을 통해 instruction으로 text description을 얻고 (decompose)

VLM을 통해 observation과 텍스트 묘사를 임베딩으로 얻고 이를 코사인 유사도를 측정해 텍스트 묘사가 이미지와 일치하는지 이 유사도 값 s가 특정 threshold 값을 넘으면 observation(즉 이미지)를 task의 goal observation으로 VLM이 라벨링

즉 threshold를 넘으면 obeservation에서 task가 achieve된것이다

이 vlm을 통해 subgoal이 achieve됬는지 reward detect

디퓨전 파이프라인을 통해 기하학적, temporal 한 일관성을 obeservation에서 얻고

lifelong 에이젼트를 구현하기 위해 new 버퍼, offline lifelong 버퍼를 통해 interaction 경험들을 저장 

 

3.2 FINETUNE, EXTRACT, EXPLORE: THE DIFFUSION AUGMENTED AGENT FRAMEWORK 

VLM을 디퓨전으로 augment한 이미지로 학습하는데

이 의미는 기존 task의 데이터셋의 o(i), 라벨 T(i)가 있다할떄 새로운 T(g)가 목표 task로 있다하면 T(g)와 유사도를 비교해 비슷한 T(i)를 다 extract한 뒤 T(i)의 obeservation(i)를 디퓨전 모델로 LLM을 통해 instruction을 생성해 T(g)에 맞는 observation으로 바꾼다는 것. 이를 통해 이제 학습

 

비유하자면 과거의 경험을 통해 새로운 과제를 수행하는 것

 

 

 

에이젼트는 task를 수행한면서 {obs, act, obs, act}의 에피소드를 수집해 lifelong 버퍼에 저장

 

새로운 task를 수행할때)

subgoal들로 decompose

에이전트는 탐색을 통해 수집한 에피소드나 기존의 경험(lifelong 버퍼에 저장됨)에서 learning signal를 추출할 수 있다. (만약에 관련된 reward가 있을때)

이 보상은 VLM(시각 언어 모델)에서 얻거나 환경에서 얻은 외부 보상중 하나

3. Hindsight Experience Augmentation (HEA)

  • 목표: HEA의 목적은 에이전트가 새로운 작업을 해결하는 데 도움이 될 수 있는 에피소드의 수를 최대화하는 것

위에 모인 에피소드에서 이제 VLM을 통해 어떤 subgoal들이 달성됬나를 라벨링하는데, 달성된 subgoal들은 current task 버퍼에 저장된다. 만약에 매치된게 없다면 LLM에 query해 어떠한 물체든 swapping/visually modifying 해서 매칭될수 있는지 확인한다

  • 예를 들어, "빨간 큐브가 파란 큐브 위에 쌓여 있다"를 "초록 큐브가 파란 큐브 위에 쌓여 있다"로 수정할 수 있다.
  • 수정: swap,modify이 가능한 경우, LLM은 디퓨전모델에 요청해 에피소드의 observation을 수정한다. 수정된 관찰과 원래의 행동을 current task 버퍼(Bn)로 추가한다

-> During each episode, the agent receives an instruction, which is a description of the task to execute in natural language T . The agent can receive a reward r = +1 at the end of the episode if the task is successfully executed.

 

  • HEA를 통해 성공적인 episode의 수를 증가시킬 수 있고, 이를 통해 에이전트가 최대한 많은 데이터를 재사용하고 효율적으로 학습할 수 있다.
  • 이 방법은 특히 여러 작업을 연속적으로 학습할 때 효율성을 크게 개선