PyTorchKR
- AI 도입에 뒤쳐져있다는 이유로 이래저래 공격을 받고 있는 애플이 WWDC 2024를 앞두고 새로운 연구 결과를 공개했습니다. 몇 주 전에는 멀티모달 LLM에 대한 연구 결과(MM1)를 공개했었는데요, MM1이 외부를 인식하는 멀티모달 LLM(MLLM)에 대한 것이라면 이번에 공개한 ReALM은 (아마도 스마트폰의) Agent와 사용자 사이의 원활한 대화를 위한 연구로 보입니다.
- 이번 연구에서 해결하고자 하는 '참조 해결(Reference Resolution)'이라는 용어는 사용자의 모호한 지시를 명확히 인식하는 문제를 해결하고자 합니다. 예를 들어, 사용자가 검색 결과가 보이는 상태에서 '저것'이나 '맨 아래에 있는 것', '화면에 표시된 숫자' 등과 같은 모호한 지시어가 무엇을 뜻하는지를 이해하는 것입니다. 마지막으로, 이번 연구와 관련한 코드나 데이터셋, 모델 가중치 등은 공개하지 않았지만, 어떠한 문제를 해결하고자 하는지와 어떤 식의 접근을 했는지를 참고할 수 있을 것 같아 정리 및 공유합니다.
ReALM: 사람처럼 대화하기 위한 '참조 해석'을 언어 모델에 적용한 Apple의 연구, "Reference Resolution As Language Modeling" 소개
연구 개요 및 배경
Apple이 공개한 이번 연구인 ReALM은 이름 그대로 참조 해석(Reference Resolution)을 언어 모델링 문제로 전환함(As Language Modeling)으로써 LLM의 능력을 활용하여 이 과제를 효과적으로 해결할 수 있는 방법을 보여줍니다. 이 방법은 텍스트가 아닌 엔티티들과 관련된 복잡성을 단순화할 뿐만 아니라, 다양한 참조 유형에 걸쳐 성능이 눈에 띄게 향상됨을 보이고 있습니다. 특히, 80M 또는 250M 크기의 모델로는 GPT-4와 유사한 성능을 보이며, 1B 또는 3B 규모의 모델로는 GPT-4를 뛰어넘는 결과를 보여줍니다.
이번 연구를 이해하기 위한 언어 모델링과 참조 해석에 대한 내용들을 간략히 설명하겠습니다:
언어 모델링(LM, Language Modeling): 언어 모델링은 언어 내의 단어 순서의 가능성을 예측하는 과정입니다. 음성 인식, 텍스트 생성, 번역을 포함한 다양한 자연어 처리 작업에 기본이 됩니다. LM은 GPT-4와 같은 LLM이 복잡한 맥락을 이해하고 생성 작업을 주도하면서 크게 발전했습니다.
참조 해석(Reference Resolution): 특정 표현이 문장이나 대화에서 언급된 '참조(reference)'가 정확히 어떠한 대상(엔티티) 또는 개념을 가리키는지를 식별하는 작업입니다. 대화의 맥락과 의미를 이해하기 위해, 특히 여러 엔티티나 차례가 관련된 시나리오에서 중요합니다.
이 논문이 해결하고자 하는 주요 도전 과제는 LLM을 참조 해석에 충분히 활용하지 못하는 것, 특히 대화 외의 엔티티에 대한 참조 해석입니다. 현재 대화형 AI 시스템은 텍스트에서 명시적으로 언급되지 않은 엔티티, 예를 들어 화면에 표시된 요소나 배경(Background)의 내용을 정확하게 해석하는데 어려움을 겪습니다. 이러한 제한은 복잡한 멀티 모달 사용자 상호 작용에서 AI 시스템이 사용자와 원활하게 상호 작용하는 능력을 저해합니다. 따라서 참조 해석 기능을 개선하는 것은 대화형 에이전트의 전반적인 효과와 사용자 경험을 향상시키는데 중요합니다.
참조 해석 (Reference Resolution)
참조 해석은 대화 참여자가 대화 내에서 참조하는 엔티티나 정보를 식별하는 과정입니다. 효율적인 참조 해석은 AI 시스템이 대화를 정확하게 따라가며 사용자와 더 자연스럽게 상호 작용할 수 있게 합니다. 참조 해석은 자연어 처리(NLP) 분야에서는 오랜 기간 연구해온 과제 중 하나로, 규칙 기반(Rule-based), 통계 기반(Statistical), 딥러닝(Deep Learning) 등을 사용한 시도들이 있었습니다:
규칙 기반 방법(Rule-based Methods)
초기의 참조 해석 방법들은 주로 규칙 기반 접근 방식에 의존했습니다. 이러한 방법은 특정 언어의 문법 규칙과 패턴을 바탕으로 참조를 식별하고 해석하려고 시도합니다. 예를 들어, 대명사 '그녀(She)'가 언급된 문장을 분석할 때, 규칙 기반 시스템은 문장 구조와 문법적 성별 규칙을 사용하여 '그녀'가 가리키는 실제 대상을 찾으려고 합니다.
이러한 규칙 기반 방법은 명확하고 구체적인 규칙에 기반하여 일관된 해석을 제공할 수 있는 장점이 있으나, 규칙을 수동으로 정의해야 하며, 다양한 언어 사용 상황과 맥락을 모두 포괄하기 어렵습니다.
통계 기반 방법(Statistical Methods)
통계 기반 접근 방식은 대량의 텍스트 데이터에서 참조와 그 대상 사이의 패턴을 학습하여 참조 해석을 시도합니다. 이 방법은 일반적으로 머신 러닝 알고리즘을 사용하여 공동 참조(co-reference) 관계를 모델링합니다. 예를 들어, 같은 엔티티를 가리키는 다양한 표현(예: "오바마", "그", "대통령") 사이의 관계를 학습하여, 새로운 텍스트에서 이러한 참조를 정확하게 식별하려고 시도합니다.
통계 기반 방법을 활용하면 대규모 데이터셋에서 학습할 수 있어 다양한 언어 사용 상황에 대응할 수 있습니다. 하지만, 학습 데이터의 품질과 양에 크게 의존하며, 때때로 오류를 범할 수 있습니다.
딥러닝 기반 방법(Deep Learning-based Methods)
최근에는 딥러닝 기술이 참조 해석 문제에 접근하는데 사용되고 있습니다. 특히, Transformer 기반 모델들은 자연어 처리의 많은 과제에서 뛰어난 성능을 보여주고 있습니다. 이러한 모델들은 문맥을 더 깊이 이해하고, 참조와 대상 사이의 복잡한 관계를 학습할 수 있는 능력을 가지고 있습니다. 딥 러닝 모델은 대규모 데이터셋에서 자동으로 패턴을 학습하며, 특히, 사전 학습된 언어 모델을 파인튜닝하여 참조 해석 작업에 적용할 수 있습니다.
이러한 딥러닝 기반의 방법은 맥락적 이해와 유연성이 뛰어나며, 복잡한 참조 관계도 해석할 수 있습니다. 하지만, 많은 양의 학습 데이터와 연산 자원을 필요로 하고 있습니다.
ReALM 소개
ReALM 접근 방식은 참조 해석을 언어 모델링 문제로 전환함으로써, 대화 내/외의 참조를 추론하는데 LLM을 활용합니다. 이 방법은 전통적인 언어 모델이 고려하지 않는 기존의 대화 내용들과 외부 엔티티로부터의 문맥 정보를 포함함으로써 참조 해석의 정확성을 크게 향상시킵니다.
이렇게 언어 모델링으로 접근하기 위한 방식은 크게 두 가지 주요 단계로 나눌 수 있습니다. 각각은 1) 비텍스트 엔티티를 텍스트 기반 형식으로 변환하는 인코딩 과정과, 2) 변환된 텍스트를 처리하여 참조를 해석하는 언어 모델링 과정입니다:
텍스트가 아닌 엔티티의 텍스트 기반 변환
화면 기반의 데이터를 어떻게 생성하는지에 대한 예시 그림: (a) 첫번째 단계에서는 화면 내의 정보들을 박스와 함께 '전화번호', '이메일 주소' 등과 같은 특정 엔티티로 분류한 뒤, 해당 데이터에 대한 쿼리를 생성합니다. (b) 이전 단계에서 생성한 쿼리를 박스 표시 없이 화면과 함께 제공하고, 쿼리에서 언급한 엔티티를 식별하고 태그합니다.
ReALM에서는 대화 데이터(Conversational Data)뿐만 아니라, 템플릿 기반으로 생성한 합성 데이터와 화면 스크린샷 등을 사용하여 학습합니다. 이를 통해 사용자의 화면에 표시된 엔티티나 백그라운드에서 실행 중인 프로세스와 같은 비텍스트 엔티티들을 언어 모델이 이해할 수 있는 텍스트 기반 형식으로 변환합니다. 이 과정은 비텍스트 엔티티에 대한 메타데이터나 설명을 추출하고, 이를 자연스러운 언어 설명으로 전환하는 작업을 포함합니다.
예를 들어, 사용자가 음악 앱을 사용 중이라고 가정해 봅시다. 화면에는 다양한 노래의 목록이 표시되어 있습니다. 이 경우, ReALM은 화면에 표시된 각 노래 제목과 아티스트 이름을 텍스트 데이터로 추출하고, "화면에는 'Bohemian Rhapsody' by Queen, 'Imagine' by John Lennon 등의 노래가 표시되어 있습니다."와 같은 설명을 생성할 수 있습니다.
언어 모델링을 통한 참조 해석
비텍스트 엔티티를 텍스트로 변환한 후, ReALM은 이 텍스트와 사용자의 쿼리 또는 명령을 함께 언어 모델에 입력으로 제공합니다. 언어 모델은 제공된 텍스트 데이터를 기반으로 사용자의 쿼리나 명령에서 언급된 참조가 실제로 무엇을 가리키는지 해석하는 작업을 수행합니다.
앞의 예시 상황을 이어서 설명해보면, 사용자가 "이 노래를 재생해 줘"라고 명령하면, ReALM은 앞서 생성된 화면 설명과 사용자의 명령을 결합하여 언어 모델에 입력합니다. 언어 모델은 "이 노래"가 화면에 표시된 노래 중 하나를 가리키는 것으로 해석하고, 가장 가능성이 높은 노래를 선택하여 해당 명령을 수행할 수 있는 가장 적절한 대응 방법을 결정합니다.
구현 및 동작 방식
ReALM 모델의 구현은 효과적인 참조 해석을 위해 필요한 풍부한 문맥 정보를 통합하는 여러 주요 구성 요소를 포함합니다. 이러한 구성 요소에는 비대화형 문맥 인코딩 메커니즘, 새로운 입력에 기반한 문맥 표현의 동적 업데이트 알고리즘, 그리고 대규모 문맥 공간에서 참조를 효율적으로 검색하고 추론하는 기술이 포함됩니다.
논문은 이러한 구성 요소가 다양한 참조 유형을 처리할 수 있는 일관된 시스템으로 통합되는 방법을 자세히 설명합니다. 아키텍처는 추가 문맥 소스의 통합이나 모델의 업데이트 없이도 모듈식으로 설계되어 있습니다.
예를 들어, 사용자가 AI 어시스턴트와 자신의 화면에 표시된 문서에 대해 대화하는 시나리오를 가정해보겠습니다. 사용자가 "위쪽의 차트"를 언급하면, ReALM 모델은 대화의 문맥을 이해하고 화면 콘텐츠에 대한 비대화형 정보에 접근하여, 사용자가 언급한 특정 차트를 정확하게 추론할 수 있습니다. 이 추론은 모델의 언어 모델링 능력, 문맥 인식, 그리고 대화의 흐름에 따른 참조 프레임의 동적 업데이트를 통해 이루어집니다.
성능 평가
다양한 데이터셋에 대한 모델들의 정확도를 평가한 결과는 위 표와 같습니다. 여기서 모델이 모든 관련 엔티티를 정확하게 예측했을 경우 예측이 '정확한 것'으로 간주됩니다. 이 테이블을 통해 ReALM 모델과 다른 모델들의 성능을 비교할 수 있습니다. 데이터셋은 대화형(Conv), 합성(Synth), 화면(Screen), 그리고 별도로 보류된 도메인에 관련된 대화형(Unseen)으로 구분됩니다.
ReALM 논문
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래쪽에 좋아요를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~