일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- embodied ai
- databricks
- backend
- vln
- Hexagonal Architecture
- datahub
- Golang
- airflow
- 디스코드봇
- bricksassistant
- frontend
- Rust
- s3
- video understanding
- crwaling
- bitcoin
- MLFlow
- embodied
- discord
- GPT
- Spark
- 블록체인
- blockchain
- vision-language navigation
- 디스코드
- 챗봇
- ChatGPT
- data discovery
- 디스코드챗봇
- Ai
- Today
- Total
BRICKSTUDY
새해를 여는 Large Action Model 본문
Intro
안녕하세요, 브릭스터디 백승빈입니다.
작년 초에 매우 흥미롭게 본 영상이 있습니다. 바로 Rabbit r1 출시 영상인데요.
이 영상이 많은 관심을 끌었던 것은 LAM(Large Action Model)을 통해 Rabbit R1이 단순히 질문에 자연어로 대답하는 것을 넘어 사용자의 말에 따라 실제로 작업을 수행할 수 있다는 점 때문이었습니다. 특히 " Teaching 모드"를 통해 한 번 보여주기만 하면 이후에는 스스로 작업을 수행이 가능한 기능에서 기존의 Alexa와 Siri등의 서비스와 차별성을 보여주었습니다.
Rabbit r1은 출시 이후 일부 기능적 한계 등으로 평이 좋지 못했지만 해당 기기의 핵심인 LAM은 큰 주목을 받았습니다. 현재 LAM 관련 직무가 생성될 정도로 산업 내에서도 이 기술에 대한 관심은 계속 커지고 있습니다. 그렇다면 LAM이란 정확히 무엇이며, 어떻게 이러한 작업이 가능한 걸까요? 이번 글에서는 LAM이 무엇인지, 어떻게 만들 수 있는지, 또 Rabbit r1은 어떻게 LAM을 구현했는지에 대해 알아보려고 합니다.
목차
- LAM이란 무엇인가?
- LAM은 어떻게 구현할 수 있을까?
- Rabbit r1은 어떻게 사용하는가?
1. LAM이란 무엇인가?
기존의 LLM은 자연어 처리에서 뛰어난 성능을 발휘하지만 물리적 세계와의 직접적인 상호작용이나 실제 행동을 수행하는 데는 한계가 있습니다. LLM의 이러한 한계를 늘리기 위해 LAM이 제시되었습니다. LAM은 LLM에 에이전트를 내장하여 텍스트 생성 능력을 넘어 행동 생성과 동적 상호작용까지 가능하게 합니다.
이 에이전트는 외부 소스로부터 데이터를 수집하고 구조화하여 LLM에 적합한 프롬프트로 변환합니다. 구조화된 데이터는 사용자 입력과 결합되어 실행 가능한 행동을 생성합니다. 실행된 행동의 결과는 피드백으로 다시 모델에 입력되고 이 과정은 사용자가 제시한 최종 목표가 수행될 때까지 반복됩니다. 이 반복 과정에서 각 단계의 상태와 행동은 외부 메모리에 저장되어 더 나은 의사결정을 내릴 수 있도록 돕습니다.
LAM의 주요 특징
1. 사용자 의도 해석
LAM은 사용자의 입력에 내포된 지시의 의도를 명확히 파악하는 능력을 갖춰야 합니다. 사용자의 목표를 달성하기 위해 입력을 실행 가능한 계획과 단계로 변환하고 이를 실행하는 과정에서 환경과 반복해서 상호작용을 해야하기 때문에 multi-round 대화 능력이 필요합니다.
2. 행동 생성(Action Generation)
LAM의 핵심은 환경에 기반한 행동 생성 능력이라고 할 수 있습니다. LAM은 GUI 요소 조작, API 호출, 로봇을 통한 물리적 조작, 다른 AI 에이전트나 모델 호출, 코드 생성 등의 다양한 형태의 액션을 생성할 수 있습니다. LAM은 사용 가능한 행동, 현재 환경 상태 등의 정보를 종합하여 계획을 위한 적절한 행동을 선택하고 적용할 수 있습니다.
3. 동적 계획(Dynamic Planning) 및 적응
LAM은 작업을 실행하면서 미래의 요구사항과 잠재적 장애물을 예측하고 상황 변화에 맞춰 계획과 행동을 수정하는 능력을 갖추고 있습니다. 에이전트로부터 피드백을 받으면서 환경이 변화하면 새로운 상태를 평가하고 이에 적응합니다.
2. LAM은 어떻게 구현할 수 있을까?
LAM을 구현하는 방법은 모델의 목적과 상황에 따라 다를 수 있습니다. 이 포스트에서는 Microsoft가 제시한 Microsoft Office 환경에 대한 LAM을 구현하는 방법을 기반으로 설명하겠습니다.
1. 데이터 수집
LAM을 훈련시키기 위한 데이터 수집 과정은 크게 task-plan 데이터 수집과 task-action 데이터 생성으로 나눌 수 있습니다.
1.1 task-plan 데이터 수집
- WikiHow, Microsoft 365 공식 문서 등 다양한 소스에서 데이터를 크롤링합니다.
- 데이터를 LLM 모델을 사용해 작업-계획 요소를 분리하고 데이터 구조에 맞게 변환합니다.
1.2 task-action 데이터 생성
- 수집한 task-plan 데이터를 trajectory(일련의 state-action)으로 변환합니다.
- LLM을 통해 이 데이터를 응용 프로그램 환경에서 실행 가능한 구체적인 액션 시퀀스로 전환합니다. ex) "문서에서 텍스트 강조 표시하기" 작업 → 텍스트를 선택하고, 강조 도구로 이동하여 강조 적용
- Microsoft Office의 다양한 요소들(도형, 표, 그림 등)을 포함한 템플릿 파일을 통해 실행 환경에 대한 구체적인 정보를 제공합니다.
- 생성된 trajectory을 실제 응용 프로그램 환경에서 실행합니다.
- 액션 실행에 대한 피드백으로서 환경을 스크린 캡처합니다.
- 실행된 trajectory의 정확성은 실행된 일련의 액션과 각 액션을 수행하면서 캡처한 스크린샷, 그리고 환경적 변화를 바탕으로 LLM을 통해 평가됩니다.
- 평가 단계에서 성공한 trajectory는 task-action 데이터로 활용됩니다.
2. LLM 모델 훈련
2.1 작업 계획 사전 학습(Task-Plan Pretraining)
- LLM모델(Mistral)을 바탕으로 task-plan 데이터로 파인 튜닝을 진행합니다.
- 이 과정에서 모델은 주어진 작업을 일련의 계획으로 변환하는 법을 학습합니다.
2.2 전문가 학습(Learning from Experts)
- task-action 데이터에 저장된 trajectory를 모델을 모방 학습 합니다.
- 이전에 향상시킨 계획 능력을 바탕으로 작업 계획을 실제 실행 가능한 액션으로 변환하는 능력을 학습합니다.
2.3 자기 향상 탐색(Self-Boosting Exploration)
- GPT가 해결하지 못했던 ReAct 프롬프팅을 사용하여 해결하도록 유도합니다. 이를 통해 새로운 성공 사례를 생성하고 이 데이터들로 다시 파인 튜닝을 진행합니다.
ReAct(Reasoning and Acting):
추론 → 행동을 반복하며 모델이 추론하고 그에 따른 행동을 생성한 뒤, 다시 행동의 결과를 바탕으로 추론하는 방식
2.4 리워드 모델 학습(Learning from a Reward Model)
- 보상 모델 훈련
- 각 액션에 대한 평가를 하기 위한 보상 모델을 훈련시킵니다.
- 보상 모델은 자기 향상 탐색 단계에서 ReAct 프롬프팅의 성공/실패 결과와 task-action 데이터의 성공/실패 데이터를 통해 훈련됩니다.
- 오프라인 PPO(Proximal Policy Optimization)를 통한 파인 튜닝
- 자기 향상 탐색 수집된 실패 데이터를 활용하여 모델이 잘못된 선택에서 무엇을 배울 수 있는지 집중적으로 학습합니다.
- 보상모델을 활용하여 이전 실패의 결과를 분석하고 어떤 선택이 잘못되었는지를 이해합니다. 더 나은 행동 선택을 위한 정책을 점진적으로 조정하며 모델의 의사 결정 능력을 향상시킵니다.
3. 그라운딩
그라운딩은 에이전트의 계획이 구체적인 작업으로 실행되는 과정을 의미합니다. 본 연구에서는 Windows GUI 에이전트인 UFO를 사용했습니다.
- 에이전트가 UI API를 통해 실행 환경의 버튼, 텍스트 상자 등 사용자가 조작할 수 있는 요소들에 대한 정보를 모은 후 이 정보를 LLM에 전달합니다.
- LLM은 이 정보를 바탕으로 계획을 세우고 사용자가 원하는 작업을 실행하기 위한 단계를 추론합니다.
- LLM이 세운 계획은 애플리케이션의 컨트롤(클릭, 키보드 입력)과 API 호출을 이용해 실행됩니다.
- 이 작업은 액션이 실행될 때마다 피드백을 받고 LLM은 이를 바탕으로 계획을 조정하며 작업을 완성할 때까지 계속 진행됩니다.
3. Rabbit r1은 어떻게 사용하는가?
Rabbit R1은 AI 특화 기기로 Perplexity, Anthropic, OpenAI와 제휴하여 LLM 서비스를 사용할 수 있고 카메라를 활용해 사진을 업로드하지 않고도 실시간으로 질문을 하는 등의 다양한 기능을 제공합니다.
이 기기의 가장 주목할 만한 기능은 LAM을 도입해 음성 명령만으로 여러 작업을 처리할 수 있다는 점입니다. 예를 들어 “도미노 피자에서 베이컨포테이토 피자 시켜줘”라고 요청하면 실제로 어플을 음식을 주문하는 것이 가능합니다.
홈페이지에 따르면 크게 두 단계를 통해 이 과정이 이루어집니다.
- Planning: 특정 웹사이트를 단계별로 사용하는 방법을 예측하는 파트
- High-level functional step-by-step outline를 통해 새로운 페이지를 보더라도 대략적인 계획과 상호작용 가능한 아이템을 맵핑할 수 있습니다.
ex) 도시를 선택한다 → 도시 선택 칸을 선택 - 선택에 따라 새로운 정보가 들어오면 이를 적용해서 에이전트는 웹사이트의 구조에 맞게 계획을 업데이트합니다.
- High-level functional step-by-step outline를 통해 새로운 페이지를 보더라도 대략적인 계획과 상호작용 가능한 아이템을 맵핑할 수 있습니다.
- Grounding: 에이전트의 계획이 구체적인 작업으로 실행되는 파트
- “검색 창을 클릭하고 '다이어트 콜라 12팩'을 입력하고 Enter 키를 누르세요”라는 계획이 있을때 Grounding에서는 웹사이트에서 검색창을 찾고 웹드라이버와 상호작용을 합니다.
- 에이전트는 스크린샷과 HTML을 통해 환경에 대해 파악할 수 있습니다.
이러한 방법을 통해 r1은 좀 더 새로운 웹사이트를 방문하더라도 안정적으로 작업을 수행할 수 있습니다.
다만 아직 초기 개발단계로서 가장 많이 사용되는 어플에 초점을 맞춰 훈련이 되고있는만큼 어플에 따라 성능이 일정하지 않은 문제가 있다고 합니다.
현재 LAM을 사용할 수 있는 어플은 정해져있고 그 밖의 모델들은 Teaching 모드를 사용해 작업을 등록하여 사용할 수 있습니다. Teaching 모드는 사용자가 직접 작업 예시를 보여주면 그 후부터는 스스로 작업을 진행할 수 있는 기능인데요. 밑의 영상을 통해 사용 예시를 볼 수 있습니다.
https://www.rabbit.tech/teachmode
사용자가 사용 예시를 보여주면 보조 화면으로 실행방법의 각 단계를 저장하는 것을 볼 수 있습니다. 사용자가 만약 고치고 싶은 부분이 있다면 직접 수정하거나 설명을 덧붙여 작업을 수월하게 만드는 것도 가능하다고 합니다.
결론
단순한 질문 응답을 넘어 실제 행동으로 이어지는 LAM에 대한 연구가 활발히 이루어지고 있습니다. Rabbit R1은 아직 아쉬운 부분이 있지만, LAM을 보다 일반적으로 활용하기 위한 좋은 시도라고 생각됩니다. 아직 초기 단계에 있는 연구이므로 앞으로도 주목할 만한 발전이 있을 것으로 기대됩니다.
참고)
[1] Wang, Lu, et al. "Large Action Models: From Inception to Implementation." arXiv preprint arXiv:2412.10047 (2024)
[2] Zhang, Jianguo, et al. "xlam: A family of large action models to empower ai agent systems." arXiv preprint arXiv:2409.03215 (2024)
[3] Kim, Byoungjip. “[Neurips 2023] 거대언어모델 기반 자율 에이전트 (Large Language Model-Based Autonomous Agents)” LG AI Research, www.lgresearch.ai/blog/view?seq=393. Accessed 21 Jan. 2025.
[4] https://www.rabbit.tech/
'AI' 카테고리의 다른 글
Reinforcement learning(강화학습) 기본 (1) | 2024.12.29 |
---|---|
Imitation Learning에 대해서... (0) | 2024.12.08 |
Attention, Transformer를 알아보자 (0) | 2024.11.05 |
RNN, Sequence-to-Sequence model (0) | 2024.11.04 |
인공지능 기초 Optimization (0) | 2024.10.26 |