어떻게 만들었을까: Lupe Fiasco와의 협업으로 만든 AI 도구 모음, TextFX

8월 02, 2023
Aaron Wade Creative Technologist

Google Lab Sessions는 혁신가들과 함께한 일련의 실험적 AI 협업 작업입니다. 최신 Lab Session에서는 AI를 통한 인간의 창의력 확장 방법을 구체적으로 알아보고자 했습니다. 그래서 저희는 그래미상을 수상한 래퍼이자 MIT 객원 연구원인 Lupe Fiasco에게 TextFX라는 AI 실험 진행을 제안했습니다.

Link to Youtube Video (visible only when JS is disabled)

발견 과정

먼저 Lupe의 창작 과정을 관찰하고 배우기 위해 그와 함께 시간을 보내는 것으로 실험을 시작했습니다. 그의 창작 과정은 예외 없이 일종의 언어적 '틴커링', 즉 언어를 해체한 다음 새롭고 혁신적인 방식으로 재조합하는 것이 특징이었습니다. Lupe의 기법 중 일부(예: 직유법과 두운법)는 전통적인 문학적 장치의 규칙에서 유래합니다. 그러나 다수의 기법은 완전히 독창적입니다. 그중에는 어떤 단어와 소리는 같지만 의미는 다른 구절을 만드는 기발한 방법이 있는데, Lupe는 'expressway'(고속도로)라는 단어로 그 방법을 보여주었습니다.

express whey(유제품 부산물의 신속한 배달)
express sway(영향력을 보여주기 위해)
ex-press way(언론이 없는 길)

이러한 작업은 Lupe이 곡을 쓰는 데 매우 중요한 역할을 했습니다. 이런 측면에서 저희는 'Lupe이 텍스트와 언어로 창작의 가능성을 탐구하도록 돕기 위해 AI를 어떻게 활용할 수 있을까?'가 궁금해졌습니다.

언어 관련 애플리케이션이라면 AI 관점에서 대형 언어 모델(LLM)을 선택해야 한다는 건 분명합니다. LLM은 언어 관련 작업을 수행하도록 특별히 설계된 머신러닝 모델의 한 범주로, LLM의 사용 목적 중 하나가 바로 텍스트 생성입니다. 그러나 LLM이 Lupe의 작사 과정에 실제로 어떻게 부합할지에 관한 의문은 여전히 남았습니다.

Google의 Bard 같은 일부 LLM은 대화형 에이전트 기능을 수행하도록 미세 조정됩니다. PaLM API의 Text Bison 모델 같은 다른 LLM은 이런 대화 요소가 부족한 대신 주어진 입력 텍스트를 확장하거나 채워서 텍스트를 생성합니다. Text Bison 유형의 LLM이 지닌 큰 장점 중 하나는 퓨샷 러닝을 할 수 있다는 점입니다. 즉, 작은 학습 예제 세트에서 발생하는 패턴을 인식하고 해당 패턴을 복제해서 참신한 입력을 할 수 있습니다.

초기 실험으로, Lupe에게 동일하게 들리는 소리를 활용한 구절의 예를 더 많이 제시하도록 했고, 그가 제공한 예시를 사용해 프롬프트를 구성했습니다. 프롬프트는 LLM이 특정 방식으로 동작하도록 준비시키는 신중하게 만들어진 텍스트 문자열입니다. 같은 소리를 가진 구절 즉, 동음 구절 작업에 대해 처음 만들어진 프롬프트는 다음과 같았습니다.

단어: defeat
동음 구절: da feet('the feet'에서처럼)
 
단어: surprise
동음 구절: Sir Prize(Prize라는 이름의 기사)
 
단어: expressway
동음 구절: express whey(유제품 부산물의 신속한 배달)
 
(...추가적인 예...)
 
단어: [단어 입력]
동음 구절:

이 프롬프트는 가끔 무난한 출력 결과를 내놓았지만 여전히 개선의 여지가 있다고 느껴졌습니다. 실제로 예시의 내용과 양 이외의 요소가 출력에 영향을 미칠 수 있음을 발견했는데, 작업의 프레이밍 방식, 입력과 출력의 표현 방식 등을 예로 들 수 있습니다. 여러 차례 반복을 거쳐 마침내 다음과 같은 결과를 얻었습니다.

동음 구절은 다른 단어나 구절처럼 들리는 구절입니다.
 
 
다음은 'defeat'라는 단어와 동음으로 들리는 구절입니다.
 
da feet('the feet'에서처럼)
 
 
다음은 'surprise'라는 단어와 동음으로 들리는 구절입니다.
 
Sir Prize(Prize라는 이름의 기사)
 
 
다음은 'expressway'라는 단어와 동음으로 들리는 구절입니다.
 
express whey(유제품 부산물의 신속한 배달)
 
 
(... 추가적인 예...)
 
 
다음은 '[단어 입력]'(이)라는 단어와 동음으로 들리는 구절입니다.

동음으로 들리는 단어 작업을 퓨샷 프롬프트로 코딩한 후, Lupe와 함께 동일한 퓨샷 프롬프트 전략을 사용해 할 수 있는 창의적인 작업을 추가로 찾아보았습니다. 마침내, 주어진 단어나 구절, 개념에서 나올 수 있는 창의적 가능성을 탐구하기 위해 각각 고유하게 설계된 10가지 프롬프트를 고안했습니다.

SIMILE - 사물 또는 개념에 대한 직유적 표현을 만듭니다.
EXPLODE - 단어를 비슷한 소리가 나는 구로 나눕니다.
UNEXPECT - 더 예상 밖의, 창의적인 장면을 연출합니다.
CHAIN - 의미상 관련된 항목들을 서로 연결합니다.
POV - 다양한 관점을 통해 주제를 평가합니다.
ALLITERATION - 선택한 글자로 시작하는 주제별 단어를 선별합니다.
ACRONYM - 단어의 글자를 사용하여 머리글자어를 만듭니다.
FUSE - 단어의 글자를 사용하여 머리글자어를 만듭니다.
SCENE - 단어의 글자를 사용하여 머리글자어를 만듭니다.
UNFOLD - 다른 기존 단어 또는 구절에 단어를 끼워 넣습니다.

사용자가 대화형 인터페이스를 통해 LLM 프롬프트를 쉽게 작성하고 실험할 수 있는 플랫폼인 MakerSuite를 사용하여 이러한 아이디어를 각각 신속하게 프로토타입으로 만들 수 있었습니다.

만든 방법: PaLM API로 개발

퓨샷 프롬프트를 최종 완성한 후, 이러한 프롬프트를 수용할 앱을 개발했습니다. 그 이름을 TextFX로 정했는데, 각 도구가 입력 텍스트에 제각기 다른 '효과' 즉 '이펙트'를 가지고 있다는 아이디어에서 도출한 이름입니다. 음향 효과와 같지만 텍스트에 대한 효과라는 뜻에서 말입니다.

프롬프트를 소스 코드에 문자열로 저장하고, Google의 대규모 언어 모델에 대한 진입점 역할을 하는 PaLM API를 사용하여 Google의 PaLM 2 모델로 보냅니다.

모든 프롬프트는 불완전한 입력-출력 쌍으로 종료되도록 설계되었습니다. 사용자가 입력 데이터를 제출하면 그 데이터를 프롬프트에 추가한 후 모델로 보냅니다. 모델은 입력 데이터에 대응되는 출력 데이터를 예측합니다. 그다음 저희가 모델 응답에서 각 결과를 파싱하고 후처리하면 최종적으로 프런트엔드에서 결과를 표시합니다.

lupe3

사용자는 모델 출력에서 허용되는 창의성의 총량에 대략적으로 상응하는 하이퍼 매개변수인 모델 온도를 선택적으로 조정할 수 있습니다.

체험해 보기

textfx.withgoogle.com에서 직접 TextFX를 사용해 볼 수 있습니다.

또한 MakerSuite에서 모든 LLM 프롬프트를 사용할 수 있도록 했습니다. PaLM API와 MakerSuite에 대한 공개 미리보기에 액세스할 수 있는 경우 아래 링크를 사용하여 프롬프트 복사본을 직접 만들 수 있습니다. 액세스할 수 없다면 대기자 명단에 등록할 수 있습니다.

TextFX를 개발하는 방법을 자세히 살펴보고 싶은 분을 위해 여기에 코드를 오픈소스로 제공했으니 참조하세요.

PaLM API와 MakerSuite로 직접 만들어 보려면 대기자 명단에 등록하세요.

맺음말

TextFX는 어떻게 PaLM API로 실험하고 Google의 최첨단 대규모 언어 모델을 활용하는 애플리케이션을 개발할 수 있는지를 보여주는 예입니다. 더 광범위하게 보자면 이러한 탐구는 인간의 창의력을 증강하는 AI의 잠재력을 알려줍니다. TextFX는 창의적인 글쓰기를 목표로 하지만, 다른 창의적인 영역에 AI가 공동작업자로서 진입한다는 것은 어떤 의미일까요? 저희가 이러한 협업이 어떤 모습일지 상상하는 데 크리에이터의 역할이 매우 중요합니다. 이 Lab Session에서 PaLM API를 사용하면 어떤 일이 가능할지 살짝 훑어보고, 무엇을 만들든 Google의 AI를 사용하여 독창적인 아이디어에 생명력을 불어넣을 수 있기를 바랍니다.

Lab Session을 더 자세히 탐색하려면 labs.google.com을 둘러보세요.