경고: 이 문서의 오래된 판을 편집하고 있습니다. 이것을 게시하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 개요 == '''GPT-1'''(Generative Pre-trained Transformer 1)은 [[OpenAI]]에서 2018년에 발표한 [[트랜스포머]] 기반의 [[언어 모델]]이다.<ref>Radford, A., Narasimhan, K., Salimans, T., & Sutskever, I. (2018). Improving language understanding by generative pre-training.</ref> GPT-1은 현재 우리가 알고 있는 [[ChatGPT]]의 할아버지뻘 되는 모델로, '''생성형 사전 훈련 트랜스포머'''의 첫 번째 버전이다. ~~지금 보면 엄청 귀여운 수준이지만~~ 당시로서는 혁신적인 접근 방식을 제시했다. 이 모델의 핵심 아이디어는 '''비지도 사전 훈련(Unsupervised Pre-training)'''과 '''지도 미세 조정(Supervised Fine-tuning)'''을 결합한 것이다. 쉽게 말해서, 먼저 엄청난 양의 텍스트로 "언어가 뭔지" 배우게 한 다음, 특정 작업에 맞게 추가로 훈련시키는 방식이다. == 상세 == === 모델 구조 === GPT-1은 '''트랜스포머 디코더'''만을 사용한 구조로 되어 있다.<ref>[[BERT]]와 달리 인코더 부분은 사용하지 않았다.</ref> ==== 주요 사양 ==== * '''레이어 수''': 12개 * '''어텐션 헤드''': 12개 * '''임베딩 차원''': 768차원 * '''파라미터 수''': 약 1억 1700만 개<ref>현재 기준으로는 정말 작은 모델이다. [[GPT-4]]는 1조 개가 넘는 파라미터를 가지고 있다.</ref> * '''컨텍스트 길이''': 512 토큰 ==== 토크나이저 ==== [[BPE]](Byte Pair Encoding) 방식을 사용했다. 40,000개의 어휘를 가지고 있었다. === 훈련 과정 === ==== 1단계: 비지도 사전 훈련 ==== '''BooksCorpus''' 데이터셋을 사용해서 훈련했다.<ref>약 7,000권의 책으로 구성된 데이터셋이다.</ref> 이 단계에서는 다음 단어를 예측하는 '''언어 모델링''' 작업을 수행한다. 목적 함수는 다음과 같다: :<math>L_1(\mathcal{U}) = \sum_i \log P(u_i | u_{i-k}, ..., u_{i-1}; \Theta)</math> 여기서: * <math>\mathcal{U} = \{u_1, ..., u_n\}</math>은 토큰 시퀀스 * <math>k</math>는 컨텍스트 윈도우 크기 * <math>\Theta</math>는 모델 파라미터 ==== 2단계: 지도 미세 조정 ==== 특정 작업에 맞는 라벨이 있는 데이터로 추가 훈련을 진행한다. 이때는 다음과 같은 목적 함수를 사용한다: :<math>L_2(\mathcal{C}) = \sum_{(x,y)} \log P(y | x^1, ..., x^m)</math> 최종 목적 함수는 두 손실을 결합한다: :<math>L_3(\mathcal{C}) = L_2(\mathcal{C}) + \lambda \cdot L_1(\mathcal{C})</math> ~~수식이 어렵다고? 그냥 "언어 배우기 + 특정 작업 배우기"라고 생각하면 된다.~~ === 입력 변환 === GPT-1은 다양한 [[NLP]] 작업을 수행하기 위해 입력을 특별한 방식으로 변환한다. ==== 작업별 입력 형식 ==== * '''분류(Classification)''': [Start] Text [Extract] * '''함의(Entailment)''': [Start] Premise [Delim] Hypothesis [Extract] * '''유사도(Similarity)''': [Start] Text1 [Delim] Text2 [Extract] 및 [Start] Text2 [Delim] Text1 [Extract] * '''다중 선택(Multiple Choice)''': [Start] Context [Delim] Answer_i [Extract] (각 선택지마다) 여기서 [Start], [Delim], [Extract]는 특수 토큰이다.<ref>지금의 [[프롬프트 엔지니어링]]의 원조라고 볼 수 있다.</ref> == 성능 == === 평가 데이터셋 === GPT-1은 다음과 같은 벤치마크에서 평가되었다: ==== 자연어 추론 ==== * '''[[SNLI]]''' (Stanford Natural Language Inference): 89.9% 정확도 * '''[[MultiNLI]]''': 82.1% 정확도 * '''[[QNLI]]''' (Question Natural Language Inference): 88.1% 정확도 * '''[[RTE]]''' (Recognizing Textual Entailment): 56.0% 정확도<ref>RTE는 데이터가 적어서 성능이 낮았다.</ref> ==== 질의응답 ==== * '''[[RACE]]''' (Reading Comprehension from Examinations): 59.0% 정확도 ==== 문장 유사도 ==== * '''[[STS-B]]''' (Semantic Textual Similarity Benchmark): 피어슨 상관계수 0.85 ==== 분류 ==== * '''[[SST-2]]''' (Stanford Sentiment Treebank): 91.3% 정확도<ref>감정 분석 작업이다.</ref> * '''[[CoLA]]''' (Corpus of Linguistic Acceptability): 45.4% 매튜 상관계수 === 당시 기준 성능 === GPT-1은 12개 작업 중 9개에서 '''당시 최고 성능(State-of-the-Art)'''을 달성했다. ~~지금은 옛날 얘기지만~~ 2018년 당시로는 엄청난 성과였다. == 의의 == === 기술적 혁신 === ==== 전이 학습의 성공적 적용 ==== GPT-1은 [[컴퓨터 비전]] 분야에서 성공했던 '''전이 학습(Transfer Learning)''' 개념을 [[자연어처리]]에 성공적으로 적용한 첫 번째 사례 중 하나다.<ref>[[ELMo]]도 있었지만, GPT-1이 더 일반화된 접근법을 제시했다.</ref> ==== 최소한의 작업별 구조 ==== 기존 모델들과 달리, GPT-1은 작업마다 별도의 네트워크 구조를 만들 필요가 없었다. 단지 '''입력 형식만 바꿔주면''' 다양한 작업을 수행할 수 있었다. ==== 스케일링의 가능성 제시 ==== 더 많은 데이터와 더 큰 모델로 성능을 향상시킬 수 있다는 '''스케일링 법칙'''의 가능성을 보여줬다.<ref>이후 [[GPT-2]], [[GPT-3]], [[GPT-4]]로 이어지는 발전의 토대가 되었다.</ref> === 한계 === ==== 작은 모델 크기 ==== 1억 1700만 개의 파라미터는 현재 기준으로는 '''매우 작은''' 모델이다. ~~[[GPT-4]]한테는 새발의 피~~ ==== 제한된 컨텍스트 ==== 512 토큰의 컨텍스트 길이는 긴 문서를 처리하기에는 부족했다.<ref>현재는 수십만 토큰도 처리할 수 있다.</ref> ==== 단방향 어텐션 ==== [[BERT]]와 달리 단방향 어텐션만 사용해서, 양방향 문맥을 활용하지 못했다. ==== 미세 조정 필요 ==== 모든 작업에 대해 '''미세 조정'''이 필요했다. ~~지금처럼 "그냥 물어보면 알아서 해줘"가 아니었다~~ == 후속 연구에 미친 영향 == === GPT 시리즈의 시작 === * '''[[GPT-2]]''' (2019): 15억 개 파라미터, "너무 위험해서 공개 안 함"<ref>나중에 공개했지만</ref> * '''[[GPT-3]]''' (2020): 1750억 개 파라미터, [[Few-shot learning]]의 등장 * '''[[GPT-4]]''' (2023): 파라미터 수 비공개, [[멀티모달]] 지원 === 다른 모델들에게 준 영향 === * '''[[BERT]]''': 양방향 트랜스포머의 중요성 인식 * '''[[T5]]''': Text-to-Text 통합 프레임워크 * '''[[PaLM]]''', '''[[LaMDA]]''' 등: 대규모 언어 모델 경쟁 시작 == 여담 == * GPT-1 논문의 제목은 "Improving Language Understanding by Generative Pre-Training"이다. * 당시 [[OpenAI]]는 아직 비영리 조직이었다.<ref>지금은... 엄밀히 따지면 비영리이긴 한데, 뭐 복잡하다.</ref> * GPT-1의 코드는 [[TensorFlow]]로 작성되었다. * 훈련에는 '''8개의 GPU'''가 사용되었다. ~~지금 기준으로는 개인 컴퓨터 수준~~ * BooksCorpus 데이터셋은 현재 사용할 수 없다.<ref>저작권 문제로 접근이 제한되었다.</ref> == 관련 문서 == * [[GPT-2]] * [[GPT-3]] * [[GPT-4]] * [[트랜스포머]] * [[OpenAI]] * [[BERT]] * [[언어 모델]] * [[전이 학습]] == 각주 == <references /> == 외부 링크 == * [https://cdn.openai.com/research-covers/language-unsupervised/language_understanding_paper.pdf 원논문 (PDF)] * [https://github.com/openai/finetune-transformer-lm GPT-1 공식 코드 (GitHub)] [[분류:인공지능]] [[분류:자연어처리]] [[분류:OpenAI]] [[분류:언어 모델]] [[분류:딥러닝]] [[분류:2018년]] 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림) 이 문서에서 사용한 틀: 틀:LLM (편집)