Skip to main content

클레망 들랑그 — 오픈 소스 커뮤니티의 힘

클렘은 Hugging Face의 탄생과 성공을 이끈 선순환 구조를 설명하고, NLP가 앞으로 어디로 향할지에 대한 자신의 견해를 공유합니다. 이 글은 AI 번역본입니다. 오역이 의심되는 부분이 있다면 댓글로 알려주세요.
Created on September 15|Last edited on September 15


다음 플랫폼에서 듣기

게스트 소개

Clément Delangue는 Hugging Face의 공동 창업자이자 CEO로, 미래를 만들어 가는 AI 커뮤니티를 이끌고 있습니다. Hugging Face는 오픈 소스 NLP 라이브러리로 시작해 빠르게 성장했으며, 현재 5,000개가 넘는 기업에서 사용하는 상용 제품으로 자리 잡았습니다.

클레망과 연결하기

쇼 노트

다룬 주제

0:00 미리보기와 소개
0:56 Hugging Face란 무엇인가요?
4:15 Hugging Face Transformers의 성공
7:53 오픈 소스와 선순환
10:37 TensorFlow와 PyTorch 모두와의 연동 작업
13:20 “Write With Transformer” 프로젝트
14:36 NLP에서의 전이 학습
16:43 BERT와 DistilBERT
22:33 GPT
26:32 오픈 소스 커뮤니티의 힘
29:40 현재 NLP의 적용 사례
35:15 튜링 테스트와 대화형 AI
41:19 음성이 NLP에서 떠오르는 분야인 이유
43:44 머신러닝의 인적 과제

논의된 링크

녹취록

참고: 전사는 서드파티 서비스에 의해 제공되며 부정확한 부분이 포함될 수 있습니다. 수정사항이 있으면 angelica@wandb.com 으로 보내 주세요. 감사합니다!
클렘:
오픈 소스 모델을 통해, 인프라와 데이터베이스 분야의 오픈 소스에서 받은 영감을 바탕으로 조금 다른 방식으로 접근할 수 있다고 생각합니다. Elastic, MongoDB 같은 회사들이 보여줬듯이, 스타트업도 커뮤니티를 실질적으로 지원해 전용 도구를 만드는 것보다 천 배 더 큰 가치를 창출할 수 있다는 점을 증명했잖아요, 그렇죠?
루카스:
여러분은 지금 현실 세계의 머신러닝을 다루는 프로그램 Gradient Dissent를 듣고 계십니다. 진행은 제가 맡고 있는 루카스 비발트입니다. 클렘 델랑주는 Hugging Face의 CEO이자 공동 창업자로, 현재 머신러닝 분야에서 가장, 어쩌면 가장 흥미로운 라이브러리인 Hugging Face Transformers 라이브러리를 만든 주역입니다. 이 라이브러리를 만들면서 그는 지난 몇 년간 NLP에서 일어난 ��든 발전을 바로 앞자리에서 지켜봤고, 그 여정은 정말 놀라웠습니다. 그 이야기를 그에게서 직접 듣게 되어 매우 기대됩니다. 좋아요, 첫 번째 질문은 아마 좀 우스운 질문일 수도 있습니다. 이걸 보고 듣는 거의 모든 분이 이미 알고 계시겠지만, 그래도 묻겠습니다. Hugging Face가 무엇인가요?
클렘:
우리는 자연어 처리에 깊이 매료되어 약 4년 반 조금 넘게 전에 Hugging Face를 시작했습니다. 텍스트에 적용되는 머신러닝 분야죠. 운 좋게도 GitHub에서 Hugging Face Transformers를 만들어서 지금은 가장 인기 있는 오픈 소스 NLP 라이브러리가 되었고, 현재 5,000개가 넘는 기업이 각종 NLP 작업에 사용하고 있습니다. 예를 들어 정보 추출이 그렇죠. 텍스트에서 필요한 정보를 뽑아내는 작업입니다. 숙제 플랫폼인 Chegg 같은 곳에서는 과제에서 정보를 추출하는 데 이를 활용하고 있습니다. 텍스트 분류도 가능합니다. 예를 들어 Monzo 같은 회사는 고객 지원 이메일 분류에 우리를 사용하고 있어요. 고객 지원 이메일을 받으면 어떤 프로덕트 팀과 관련 있는지, 긴급한지 아닌지를 자동으로 판별하죠. 이 밖에도 자동 완성을 위한 텍스트 생성 등 다양한 NLP 작업, 사실상 떠올릴 수 있는 거의 모든 NLP 작업에 사용할 수 있습니다. 그리고 기업뿐 아니라 과학자들의 도입도 이어졌습니다. 연구자들이 우리 플랫폼을 통해 자신의 모델을 전 세계와 공유하고, 다른 연구자의 모델을 테스트해 왔습니다. 지금까지 거의 10,000개의 모델과 거의 1,000개의 데이터셋이 플랫폼에 공유되었습니다. 이는 과학자와 실무자들이 더 나은 NLP 모델을 만들고, 이를 제품이나 워크플로에 적용하는 데 큰 도움이 되고 있습니다.
루카스:
그러니까 Hugging Face Transformers는 아주 잘 알려진 라이브러리인 거죠, 맞나요? 그리고 플랫폼은 다른 사람들이 만든 모델을 사용하고, 자신이 만든 모델을 공개할 수 있는 곳이고요. 제가 제대로 이해한 게 맞나요?
클렘:
네, 맞습니다. 기술을 구축하는 데 하이브리드 접근 방식을 취하고 있어요. 오픈 소스의 확장성과 예를 들어 사용자 인터페이스 같은 실용성이 모두 필요하다고 생각합니다. 우리는 정말 전 범위를 아우릅니다. 즉, 회사라면 우리 오픈 소스만으로 모든 것을 직접 처리할 수 있어요. 우리와 이야기할 필요도, huggingface.co에 방문할 필요도 없이, 전부를 직접 할 수 있습니다. pip install transformers맞죠? 조금 더 도움이 필요하시다면, 우리 허브에서 새로운 모델을 찾아보고, 본인에게 맞는 모델을 발견하고, 그 모델들을 이해하실 수 있습니다. 더 나아가, 소프트웨어 엔지니어이거나 NLP가 처음이거나, 심지어 머신러닝 자체가 처음이라도, 우리의 학습 및 추론 API를 사용해 모델을 학습하고 실행할 수 있습니다. 추론과 학습 환경은 우리가 대신 호스팅해 드리기 때문에, 최신 최첨단 NLP 모델의 이점을 누리기 위해 굳이 NLP 전문가가 되지 않아도 되도록 정말 아주 간단하게 만들어 드립니다.
루카스:
정말 멋지네요. 먼저 Hugging Face Transformers에 초점을 맞춰 보고 싶은데요, 역사상 가장 인기 있는 머신러닝 라이브러리 중 하나일 것 같다는 느낌이 들어요. 그 성공의 요인을 무엇으로 보시는지 궁금합니다. 언제 시작하셨고, 당시 어떤 생각으로 시작하셨는지, 또 그 과정에서 무엇을 배우셨는지 이야기해 주실 수 있을까요?
클렘:
글쎄요, 가장 큰 머신러닝 오픈 소스라고 할 수 있을지는 모르겠지만, 확실히 가장 빠르게 성장하고 있어요. 비교적 새롭기 때문이죠. 첫 버전을 내놓은 게 2년 반 전이거든요. 오픈 소스의 큰 흐름에서 보면 그리 오래전이 아니잖아요?
루카스:
네, 확실히요.
클렘:
가장 인기 있는 오픈 소스들을 보면, 대개 아주 긴 성숙 기간이 필요하잖아요. 그런 큰 흐름에서 보면 Transformers는 아직 정말 아기나 다름없지만, 믿을 수 없을 만큼 빠르게 성장했습니다. GitHub 스타가 4만 2천 개가 넘고, 한 달 pip 설치가 백만 건이 넘으면서 정말 폭발적으로 커졌죠. Transformers에는 기여자가 800명 정도 있습니다. 이 성공의 가장 큰 이유는 과학과 프로덕션 사이의 격차를 실제로 메웠기 때문이라고 봅니다. 이는 비교적 새로운 일이고, 많은 오픈 소스나 회사들이 쉽게 해내지 못한 부분이죠. 저는 머신러닝이 소프트웨어 엔지니어링 1.0, 혹은 일반적인 소프트웨어 엔지니어링이나 컴퓨터 과학과 비교했을 때, 근본적으로 다르다고 굳게 믿습니다. 이름에 ‘과학’이 들어가 있지만, 전통적인 컴퓨터 과학 분야는 과학 주도형 주제가 아니잖아요. 뛰어난 소프트웨어 엔지니어를 보면 연구 논문을 꼼꼼히 읽거나 컴퓨터 과학의 학술 연구를 따라가는 편이 아니죠. 반면 머신러닝은 과학이 견인하는 도메인입니다. 모든 것은 전 세계 곳곳의 수십 개 뛰어난 NLP 연구팀에서 시작됩니다. 그들이 BERT, T5, RoBERTa 같은 새로운 모델을 만들어내죠. 우리가 Transformers로 해낸 일은, 이런 연구자들에게 그들이 선호하는 도구를 제공해 자신의 모델을 공유하고, 다른 이의 모델을 테스트하며, 모델 아키텍처 내부를 깊이 파고들 수 있게 한 것입니다. 동시에 추상화를 충분히 쉽게 만들어, 연구자가 모델을 공개한 지 몇 시간 만에 어떤 NLP 실무자라도 그 모델을 바로 활용할 수 있게 했습니다. 이렇게 두 세계를 잇는 순간, 일종의 마법 같은 일, 네트워크 효과 같은 것이 생깁니다. 그 메커니즘을 전부 다 이해한 것은 아니지만, 새로운 모델이 나올 때마다 연구자가 Transformers로 공개하고, 사람들은 그 소식을 듣고 이야기하고 써 보고 싶어 하며, Transformers에서 테스트하고 프로덕션에 반영하고, 잘 작동하니 더 지원하고 싶어집니다. 연구자도 자신의 연구가 주목받고, 사용되고, 영향력을 발휘하는 데 만족하면서 더 만들고 더 공유하고 싶어 하죠. 이런 선순환 덕분에 우리는 전통적인 오픈 소스보다 훨씬 빠르게 성장할 수 있었다고 생각합니다. 그리고 이것이 시장과 머신러닝 분야에서 큰 공감을 불러일으켰습니다.
루카스:
창업가로서 저는 이런 선순환이 어떻게 시작되는지 늘 흥미롭습니다. 2년 반 전으로 돌아가 Transformers 프로젝트를 막 시작하던 때를 떠올려 보면, 어떤 문제를 해결하려 했고, 또 이런 오픈 소스 라이브러리를 만들도록 영감을 준 계기는 무엇이었나요?
클렘:
아마도 좀 똑똑하고 신중한—
루카스:
아니, 아니, 진짜 답을 원해요. 실제로 무슨 일이 일어나고 있는지 말해 주세요.
클렘:
진짜로 말하면, 깊게 고민하고 시작한 건 아니었어요. 우리는 꽤 오래 전부터 오픈 소스를 써 왔고, 이 분야에서는 언제나 앞선 사람들, 거인들의 어깨 위에 선다는 감각이 있었죠. 과학을 한다면 논문을 공개하고, 머신러닝 연구라면 논문만이 아니라 오픈 소스 코드까지 공개하고 싶어 하는 문화에 익숙했습니다. 그래서 Hugging Face도 첫날부터 늘 공개적으로 일했고, 오픈 소스로 공유해 왔어요. Transformers도 아주 단순하게 시작했습니다. TensorFlow로 공개된 BERT가 있었고, 공동 창업자이자 Chief Scientist인 Thomas가 “TensorFlow로만 있네, PyTorch 버전도 필요하지”라고 했죠. BERT가 공개되고 이틀쯤 뒤에 우리는 PyTorch BERT를 오픈 소스로 공개했습니다. 그게 저장소의 첫 이름이기도 했어요. 그 후로 폭발적으로 쓰이기 시작했고, 몇 주 뒤 또 다른 모델이 공개됐습니다. RoBERTa였다고 말하고 싶지만, 아니고 훨씬 나중이었죠. 아마 GPT였을 거예요, 첫 번째 GPT. 그 모델도 공개됐는데, 비슷하게 TensorFlow 중심이었던 걸 보고 “좋아, 이것도 추가하자”라고 했죠. 그리고 “둘 다 쉽게 써 볼 수 있게 하자. 서로 강점이 다르니까”라고 생각했습니다. 그러면서 어떤 추상화를 만들면 더 쉬워질지 고민하기 시작했고, 자연스럽게 흐름을 타게 됐어요. 어느 순간 연구자들이 “새 모델을 공개하려는데 Transformers에서 공개해도 될까요?”라고 물었고, 우리는 “물론이죠, 그렇게 하세요”라고 했습니다. 그렇게 하나둘 쌓이면서 눈덩이처럼 커졌고, 지금의 자리까지 오게 되었죠.
루카스:
정말 멋진 이야기네요. 처음엔 TensorFlow에서 PyTorch로 모델을 포팅하려고 하셨다는 걸 몰랐어요. 지금은 TensorFlow와 PyTorch 둘 다로 작업하고 계시죠?
클렘:
응.
루카스:
그 당시에는 PyTorch를 더 선호하신 건가요? 아니면 왜 2년 반 전에 굳이 PyTorch로 옮기는 게 중요했나요?
클렘:
사용자층이 달랐던 거죠, 그렇죠? 우리는 항상 민주화, 즉 조금은 난해하고 틈새에 머물던 것을 더 많은 사람에게 열어 주는 일에 열정이 있었어요. 기술의 진짜 힘은 소수의 ‘특권층’만 쓰던 것을 더 넓은 대중이 쓰게 될 때 나온다고 믿었습니다. 그게 주된 목표였어요. TensorFlow를 쓰는 사람이 있고, PyTorch를 쓰는 사람도 있잖아요. 우리는 PyTorch를 쓰는 사람들에게도 접근 가능하게 만들고 싶었어요. 우리 자신도 PyTorch를 많이 썼고요. 정말 뛰어난 프레임워크라고 생각했기 때문에, 더 널리 쓰이도록 돕게 되어 기뻤죠. 재미있는 건, 우리가 점점 유명해지면서 반대 방향의 움직임도 나타났다는 거예요. 사람들이 이렇게 말하기 시작했거든요… 한때는 저장소 이름이 아예 PyTorch Transformers였고, 그러다 보니 TensorFlow를 쓰는 많은 분들이 “이건 불공평해요. 왜 저는 TensorFlow를 쓰면 Transformers를 못 쓰죠?”라고 하셨죠. 그래서 그때 TensorFlow 지원으로 확장했고, 이름에서도 PyTorch를 빼고 Transformers로 바꿔 두 프레임워크를 모두 지원하게 됐습니다. 흥미로운 점은, 우리가 PyTorch와 TensorFlow를 통합한 방식이 훨씬 포괄적이고 완전하다는 거예요. 딱 반반 나눠 PyTorch 절반, TensorFlow 절반이 아니라는 뜻이죠. 같은 머신러닝 워크플로 안에서 일부는 PyTorch로 할 수 있어요. 예를 들어 아키텍처를 다뤄야 하는 부분에서는 PyTorch가 정말 강력하죠. 반면 서빙 관점에서는 업계에서 널리 쓰이는 많은 도구와 TensorFlow가 잘 통합되어 있어요. 그래서 같은 워크플로 안에서 PyTorch로 모델을 만들기 시작하고, 그다음 라이브러리 내에서 TensorFlow로 활용할 수도 있습니다. 두 프레임워크의 강점과 약점을 상황에 맞게 조합해 이점을 취할 수 있다는 점에서 꽤 멋진 방식이라고 생각합니다.
루카스:
요즘은 직접 여러분 소프트웨어를 써볼 기회가 있나요? 지금도 Hugging Face 애플리케이션을 직접 만들어 보시나요, 아니면 이제는 주로 다른 사람들이 쓸 수 있도록 이런 종류의 도구만 만들고 계신가요?
클렘:
네, 저희가 직접 많이 써봐요. 가장 인기 있었던 데모 중 하나가 Write With Transformer라는 건데, Transformers의 인기 모델들로 구동되는 일종의 텍스트 에디터였죠. 그걸로 쓰인 분량이 책 1,000권이 넘는다고 할 정도로 많이 사용됐어요. 지메일의 자동완성 같은 기능이라고 보면 되는데, 훨씬 더 엉뚱하고 창의적이에요. ‘백지 증후군’이라고 하죠, 뭘 써야 할지 전혀 떠오르지 않을 때 특히 잘 작동합니다.
루카스:
아, 맞아요. 우리가 그렇게 말하진 않지만, 그 느낌은 이해해요.
클렘:
프랑스어로는 ‘syndrome de la feuille blanche’라고 해요. 뭔가 쓰고 싶은데 무엇을 써야 할지 전혀 떠오르지 않을 때를 말하죠. 이 도구는 길고 흥미로운 문장을 제안해 줘서 더 창의적으로 쓸 수 있도록 도와줍니다.
루카스:
정말 멋지네요. 여쭤보고 싶은 게 있어요. 다양한 NLP 아키텍처를 바라보는 관점이 굉장히 흥미롭다고 느끼는데요. 요즘 가장 인기 있는 아키텍처가 무엇인지 파악할 수 있나요? 지난 2년 반 동안 그 트렌드에 변화가 있었는지도 궁금합니다.
클렘:
네, 그렇습니다. 모델 다운로드 수 같은 지표를 볼 수 있어요. 특히 새 모델이 나왔을 때 성공적인지, 얼마나 많은 사람이 쓰는지 지켜보는 게 흥미롭죠. 저희가 정말 흥미롭게 본 점은, 허브에서 가장 많이 다운로드된 모델이 DistilBERT라는 거예요. BERT에서 증류한 모델이죠. 다만 모델 사용 방식에는 다양성이 큽니다. 해가 갈수록, 비록 여전히 범용 사전학습 언어 모델이긴 하지만, 어느 정도 더 특화되는 경향이 생겼다고 느껴요. 새 모델이 나올 때마다 어떤 최적화가 붙으면서 성능이 더 좋아지곤 하거든요. 짧은 텍스트냐 긴 텍스트냐, 생성 과제냐 분류 과제냐, 다국어냐 단일 언어냐에 따라 성능이 달라지죠. 사람들이 무엇을 하려는지에 맞춰 점점 더 다양한 선택이 나타나고, 어떤 강점과 약점을 가장 중요하게 보느냐가 갈립니다. PyTorch와 TensorFlow를 비교할 때 말한 것과 비슷해요. 사람들은 “어떤 모델링이 절대적으로 최고냐”를 정하려 하기보다는(제 생각엔 그건 별로 의미가 없어요), “어떤 과제, 어떤 맥락에서 어떤 모델이 가장 적합하냐”를 따져 보고, 그 과제에 맞는 올바른 도구를 고르려는 거죠.
루카스:
음, NLP 배경이 없는 분이 이걸 듣고 있다고 가정하면, BERT가 무엇이고 무엇을 하는 모델인지, 그리고 DistilBERT가 그것과 어떻게 다른지도 설명해 주실 수 있을까요?
클렘:
NLP의 거대한 혁명은 ‘Attention Is All You Need’라는 기념비적인 논문에서 시작됐죠. 이 논문이 전이 학습을 기반으로 한 새로운 NLP 모델 아키텍처를 소개했습니다. 그 새로운 세대 모델들 가운데 가장 먼저 널리 쓰인 것이 BERT였고요. 아주 단순화해서 기술적 세부를 빼고 설명하자면, 한 가지 특정 사전학습 과제에 대해 방대한 텍스트로 모델을 미리 학습시키는 방식입니다. 예를 들어 BERT의 경우 ‘마스크 채우기’ 과제를 사용합니다. 문장을 입력하고, 문장 가운데 단어 하나를 가린 다음, 그 빠진 단어를 맞히도록 모델을 학습시키는 거죠. 이렇게 일반적으로 웹의 단면에 해당하는 아주 큰 말뭉치로 학습을 진행합니다. 그러면 텍스트에 대한 어떤 수준의 이해를 갖춘 사전학습 모델을 얻게 되고, 이를 다시 파인 튜닝할 수 있습니다. 사전학습 과제에서 다른 파인 튜닝 과제로 지식을 이전한다는 의미에서 전이 학습이라고 부르는 이유가 여기 있습니다. 이 모델을 예컨대 분류 작업에 파인 튜닝할 수 있습니다. 고객 지원 이메일에 대해 제가 앞서 말한 분류, 즉 ‘긴급/비긴급’ 같은 라벨로, 수천 개 정도의 예시 텍스트와 해당 분류를 제공해 학습시키는 거죠. 그러고 나면 모델은 새로 주어진 텍스트의 긴급도를 분류하는 데 놀라울 만큼 잘 작동합니다. “이 메시지는 내가 사전학습과 파인 튜닝에서 배운 것에 비춰 볼 때, 약 90% 확률로 긴급하다”와 같이 판단을 내릴 수 있게 됩니다.
루카스:
예를 들어 BERT의 경우 빠진 단어를 채우는 모델이라고 할 수 있는데, 그런 모델을 실제로 고객 지원 메시지를 분류하는 모델로는 어떻게 바꾸나요?
클렘:
파인 튜닝에서는 레이어를 하나 추가해 모델을 특정 과제에 맞게 미세 조정합니다. 이건 더 장기적인 접근이죠. 저는 이 방식이 매우 흥미롭다고 봅니다. 직관적으로도 “머신러닝을 올바르게 하는 방법”처럼 느껴지기 때문이에요. 과거 머신러닝, 특히 스타트업 분야에서 많이 보였던 건, 머신러닝으로 데이터 네트워크 효과를 만들겠다는 약속이었습니다. 더 많은 데이터를 모델에 주면 성능이 좋아질 거라는 가정이 있죠. 그건 맞지만, 문제는 항상 “이미 하고 있는 일”에서 성능이 조금씩만 좋아진다는 점이었습니다. 예를 들어 시계열 예측을 한다고 해봅시다. 데이터 포인트가 10억 개 있고, 모델 정확도가 90%라고 할 때, 90억, 100억 개를 더 추가하면 정확도가 90.5%로 오를 수 있습니다. 좋은 개선이긴 하지만, 전형적인 네트워크 효과에서 기대하는 수준의 성능 상승, 즉 결과를 10배, 100배로 끌어올리는 종류의 개선은 아닙니다. 전이 학습에서는 조금 다릅니다. 단일 과제의 정확도를 조금씩 올리는 데 그치지 않고, 해결할 수 있는 과제의 범위 자체가 넓어지거든요. 즉 정확도만 올리는 게 아니라, 모델이 수행할 수 있는 능력의 폭이 커집니다. 여기서 일론 머스크식의 과격한 예측까지 가고 싶진 않지만요. 다만 일론 머스크가 OpenAI를 설립할 때 했던 이야기, “모두를 위한 오픈소스에 커뮤니티 전체가 기여해야 한다”는 취지로 보면, 전이 학습과 결합될 여지가 있습니다. 모든 기업이 각자의 데이터셋, 컴퓨팅 자원, 그리고 머신러닝 모델의 웨이트를 공유해, 개별 기업이 홀로 할 수 있는 것보다 100배 더 많은 일을 해낼 수 있는 거대한 오픈소스 모델을 함께 만드는 세상을 상상해볼 수 있죠. 가까운 미래에 실제로 그렇게 될지는 모르겠습니다. 하지만 개념적으로 볼 때, 전이 학습을 생각할 때 주목할 만한 관점이라고 느낍니다. 다른 머신러닝 기법들과 대비되는 지점이기도 하고요.
루카스:
그러고 보니, OpenAI가 초기 GPT 모델들의 웨이트를 공개하지 않은 것에 대해 어떤 감정이나 생각이 있으셨나요? 아니면 전반적으로 GPT 모델들에 대해선 어떠셨는지요?
클렘:
맞아요. GPT, GPT-2, 그리고 중간의 몇몇 버전들은 오픈 소스였죠? Transformers에도 들어 있고, 그 모델들을 쓰는 기업도 정말 많습니다. 아마 오늘날에는 GPG-3보다 Transformers를 통해 GPT-2를 쓰는 기업이 더 많을 거예요. 그들은 사기업이니까 자신들이 만든 모델을 오픈 소스로 공개하지 않는 전략을 전적으로 존중합니다. GPT-3로 훌륭한 일을 해냈고, 텍스트 생성이 필요할 때 거의 모든 용도에 훌륭한 모델이에요. 정말 유용하죠. 그들이 NLP 역량을 민주화하는 데 기여한 모든 작업에 정말 감사하게 생각합니다. 우리의 목표도 NLP의 민주화이기 때문에, 그들이 스타트업 커뮤니티 쪽으로 이를 확산시킨 점이 의미 있다고 느껴요. 많은 사람들이 커뮤니케이션 측면에서 우리가 지금까지 NLP로 해오던 것보다 훨씬 더 많은 일을 할 수 있다는 사실을 깨닫게 되었고, 그건 정말 좋은 일입니다. 생태계의 성장에 보탬이 되었고, NLP를 스포트라이트로 끌어올리는 데에도 기여했죠. 정말 훌륭했다고 봅니다. 그리고 많은 기업이 GPT-3를 쓰기 시작하는 모습을 보는데, 당연히 비용이 비싸고 확장성은 그리 높지 않죠. 자신의 용례에 맞춰 업데이트하기도 어렵습니다. 타사의 독점 API 위에 구축하면 기술적 경쟁 우위를 만들기가 쉽지 않거든요. 우리는 많은 회사들이 GPT-3를 쓰다가 NLP를 더 깊이 이해하게 되고, 그러고 나서 우리의 도구로 넘어오는 것을 봅니다. 반대로도 같은 일이 일어난다고 확신해요. 어떤 사람들은 우리 오픈 소스 도구로 시작했다가, 이후에 GPT-3나 Google NLP 서비스, AWS Comprehend처럼 더 기성품에 가까운 것을 쓰기로 결정하기도 하죠. 이들 회사도 예전부터 NLP를 위한 API를 제공해 왔고요. 모두가 성장하는 같은 생태계의 일부라고 생각합니다. 그래서 무척 흥미롭습니다.
루카스:
말씀하신 BERT 접근법과 GPT 접근법 사이에 차이가 있다고 느끼시나요? 그러니까, GPT는 아주 화제가 되었고 텍스트 생성 성능도 정말 인상적이잖아요. OpenAI가 그 부분에서 근본적으로 다른 무언가를 하고 있다고 느끼시나요?
클렘:
네. 둘 다 Transformer 계열 모델이죠? 기본적으로 같은 기법을 쓰지만 아키텍처가 약간 다릅니다. 예를 들어 BERT는 mask filling을 하고, GPT는 language modeling, 그러니까 다음 단어 예측을 합니다. 그래서 조금 다르고, 그 때문에 텍스트 생성 능력이 훨씬 강력한 거예요. 물론 한계도 있습니다. 예컨대 분류 작업을 하려면 GPT로 하면 안 됩니다. 전혀 맞지 않아요. 둘은 아키텍처의 작은 변형으로 서로 다른 용례를 풉니다. 우리는 GPT를 재현한 사례들도 봤고, GPT-2도 있었죠. 며칠 전엔 Eleuther라는 팀이 GPT-Neo를 공개했는데, 발음은 저도 정확히 모르겠지만요. GPT-3와 같은 아키텍처를 쓰되 현재는 파라미터 수가 더 적고, 앞으로 늘릴 계획이라고 합니다. 현재 크기는 OpenAI가 API로 제공하는 GPT-3 중 가장 작은 모델에 해당하는 수준인 것 같아요. 그리고 잘 작동합니다. 오픈 소스 커뮤니티의 힘을 보는 건 정말 흥미로워요. 제 근본적인 확신 중 하나는, NLP나 전반적인 머신러닝 같은 분야에서는 과학계 전체와 오픈 소스 생태계를 상대로 경쟁하는 위치가 최악이라는 겁니다.
루카스:
물론이죠.
클렘:
제가 이런 위치에 있었던 적이 있어서 하는 말인데, 사실 제가 처음 일했던 스타트업은 파리에서 컴퓨터 비전을 위한 머신러닝을 했습니다. 제 억양에서 들리겠지만 저는 프랑스인이에요. 그런데 이렇게 빠르게 변화하는 주제에서 과학계와 오픈 소스 생태계 전체를 상대로 경쟁한다는 건 매우 어려운 위치입니다. 대형 기관이나 대학에 수백 개의 연구실이 있고, 각각이 스타트업이 �� 수 있는 것보다 반드시 더 뛰어나서가 아니라, 그 수가 너무 많기 때문이죠. 우리가 한 번 이터레이션을 돌리는 동안, 바깥에선 100개의 연구실이 동시에 한 번씩 이터레이션을 돌립니다. 잠깐은 그들을 앞질러서 며칠간 SOTA가 될 수 있지만, 몇 일 뒤에 시작한 누군가가 금방 따라잡고, 그러면 더 이상 앞서 있다고 할 수 없게 됩니다. 그래서 우리는 오픈 소스와 과학계와 정면으로 경쟁하려 하기보다는, 오히려 그들을 강화하고 뒷받침하는 방향으로 아주 다른 접근을 택했습니다. 인프라와 데이터베이스 분야의 오픈 소스에서 영감을 받아, Elastic, MongoDB 같은 회사들이 보여준 모델처럼, 스타트업이 커뮤니티를 실질적으로 강화하고, 독점 도구를 만드는 것보다 천 배의 가치를 만들어낼 수 있다는 걸 증명할 수 있다고 봅니다. 그리고 만들어낸 가치의 100%를 굳이 모두 회수할 필요도 없죠. 엄청난 가치를 만들어내고 그중 1%만을 수익화해 회사의 지속 가능성을 확보하는 것으로도 충분합니다. 그럼에도 불구하고 MongoDB의 사례처럼 큰 상장사로 성장할 수 있습니다. 오픈 소스 코어를 가지면서도 조직을 키우고 지속 가능한 형태로 운영할 수 있는 겁니다. 머신러닝에서도 이것이 달라야 할 이유는 없다고 봅니다. 아직 거대한 오픈 소스 머신러닝 회사가 많지 않은 건 사실이지만, 그것은 기술의 성숙도 문제라고 생각해요. 아직은 너무 이른 겁니다. 불과 5년 전만 해도 머신러닝을 쓰는 이가 거의 없었으니까요. 하지만 곧 올 겁니다. 5년, 10년 뒤에는 한두 개가 아니라 다섯, 열 개에 달하는 대형 오픈 소스 머신러닝 회사들이 등장해도 저는 전혀 놀라지 않을 겁니다.
루카스:
지난 몇 년 동안 NLP의 최전선에서 가장 가까이 지켜보셨을 텐데요. 모델이 더 강력해지고 유용해지면서 실제 적용 분야도 달라졌다고 느끼시나요? 3년 전에는 상상하지 못했을 법한 일들을 사람들이 지금은 하고 있다고 보시나요?
클렘:
네, 솔직히 말해서 Transformers를 사용하는 5,000개 회사 중에서, 정확히 비율을 말하긴 어렵지만 상당수가 프로덕션에서 Transformers를 쓰고 있다고 봅니다. 그리고 이들 대부분은 5년 전만 해도 프로덕션에서 NLP를 쓰지 않았을 거예요. 많은 사례가 예전에는 아예 불가능해서 손을 놓고 있었거나, 사람이 일일이 하던 작업이었죠. 예를 들어 모더레이션이 그런 좋은 예입니다. 아까 말씀드린 고객 지원 티켓 분류도 매우 수작업 중심 프로세스를 대체하고 있고요. Gmail의 자동완성은 정말, 정말 큽니다. 지난 몇 달 동안 제 생산성을 가장 크게 높여준 건, 사실상 이메일의 절반을 Gmail이 완성해 주는 기능이었어요. 지금은 대부분의 검색 엔진이 NLP, 특히 Transformer 모델로 구동됩니다. Google도 이제 대부분의 쿼리가 Transformers로 처리된다고 밝히고 있죠. 어쩌면 가장 대중적인 소비자 제품군에서 일어나는 변화일 겁니다. 제품이 만들어지는 방식 자체를 엄청나게 바꾸고 있어요. 그래서 GPT-3가 스타트업 세계에서 NLP를 전면에 올려놓는 걸 보는 것도 무척 흥미롭습니다. 처음부터 NLP를 활용해 제품을 설계하는 회사들이 등장하면 판도가 달라지거든요. 그렇게 하면 만드는 방식 자체가 달라지니까요. 법률 같은 도메인을 예로 들어도 좋고, 사실 오늘날 존재하는 거의 모든 회사를 떠올려 보세요. “만약 이 회사들이 오늘날의 NLP 역량을 가지고 지금 막 시작한다면?”이라고 상상해 보면, 전혀 다른 방식으로 할 수 있는 아이디어가 정말 많다는 걸 확인하게 됩니다. 예컨대 DocuSign을 떠올려 보죠. 문서 분석을 NLP로 처음부터 얹어서 오늘 시작한다면 어떨까요? 그리고 Twitter는—
루카스:
잠깐만요, DocuSign 얘기 좀 더 해주세요. 제가 DocuSign을 쓸 때는 보통 메시지를 하나 받고, 서명하기를 클릭한 다음에 문서에 서명하거든요. 그렇다면 오늘날의 모든 기술을 처음부터 적용해 DocuSign이 새로 시작했다면, 뭐가 달라졌을까요?
클렘:
잘 모르겠어요. 문서 분석을 너무 많이 해줄 거예요... 요약하자면 “너무 길어서 안 읽음”이 붙겠죠.
루카스:
계약 때문에요?
클렘:
네, 계약서 말이에요. 다섯 장짜리 문서를 일일이 읽는 대신, 자동으로 생성된 요약본을 받아볼 수 있겠죠—
루카스:
알겠어요, 알겠어요.
클렘:
-초록색이나 빨간색으로 하이라이트해서요. 문서에서 “오, 여기가 핵심이네” 싶은 흥미로운 부분들, 이를테면 예상 수익을 얼마로 정하는지처럼 돈과 직결된 대목들이요.
루카스:
그러게요.
클렘:
커다란 초록색 깜빡이는 불로 “주의하세요…”라고 표시한다든지, 혹은 작은 별표로 “앞에서 쓴 내용은 전부…아니…이 경우에는 전혀 적용되지 않습니다” 같은 조건이 붙어 있으면, 그런 자잘한 조건들에는 커다란 빨간색 깜빡이는 불을 달아서 “조심하세요, 여기서 당신을 곤경에 빠뜨리려는 겁니다”라고 알려줘야 해요.
루카스:
정말 마음에 들어요.
클렘:
그런 것들처럼—
루카스:
정말 재미있었어요. 이 기술이 처음부터 있었다면 트위터는 어떻게 시작됐을지 이야기해 주세요.
클렘:
트위터는 무엇을 할 수 있을까요? 먼저 피드를 완전히 다르게 만들겠죠. 단순히 인기 있는 트윗이나, 아니면 논쟁적인 트윗을 보여주진 않을 거예요. 대신 당신이 공감할 만한 트윗, 이전에 당신이 올린 트윗을 바탕으로 관심 가질 만한 트윗을 보여줄 겁니다. 바람직하게는 콘텐츠를 적절히 중재할 수 있을 것이고, 더 많은 편향을 피하고, 폭력적이거나 부적절한 내용, 인종차별, 나쁜 행동을 더 잘 걸러낼 수 있겠죠. 또 무엇이 가능할까요? 개인적으로는 당연히 수정 버튼을 원하겠지만, 그건 NLP가 도움이 될지는 잘 모르겠네요.
루카스:
무슨 버튼이요?
클렘:
아니요. 오랫동안 모두가 요구해 온, 그 유명한 기능 말이죠. 다들 수정 버튼을 달아 달라고—
루카스:
아, 수정 버튼요? 아뇨, 맞아요, 맞아요.
클렘:
하지만 NLP로 구동되는 기능은 아니겠죠. 예를 들어 오늘 막 시작한다면, 그건 추가하겠어요. 또 뭐가 있을까요? 요즘 NLP로 그들이 무엇을 다르게 할지 아이디어가 있나요?
루카스:
글쎄요, 솔직히 말씀드리면, 이 부분에 대해 당신은 어떻게 느끼는지 모르겠지만, 제가 텍스트 생성 기술, NLP 기술을 보면—제가 15년 전쯤 처음 발을 들였던 분야이기도 한데—기술이 제게는 놀라울 만큼 발전했음에도 불구하고 응용 사례가 부족하다는 점이 오히려 더 흥미롭게 느껴집니다. 튜링 테스트에 대해 기억하는데, 정확한 문구는 잊었지만, 대략 컴퓨터와 10분 정도 대화를 나눴을 때 사람이냐 아니냐를 구분하지 못하면 그 시점에선 AGI에 가까워진 게 아닐까 하는 식이었죠. 그때는 정말 불가능해 보였는데, 이���는 머지않아 통과할 것 같다는 생각이 듭니다. 변형된 형태들도 있지만, 점점 더 컴퓨터가 GPT-3나 다른 텍스트 생성 모델만으로도 제가 사람과 대화하고 있다고 착각하게 만들 수 있을 것 같다는 느낌이 들어요. 그런데도 정작 완전히 새로운 NLP 응용 제품들과는 아직 제대로 만나지 못하고 있다는 생각이 듭니다. 왜 그런지 궁금해요.
클렘:
글쎄요, 저는 동의하기 어렵습니다. 지금은 정말 곳곳에서 쓰이고 있다고 생각해요. NLP를 전혀 쓰기 시작하지 않은 제품은 많지 않잖아요, 그렇죠?
루카스:
어쩌면 생각보다 더 미묘해서 제가—
클렘:
그럴 수도 있죠. 예전처럼 대화형 AI 인터페이스가 거대한 형태로 세상을 장악했다는 느낌은 덜하니까요. 오랫동안 그런 것들이 NLP의 가장 대중적이고 주류적인 얼굴처럼 여겨졌잖아요. 사람들은 NLP 하면 어느 정도 시리, 알렉사를 떠올리죠. 그리고 사실 그쪽이 폭발적으로 성장하진 않았습니다. 챗봇이 아직 아주 뛰어나다고 증명된 것도 아니고, 실제 문제를 제대로 해결할 수 있는 역량 면에서 아직 도달하지 못했죠. 하지만 기존 활용 사례를 기준으로 보면 훨씬 더 절제되고 점진적인 방식으로 채택되었다고 생각해요. 아마 매일 구글을 쓰실 텐데, 예전과 지금의 검색 결과가 크게 달라 보이진 않을 수 있어요. 그런데 현실은, 사람들이 매일 사용하는 가장 주류이자 사용량이 압도적인 제품이 현대적 NLP, 즉 Transformers로 구동되고 있다는 점이죠. 다만 경험의 변화라는 측면에서 기대하셨을 법한 만큼 그렇게 “획기적”으로 체감되진 않는 것뿐입니다. NLP의 어려움 중 하나는, 언어가 매우 오랫동안 전형적인 인간의 영역이었기 때문에 AI, 더 나아가 AGI, 거의 기계 지능 같은 연상을 불러일으킨다는 점이에요. 당연히 영화 ‘Her’ 같은 SF를 보면 NLP와 그런 이미지를 조금 연결하게 되고, NLP가 그런 모습을 보여줄 거라고 기대하게 되죠. 하지만 실제로는 사용자 입장에서 뚜렷이 느끼기 어렵고 눈에 잘 띄지 않는 무대 뒤편에서의 생산성 향상이 더 컸던 게 사실입니다.
루카스:
채팅 인터페이스에 대해 낙관적으로 보시나요?
클렘:
그래요. 대부분의 우리가 잘못 본 지점이 뭐였는지 생각해 보면… 그러니까, 우리는 처음에 Hugging Face로 AI 친구, 재미있는 대화형 AI를 만들면서 시작했죠. Hugging Face를 시작할 때 사람들은 우리가 NLP에 집착한다고 했고, 우리는 “지금 가장 어려운 문제가 뭘까?”라고 물었어요. 바로 오픈 도메인 대화형 AI, 즉 최근 스포츠 경기부터 마지막 연애까지 모든 것을 두루 이야기할 수 있는 AI를 만드는 일이었죠. 정말 말 그대로 모든 것에 대해 대화할 수 있는 존재요. 우리는 “그게 가장 어렵다. 그걸 하자”라고 생각했어요. 그런데 잘 안 됐죠. 우리가 잘못 봤던 것, 그리고 많은 사람들이 잘못 보고 있는 건 아마도 타이밍이라고 생각해요. 지금 우리가 하고 있는 방식의 대화, 특히 오픈 도메인 대화는 엄청나게 어렵거든요. 거의 궁극의 NLP 과제에 가깝다고 할 수 있어요. 수많은 NLP 태스크를 동시에 수행하고, 우선순위를 매겨야 하니까요. 여러분이 제게 말할 때 저는 정보를 추출하고, 이해하고, 당신의 의도를 분류하고, 문장의 의미를 분류하고, 감정도 파악해야 하죠. 톤이 달라지면 의미도 달라지니까요. 궁극적으로는 더 나은 대화형 AI에 도달할 거라고 봅니다. 그게 5년일지, 10년일지, 더 오래 걸릴지는 모르지만요. 그래도 그 방향으로 가고 있어요. 이미 고객 지원 챗봇처럼 더 수직적인 문제들에서는 어느 정도 해결이 되고 있죠. 오픈 소스 커뮤니티의 Rasa가 그 부분에서 정말 잘하고 있다고 생각해요. 내일 당장 모든 것에 대해 대화할 수 있는 AI, 우리가 Hugging Face를 시작할 때 꿈꿨던 그 모습에 도달하진 못할 겁니다. 하지만 결국엔 도달할 거라고 믿어요. 그때가 되면 사용자 경험 차원에서 “아, 이제는 다르구나” 하고 체감하게 될 텐데, 아마 우리가 기대하는 것보다 훨씬 더 많은 시간이 걸릴 겁니다.
루카스:
좋네요. 자, 저희는 항상 두 가지 질문으로 마무리하는데, 남은 몇 분 동안 그걸 여쭤보고 싶어요. 머신러닝에서 과소평가된 주제가 뭐라고 생각하시나요? 아니면 선생님 입장에서는 NLP에서 과소평가된 주제일 수도 있겠죠. 만약 지금 하는 본업이 없다면 직접 해보고 싶을 만한 주제를 말씀해 주실 수 있을까요?
클렘:
좋은 질문이에요. 최근 몇 주 동안 정말 흥미롭게 지켜본 분야가 음성입니다. 음성을 텍스트로, 텍스트를 음성으로 변환하는 기술이요. 몇 년 전의 NLP처럼, 그동안은 다소 지루하고 연구 인력이 많지 않은 분야로 밀려나 있었던 것 같거든요. 그런데 몇몇 연구팀, 특히 FAIR의 Alexis Conneau 팀이 wav2vec으로 보여준 것 덕분에 Transformer 모델을 활용한 새로운 진전들이 나오기 시작했고, 그게 새로운 역량을 가져오고 있어요. 저는 꽤 기대하고 있어요. 품질 면에서 일종의 부활과 도약이 올 거라고 봅니다. 영어만이 아니라 다른 언어에서도요. 몇 주 전에 Hugging Face에서 커뮤니티 스프린트를 진행했는데, 300명 넘는 참가자들이 저자원 언어 거의 100개에 대해 음성 인식 모델을 기여해 주셨습니다. 커뮤니티의 반응을 보는 게 정말 멋졌어요. 앞으로 몇 달 동안 음성 분야에서 더 많은 일이 벌어질 거고, 그게 새로운 활용 사례를 열어줄 거라고 생각해요. 음성과 NLP를 결합할 수 있다면 정말 멋진 것들을 할 수 있거든요. 예를 들어, 지금 Zoom 같은 제품을 좋은 음성 인식과 NLP를 전제로 처음부터 만든다면, 꽤 근사한 기능들을 구현할 수 있을 겁니다. 분위기가 좋아지면 자동 박수가 나와야 하는데, 그렇지 않으면 모두가 음소거 상태라 반응이 없잖아요. 지금의 Zoom 문제는, 다들 음소거라 제가 “좋아요!”라고 말해도 저만 환호하는 상황이 생긴다는 거죠. 누군가가 “우라!”라고 외치면 이모지 샤워나 축하 이모지가 자동으로 터지는 식이어야 한다고 봐요. 저는 음성 분야가 기대됩니다. 요즘 이 분야를 살펴보지 않았다면 꼭 한번 보세요. 흥미로운 일들이 많이 벌어지고 있습니다.
루카스:
아주 멋지네요. 마지막 질문입니다. 그리고 이건 당신이 유독 잘 보실 수 있는 자리라고 느끼는데요. 아이디어 단계에서 모델을 고민하는 것부터 실제 프로덕션에 배포하기까지, 가장 어려운 점은 무엇인가요? 혹은 예상치 못한 도전 과제들이 무엇인가요? 당신은 실제로 이를 매우 쉽게 만들어 주는 플랫폼을 운영하고 있으니, 관점이 독특하다고 생각해요. 사람们이 당신들의 도구를 쓸 때도 여전히 어려움이 있나요? 더 해야 할 일이 남아 있나요, 아니면 그냥 바로 잘 작동하나요?
클렘:
그래도 사람과 관련된 과제가 여전히 많다고 생각해요. 머신러닝 모델은 전통적인 소프트웨어 엔지니어링과는 다른 방식으로, 다른 일을 하기 때문이죠. 많은 회사들에게 그 전환은 정말 정말 어렵습니다. 예를 들어 설명 가능성의 부족, 모델의 결과를 예측하고 원하는 방향으로 미세 조정하기가 더 어렵다는 점 같은 것들이요. 원하는 결과를 명확히 정의할 수 있었던 소프트웨어 엔지니어링에 오래 몸담았던 사람들에게는, 여전히 이해하고 받아들이기가 무척 어렵습니다. 제가 보기에는 기술적 문제 자체보다, 사람과 머신러닝에 대한 이해의 문제—그 부분이 가장 큰 난관인 경우가 많아요. 기술적인 측면에서는, 더 크고 큰 모델들을 도입하는 일에 우리가 계속 흥분하고 있지만, 그런 모델들을 프로덕션에서 돌리는 일은 여전히 어렵습니다. 우리는 클라우드 제공업체들과 많은 작업을 해왔고, 얼마 전 AWS와 전략적 파트너십을 발표했지만, 여전히 Google Cloud, Azure, 그리고 다른 클라우드와도 긴밀히 협력하고 있어요. 하지만 대규모로 대형 언어 모델을 프로덕션에 올리려면 일정 수준의 숙련과 작업이 필요합니다. 충분히 해낼 수는 있어요. 제 기억이 맞다면, Coinbase [편집자 주: 클렘은 “Roblox”를 의미했음]가 우리 Transformers의 DistilBERT를 활용해 시간당 10억 건이 넘는 추론을 수행한 방법을 다룬 좋은 글과 블로그 포스트를 올린 바 있죠. 그래도 여전히 도전적이고, 많은 인프라 작업이 필요합니다.
루카스:
멋지네요. 시간 내주셔서 감사합니다. 정말 즐거운 대화였습니다.
클렘:
고마워요, 루카스.
루카스:
Gradient Dissent의 또 다른 에피소드를 들어주셔서 감사합니다. 이런 인터뷰를 진행하는 건 정말 즐겁고, 특히 이 에피소드를 듣는 분들의 목소리를 직접 들을 수 있을 때 더 즐겁습니다. 댓글로 의견을 남기시거나 대화를 시작해 주시면, 앞으로도 이런 에피소드를 더 만들고 싶은 큰 동기부여가 됩니다. 좋아요와 구독도 부탁드려요. 정말 큰 힘이 됩니다.

이 글은 AI로 번역되었습니다. 오역이 있을 수 있으니 댓글로 신고해 주세요. 원문 보고서는 다음 링크에서 확인할 수 있습니다: 원문 보고서 보기