[CTL Teaching Tips #18] [챗GPT 기술의 이해] 워크숍 핵심정리
- 교육개발센터
- 조회수799
- 2023-05-17
교육개발센터-20230512
<출처 표기방법> 이상은, 김예진, 구민영, 차동현, 박진영(2023). [챗GPT 기술의 이해] 워크숍 핵심정리(CTL Teaching Tips #18). 서울: 성균관대학교 교육개발센터.
교육개발센터는 지난 4월 26일(수) [챗GPT 기술의 이해] 워크숍을 열었습니다. 그간 티칭팁을 통해 챗GPT의 활용, 학습윤리, AI 활용 티칭전략을 알려왔고, 이번 워크숍을 통해 챗GPT 기술에 대한 이해를 높이고자 하였습니다. 우리 대학 소프트웨어학과 박진영교수님께서 GPT 기술에 대해 설명해주신 내용을 다시 한번 정리하여 티칭팁으로 보내드립니다.
챗GPT를 윤리적으로 이용하고 교육적으로 도움이 되도록 사용하기 위해서는 이 도구에 적용된 기술이 무엇이고 어떠한지를 기본적인 수준에서나마 파악할 필요가 있습니다. 챗GPT라는 이름은 어떻게 나온 것일까요? 저희가 흔히 부르는 챗GPT는 챗GPT: Chat + Generative + Pre-trained + Transformer 의 약자입니다. 아래에서 각 단어의 의미를 살펴보고 사용자에게 주는 시사점에 대해 자세히 알아보도록 하겠습니다.
1. Generative
GPT의 G는, 생성이라는 뜻을 가진 Generative 입니다. 그렇다면 Generative Model과 Generative AI에 대해 살펴보도록 하겠습니다. 생성 모델(Generative Model)이란 데이터 분포를 모델링해서 새로운 무언가를 생성해내는 인공지능 모델입니다.
생성 AI(Generative AI)는 인공지능을 통해 전에 없던 새로운 사물이나 효과를 만들어낼 수 있는 혁신적인 기술입니다. 즉, 이용자가 요구하는 새로운 것을 만들어주는 것입니다. 생성 AI는 딥러닝 기술과 자연어 처리 등을 통해 텍스트, 이미지, 음악, 코드 등의 새로운 콘텐츠 생성에 중점을 둡니다. 챗GPT에 적용된 생성 기술의 특징은 다음과 같습니다. 첫째, 유사성이 높은 데이터를 집단화하고 내부에서 데이터 집단의 특성들을 학습합니다. 이후 그 특성을 기반으로 새로운 데이터를 생성해 냅니다. 둘째, 주어진 학습 데이터의 분포를 따르는 유사 데이터를 생성합니다. 셋째, 원본과 유사하지만 동일하지 않은, 실존하지 않지만 있을법한 새로운 문장이나 이미지를 생성합니다. 넷째, 데이터 확률 분포에 기반하므로 데이터 규모가 클수록 정확하고 정교해집니다.
이러한 생성 AI가 사용자에게 주는 시사점은 무엇일까요? 생성 AI는 프로그래밍 명령에 의존하는 대신 추론 및 의사결정 능력을 독립적으로 사용하여 결론을 도출할 수 있습니다. 또한, 수동 데이터 처리와 분석의 필요성을 없애주기 때문에 사용자의 시간과 비용을 절약할 수 있습니다. 따라서, 생성 AI를 활용하면 독특한 아이디어를 대량 생산할 수 있기에 사람이 직접 만드는 콘텐츠보다 효율적으로 새로운 콘텐츠를 제작할 수 있습니다. 나아가, 보다 객관적인 통찰력을 제공함으로써 인간의 편견으로 인한 위험을 줄입니다.
출처 : https://www.2e.co.kr/news/articleView.html?idxno=302553
https://www.grownbetter.com/article/230
2. Pre-Trained
GPT의 P는, 사전 학습으로 해석하는 Pre-Trained의 첫글자입니다. Pre-Trained의 사전적 의미는 특정 기술이나 지식이 사전에 훈련된 모델이라는 것입니다. Pre-Trained를 이해하기 위해서는 학습(training)과 언어모델(Language Model)에 대한 이해가 선행되어야 합니다. 인공지능이란, 쉽게 말해 가상의 뇌세포들을 숫자 덩어리로 표현한 것입니다. 현대의 인공지능은 학습(training)이라는 과정을 통해 데이터 패턴을 습득합니다. 학습(training)은 데이터를 토대로 수학적 규칙에 따라 가상의 뇌세포들의 연결을 변형하며 지능을 다듬어가는 행위입니다. 학습(training)에서, 처음에 파라메터의 갯수를 정하고 그 후에 학습을 통해 그 파라메터의 값을 업데이트합니다. 이것이 학습의 본질이고, 처음의 숫자덩어리들이 파라메터의 개수이며, 파라메터의 개수는 모델 크기를 의미합니다.
또한, 언어 모델(Language Model)은 주어진 단어들을 바탕으로 다음에 나올 토큰(예: 단어)을 예측하는 모델입니다. 챗GPT는 대규모 언어 모델(Large Language Model ; LLM)이며 방대한 양의 텍스트 데이터를 학습해 자연어를 이해하고 생성합니다. 이러한 자연어 응답을 생성하기 위해 LLM은 다층 신경망을 통해 복잡한 데이터를 처리, 분석 및 예측하는 심층학습 모델을 사용합니다. 최소 수십억 단어에 달하는 방대한 텍스트 자료에서 LLM을 교육하여 인간 언어의 뉘앙스를 학습합니다. 즉, 사전에(pre) 학습된(trained) 모델을 가져와 사용한다는 의미는 언어 예측 문제로 학습된 AI를 가져와 사용한다는 것과 일맥상통하게 됩니다. 이렇게 사전 학습된 모델을 사용하게 되면 사전 계산된 확률적 표현인 가중치를 활용하기에 특정 태스크에 필요한 적은 데이터를 사용하여 각 상황과 요구에 맞출 수 있으므로 시간, 비용, 노력을 절감할 수 있습니다.
출처 : https://www.economist.com/interactive/briefing/2022/06/11/huge-foundation-models-are-turbo-charging-ai-progress
http://www.gnict.org/media/uploads/2023/03/14/LLM%EB%8C%80%ED%98%95_%EC%96%B8%EC%96%B4_%EB%AA%A8%EB%8D%B8%EC%9D%B4%EB%9E%80.pdf
https://lifearchitect.ai/gpt-4/
3. Transformer
GPT의 T는, 변환기라는 뜻의 Transformer 입니다. Transformer와 RNN(Recurrent Neural Network) 등은 인코더(encoder)와 디코더(decoder)로 구성된 모델입니다. 인코더가 데이터를 압축하면, 디코더는 압축된 데이터를 다시 팽창시키는데, 이때 인코더가 데이터를 압축하는 과정을 인코딩(encoding), 디코더가 데이터를 팽창시키는 과정을 디코딩(decoding)이라고 합니다. 토큰화와 임베딩 같은 자연어 처리 기술이 적용된 입력 데이터를 Transformer 모델에 입력해 인코딩을 수행하게 됩니다.
토큰화란, 말뭉치를 토큰이라는 단위로 나누는 작업을 말합니다. 토큰은 단어가 될 수도 있고, 구두점이나 문자열이 될 수도 있습니다. 이렇게 분리된 토큰은 임베딩 벡터와 연결되어 입력단으로 사용되며, 벡터 공간 내의 위치관계를 파악함으로써 자연어의 의미를 이해하고 분류할 수 있습니다.
컴퓨터는 사람과 달리 0과 1로 된 수치를 통해 정보를 처리합니다. 때문에 사람이 사용하는 자연어를 컴퓨터가 이해하기 위해서는, 언어를 수치화하는 과정이 필요합니다. 이렇게 문장이나 단어를 벡터로 변환해 컴퓨터가 이해할 수 있도록 수치화하는 과정을 임베딩이라고 합니다. 임베딩된 벡터 안에는 요소별 단어의 서로 다른 특성이 0과 1사이의 값으로 표현되어 있습니다. 임베딩을 통해 유의미한 데이터셋을 추출할 수 있으며, 다른 문장과의 유사도를 계산할 수도 있습니다.
Transformer 내의 인코더와 디코더는 각각 FNN(Feedforward Neural Network)과 Attention의 2가지 도구로 구성되어 있습니다. FNN은 일반적인 인공 신경망이며, Attention은 출력 데이터를 예측하는 매 시점에서 전체 입력 데이터를 다시 참고하되, 예측 데이터와 연관있는 데이터 부분에 집중하는 도구입니다. 그 중에서도 Transformer에 사용되는 것은 Multi-Head Self-Attention입니다. Multi-Head Self Attention은 문장 내에서 단어 간의 관련성을 모델링하는 방법으로 각 단어가 쿼리가 되어 자기 자신을 포함한 다른 단어들과의 관련도를 계산하는 방식입니다. 단어들 간의 관련성을 잘 학습한다면 문장 전체에 대한 이해가 높아져 언어에 대하여 학습할 수 있습니다.
4. 챗GPT & InstructGPT
OpenAI는 챗GPT를 InstructGPT의 형제모델(sibling model)이라고 소개하고 있습니다. InstructGPT는 GPT 3가 사용자의 지침을 따르도록 훈련되지 않았다는 점을 극복하기 위하여 개발되었습니다. Instruct GPT의 개발을 위해 Reinforcement Learning from Human Feedback(RLHF) 방식이 사용되었는데, 이를 통해 Instruct GPT는 다양한 자연어 처리 작업을 언어 번역, 텍스트 요약, 질문 답변 등의 사용자의 작업 목적에 맞게 미세 조정할 수 있게 되었습니다. RLHF란, 인간 피드백을 강화학습으로 학습하여 성능을 향상시키는 방법입니다. 인간 피드백은 AI 에이전트가 취한 행동에 대한 정보로서, 학습에 대한 보상 외에도 추가적인 정보를 제공할 수 있습니다. 이를 통해 에이전트가 취한 행동을 평가하고, 보상을 최대화하는 방향으로 학습이 가능합니다. RLHF는 인간의 지식과 경험을 효과적으로 활용해 강화학습의 학습 속도와 성능을 향상시킬 수 있으며, 게임, 로봇 제어 등 다양한 분야에서 적용가능합니다.
RLHF 방식이 효과적이기 위해서는 Reward Model training(RM), 즉 보상 모델 학습이 필요합니다. 보상 모델 학습은 사람의 선호(human preference)와 잘 연관되어 있어야 하며, 어떠한 시스템이든 강화학습(Reinforcement Learning)을 위해 보상이 숫자로 표현되는 것이 중요합니다. InstructGPT에서 보상모델의 작동 방식은 다음과 같습니다. 먼저 사람(Labeler)이 선별한 샘플 데이터셋으로 모델을 학습시킵니다. 모델이 여러 답변들을 생성하면, 질문자의 의도와 부합하는지를 평가하여 순위를 매깁니다(Ranking). 순위가 매겨진 데이터들을 별도로 데이터베이스화 한 뒤, 해당 데이터들을 이용해 학습을 반복하여 답변의 우선 순위를 예측합니다.
▲ 강화학습 알고리즘, RLHF
사진 출처: https://arxiv.org/abs/2203.02155
더 나은 챗GPT 활용을 위하여
지금까지 [챗GPT 기술의 이해] 워크숍에서 다루었던 주요 내용들을 정리하였습니다. GPT는 사용자의 질문에 대한 말을 생성해내는 생성(Generative) 모델이며, 언어 예측 문제로 학습된 AI를 사용하는 사전 학습(Pre-Trained) 모델이자, 자연어를 컴퓨터가 이해할 수 있는 수치로 변환하고, 수치를 다시 자연어로 변환하는 변환기(Transformer)입니다. 단, Chat GPT는 인코더(encoder)를 쓰지 않고, 디코더(decoder)만을 학습시킨 Decoder Only Model에 해당합니다.
챗GPT는 사람의 선호를 예측할 수 있도록 설계된 보상모델(RM)과 인간 피드백을 통한 강화학습(RLHF)으로 생성된 Instruct GPT와 형제격인 모델입니다. 사용자의 의도에 맞게 답변을 도출해낼 수 있으나, 잘못된 답변, 편향된 답변을 제시할 수도 있습니다. 따라서 거짓정보, 사회적으로 편향된 답변을 얻을 수 있음을 주의하며 챗GPT를 사용하는 것이 필요합니다. 기술의 작동원리와 문제점을 이해한다면, 교육적이고 윤리적인 방향으로 챗GPT를 활용하는데 도움이 될 것입니다.
< 참고자료 >
- 챗GPT의 돌풍!! 그럼 제너레이티브 AI는? https://www.2e.co.kr/news/articleView.html?idxno=302553
- ChatGPT가 몰고온 AI트렌드! Generative AI를 톺아보다 https://www.grownbetter.com/article/230
- Huge “foundation models” are turbo-charging AI progress https://www.economist.com/interactive/briefing/2022/06/11/huge-foundation-models-are-turbo-charging-ai-progress
- Large Language Model? and Reinforcement Learning from Human Feedback http://www.gnict.org/media/uploads/2023/03/14/LLM%EB%8C%80%ED%98%95_%EC%96%B8%EC%96%B4_%EB%AA%A8%EB%8D%B8%EC%9D%B4%EB%9E%80.pdf
- 사전 훈련된 AI 모델이란 무엇인가? https://blogs.nvidia.co.kr/2022/12/20/what-is-a-pretrained-ai-model/
- 트랜스포머 살펴보기 https://ratsgo.github.io/nlpbook/docs/language_model/transformers/
- hugging face https://huggingface.co/learn/nlp-course/chapter1/6
- Language Models are Few-shot Learners https://papers.nips.cc/paper/2020/file/1457c0d6bfcb4967418bfb8ac142f64a-Paper.pdf
- [딥러닝] 인공신경망의 Embedding이란? https://velog.io/@dongho5041/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EC%9D%B8%EA%B3%B5%EC%8B%A0%EA%B2%BD%EB%A7%9D%EC%9D%98-Embedding%EC%9D%B4%EB%9E%80
<더 찾아보실만한 자료>
- ChatGPT Usage Tips https://sdf.seoul.kr/research-report/2003
- ChatGPTUser Experience https://www.kpf.or.kr/synap/skin/doc.html?fn=1681257211987.pdf&rs=/synap/result/research/
- ChatCPT Limitations https://www.forbes.com/sites/bernardmarr/2023/03/03/the-top-10-limitations-of-chatgpt/
- Future of AI https://www.nytimes.com/2023/03/08/opinion/noam-chomsky-chatgpt-ai.html, https://www.nytimes.com/2023/03/24/opinion/yuval-harari-ai-chatgpt.html7
- GPT를 더 공부하고 싶은 분들께 박진영교수님께서 추천드리는 글: How does GPT Obtain its Ability? Tracing Emergent Abilities of Language Models to their Sources https://yaofu.notion.site/How-does-GPT-Obtain-its-Ability-Tracing-Emergent-Abilities-of-Language-Models-to-their-Sources-b9a57ac0fcf74f30a1ab9e3e36fa1dc1
※티칭팁에 대한 의견이나 질문, 티칭팁에서 다루었으면 하는 소재가 있다면 알려주세요! https://docs.google.com/spreadsheets/d/1geSdqeTetJENCvzx5HwVHbEUfVQcjFgdfmCQXDbb-2M/edit?usp=sharing
※티칭팁 PDF로 원문보기: https://drive.google.com/file/d/1a8m2J-b8fWIkN5NE8vMng2YsOtqq1FpR/view?usp=sharing