Microsoft에 대한 생각과 GitHub Copilot의 대안 테스트
요약
본 글은 Microsoft의 Copilot 출시 전략과 데이터 사용 방식에 대해 비판적으로 분석합니다. 특히 Copilot이 OpenAI Codex 모델을 기반으로 하며, 이 모델이 대규모 공개 GitHub 코퍼스를 학습했다는 배경을 설명합니다. 필자는 이러한 독점적 접근 방식이 장기적으로 개발자들에게 부정적인 영향을 미칠 수 있다고 주장하며, 오픈 대체재의 실현 가능성에 대한 의문을 제기합니다.
핵심 포인트
- Copilot은 OpenAI Codex 모델 기반이며 GPT-3의 파생 모델이다.
- Codex는 2020년 GitHub에서 수집된 대규모 공개 소프트웨어 저장소로 학습되었다.
- 필자는 Microsoft의 독점적 데이터 활용 방식에 비판적인 시각을 제시한다.
- AI 분야에서는 오픈 대체재의 실현 가능성을 당연하게 여겨서는 안 된다.
Microsoft에 대한 사색 및 GitHub Copilot 대체재 테스트.
콘텐츠 참고 사항 - 이 글은 평소 제가 쓰던 글보다 구조가 좀 덜 잡혀 있습니다. 모델 비교 내용만 궁금하시다면 여기로 건너뛰세요.
저는 최근 논의에서 Microsoft가 Copilot을 출시한 방식에 전략적 실수를 저질렀다고 주장했습니다. 즉, 오픈 소스 프로젝트의 대규모 데이터베이스를 기반으로 구축된 제품을 내놓으면서도, 그 프로젝트 자체는 매우 독점적으로 유지했다는 것입니다.
명확히 하자면, 저는 Microsoft가 용서할 수 없을 만큼 비도덕적인 행동을 했다고 말한 것이 아닙니다. 다만 장기적으로 볼 때, 그 결정이 Microsoft의 최선의 이익에 부합하지 않을 것이며, 오히려 더 개방적인 방식으로 출시했을 때보다 개발자들을 오픈 대체재를 사용하도록 유도함으로써 더 많은 비용을 초래할 것이라고 추측했습니다.
이것은 저에게 의문을 던지게 했습니다. 실제로 존재하는 대안들은 얼마나 실현 가능한가?
저는 그것들이 제대로 만들어졌거나 최소한 최첨단 기술 수준과 어렴풋하게라도 비교 가능하다고 당연하게 여겼는데, 이는 컴퓨터 과학, 특히 AI 분야에서는 매우 위험한 가정입니다.
제가 무엇을 발견했는지 말씀드리기 전에 (스포일러: 범위가 굉장히 넓습니다), Copilot 주변의 논쟁들을 간략히 요약하고 제가 가진 의견을 제시하겠습니다.
Microsoft Code Simulator 2021
위키피디아에 따르면, GitHub Copilot의 첫 알파 버전은 2021년 6월에 출시되었습니다 (맙소사, 벌써 2년이 지났나요?).
Copilot은 OpenAI의 Codex 모델을 기반으로 구축된 서비스입니다. Codex 자체는 OpenAI의 혁신적인 텍스트 생성 AI인 GPT-3의 파생 모델입니다. (그리고 만약 여러분이 GPT에 대해 들어본 적이 없다면, 용기 수면에서 성공적으로 깨어난 것을 축하드립니다!)
Copilot과 Codex는 어떻게 학습되었는지 때문에 즉시 논란을 일으켰습니다. OpenAI Codex 논문에 따르면, 이들은 대부분 GitHub Python 프로젝트로 구성된 코퍼스(corpus)를 가지고 GPT와 마찬가지로 다음 토큰 예측 작업을 받았습니다:
저희의 학습 데이터셋은 2020년 5월에 GitHub에 호스팅된 5,400만 개의 공개 소프트웨어 저장소에서 수집되었으며, 여기에는 1MB 미만의 고유한 Python 파일 179GB가 포함되어 있습니다. 저희는 자동 생성되었을 가능성이 높거나, 평균 라인 길이가 100줄을 초과하거나, 최대 라인 길이가 1,000줄을 초과하거나, 영숫자 문자가 차지하는 비율이 적은 파일을 걸러냈습니다. 필터링 후, 최종 데이터셋의 크기는 159GB였습니다.
(OpenAI는 나중에 다른 언어의 코드와 다른 웹사이트의 데이터를 사용하여 후속 모델들을 학습시켰습니다.)
지금 OpenAI가 이 프로젝트들이 오픈 소스임을 확인하기 위해 일부 필터링을 했으며, 만약 그들의 저자들에게 요청했다면 많은 사람들이 포함하는 것에 동의했을 수도 있습니다. 하지만 대신 OpenAI는 “허락을 구하기보다 사과하는 것이 낫다”라는 태도를 채택했는데, 심지어 ‘사과하는 것’ 부분마저도 없었습니다.
정말 좋은 데이터를 얻었네요
이러한 태도는 그들만의 독특한 것이 아니며, 머신러닝의 일반적인 인센티브에서 비롯된 것입니다. 즉, 정보에 입각한 동의(informed consent)만 필요하지 않다면 데이터는 종종 쉽게 접근할 수 있습니다. 일부 데이터는 저작권이 있을 수 있고, 일부 데이터는 출처 표기(attribution)가 필요한 오픈 소스일 수 있는데, 이 경우 작업의 성격상 신뢰성 있게 출처를 밝히는 것이 불가능할 수 있으며, 일부는 오직 오픈 소스 프로젝트에만 사용 가능한 것일 수 있고, 일부 데이터는 서비스 약관에서 스크래핑을 금지하는 웹사이트의 퍼블릭 도메인(public domain)에 있을 수도 있습니다.
데이터가 퍼블릭 도메인이고 접근 가능하다 하더라도, 그 저자는 생성형 AI가 등장하기 전에 데이터를 공개했을 수 있으며, 자신의 직업을 자동화하는 도구로 사용되는 것에 만족하지 않을 수 있습니다. 따라서 공용 데이터(public domain data)를 사용할 때조차도 저자에게 허락을 구하는 것이 더 윤리적일 수 있습니다 (하지만 법적으로는 불필요합니다).
요점은, 동의를 얻고 싶다면 많은 사람들에게 그들의 데이터를 요청해야 한다는 것입니다. 때로는 데이터 소유자들이 자신이 그런 데이터가 존재했다는 사실조차 잊어버렸거나, 연결된 이메일 주소가 더 이상 사용되지 않을 수도 있습니다. 때로는 많은 사람들이 기여한 데이터라서 실제로 누가 소유자인지 불분명할 때도 있습니다. 그냥 데이터를 스크랩하고 그 어떤 것도 걱정하지 않는 것이 훨씬 쉽습니다.
그리고 이것이 도덕적으로 잘못되었다는 것조차 명확하지 않습니다? 복사하는 것은 절도가 아닙니다. 지적 재산권(IP)은 자연법이 아니라, 무언가를 창작하도록 장려하기 위해 우리가 마련한 시스템이며, 논란의 여지가 있지만 꽤나 망가진 시스템입니다. 제가 스파이더맨 팬픽션을 쓰고 있다면, 누가 기계 학습 연구원들을 판단할 수 있겠습니까?
어쩌면 차이점은 팬픽션은 아마추어이고, OpenAI는 돈을 벌려고 노력하고 있다는 것일지도 모릅니다? 하지만 저는 제 스파이더맨-해리 포터 크로스오버를 팔아서 돈 버는 것에 꽤 만족할 것이고, 마블이나 J.K. 롤링이 수익 일부를 원한다면 신경 안 쓸 겁니다.
저의 의견: 모든 것을 해적처럼 이용하라 (pirate everything)
이상적인 세상에서, AI 개발자들이 기계 학습 프로젝트에 데이터를 사용할 때마다 동의를 구해야 한다고 기대해서는 안 된다고 생각합니다.
우리가 군중 사진을 찍을 때, 그 군중 속의 모든 개인이 사진 출판에 거부권을 가져야 한다고 생각하지 않습니다. 특히 군중이 흐릿하거나 충분히 멀리 떨어져 있어서 개인을 식별할 수 없는 경우 말입니다. 만약 도시의 파노라마 사진을 찍는다면, 사진에서 보이는 건물들에 기여한 모든 건축가에게 크레딧을 줄 것이라고 기대되지는 않을 것입니다. (물론 당신의 국가 법률에 따라 그럴 수도 있습니다. 하지만 아마 그렇지 않을 겁니다.)
군중 속 개개인의 기여는 너무 작아서 그들 중 누구 한 명에게 허락을 구하기 위해 찾아 나설 가치가 없습니다. 게다가 사진을 공유하는 것이 군중 속 사람들의 인센티브를 빼앗아 가지도 않습니다. 영화를 무단으로 재발행하는 것은 영화 자금을 대는 사람들의 인센티브에 해를 끼치고, 그들이 더 많은 영화에 투자할 가능성을 낮춥니다. 허락 없이 군중의 사진을 찍는 것이 군중 속 누구에게든 다시 공공장소에 가지 않도록 만들지는 않습니다.
저는 지적재산권(IP) 전반을 “사람들이 더 많은 것을 만들도록 인센티브를 주는가” 그리고 “그 인센티브가 무언가를 만들거나 얻으려는 다른 사람들의 비용과 불편함을 정당화할 만큼 충분한가?”라는 렌즈로 봐야 한다고 생각합니다. 그 관점에서 볼 때, 저작권 기간은 너무 길고, 특허는 비생산적이며 오랫동안 그래 왔다는 주장이 제기될 수 있습니다.
그 관점에서 기계 학습(Machine Learning)은 어떤가요?
제 생각엔 정말 아주 좋습니다!
예를 들어, 나무들 때문에 숲을 놓치거나, 손가락 개수가 잘못되거나 환각 현상(hallucinations), 정렬(alignment), 지적재산권에 대해 너무 많이 불평하다 보면, 우리를 위해 코딩하고 그림을 그릴 수 있는 마법의 돌을 만들었다는 사실을 잊어버리기 쉽습니다! 작년에는 너무 어려워서 신경 쓰기 힘들었을 많은 것들이 오늘날은 사소한 일이 되었습니다.
저는 온라인에 다양한 이야기를 게시하는 작가를 팔로우하는데, 그중 하나는 세계관 구축 문서(SCP의 공포 요소가 없는 버전이라고 생각하시면 됩니다) 시리즈로, 매일 업데이트되며 각 문서는 일러스트레이션으로 시작합니다. AI 이전이라면, 작가가 자신의 시리즈를 위해 아티스트에게 그림을 의뢰해야 했을 때, 그는 그냥 일러스트레이션 없이 진행했을 것입니다. 그는 온라인에서 자유롭게 이용 가능한 이야기에 대해 매일 이미지를 제작하도록 아티스트에게 돈을 지불하지 않았을 겁니다.
Copilot을 사용하면서 JavaScript와 Python의 일반적인 코딩 패턴에 대해 배울 수 있었고; ChatGPT를 사용하면서는 이전에 익숙하지 않았던 기술로 프로젝트를 시작할 수 있게 해주었습니다. 처음 부족했던 자신감을 극복하는 데 도움이 되는 작은 추진력을 얻었기 때문입니다.
사람들은 OpenAI와 Microsoft가 소유하고 있다는 점에 대해 본능적으로 경계심을 느낍니다. Microsoft는 거대한 메가기업이며, 과거에 공격적인 반경쟁적이고 오픈소스에 적대적인 행동을 한 것으로 알려져 왔습니다. 그래서 많은 사람들은 Copilot을 계략으로 보고, 커뮤니티의 작업물을 사용하면서도 그 대가로 거의 기여하지 않아 결국 모든 가치를 자신들의 사설 생태계로 가져가는 위장된 시도로 여깁니다.
저는 그런 우려를 이해하지만, 저는 그것이 별로 보이지 않습니다. 첫째, Copilot만으로는 예를 들어 GCC의 완전히 독점적인 버전을 악의적인 독점적 목표를 위해 만드는 데 충분하지 않습니다. 네, Copilot은 매우 특정한 경우에 오픈소스 코드를 유출하기도 하지만, 단순히 “출처 표기 없이 <어떤 OSS 프로젝트>의 독점 복제본을 만들어라”라고 프롬프트를 입력한다고 해서 작동하는 소프트웨어를 얻을 수는 없습니다.
그리고 둘째, OpenAI는 놀라운 것을 창조했습니다! 제가 나열한 모든 버그와 우려 사항들, 그리고 아직 언급하지 않은 것들을 통틀어, 저에게는 코딩을 시작하고 Copilot이 제가 막 쓰려고 하던 것을 정확히 제안해 줄 때 느끼는 순수한 경이로움에 비하면 거의 부차적인 문제입니다. 이 기계는 제 생각을 읽고 있습니다.
물론 Microsoft 임원들과 그들을 움직이는 시장의 힘에는 이기적인 목표가 있지만, 저는 전체 프로젝트의 기본적인 동기가 “멋진 것을 창조하는 것”이라고 가정해도 지나치지 않으며, 그들이 그렇게 할 수 있는 유일한 이유가 OSS 생태계를 사보타주하는 것이라고 단정해서는 안 된다고 생각합니다.
따라서 Microsoft가 윤리적으로 잘못된 일을 했다고 생각하지 않습니다. 하지만 전략적으로 잘못된 일이었을까요?
Microsoft에 대한 영향
비록 마이크로소프트가 잘못한 것이 없다고 해도, 분명히 비호감한 행동을 했습니다. 수많은 오픈소스 개발자들이 그들에게 완전히 분노했으며, 다시는 마이크로소프트 제품을 사용하지 않겠다고 맹세하고, 회사가 '포용-확장-제거(Embrace-Extend-Extinguish)'의 뿌리로 돌아가고 있다고 외쳤습니다.
논란이 너무 심해져서 당시 제가 속했던 작은 회사에서는 최근 스캔들로 인해 마이크로소프트에게 코드를 통제당할까 봐 걱정되어 오픈소스 코드를 Github로 옮기는 것을 미루기로 결정했습니다. (아니요, 이것이 매우 합리적인 걱정이었다고 생각하지는 않지만, 비용-편익 분석보다는 부정적인 연관성에 관한 것이었습니다.)
이것은 마이크로소프트가 신경 써야 할 부분처럼 느껴집니다. 그들은 오픈소스의 적이라는 오래된 평판을 떨쳐내기 위해 많은 돈을 썼습니다. OSS 프로젝트에 자금을 지원하고, 코드를 점점 더 많이 오픈소스로 공개했으며(이는 반드시 이타적이라기보다는 상업화하는 것에 가깝습니다), Github를 인수하여 오픈소스 프로젝트에 무료로 유지했습니다.
그들의 메시지는 분명히 “걱정 마세요, 오픈소스 개발자 여러분, 저희와 함께라면 안전합니다”였으며, 개발자들이 마이크로소프트 생태계에 머무르고 Github, DotNet, Azure 및 기타 제품을 계속 사용하며, 나아가 관리자들을 설득하여 이 제품들의 엔터프라이즈 버전을 구매하도록 만들기를 바라는 것이었습니다.
오픈소스에 대한 이러한 헌신에 달러 금액을 매기기는 어렵지만, 0이 아닌 느낌입니다. 최소한 그것은 2000년대 초반 마이크로소프트의 오픈소스 예산보다 더 큽니다. 오픈소스 커뮤니티로부터 얻는 좋은 홍보(PR)는 분명히 마이크로소프트에게 금전적 가치가 있습니다.
그래서 몇 달 전, 저는 의문을 갖기 시작했습니다. Copilot에서 창출된 수익이 그들이 수년간 쌓아 올린 호의를 버릴 만큼 정말 가치가 있었을까요?
사실 저는 Microsoft 임원들이 그 질문 자체를 고려했는지조차 모르겠습니다. 저는 호의를 버린 것이 의도적인 계산이라기보다는 실수였다고 의심합니다. 그들은 Copilot이 일으킬 반발을 예상하지 못했고, 일단 이미 벌어진 일(fait accompli)에 직면하자 더욱 밀어붙이기로 결정했다고 생각합니다.
그리고 여러분은 만약 그들이 비용-편익 분석(cost-benefit analysis)을 했다면, 그들의 결정도 같았을 것이라고 주장할 수도 있습니다. 반발이 판매에 그렇게 큰 타격을 주지 않을 수 있고, 이제 그들은 시장에서 가장 강력한 코드 완성 모델을 가지고 있으며, 이는 돈으로 환산할 수 있는 무언가입니다. 어쩌면 작동하는 코드 비서(code assistant)를 파는 유일한 회사라는 이점이 나쁜 홍보(PR) 비용보다 클 수도 있습니다.
하지만… 그들이 오랫동안 그 시장에서 유일한 회사는 아닐지도 모릅니다.
AI가 오픈 소스로 전환되다
AI 분야에 관심을 기울이는 사람이라면 누구나, 지난 1년간 오픈 소스 개발의 진전 속도가 정말 놀라웠다는 것을 느낄 것입니다. 매주 새로운 오픈 소스 모델이나 프레임워크, 또는 적은 리소스로 기존 모델을 실행하거나 미세 조정(fine-tune)할 수 있는 새로운 최적화 방법이 나오는 것 같습니다.
OpenAI는 현재의 AI 열풍을 촉발시킨 Dall-E 2 모델을 2022년 4월에 발표했습니다. 최초의 오픈 소스 대안인 Stable Diffusion은 2022년 8월에 나왔습니다. 무려 네 달이나 차이가 납니다.
다른 사람들도 같은 추세를 알아차렸습니다. 오픈 소스 AI에 대해 찬사를 보내는 기사를 원한다면, Google 내부자의 이 문서를 강력히 추천합니다: We have no moat, and never does OpenAI.
이 문서는 오픈 소스 AI 개발에 대해 극도로 열광적입니다:
물론 제가 말하는 것은 오픈 소스에 관한 것입니다. 간단히 말해, 그들이 우리를 앞지르고 있습니다. 우리가 “주요 미해결 문제(major open problems)”라고 생각하는 것들이 오늘날 해결되어 사람들의 손에 들어와 있습니다. 몇 가지만 언급하자면:
AI 자동 생성 콘텐츠
본 콘텐츠는 HN OpenAI Codex의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기