Logo Ernie.SG

데모: 이야기의 소리

2024년 5월 2일
5분 읽기
사용 가능한 태그가 없습니다
Table of Contents

2023년 8월, 나는 A.I.에서 작업하고 싶은 세 가지 핵심 주제, 즉 멀티모달리티, 오픈소스, 생성형 에이전트를 정리했다. “The Sound of Stories” 데모는 사용자의 입력에 맞춰 바뀌는 이중언어 인터랙티브 스토리텔링 경험을 어떻게 제공했는지 보여주는 사례다. 서사 구조에는 묶여 있지만, 사용자에게 적응한다. 사용자 음성 입력을 드럼 소리로 바꾸는 것과 이미지 표지 생성도 실험했지만 아직 live 환경에는 올리지 않았다. 인터페이스는 너무나 익숙한 WhatsApp이다. 이것은 Meta AI 이전의 일이었고, 인터페이스의 진화(Streamlit -> Chainlit -> WhatsApp)를 보면 마지막 선택은 한편으로 사람들이 다른 선택지에서 어려움을 겪는 것을 본 데서, 다른 한편으로는 그냥 내 게으름에서 나온 것이다.

내가 염두에 둔 설계 제약은 다음과 같았다:

  • 이야기는 “The Boy and the Drum”이어야 하므로, 길에서 만나는 사람들이 있고, 각 차례마다 물건의 교환이 있다. 전체 서사는 이를 따라야 한다

  • 시장 이름, 교환되는 음식 같은 요소는 현지화하면서

  • 관련될 때 사용자 입력을 유도해 항상 사용자를 참여시키려고 하며

  • 적절하게 시작하고 끝나야 하고

  • 엉뚱한 사용자 응답도 논리적으로 처리해야 한다(예: Ray-ban Meta glasses를 팔자는 사용자의 제안에 응답한 방식)

Demo: The Sound of Stories

Performing Arts x Tech Lab은 2023년 8월에 시작되었고, 처음에는 각 차례마다 적절한 이야기 조각만 생성되도록 프롬프트 엔지니어링과 작은 hack을 꽤 많이 넣었다. 그런 다음 사용자 응답을 다음 이야기 조각 생성에 반영하고, 동시에 일정 턴 안에 이야기를 끝내려 했다. 말이 안 되는 사용자 입력에는 그다지 견고하지 않기 때문에 최선은 아니었다. 다행히 더 많은 지능만 있으면 된다.

A.I. 진보의 이야기는 결국 미래에서부터 끌고 와야 한다는 것이다. 모델은 더 똑똑해지고, 더 싸지고, 더 빨라진다. 사실 이미 그렇게 되었다. 나는 이 프로젝트에서 GPT-4와 Kimi를 “해고”했고, 3월 19일 Hugh의 추천을 듣고 잠깐 시험한 뒤 그대로 Claude 3 Opus를 썼다. 최종 공개 데모는 4월 5일이었다.

참고: 오디오 생성은 최적화되어 있지 않아서 데모에서 완료되고 재생되기까지 약 15초가 걸린다. 이러한 지연은 아래에서 읽을 수 있는 전화 통화 버전에서 해결되어 있다.

이 프로젝트가 왜 중요한가?

스토리텔링 관점에서 이것은 현대적인 choose-your-own-adventure이고, 언제나 꽤 재미있다. 여기서 배운 점은 롤플레잉 게임을 다시 상상하는 데도 적용할 수 있다. 이중언어(그리고 다국어가 되지 못할 이유도 없다)라는 성격은 접근성과 도달 범위를 새로운 관객으로 확장한다. The Esplanade에서 열린 공개 발표에서 누군가 더 많은 이야기를 처리하는 데 얼마나 걸리는지 물었을 때 나는 혼란스러웠다. 만든 사람인 나는 완전히 처음 보는 사람의 관점에서 이걸 보지 못해 그 질문을 잘 이해하지 못했다는 것을 깨달았다. 하지만 짧은 답은, 원하는 만큼 많은 이야기로 몇 초 안에, 아니면 몇 밀리초 안에 확장할 수 있다는 것이다. 사람들이 놓치고 있는 맥락은 LLM이 너무 강력해져서 사전학습 데이터로 흡수한 문화만큼의 지식을 이미 어느 정도 품고 있다는 점이다. 즉 이야기는 사용자 프로필에 맞춰 장소와 물건을 바꿀 수 있다. 예를 들어 한국에서 왔다고 주장한 사용자의 데모에서는 엄마가 Dongdaemun Market에 갔다. A.I.가 당신의 고유한 맥락이나 어휘를 이해할 수 없다는 것은 MYTH다. 우리는 실제로 할 수 있다. 보통 그 말의 축약형은 “많은 조직이 그런 데이터를 디지털화하지 않았거나 자기 데이터셋 위에서 최적화할 역량이 부족하다”에 가깝다.

나는 이것을 아키텍처 관점에서도 본다. 어떤 말뭉치로 범위를 제한하고, 사용자 입력을 받은 뒤, 그 입력을 바탕으로 응답을 생성한다는 기본 아이디어는 면접 준비 봇에서 고객 지원 에이전트까지 넓은 사용 사례에 적용 가능한 “디자인 패턴”에 가깝다.

라이브 데모와 전시 기간 동안 관객은 내가 설정한 전화번호(그렇다, 진짜 전화번호)로 전화해 A.I. Kamini와 대화하고 전화로 이야기를 들을 수도 있었다. 문자 채팅과 비슷한 경험이지만 오직 음성 영역 안에 있으며, 최적화 덕분에 음성 출력 스트리밍은 실제로 훨씬 낫다. Claude 3 Opus보다 시스템 지능은 낮지만 실제 전화 대화처럼 느껴진다.

다음은?

내가 중국에 있을 때 이것을 GCP에 배포했고, 전반적으로 의도한 대로 제 역할을 한 것 같았다. 버그 수정은 필요하지 않았고, 문제나 한계는 이미 아는 것들이었다. 내가 작업하지 않은 이유는, 음, 시간? 그래서 Lab 이후에 고칠 수 있는 영역은 WebSockets로 오디오 응답을 스트리밍해 속도를 높이는 것, 그리고 사용자 응답 문자열 하나를 기대하는 대신 여러 사용자 입력을 처리하는 것이다. 이것들은 내 백로그에 들어갈 것이다. 그 외에는 Elevenlabs보다 더 나은 것이 있다면 더 좋은 중국어 음성 복제 기술을 기다리고 있다.

이제 작동하는 코드베이스가 있으니 생성형 에이전트를 배포하고 서비스하고 싶다. 적절한 지점에서 LLM을 사용해 작업 흐름을 자동화하고, 이 파이프라인의 출력이 행동, 즉 세계의 상태 변화로 이어지게 하고 싶다. 내 영상에 대한 자동 전사, 번역, 자막 생성이 업로드로 이어지는 것처럼 단순할 수도 있고, 어떤 비정형 데이터든 받아 적절한 스키마를 판단한 다음 정형 데이터를 뽑아내는 에이전트처럼 더 복잡할 수도 있다. 후자의 에이전트는 현장 녹음에서 데이터를 추출하려는 연구자, 소장품 데이터를 풍부하게 만들고 전체 과정을 자동화하려는 GLAM 기관(즉 이미지 위에 풍부한 임베딩을 생성할 뿐 아니라 영상, 편지 등에 대해 전사문, 텍스트, 관련 메타데이터를 생성하는 것), 그리고 내가 작업해야 하는 시험과 면접 준비 봇에도 관련 있을 것이라고 생각한다.

소프트웨어를 어떻게 만드는지, A.I. 네이티브 경험이 얼마나 강력할 수 있는지 다시 생각하는 일에서 우리는 아직 극초기다. 그것들이 얼마나 더 생산적인지. 얼마나 확장 가능하고 쌓아 올릴 수 있는지. API를 통해 다른 소프트웨어와 잘 연결되지 않는 솔루션을 써야 하는 것은 범죄여야 한다(정말, 정말 그래야만 하는 경우가 아니라면).

업데이트를 기대해 달라!


원래 PubPub에 erniesg.pubpub.org/pub/xlkdc79p로 게시되었습니다.