본문 바로가기

[기획] OpenAI-ChatGPT의 오픈소스 대안

support 게시글 작성 시각 2023-02-20 10:12:54 게시글 조회수 7478

 

OpenAI-ChatGPT의 오픈소스 대안

 

- Open UP -

 

ChatGPT는 OpenAI의 GPT-3 모델을 기반으로 하는 고급 챗봇 엔진이며, 이용자와 실시간으로 대화가 가능하다. ChatGPT의 전문성은 광범위하며, 대화를 따라가는 능력은 특히 주목할 만하다.

 

예를 들어, 1955년 미국 대통령은 누구였는지와 같은 단답형 질문부터 시작해 오늘 바깥 온도가 40도면 무엇을 입어야 하는지 등 정답이 없는 질문도 할 수 있다. 이미지 생성 AI에 지시할 명령을 작성하거나 리포트를 쓰는 데도 ChatGPT를 활용할 수 있다.

 

더불어, ChatGPT는 실수도 인정할 뿐만 아니라 질문에 잘못된 전제가 있다면 거기에 대해 이의를 제기하고 부적절한 요청은 거부하는 역량도 갖췄다.

ChatGPT
출처: ChatGPT

 

ChatGPT의 GPT-3 모델은 2020년 발표 당시 사람처럼 뛰어난 문장 생성 성능을 보여줘서 큰 화제가 되었다. GPT-3은 GPT-2과 모델의 구조적 차이는 없지만, 학습에 사용한 모델의 크기와 데이터의 양이 대폭 증가한 것이 큰 특징이다.
학습 데이터의 경우 GPT-3은 약 45TB, GPT-2는 약 40GB로 사용한 데이터 용량 역시 대폭 증가하여, 이를 학습하는 데 필요한 컴퓨팅 자원 및 비용도 매우 증가하였다. GPT-3을 한 번 사전학습을 진행하는데 1200만 달러(한화 약 148억 원)가 소요되었다고 한다.

 

이에 따라, OpenAI의 GPT-3는 1750억 개에 달하는 파라미터 수를 가지는 거대 언어모델로서 큰 문제점이 되었다. 모델의 크기가 큰 탓에 일반 사용자 및 개인 연구자들이 모델을 직접 이용하기가 사실상 불가능하다. 또한, OpenAI에서 GPT-3 모델을 공개하지 않고, 데모와 API 호출을 통해 모델을 사용할 수 있도록 하여 사실상 GPT-3가 보여주는 놀라운 결과물들에도 불구하고 오픈소스로 공개되어 있지 않기 때문에 사용해 보려면 AI Dungeon이나 Philosopher AI와 같은 사이트를 통해야 한다.
따라서, GPT-NeoX, GPT-J, Bloom 및 OPT와 같은 대안이 존재하며, 이를 소개한다.
 

1. GPT-NeoX

비영리 오픈소스 연구단체인 Eleuther AI에서 발표한 GPT-Neo는 GPT-3의 구조를 활용하여 학습한 거대 언어 모델로서, 학습 및 테스트에 필요한 코드들이 오픈소스로 공개되어 있을 뿐 아니라 학습에 사용된 대규모 데이터셋인 Pile과 1억 3천 개의 파라미터를 가지는 모델과 2억 7천 개의 파라미터를 가지는 모델의 pre-trained model도 함께 공개되어 있다. GPT-Neo는 대규모 병렬학습을 위한 라이브러리인 mesh-tensorflow 기반으로 만들어졌다.

 

또한, HuggingFace에도 GPT-Neo가 추가되어 손쉽게 사용해 볼 수 있게 되었으며 1억 2500만 개와 3억 5000만 개의 파라미터를 갖는 모델들이 추가로 제공되어 GPT-Neo 125M, GPT-Neo 350M, GPT-Neo 1.3B, GPT-Neo 2.7B의 네 가지 모델들을 사용해 볼 수 있다.

 

Eleuther AI에서는 GPT-Neo의 후속 프로젝트인 GPT-NeoX를 개발하였다. 새로운 200억 개 파라미터 자연어 처리 모델로서 대략 50,000개의 토큰화 어휘로 학습된다. Mesh-tensorflow에 기반한 GPT-Neo와는 달리 GPT-NeoX는  NVidia Megatron과 DeepSpeed에 기반하고 있으며 코드를 보다 효율적으로 만들기 위해 다중 공백과 같은 추가된 특수 토큰과 함께 Pile에서 훈련된 토크나이저를 사용한다.
*토크나이저:  NLP 파이프라인의 핵심 구성 요소 중 하나로 입력된 텍스트를 모델에서 처리할 수 있는 데이터로 변환하는 것이다.

 

GPT-NeoX은 텍스트 요약, 패러프레이징, 코드 생성, 콘텐츠 작성, 텍스트 자동 수정, 텍스트 자동 완성, 챗봇 및 텍스트 생성과 같은 애플리케이션을 구축할 수 있다.

EleutherAI / GPT-NeoX
출처: https://github.com/EleutherAI/gpt-neox

 

GPT-NeoX는 200억 개의 매개변수를 사용하기 때문에, GPT-NeoX-20B로도 불린다. 이 모델을 교육하는 접근 방식에는 고정된 양의 하드웨어에서 성능과 교육 속도를 최대화하기 위한 데이터, 파이프라인 및 모델 병렬 처리가 포함된다. 
현재 OpenAI의 GPT-3 API를 사용하는 어플리케이션이라면 일부 수정으로도 GPT-NeoX-20B에서 작동 가능하다.

 

2. GPT-J

EleutherAI에서 GPT-3의 오픈소스 버전인 GPT-J 모델을 학습하여 공개했다. 
GPT-J는 Huggingface Hub에 배포가 되어 있어 누구나 사용이 가능하며 GPT-Neo보다 매개변수가 더 많고 NLP 작업에서 더 나은 성능을 발휘한다. 

 

학습 데이터는 약 825GB에 달하는 대규모 선별 데이터 세트인 Pile이며, TPU v3-256을 사용해 약 5주 정도 학습했다. 383,500단계에 걸쳐 4,020억 토큰에 대해 학습되었고, 다음 토큰을 올바르게 예측할 가능성을 최대화하기 위해 교차 엔트로피 손실을 사용하는 자동 회귀 언어모델로 훈련되었다. 전체 모델의 용량은 61GB지만, bf16으로 압축한 모델은 9GB로, colab으로도 실행이 가능하다.

 

GPT-J는 JAX기반으로 작성된 언어모델로, 1,750억 개의 파라미터를 가진 GPT-3에 비해 작은 규모인 약 60억 개의 파라미터를 사용하지만, LAMBADA, 위노그랜드(Winogrande), 헬라스웩(Hellaswag) 등 데이터 세트를 사용해 강력한 성능을 구현했다. 상대적으로 규모가 작은 모델이기 때문에, 대기 시간이 중요한 실시간 사용 사례에 가장 적합하다. 이 모델은 콘텐츠 생성, 채팅, 객체 추출, 분류 및 코드 관련 작업과 같은 다양한 작업에서 잘 수행된다. 예를 들어, GPT-J를 이용하면 문서를 작성하거나 번역, 분류하는 등 더 발전된 NLP 작업을 수행할 수 있다. 

 

GPT-J는 교육을 받지 않은 작업을 포함하여 추가 교육 없이 언어 처리에서 다양한 작업을 수행할 수 있다. 미세 조정을 통해 GPT-J는 모든 작업에 대해 더욱 특화되어 성능을 크게 높일 수 있다.

 

또한, EleutherAI는 GPT-J용 간단한 사용자 인터페이스도 개발했다. 이 인터페이스를 통해 사용자는 "온도"라는 매개변수를 사용하여 모델의 창의성 수준을 높일 수 있으며, 인터페이스에는 사용자가 모델의 기능을 시연할 수 있는 프롬프트가 내장되어 있다.

GPT-J
출처: https://grand.app/dashboard/playground

 

3. Bloom

Bloom은 광범위한 연구에 활용할 수 있는 자연어 모델 개발이라는 목표로 진행된 국제 커뮤니티 기반 프로젝트인 빅사이언스(BigScience)를 통해 제작된 AI 기반 언어모델이다.
Bloom은 BigScience를 통해 윤리학자, 철학자 및 법률 전문가의 지원을 받아 70개 이상의 국가 및 250개 기관의 1,000명의 자원 연구원이 개발한 오픈소스 모델이다. 뉴욕에 기반을 둔 스타트업 Hugging Face가 조정한 이 프로젝트는 프랑스 정부 기관의 자금 협력을 바탕으로 이루어졌다.

 

Bloom의 주요 기능은 100% 개방적이고 투명한 개발 특성이다. OpenAI의 GPT-3 및 Google의 LaMDA와 같은 현재 세대의 대규모 AI 모델은 공개 검사에서 크게 숨겨져 있다. 대조적으로 Bloom 뒤에 있는 팀은 코드를 무료로 제공하고 있다.
또한, Hugging Face는 Bloom의 언어 처리 능력이 오픈AI(OpenAI)의 GPT-3만큼 뛰어나다고 주장한다. Bloom은 총 1,760억 가지 변수를 다루기 때문이다. GPT-3가 다룰 수 있는 변수는 총 1,750억 가지이다. 또한, Hugging Face는 비슷한 규모의 다른 대규모 언어 처리 모델보다는 유해한 텍스트 생성 위험성이 훨씬 적다고 전했다.

 

Bloom은 영어 중심인 다른 모델들과 달리 46가지 자연어와 13가지 프로그래밍 언어를 지원한다. 학습 데이터 중 영어의 비중은 30% 정도이며, 프랑스어와 베트남어, 북경어, 인도네시아어, 인도의 지방 언어 13개, 아프리카 부족 언어 20개 등을 프로그래밍 언어로 처리할 수 있어, 사용자는 처리하고자 하는 언어를 선택할 수 있다. 


영어로 된 데이터셋이 영어로 된 다른 대형 모델보다 상대적으로 작으므로 약간 성능이 떨어질 수 있지만, 기존 언어모델이 다루지 못한 언어 및 여러 가지 언어가 가능하도록 훈련되었기 때문에 다양성이 높다.

 

다양성을 위해 다국어 웹 크롤링으로 데이터 수집 및 필터링 후, 프라이버시 보호를 위한 처리를 했다. 특히 해당 언어권 커뮤니티 그룹(Masakhane, LatinX, Machine Learning Tokyo 등)이 데이터 소스를 제안하게 하고, 참여 연구원들이 학술 출판물을 포함한 상당량의 데이터셋을 직접 선택했다.
* 웹 크롤링 : 웹 상에 존재하는 데이터를 자동적으로 탐색하는 행위

Data and Language Selection
출처: MONTREAL AI ETHICS INSTITUTE

 

Bloom은 책임 있는 AI 라이선스에 따라 배포되며 악의적인 목적으로 사용하는 것을 명시적으로 금지한다. 언어모델에 대한 현재 법률이 아직 완전히 구체화되지는 않았지만, 이 라이선스는 사람들에게 해를 입히거나 기만하거나 착취하기 위해 고위험 애플리케이션에서 Bloom을 사용하는 것을 억제하도록 설계된 서비스 약관과 같은 기능을 할 수 있다.

 

4. OPT

Meta는 약 1,800억 개의 토큰 데이터셋으로 학습된 언어모델 OPT를 발표했다. OPT는 GPT-3 수준의 언어 정확성을 제공하는 1,750억 개의 매개변수를 가진 언어모델이다. 오픈AI의 GPT-3는 모델 자체 및 코드가 공유되지 않으며 유료 서비스로 제공되는 것에 비해, Meta는 OPT의 사전 훈련 모델, 기본 코드 및 개발 로그북까지 공개했다.

 

로그북에는 학습 데이터에 관한 연구팀원들의 일일 업데이트 내용이 담겨있다. 예를 들어 데이터가 모델에 어떻게 추가됐는지, 언제, 무엇이 작동했고 무엇이 작동하지 않았는지 등에 관한 기록이다. 100페이지가 넘는 로그북 안에 연구원들은 2021년 10월부터 2022년 1월까지 3개월 동안 언어모델을 계속 가동하면서 겪은 모든 버그, 고장, 재시동 상황을 기록했다. Meta는 다른 연구원들이 메타의 언어모델을 분해해서 연구하거나 그 언어모델을 바탕으로 새로운 것을 만들어내기를 바란다고 밝혔다.

 

OPT-175B는 비상업적인 라이선스로 릴리즈되어 업계 연구자뿐만 아니라 정부, 시민 사회, 학계 조직에 소속된 연구원들이 사용할 수 있다. 이 모델을 사용하기 위해선 별도의 신청절차가 필요하지만, 그것보다 작은 파라미터 범위의 125M~30B 버전은 Huggingface Transformer 라이브러리의 일부이므로 다운로드 가능하다.

Data and Language Selection
출처: MONTREAL AI ETHICS INSTITUTE

 

앞에 소개한 GPT-NeoX, GPT-J, Bloom, OPT 4가지 대안 이외에도 Chinchilla, Megatron Turing NLG 등 다른 모델들이 있으니, 각 모델별 특징을 참고하여 적절한 모델을 사용하기를 권장한다. 

 


 

※ 참고자료


 1) https://medium.com/ai-networkkr/ai-모델-탐험기-21-gpt-3의-오픈소스-버전-gpt-j-de3bdcdf65dd
 2) https://www.forefront.ai/blog-posts/introducing-gpt-neox
 3) https://www.aitimes.com/news/articleView.html?idxno=145494
 4) https://www.letr.ai/blog/story-20220805
 5) https://www.aitimes.com/news/articleView.html?idxno=144440
 6) https://moon-walker.medium.com/%EB%A6%AC%EB%B7%B0-meta%EC%9D%98-opt-open-pre-trained-transformer-language-models-8df1bceb6f2d
 7) https://www.itworld.co.kr/news/261190?page=0,1
 8) https://smilegate.ai/2021/04/08/gpt-neo/
 9) https://www.coreweave.com/blog/coreweave-unlocks-the-power-of-eleutherais-gpt-neox-20b
 10) https://smilegate.ai/2021/07/01/gpt-j-6b/

 11) http://blockchainai.kr/client/news/newsView.asp?nBcate=F1002&nMcate=M1004&nIdx=37253&cpage=1&nType=1

 12) https://www.technologyreview.kr/%EB%A9%94%ED%83%80-%EC%9E%90%EC%B2%B4-%EA%B0%9C%EB%B0%9C%ED%95%9C-%EB%8C%80%ED%98%95%EC%96%B8%EC%96%B4%EB%AA%A8%EB%8D%B8-%EB%AC%B4%EB%A3%8C-%EA%B3%B5%EA%B0%9C/

 13) https://play.aidungeon.io/main/landing

 14) https://philosopherai.com/

 15) https://www.pragnakalp.com/exploring-the-text-generation-with-gpt-neox/

 16) https://huggingface.co/EleutherAI/gpt-j-6B

 17) https://playground.helloforefront.com/models/free-gpt-j-playground

 18) https://www.forefront.ai/blog-posts/gpt-j-6b-an-introduction-to-the-largest-open-sourced-gpt-model

 19) https://www.ankursnewsletter.com/p/openais-gpt-3-vs-open-source-alternatives

 20) https://grand.app/dashboard/playground

 21) https://www.codingworldnews.com/news/articleView.html?idxno=11086

 


 

.
.
2023
공개SW 가이드/보고서 - 번호, 제목, 작성자, 조회수, 작성
번호 제목 작성자 조회수 작성
공지 [2024년] 오픈소스SW 라이선스 가이드 개정판 발간 file support 4211 2024-01-03
공지 [2024년] 기업 오픈소스SW 거버넌스 가이드 개정판 발간 file support 3401 2024-01-03
공지 [2024년] 공공 오픈소스SW 거버넌스 가이드 개정판 발간 file support 3373 2024-01-03
공지 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 file support 15818 2022-07-28
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 15672 2018-04-26
448 [3월 월간브리핑] 3D 프린팅의 흐름을 바꾼 오픈소스 프로젝트 support 5170 2023-03-27
447 [기획] OpenAI-ChatGPT의 오픈소스 대안 support 7478 2023-02-20
446 [기획기사] 최근 자연어 처리 (NLP) 오픈소스 기술 현황 support 6886 2023-02-20
445 [2월 월간 브리핑] 한국어 자연어 처리(NLP) 오픈소스 프로젝트 support 10137 2023-02-20
444 [기획기사] 실시간 데이터 처리 분석 붐 중심에 선 오픈소스 support 2799 2023-01-20
443 [1월 월간 브리핑] 하둡을 잇는 오픈소스 분석 시장 신흥 강자 기술들 support 3176 2023-01-20
442 [기획] 오픈소스 데이터 시각화 도구 TOP 4 support 8093 2023-01-20
441 [12월 월간브리핑]자율주행 개발을 위한 오픈소스 모형차 플랫폼 현황 support 2099 2022-12-26
440 [기획] 자율주행 오픈소스 데이터셋 TOP 5 소개 support 8477 2022-12-26
439 [기획기사]자율주행기술을 주도하는 오픈소스 프로젝트와 기술 support 1817 2022-12-26
맨 위로
맨 위로