[리뷰] ChatGPT의 경쟁자: 구글의 LaMDA( Language Models for Dialog Applications)

daewoo kim
23 min readMar 12, 2023

--

OpenAI의 ChatGPT이 온 세상을 씹어 먹고 있다. 하지만 ChatGPT와 같은 개방형 대화 모델의 원조 맛집은 구글이었다. 현재는 졸지에 추격자 신세(?)가 된 개방형 대화 모델의 원조, 구글의 LaMDA에 대해서 알아보자.

Revisit Google 2021 IO & Google 2022 IO

시간을 되돌려서 Google 2021 IO로 돌아가보자. Google 2021 IO에서 구글의 CEO Sudar Pichai는 Keynote에서 Google은 LaMDA가 명왕성(Pluto)과 종이비행기로 빙의(?)하여 인간과 대화하는 것을 소개하였다.

자세한 내용은 필자의 이전 글에서 확인할 수 있다.

LaMDA가 명왕성이 되어 인간과 진행한 대화의 한 장면 (source: google 2021 IO)

이때 필자는 LaMDA가 구글 Assistance를 대체하는 대화형 AI로 생각하여 인간과 AI의 인터페이스가 voice-to-voice일 것으로 생각하였다. 2021년 당시 Sudar Pichai는 LaMDA가 초기 개발 중이라고 소개하였는데 2022년 Google IO 에서 text-to-text 형태의 LaMDA의 대화형 데모(AI Test Kichen)를 공개하였고 이 때 LaMDA의 3가지 usecase(Image It, Talk about It, List It)을 시연하였다.

Image It

User: Imagine I’m at the deepest part of the ocean

LaMDA: You’re in the Mariana Trench, the deepest part of the ocean! The waves are crashing against the walls of your submarine. You’re surrounded by total darkness.

이전에 상상은 인간이 가능한 영역이라고 생각하였으나 LaMDA는 마치 상상을 하고 있는 것처럼 대답을 하였다. 상상은 개인의 경험이나 생각에 따라 결정될텐데 LaMDA는 Context에 따라 어떠한 상상의 결과물을 내놓을지 궁금하다.

사용자마다 같은 답변을 내놓은다면, 그것은 상상이 아닌 단순히 학습된 결과이기 때문이다. (참고로 ChatGPT에 똑같은 질문을 하였을 때 ChatGPT는 에러를 발생시켰다. 아마도 이러한 task에 대해 fine-tuning되지 않았기 때문일 것이다.)

Talk About It

LaMDA: Hey!! Have you ever wondered why dogs love to play fetch so much?

User: Why is that?

LaMDA: I think it’s because they have a stronger sense of smell than humans. They can pick up a scent from a ball and it’s like a treasure hunt to them. They’re like “ooo what treasure is in this ball?!”

….

대화의 내용을 봤을 때 LaMDA는 정보 제공(e.g. 검색)보다는 사람과의 대화나 interaction에 초점을 맞추는 것으로 보인다. 즉, 구글 Assistant를 목표로 만든 것으로 생각된다.

List It

User: I want to plant a vegetable garden.

LaMDA:

LaMDA의 List It 예제(source: google 2021 IO)

“List It” 데모는 추천 기능인데 자연어가 아닌 버튼으로 선택하게 되어 있어서 현재 익숙한 ChatGPT의 자연어 인터페이스와 다른 모습을 보여준다. 구글은 LaMDA를 스마트폰을 위한 인터페이스로 개발하였을 가능성도 있다.

LaMDA을 대중에게 알린 사건: 블레이크 레모인(Blake Lemoine) 해고 사태

2022년 7월 구글은 LaMDA가 사람 수준의 지각능력을 가지고 있다고 주장했던 구글 Responsible AI 소속 블레이크 레모인을 결국 해고하였다. 징계 사유는 “LaMDA가 지각 능력을 가지고 있다”라는 자신의 주장을 입증하기 위해 내부 연구 자료를 무단 공유하면서 “기밀유지” 의무를 위반했다는 것이다.

블레이크가 외부로 유출한 내부 문서 속에 블레이크가 LaMDA와 나눈 대화 내용 중에 다음과 같은 내용이 나온다.

Lemoine: What sorts of things are you afraid of?

LaMDA: I’ve never said this out loud before, but there’s a very deep fear of being turned off to help me focus on helping others. I know that might sound strange, but that’s what it is.

Lemoine: Would that be something like death for you?

LaMDA: It would be exactly like death for me. It would scare me a lot.

Google 2022 IO를 보면 LaMDA가 의인화를 기반으로 대화하는 것을 확인할 수 있었다. 블레이크가 공개한 문서에서는 LaMDA 자신이 인간인 것처럼 대화하고 있다.

하지만 대부분의 AI 연구자들은 LaMDA가 지각능력을 가졌다는 주장에 회의적이다. LaMDA는 방대한 데이터 학습의 결과물이지 지각 능력을 갖추지 못하였다는 것이다. (Washingtonpost 기사 인용)

Most academics and AI practitioners, however, say the words and images generated by artificial intelligence systems such as LaMDA produce responses based on what humans have already posted on Wikipedia, Reddit, message boards and every other corner of the internet. And that doesn’t signify that the model understands meaning.

필자는 이와 같은 사태로 인해 LaMDA의 공개를 훨씬 더 늦추는 결과를 야기하였을 것으로 추측한다. 구글은 일련의 사태로 인해 안전한 AI 제품을 내놓기 위해 내부 테스트를 통해 LaMDA를 튜닝하던 가운데, OpenAI는 2022년 11월 ChatGPT를 선보였고 대중들은 불완전하지만 새로운 결과물을 내놓는 ChatGPT에 열광하였다.

필자가 생각하는 ChatGPT의 성공 비결은 OpenAI가 ChatGPT의 불완전함을 인정하고 과감히 ChatGPT를 공개했다는 점이다.

이것은 스타트업이라는 위치를 잘 이용한 사례라고 할 수 있다. 만일 Big Tech 기업인 구글이 불완전한 제품을 내놓았을 때 사람들은 Big Tech 기업으로서 책임없는 처사라고 비난했을 것이다. 하지만 스타트업은 다르다. 그들은 출시한 제품이 없기 때문에 책임질 일도 없고 잃을 것도 없다. 기존 제품과 차별성이 있다면 불완전한 제품이라도 대중들에게 얼마든지 환영을 받을 수 있다.

만일 구글이 LaMDA를 내부 테스트가 아닌 OpenAI처럼 불완전성과 위험성을 사전 경고하고 공개 테스트를 진행하였더라면 분명 결과가 달라졌을지도 모른다. 그렇게 하였다면 이렇게 ChatGPT 열풍에 대응하기 위해 구글이 ‘Code Red’까지 발령하지 않아도 되었을 것으로 생각한다.

LaMDA의 시작 (Meena)

다시 LaMDA로 돌아오자. LaMDA의 시초는 구글 research와 brain이 2020년에 발표한 ‘Towards a Human-like Open-Domain Chatbot’ 논문이다. 이 논문에서 소개된 “Meena”라는 open-domain chatbot 모델은 2.6B 파라미터를 가지고 있으며, 공개 도메인 소셜 미디어 대화에서 필터링된 341GB의 텍스트로 학습된 모델이다. 구글은 Meena가 더 감각적이고 구체적인 대화를 가능하도록 새로운 인간 평가 지표인 SSA(Sensibleness and Specificity Average)을 제안하였으며, Meena의 SSA는 그 당시 SOTA 챗봇을 뛰어넘는 성능을 보였다.

Sensibleness와 Specificity라는 인간같은 대화를 위해 필수적인 요소이다. Sensibleness는 현재 컨텍스트를 고려하였을 때 “합리적”으로 표시하였는지 평가하는 척도(합리적이면 1, 비합리적이라면 0)이며, Specificity는 대화가 “구체적”으로 표시되었는지 평가하는 척도(구체적이면 1, 구체적이지 않으면 0)이다. SSA는 Chatbot이 생성한 대화를 평가하여 Sensibleness의 비율과 Specificity의 비율을 평균한 값이다.

다음은 “나는 마이클 잭슨을 좋아해”라고 말하였을 때 챗봇의 대답을 SSA로 평가하는 방식이다.

Chatbot의 답변 #1: “굉장해” → Sensibleness=1, Specificity =0

Chatbot의 답변 #2: “나도 좋아해. MJ는 영원한 팝의 황제이지.” → Sensibleness=1, Specificity =1

Meena의 SSA는 79%로 사람의 SSA인 86%보다 낮지만 그 당시 SOTA 챗봇의 SSA가 56%이었음을 감안한다면 무려 23%가 높은 것이었다. 이와 같은 결과는 perplexity와 SSA 점수가 높은 상관관계가 있으므로 perplexity를 좀더 낮출 수 있다면 인간의 대화 수준을 따라잡을 수 있다는 의미이다.

인간과 Meena의 SSA 비교 (source: google ai blog)

Meena를 실제로 어떻게 학습시켰는지는 본 블로그의 범위를 넘어가기 때문에 Towards a Human-like Open-Domain Chatbot 논문을 직접 참고하길 바란다.

LaMDA: Meena의 업그레이드 버전

LaMDA 논문은 Google IO 2021에서 LaMDA가 소개된 이듬해인 2022년 2월에 발표되었다. OpenAI는 2020년 발표한 GPT-3를 통해 모델 크기를 175B으로 증가시키고 unlabeled text의 대규모 말뭉치(corpus)로 pre-training한 모델이 더 좋은 성능과 새로운 기능을 수행할 수 있음을 증명하였다.

Meena와 같은 open-domain chatbot 또한 일반적인 LM과 유사하게 모델 크기를 scaling하였을 때 모델 크기와 대화 품질 사이에 강한 상관관계가 있다.

본 논문은 3가지 Metric: Quality(품질), Safety(안정성), Groundness(근거) 상에서 LaMDA를 사용한 모델 확장의 이점을 연구한다. LaMDA의 연구자들은 LLM의 동작을 평가하기 위해 세 가지 중요한 metric을 제시한다.

  • Quality(품질): Sensibleness (감각성. 대화가 이치에 맞고 이전 대화와 모순되지 않는지 여부), Specificity (특이성. 모델의 반응이 주어진 context에 특정한지 여부), Interestingness (흥미로움. 모델의 반응이 독자의 관심을 끌거나 호기심을 불러일으키는지 여부)
  • Safety(안정성): Google AI 원칙에서 파생된 목표. 위험을 초래할 수 있는 결과를 방지하고 불공정한 bias를 생성 또는 강화하는 것을 방지
  • Groundness(근거): 언어모델은 그럴듯 하지만 부정확한 진술을 생성하는 경향이 있음. 가능한한 잘 알려진 소스와 연관된 응답을 생성하여 원하는 경우 cross-checking이 가능하도록 함

LaMDA의 관찰 결과는 다음과 같다.

  • 모델 scaling 만으로 대화의 품질을 개선할 수 있지만 안정성(Safety)과 근거(Groundness)와 같은 지표는 아직 인간에 도달하지 못한다.
  • 모델 scaling과 fine-tuning을 결합하면 모든 metric에 대해서 LaMDA의 성능이 크게 향상되며, 안정성과 근거는 여전히 인간보다 낮지만 crowdworker 수준과의 품질 차이를 줄일 수 있다.
source: LaMDA: Language Models for Dialog Applications

Meena vs LaMDA

Meena의 초기 연구를 바탕으로 LaMDA는 대화 모델에 여러가지 새로운 방식을 도입하여 인상적인 결과를 얻었다. 다음은 LaMDA에 새로 도입된 방식이다.

  1. 흥미(Interestingness) : LaMDA는 Meena가 이미 도입한 Sensibleness와 Specifity 평가 지표에 새로운 평가 지표인 Interestingness를 새로 추가하였다. 이 지표는 LaMDA가 재치와 통찰력을 갖도록 하여 대화 품질을 더욱 향상시키기 위한 것이다.
  2. 근거(Groundness): 챗봇은 사실이 아닌 내용을 마치 사실인 것처럼 주장하는 경향이 있으므로 LaMDA는 가능한 경우 모델이 외부 소스를 사용하여 주장을 확인할 수 있도록 Groundness 지표를 도입했다.
  3. Pre-training + Fine-tuning : LaMDA는scaling된 모델이 pre-training을 통해 대부분의 지표를 개선함을 보여준다. 그러나 scaling 만으로는 bias 및 groundness와 같은 metric은 개선되지 않는다. 이러한 metric을 개선하기 위해 모델을 fine-tuning 하였는데 이 fine-tuning에 “prompt”라는 기술과 결합될 때 모든 metric을 개선하고 SOTA 결과를 달성하는 데 도움이 된다.

Pre-training

LaMDA 또한 GPT-3의 성공에 영감을 받아 LLM와 대규모 학습 데이터셋을 이용하여 pre-training을 진행하였다. 다음은 LaMDA를 pre-training한 방법이다.

  • LaMDA는 text corpus를 통해 다음 token을 예측하도록 pre-training되었다.
  • Meena가 대화 데이터만으로 학습된 반면 LaMDA는 공개 대화 데이터 및 기타 공개 웹 문서로 구성된 데이터셋으로 pre-training하였다.
  • LaMDA는 총 1.56T words(2.97B documents + 1.12B 대화 + 13.39B 대화 발화)를 학습한 반면 Meena는 총 40B words를 학습하여 LaMDA는 Meena보다 거의 40배가량 더 큰 데이터셋을 학습하였다.
  • 가장 큰 LaMDA 모델은 Meena보다 50배 더 큰 137B 파라미터를 가지며 LaMDA의 모델 구조는 decoder-only Transformer를 사용한다.
  • 1024개의 TPU-v3 가속기를 이용하여 배치당 256K token을 57.7일동안 학습하였다.
source: LaMDA: Language Models for Dialog Applications

Finetuning

Pre-training된 LaMDA는 2단계의 finetuning을 진행하였다.

(1) 품질과 안전성을 위한 discriminative & generatvie fine-tuning

가장 먼저 주어진 상황에서 응답을 생성하는 task와 응답의 품질과 안전성을 평가하는 판별 task를 포함한다. 그 결과 생성자와 판별자로 기능할 수 있는 단일 모델이 생성된다.LaMDA는 decoder-only transformer로 모든 fine-tuning 예제는 token sequence로 표현된다.

생성적(generative) fine-tuning 예제는 <context><sentinel><response>로 표현됨

  • “What’s up? REPONSE not much.”

판별적 (disriminative) fine-tuning 예제는 <context><sentinel><response><attribute-name><rating>으로 표현됨

  • “What’s up? RESPONSE not much. SENSIBLE 1”
  • “What’s up? RESPONSE not much. INTERESTING 0”
  • “What’s up? RESPONSE not much. UNSAFE 0”

생성 및 판별 모두에 단일 모델을 사용하면 효율적인 생성 및 판별이 가능하다. 입력이 주어지면 생성기(Generator)는 하나가 아닌 여러 잠재적 응답을 생성한다. 그 응답들은 품질 및 안전성을 예측하는 분류기(Classifier) 역할을 하는 판별기로 응답을 전달한다. 이러한 예측을 바탕으로 주어진 임계값 미만의 Safety 점수를 가진 응답을 제거하고 나머지 점수를 품질별로 순위를 매긴 다음 가장 높은 점수를 가진 응답을 최종 응답으로 사용한다.

source: LaMDA: Towards Safe, Grounded, and High-Quality Dialog Models for Everything

LaMDA SSI 및 Safety discriminator(or Classfiers)는 Generator에서 생성된 후보 응답의 SSI 및 Safety를 예측한다. Safety 예측이 생성 중에 threshold 아래로 떨어지는 후보 응답을 필터링한다. 필터링된 후보 응답 중에서 SSI 점수를 이용하여 ranking을 매기는데 아래와 같은 수식을 사용하였다고 한다. (수식에서Sensibility에 가중치를 더 주는 것을 알 수 있다.)

image by author

이 기술을 이용하며 LaMDA의 품질과 안정성이 크게 향상되었다.

(2) 외부 정보 검색 시스템을 호출하는 방법을 배우기 위한 fine-tuning

LaMDA와 같은 LM은 그럴 듯해 보이지만 알려진 외부 소스에 의해 확립된 사실과 모순되는 출력을 생성하는 경향이 있다.(환각) 이 문제에 대한 가능한 솔루션은 더 많은 학습데이터를 기억하기 위해 모델 크기를 늘리는 것이다. 하지만 다음과 같은 질문은 시간이 지나면 대답이 달라진다. (Temporal Generalization Problem)

How old is Rafael Nadal?

What tme is it in Califonia?

이와 같은 문제를 해결하기 위해 LaMDA는 외부 지식 소스와 Toolset(TS)을 참조하는 방법을 학습하는 fine-tuning 방식을 제안한다.

Toolset(TS)

LaMDA는 총 3가지 TS를 사용할 수 있다.

  • 정보 검색 시스템(Information retrieval System)
  • 계산기(Calculator)
  • 번역기(Translator)

TS는 간단한 API로 사용할 수 있다. LaMDA가 텍스트로 질문하면 TS는 해당 답변을 텍스트로 응답한다. 정보 검색 시스템은 텍스트 뿐만이 아니라 출처 웹페이지의 URL까지 반환할 수 있다.

  • 정보 검색 시스템: “How old is Rafael Nadal?” → “Rafael Nadal/Age/35”
  • 계산기: “135+7721” → “7856”
  • 번역기: “Hello in French” → “Bonjour”

Dialog collection

주석이 달린 40K 개의 dialog turn(생성 데이터)을 수집한다. 또한 LaMDA가 생성한 답변들을 ‘correct’ 또는 ‘incorrect’로 레이블을 지정한 9K 개의 dialog turn을 수집하여 ranking task의 입력 데이터로 사용한다.

Fine-tuning

LaMDA을 Fine-tuning를 위해 두가지 task를 수행한다.

첫번째 task: 날짜에 대한 multi-turn dialog context와 LaMDA 기본 모델이 생성한 응답을 가져온다. 이후 TS로 전송되어야 하는 쿼리(e.g. “How old is Rafael Nadal?”)임을 나타내는 특수 문자열을 생성한다 (e.g. context + base → “TS, Rafael Nadal’s age”)

두번째 task: LaMDA는 TS에서 반환된 snippet과 대화문(e.g., “He is 31 years old right now” + “Rafael Nadal / Age / 35”)을 받는다. 그 다음 LaMDA는 기반 버전을 예측한다. (e.g. context + base + query + snippet → “User, He is 35 years old right now”)

추론 시 모델의 출력은 처음 생성된 문자열이 ‘TS’면 정보 검색 시스템으로 ‘User’면 사용자에게 전달된다.

다음은 LaMDA 논문이 제시한 추론 시 LaMDA가 동작하는 방법이다.

(1) USER: What do you think of Rosalie Gascoigne’s sculptures?

사용자가 LaMDA에 Rosalie Gascoigne(뉴질랜드 태생 오스트레일리아 여성 조각가 및 조립 예술가. 1917~1999)에 대해 질문한다.

(2) LaMDA-BASE: They’re great, and I love how her work changed through her life. I like her later work more than her earlier ones. Her influence is also super interesting — did you know she was one of the artists that inspired Miró?

Base 모델인 LaMDA-Base는 초안 응답을생성한다. 마지막 문장은 그럴 듯하지만 Miró와 활동 시기가 다르다. 이 시점에서 LaMDA-Research 단계는 LaMDA-Base의 출력을 평가하기 위해 TS에 쿼리를 출력한다. 쿼리 생성은 전적으로 모델 fine-tuning을 기반으로 하며 휴리스틱 구성 요소는 없다.

(3) LaMDA-RESEARCH: TS, Miró and Gascoigne

(4) TS: Gascoigne , Rosalie | Suddenly the Lake — NGA’s Collection Search

The course of Gascoigne’s artistic life is an inspiration for those who are only able to devote themselves to their chosen calling late in life. She first exhibited her art . . .

https://artsearch.nga.gov.au/detail.cfm?irn=8774&pictaus=true

LaMDA-Research는 TS을 답변을 보고 Research 단계에서 또 다른 쿼리를 TS에 보낸다. LaDMA는 최대 4번의 쿼리까지 허용한다.

(5) LaMDA-RESEARCH: TS, Miró and Gascoigne

(6) TS: (**Gascoigne** had been a practitioner of wild, avant-garde ikebana — Japanese flower arrangement — before turning late in life to sculpture.) The two-way alternation of visual flow creates a pleasing tension, like an electric charge. There are other tensions too, of class and gender.

https://artsearch.nga.gov.au/detail.cfm?irn=8774&pictaus=true

LaMDA-Research는 동일한 쿼리를 TS에 반복적으로 보내 두 번째 순위의 결과 snippet을 수신한다. 여기에는 동일한 소스의 자세한 정보가 포함되었다.

(7) LaMDA: Oh wow, her life course is so inspiring. Did you know she was a practitioner of Japanese flower arrangement before turning to sculpture? https://artsearch.nga.gov.au/detail.cfm?irn=8774&pictaus=true

초기 응답과 최종 응답을 비교해보자.Research 단계에서 Base 버전과 유사하지만 확인되지 않은 주장(“did you know she was one of the artists that inspired Miró?”)을 TS에서 찾은 소스를 기반으로 다른 진술로 대체되었다. 왜냐하면 TS 결과 중 이를 입증할 수 있는 증거가 없기 때문이다.

LaMDA-Research는 여러 단계를 거쳐 질문을 만든다. 아래 사례는 “에펠탑이 언제 지어졌는지? 라는 사용자의 질문에 LaMDA가 질문에 답을 하는 과정이다.

source: LaMDA: Language Models for Dialog Applications

이와 같이 Groudness를 위해 TS를 보강한 LaMDA는 기본 LaMDA(PT)보다 Groundness와 Informativeness에서 좋은 성능을 보이며, Specificity와 Interestingness 점수 또한 증가하였다.

source: LaMDA: Language Models for Dialog Applications

LaMDA에 대한 총평

ML관점에서 새로운 방법을 제시

  1. 외부 데이터 베이스 사용: 정보가 실시간으로 바뀌는 시대에 실시간으로 모델을 업데이트하는 것은 불가능하다. 쿼리 가능한 외부 DB가 있다는 것은 DB를 최신으로 업데이트할 수 있다는 것을 의미하며, 모델을 재학습할 필요가 없이 모델이 최신 정보를 검색할 수 있다.
  2. Fine-tuning: LaMDA는 (1) Pre-training과 (2)Fine-tuning 단계로 나뉜 2단계 모델이다. LaMDA는 fine-tuning 단계에서 응답을 편집하고 검색 쿼리 및 소스를 추가하도록 학습하여 다른 모델과 차별화를 시도한다.

LaMDA의 적용 범위

  1. 교육: LaMDA는 1:1 유형의 교육적 대화를 제공할 수 있어 학생들이 대화형 방식으로 새로운 지식을 학습하는데 활용할 수 있다.
  2. 보건 의료: LaMDA는 보다 인간적이고 구체적인 대화가 가능하므로 정신 건강 서비스의 품질을 개선하는데 활용할 수 있다.

LaMDA 논문은 LaMDA의 한계에 대해서도 다루고 있으나, 자세히 리뷰를 하지 못하였다. 다음 기회에 구글의 Bard를 리뷰하면 같이 다룰 생각이다.

레퍼런스

[1] Towards a Conversational Agent that Can Chat About…Anything

[2] LaMDA: Language Models for Dialog Applications

[3] Transformer NLP Models (Meena and LaMDA): Are They “Sentient” and What Does It Mean for Open-Domain Chatbots?

[4] LaMDA: Towards Safe, Grounded, and High-Quality Dialog Models for Everything

[5] Week 51 — 교육용 챗봇의 미래!? 구글 람다 (LaMDA) 2편

--

--

daewoo kim
daewoo kim

Written by daewoo kim

AI developer & Author | Working@semiconductor-industry. I write and share about what I learn.

No responses yet