Tech Ethics

오픈소스로 AI 생태계에 기여하는 카카오브레인의 노력

공유하기
카카오브레인을 상징하는 박스에서 다양한 이미지와 인공지능 프로그램, 데이터, 이미지 생성 프로그램 칼로가 나오는 이미지가 형상화 되어있다. 해당 그림은 중요한 기술을 이용자와 커뮤니티에 공유한다는 오픈소스를 상징한다.

‘오픈소스’는 소스 코드가 공개되어 있는 소프트웨어를 말합니다. 비유를 들어 설명한다면 오픈소스는 누구든지 쉽게 찾아볼 수 있는 ‘공개된 요리 레시피’라고 할 수 있습니다. 레시피가 공개되어 있다면 누구든 똑같은 맛을 내는 음식을 만들 수 있고 재료를 추가하거나 조리 방법을 바꿀 수 있듯, 오픈소스 소프트웨어는 모든 이용자가 소프트웨어의 '레시피'(소스 코드)를 볼 수 있고, 필요에 따라 수정하거나 개선할 수 있습니다. 이 '레시피'는 인터넷을 통해 무료로 공유되며, 누구나 사용하고 또 변형하면서 자신만의 버전을 만들 수 있습니다.

 

개인이나 회사가 개발한 소스 코드를 완전히 공개하면 독점적 지위가 사라져 손해를 볼 것 같지만, 공유는 더 큰 효용과 혁신을 만들어 내기도 합니다. 소스 코드가 공개되어 다양한 이용자들이 공유하고 협업하면 더 나은 제품을 만들 기회가 커집니다. 또한 개발자들은 오픈소스를 통해 다양한 도구와 기술을 접하며, 이를 기반으로 새로운 아이디어와 솔루션을 개발할 수 있습니다. 이 과정에서 오픈소스 커뮤니티 내의 협업과 지식 공유가 촉진되고, 오픈소스는 개발자들에게 다양한 도구와 기술을 제공함으로써 혁신을 촉진합니다.

 

실제로 오픈소스의 성공 사례로 꼽히는 운영체제 '리눅스(Linux)’는 지금도 전 세계의 많은 사람들에 의해 개발되고 개선되고 있으며 무료로 사용할 수 있습니다.

 

생성형 AI 시대에 더욱 주목받는 오픈소스

최근 더욱 중요해지고 있는 책임있는 AI(인공지능) 시스템 구축에서 오픈소스의 중요성은 다시금 주목받고 있습니다. 오픈소스를 구성하는 특유의 개방성과 협업은 자연스럽게 투명성을 확대하는 방향으로 해당 소프트웨어를 발전시키기 때문입니다. 오픈소스는 배타적인 소프트웨어와 달리 이용자들이 자신의 필요에 맞게 소프트웨어를 수정하고, 커뮤니티와 함께 문제를 해결할 수 있도록 더 많은 통제권을 부여합니다. 이렇게 되면 이용자들이 주도적으로 해당 소프트웨어를 사용하고 개선 방안을 논의하면서 소프트웨어의 보안과 신뢰성이 높아지고 개선을 위한 기록도 차곡차곡 쌓이기 때문에 투명성도 덩달아 확대됩니다.  소프트웨어의 잠재적인 문제점 역시 다수의 이용자가 다양한 관점으로 접근하기 때문에 빠르게 식별하고 수정할 수 있습니다. AI 모델의 투명성과 설명 가능성은 책임있는 AI 시스템 구축의 핵심 요소이며, 이러한 요소들은 오픈소스 소프트웨어가 더 많은 이용자의 손을 거치면서 증대됩니다. 

 

인공지능 기술 분야에서의 다양한 오픈소스 프로젝트

이같은 오픈소스 활동의 중요성은 전 세계적으로 인정받고 있으며, 많은 빅테크 기업들도 오픈소스 생태계 활성화에 기여하고 있습니다. 마이크로소프트는 Linux Foundation의 회원으로 활동하고 있으며, .NET Core, Visual Studio Code, PowerShell과 같은 자사의 기술과 서비스들을 오픈소스로 공개하였습니다. 특히 깃허브(GitHub)을 인수하여 오픈소스 프로젝트에 대한 기술적 지원뿐만 아니라 이벤트와 자원을 제공하며, 활발한 지원을 지속하고 있습니다.

 

구글 역시 텐서플로우(TensorFlow)라는 오픈소스 머신러닝 라이브러리를 개발하여, 개발자들이 복잡한 머신러닝 모델을 더욱 쉽게 구축하고 훈련시킬 수 있도록 지원하고 있습니다. 또한, 언어 모델 버트(BERT)를 오픈소스로 개발하여 AI 분야에 기여했습니다. 메타(구 페이스북) 역시 대규모 언어 생성 모델인 라마(LLaMA)를 오픈소스로 공개했습니다.

 

카카오브레인의 적극적 오픈소스 참여…40여 건 공유

카카오브레인 역시 생성형 AI 오픈소스 생태계 활성화를 위해 카카오브레인의 연구 개발 성과물을 적극적으로 공유하고 있습니다. 카카오 브레인은 특히 생성형 AI 모델에 핵심이 되는 1)데이터 셋 2) 생성형 AI 모델 3)라이브러리  분야에 공헌하고 있습니다.

 

1) 데이터 셋

Coyo-700M (https://github.com/kakaobrain/coyo-dataset)

카카오브레인의 이미지와 텍스트를 정제하는 coyo모델의 작동 원리가 도표와 사진으로 설명 되고 있다. coyo가 인터넷에 있는 HTML문서에서 데이터를 어떻게 수집하는 방법이 프로그램 구조와 예시 사진으로 제시되어  있다.
Coyo가 공개된 자료에서 데이터를 수집하는 과정

코요(Coyo)는 22년 8월 오픈소스로 공개되었습니다. Coyo는 인터넷에 공개된 대규모 HTML 문서에서 이미지-텍스트 쌍을 정제하여 공개한 프로젝트로, 주로 멀티모달 AI 모델 학습에 사용됩니다. 데이터 셋을 정제하는 방식은 생성 모델의 공정성과 편향성에 중요한 역할을 합니다. 

coyo가 수집한 이미지 데이터를 어떻게 텍스트로  정리했는지  결과가 표로 표시되어 있다. 왼쪽에는 그림 이미지가 오른쪽에는 해당 그림을 설명하는 텍스트와 이미지 크기가 적혀있는 형태로 데이터  셋이 표기되어 있다.
Coyo가 데이터 셋으로 만든 결과물

카카오브레인은 Coyo를 공개함으로써 이용자들이 신뢰할 수 있는 데이터로 개발 중인 모델을 학습하는 데 기여하고 있습니다. 또한 공개 이후 접수한 피드백을 반영해 이용자들이 더욱 효율적이고 공정한  데이터 셋을 구축하도록 돕고 있습니다.

 

 

2) 생성형 AI 모델

Karlo-v1 (https://github.com/kakaobrain/karlo)

카카오브레인이 개발한 이미지 생성 모델 Karlo-v1이 생성한 다양한 이미지가 표시되어 있다. 영화 스타워즈 속의 제국군 병사,  나무위 올빼미,  귀여운 아기호랑이 등 다양한 화풍과 분위기로 마치 사람이 그린 것 같은 다양한 이미지가 포함되어 있다.
카카오브레인이 개발한 이미지 생성 모델 Karlo-v1이 생성한 이미지들

칼로(Karlo)는 카카오브레인이 개발한 이미지 생성 모델로, 현재 2.0 버전까지 개발되었습니다. 이 모델의 1.0 알파버전은 22년 12월 오픈소스로 공개되었으며, 아용자로부터 다양한 피드백을 받았습니다. 이러한 공개 방식은 개발 과정의 투명성을 높이는 데 기여했으며, 모델을 고도화하기 전에 미처 발견하지 못한 편향성을 제거하는 데 큰 도움이 되었습니다. 이런 방식으로 카카오브레인은 Karlo 모델을 지속적으로 개선하고 발전시키고 있습니다.

 

23년 1월 9일에는 Karlo의 기능을 다른 응용프로그램이나 서비스에서 이용할 수 있도록  ‘카카오디벨로퍼스’(웹 서비스, 모바일 앱, 기타 응용 프로그램 개발에 필요한 플랫폼 및 카카오의 다양한 서비스와 연계할 수 있는 부가 기능을 제공하는 개발자 전용 웹사이트)에 API(제공하는 서비스와 정보를 이용할 수 있는 인터페이스)로 공개했습니다. 

 

카카오브레인은 더욱 고도화된 모델인 Karlo 2.0 역시 API로 공개했습니다. 2023년 7월 텍스트-데이터 셋 규모를 1.2억장에서 3억장으로 확대하여 학습시킨 칼로 2.0 모델을 카카오 디벨로퍼스를 통해 API 형태로 공유했습니다. 이번에 개방된 칼로 API는 다른 웹, 모바일 앱 서비스와 연동하여 사용할 수 있으며, 상으로 월 60만장의 대규모 이미지를 무료로 생성할 수 있도록 하여 다양한 기업의 AI 기술 진입 장벽을 낮추는 데 기여하고 있습니다.

 

 

3) 라이브러리

Trident (https://github.com/kakaobrain/trident)

카카오브레인이 깃허브를 통해 공개한 라이브러리 ‘트라이던트’의 로고가 검은 색 배경 화면에 표시되어 있다.
카카오브레인이 깃허브를 통해 공개한 라이브러리 ‘Trident’

23년 4월 공개된 트라이던트(Trident)는 오픈AI의 GPU(Graphic Processing Unit: 그래픽 처리 장치) 프로그래밍 언어인 Triton을 기반으로 구현한 라이브러리(재사용 가능한 코드의 집합)입니다. Trident는 AI 모델 개발에 필요한 연산이 최적화된 커널(kernel, 인터페이스를 통해 컴퓨터 자원 관리)로 구현되어 있고, 메타가 개발한 머신러닝 프레임워크 파이토치(PyTorch)와 같은 사용 방법을 제공합니다.

 

AI에서 사용되는 연산들은 커널로 작성되는데, 작성된 커널을 최적화하는 것은 매우 어려운 일입니다. 이러한 문제를 해결하기 위해서 OpenAI는 GPU 프로그래밍을 쉽게 할 수 있는 Triton을 오픈소스로 공개했지만, 여전히 많은 개발자들이 커널 작성을 어려워합니다. 이런 어려움을 해결하기 위해 Trident는 PyTorch와 동일한 추상화(복잡한 소프트웨어 시스템을 간단하고 이해하기 쉬운 형태로 표현하는 방법)를 제공하여 개발자들은 최적화된 커널을 쉽게 사용할 수 있습니다.

 

Trident는 PyTorch와 동일한 추상화 계층을 제공하기 때문에, 모델에 적용하고자 한다면 관련 코드를 손쉽게 교체할 수 있고, 기존의 PyTorch와 혼합해서 사용할 수 있는 것이 큰 장점입니다.

 

아래의 그래프에서 파란색 선은 PyTorch, 주황색 선은 Trident를 의미합니다. 그리고 X축은 텐서의 크기, Y축은 Linear 연산(주어진 데이터에서 중요한 패턴이나 관계를 찾아내고 새로운 유용한 정보를 생성하는 모듈)에 소요된 총시간을 의미합니다. 따라서, 그래프의 특정 지점에서 Y 값이 낮을수록, 속도가 더 좋다는 것을 의미합니다.

카카오브레인이 개발한 트라이던트와 메타가 개발한 파이토치의 연산 소요 시간이 그래프로 표시되어 있다. 트라이던트가 텐서의 크기가 커질 수록 파이토치에 비해 더 빠르게 연산을 진행한다는 것이 트라이던트의 낮은 기울기그래프로 나타나고  있다.
PyTorch와 Trident의 연산 소요 시간 비교

위 그림에서 볼 수 있듯이 PyTorch보다 속도가 빠른 Trident를 모델에 적용하면 동일한 하드웨어 기준 약 15% 수준으로 훈련 및 추론 속도가 향상될 수 있습니다.

 

이 외에도 지금까지 총 40여 건(https://github.com/kakaobrain)의 모델 및 데이터 셋을 오픈소스로 공개하여 개발 과정의 투명성을 높이고 생성형 AI 모델의 잠재적인 위험성을 낮추고자 많은 노력을 기울이고 있습니다.

 

더 나은 미래를 위한 기술 공유

카카오브레인은 AI가 모두의 일상에 자연스럽게 스며들어 마치 공기처럼 당연해지는 세상을 준비하고 있습니다. 그 과정에서 AI 기술 노하우를 공유하고 새로운 가치를 창출하는 것 역시 ‘기술이 만드는 더 나은 세상’이라는 카카오와 카카오 전 공동체가 공유하고 있는 핵심 가치에 부합하는 활동이라고 생각하고 있습니다. 

그렇기 때문에 카카오브레인은 자사의 AI 기술 개발과 신규 서비스 출시뿐만 아니라 다양한 이용자가 AI 개발에 참여할 수 있는 기반을 만드는 AI 오픈소스 생태계 활성화에도 지속적인 노력을 기울일 계획입니다.

 

카카오브레인의 김일두 각자 대표의 메시지로 글을 마무리합니다. “카카오브레인은 그동안 대규모 언어 모델, 이미지 생성 모델, 라이브러리 등 주요 기술을 공유했습니다. 시장을 바꾸고 패러다임 전체를 바꿀 수 있는 AI 기술을 지속적으로 공유한다는 방침으로 카카오브레인은 앞으로도 신기술 개발뿐만 아니라 기술의 문턱을 낮추는 기업의 사회적 책임도 다할 것입니다.”

 

목록 보기
추천 콘텐츠