11월 4일 학습일지
11월 4일
오늘 공부에 투자한 순수한 시간: 4시간 30분
학습한 개념 : LLM
<LLM>
1. LLM은 Large Language Model의 약자로 '대규모 언어 모델'이다. 첫 글자인 L은 Large(대규모)라는 뜻인데 여기서 이야기하는 large는 두가지 뜻으로 본다. 첫번째로는 '파라미터 수'로 모델 내부에서 학습을 통해 조정되는 숫자를 이야기 한다. 두번째로는 '학습 데이터와 연산량'으로 책과 웹, 문서와 코드 등으로 많은 텍스트로 막대한 계산을 하며 스스로 학습한다. 두번째 글자인 L은 Language(언어)라는 뜻으로 모델을 사용하는 사람의 자연어를 뜻한다. 문장을 이해하고, 이어쓰며 번역하고 요약하는 일까지 한다. 마지막 M은 Model(모델)이라는 뜻으로 현실에 있는 현상을 수학적으로 흉내 낸 것이다. 대화를 하면서 다음에 어떤 말이 올지를 확률적으로 높은지를 수학적으로 표현한 것이다. 다음 대화을 맞힐 수 있도록 학습된 거대한 수식이다. 한마디로 '방대한 데이터로 학습한 거대한 언어 확률 모델'이다. 언어 모델이라는 개념은 오래되었는데 1980~1990년대에도 n-gram 이라는 모델이 있었는데 이는 단어를 보고 다음 단어가 어떤것이 나오는지 예측하는 모델이다. 그러나 여기에 신경망이 도입되고 2017년도에 트랜스포머 구조가 나오면서 대규모로 학습할 수 있게 되며 2020년도에는 Large를 붙여 LLM이라는 용어가 생겨나게 되었다.
2. LLM은 한 사람이 만든것이 아니며 수십년간 여러 연구자와 기관이 꾸준히 발전시킨 결과이다. 먼저 1940~1990년도에는 언어 모델의 초기부분인데 1948년 클로드 섀넌이 텍스트에서 글자나 단어를 통곌 예측하여 맞출 수 있도록 하는 아이디어를 선보였고, 1980~1990년대에 IBM 연구진 등이 인성 인식과 기계 번역을 하기 위해서 n-gram이라는 모델을 발전시켰다. 다음으로 2000년도에는 신경망이 추가되는 언어 모델로 발전하였다. 2003년에는 '요슈아 벤지오 연구팀'이 신경망을 사용하여 다음 언어를 예측하는 언어 모델을 발표 했으며, 2013년에는 Word2Vec이 단어를 숫자 벡터로 표현하여 의미 관계를 담고 있는 방식으로 대중화를 시작하였다. 2014~2015년에는 RNN과 LSTM을 기반으로 번역 모델과 어텐션 개념이 만들어졌다. 마지막으로 2017년에는 트랜스포머가 등장하였는데 문장 전체를 한꺼번에 보면서 단어의 관계를 분석하며 병렬처리가 쉬워 규모를 키우기에 적합했다. 분석과 처리가 쉬워지며 LLM의 기초가 되었다. 2018년도부터는 대규모화가 되며 본격적으로 지금 사용하는 형태로 업데이트가 되었다. 2018년도에는 OpenAI의 GPT-1과 구글의 BERT가 나오게 되었다. 그러하여 대량으로 많은 텍스트를 먼저 학습하고 여러 작업에 활용하는 사전학습방식이 자리잡았다. 2019년도에는 GPT-2가 나오면서 문장 생성 능력이 상승하였고, GPT-3가 나오면서 규모를 키우면 적은 예시로 새로운 작업을 수행할 수 있게 되었다. 2020년도에는 OpenAI 연구진이 모델의 크기, 데이터, 연산량과 성능의 관계를 다룬 모델의 크기나 학습 데이터 양, 연산량을 늘리면 어떤식으로 규칙이 좋아지는지를 설명하는 스케일링 법칙 연구를 발표하였다. 2022년부터는 대중화가 시작되면서 2022년 11월에 OpenAI의 ChatGPT가 공개 되어 대중적으로 많은 사람들이 사용하게 되었다. 만들게 된 이유는 단계마다 달라졌는데 처음에는 음성인식과 번역의 정확도를 올려 다음말을 예측하고 번역하여 자연스러운 문장을 알려주는 방식으로 시작되었으며, 기계가 언어를 이해할 수 있도록 발전하였다. 그러면서 이전에는 작업마다 다른 모델들을 사용하였으나 하나의 모델로 큰 데이터를 학습시켜 범용성을 올리게 되었다. 그러던 중 스케일링 연구로 데이터 규모가 오르면 오를수록 성능이 올라가는 것을 발견하였으며 마지막으로 언어를 잘 다룰 수 있는 AI를 만들게 되었다.
ㄴn-gram, Word2Vec, 어텐션(attention), RNN, LSTM, 트랜스포머, 스케일링 법칙도 간단하게 설명해줘.
n-gram - 문장에서 연속으로 사용되는 단어 묶음을 쪼개서 그 문장에서 어떤 단어가 가장 많이 사용되는지를 학습하고 다음에 나올 단어를 예측하여 이야기하는 방식. 구조가 단순하고 빨랐지만 앞에 단어를 몇개 밖에 확인하지 못하여 긴 문장은 이해하지 못하며, 학습 데이터가 적다면 처리가 어려움
Word2Vec - 숫자 목록 (벡터)으로 바꾸고 의미가 비슷한 단어는 가까운 숫자로 학습하는 기법. 같은 문맥에서 자주 쓰이는 단어는 비슷한 원리.
어텐션 - 문장을 처리할때 문장에서 어떤 단어에 얼마나 집중할지를 계산하는 방식. n-gram에서 이야기 한거처럼 문장에서 단어로 끊고 그 단어를 각 점수를 매겨 어떤 단어에 집중하여 문장을 해석할지 판단하는 방식. 이전에는 보조 장치로 사용 되었지만 2017년도에 트랜스포머 논문에서 이것을 모델의 중심 부품으로 삼았음. 글을 읽을때 현광펜으로 중요한 부분을 체크하는것과 비슷하다고 생각하면 됨
RNN - RNN은 Recurrent Neural Network(순환 신경망). 문장을 단어 순서대로 읽으며 앞에서 읽은 내용을 기억하여 다음 단어 처리에 넘겨주는 신경망. 순환이라는 단어가 붙은 이유는 이전 문장에서 다음 단계의 문장으로 들어가는 고리 구조이기에 붙음. n-gram은 바로 전 문장에서 몇 단어밖에 확인하지 못하였다면 RNN은 처음 대화부터 흐름을 읽을 수 있음.
RNN의 문제점 1: 긴 문장에서는 기억이 흐려짐. 학습 과정에서 앞쪽 정보의 영향력이 점점 흐려지는 '기울기 소실' 문제가 있었음. 지금도 AI를 많이 사용하면 앞쪽 대화가 점점 흐려지는 현상이 이 현상(기울기 소실) 문제로 보여짐
RNN의 문제점 2: 단어 하나씩 모두 확인하기 때문에 느림
LSTM - LSTM은 Long Short-Term Memory(장단기 기억). LSTM은 RNN의 단점을 보안하려고 만든 개선형 버전이며, 게이트라는 장치가 중요한데 망각 게이트, 입력 게이트, 출력 게이트가 있다.
망각 게이트: 이전 대화에서 어떤 기억을 지울지
입력 게이트: 새 정보에서 어떤 정보를 기억할지
출력 게이트: 저장된 기억중에서 어떤 기억을 내보낼지
RNN보다 문맥을 잘 다뤘으며 2010년대에 번역과 음성 의식이 주 기술이 됨
트랜스포머 - LLM의 기초이며, RNN과 LSTM의 순환구조를 없애고 어텐션만으로 문장으 처리함. 문장 전체를 한꺼번에 보고, 병렬 처리가 가능해져 모델과 데이터의 규모를 크게 키울 수 있게 됨. 마지막으로 단어 순서 정보는 '위치 인코딩'이라는 방식으로 따로 넣음.
스케일링 법칙 - 모델의 크기와 데이터 양, 연산량을 늘리면 성능이 어떠한 방식으로 좋아지는지를 설명한 경험적 법칙. 자원을 늘리게 되면 성능이 꾸준하고 예측이 좋아지지만, 개선은 점차 줄어드는 '멱법칙'형태. 스케일링 법칙이 중요한 이유는 성능을 미리 예측할 수 있으며, 투자의 근거가 생김.
3. LLM이 나오기 이전에는 작업마다 따로 만들어야 했으며 규칙이나 얕은 통계에 의존해야 했다. 작업을 분리해서 모델을 따로 만들어야하는 불편함이 있었는데 쉽게 설명하면 번역 모델, 요약 모델, 분류 모델 등으로 여러 모델이 있어야 했다. 또 사람이 직접 만든 규칙에 맞춰서 사용할 수 있었는데 이는 문법 규칙 전문가가 일일이 작성해야 했으며, 이 또한 너무 많은 특징이 나오게 되어 노동력이 많이 들었다. 또 라벨 데이터가 많이 필요했으며, n-gram과 RNN, LSTM같은 경우 몇 글자에서 긴 글의 앞부분의 정보가 흐려지는 단점이 있어 전체 흐름을 파악하는데 어려움이 있었다. 학습 속도와 규모의 한계도 있었으며, 같은 뜻이 많은 내용은 인지하기 어려웠다. 또 작업용으로 만들어진 모델은 그 작업 이외에 사용에 어려움이 있었고, 또 사람과 자유로운 대화를 하지 못하였다. 마지막으로 모델을 사용하려면 학습 과정이 필요하였다. 요약하면 언어를 다루는 기계는 있었지만 작업마다 작업에 맞는 사람 즉 전문가가 많이 손봐야 했으며, 여러가지 일을 유연하게 사용하지 못한다는 단점이 있었다.
4. LLM이 나온 이후에는 위에서 설명했듯 여러 모델이 필요했던 이전과는 다르게 하나의 LLM으로 다양한 작업을 진행할 수 있게 되었다. 또 전문 지식이 없어도 간단하 일상말로 지시가 가능해졌다. 또 예시 몇가지로 작업이 가능해졌고, 트랜스포머의 어텐션 덕분에 긴 문서 전체의 흐름이나 멀리 떨어져 있는 단어의 관계를 잡아 긴글을 주어도 요약하거나 질문하는 일도 가능해졌다. 그리고 문맥을 이해하고 그 문맥에 맞는 단어를 구분하여 대답이 가능해졌다. 이전에 문제였던 같은 뜻이 있는 여러 단어를 이해하게 되었다. 그리고 사람과의 자연스러운 대화도 가능해졌고, 활용 범위가 많이 넓어졌다. 일상 업무를 돕는 형태로 넓어진것이다.
ㄴ자연스러운 대화는 어떤 방식으로 가능해진거야?
1. 사람들이 많이 사용하는 대화를 대량으로 학습하여 통계적으로 대답
2. 대화의 앞에 말들을 듣고 자연스럽게 진행하기 위해 앞에서 한 말을 기억하고 참고(트랜스포머와 어텐션 - 한번에 보고 어떤것에 집중할지)
3. 학습법이 개선 되었는데 이전에는 지시 따르기 학습(SFT)으로 질문과 알맞는 답, 요청과 수행 결과 형태였는데 여기에 사람 피드백 기반 학습(RLHF)이 더 해지며 사람이 선호하는 방향으로 답하게 되었다. 사람 피드백 기반 학습으로 인해서 ChatGPT가 사람들에게 충격을 주게된 이유이다.
4. 대화 형식과 역할이 설정되었다. 사용자 발언과 모델 발언이 번갈아서 나오는 대화형식으로 역할이 주어지게 되고 지시문에 따라서 말투나 역할도 정해지게 된다. GPT가 대화를 시작할때 상대방이 하는 말에 따라서 대화형식이 바뀌는 것이 여기에 해당된다고 생각한다. 또 답도 한번에 나오는것이 아닌 단어 즉 토큰을 하나씩 예측하여 이어 붙이는 형식이다.
ㄴ지시 따르기 학습은 이전에 사용하던 방법이고 사람 피드백 기반 학습은 이후에 개선된거라고 봐도 돼?
이전에는 지시 따르기 학습만 사용되었지만 이후에는 사람 피드백 기반 학습이 추가 되어 함께 쓰이게 되었다.
5. LLM이 생기면서 작업별로 사용하던 개별 모델에서 사전학습과 범용 모델로 개선되며 하나의 모델에서 여러 작업을 수행 할 수 있게 되었다. 다음으로는 규칙이나 특성을 전문가가 직접 설계해야하는 부분을 데이더가 스스로 학습할 수 있게 되었는데 방대한 데이터에서 패턴을 스스로가 추출하여 스스로 학습이 가능하게 되었다. 또 스스로가 글 자체에서 학습된 내용으로 대화를 할 수 있게 되면서 라벨 데이터의 부담이 줄어들게 되었다. 그리고 이전에는 긴 문맥을 읽기 어려웠던 문제가 트랜스포머의 어텐션으로 전체적으로 읽을 수 있게 되며 읽은 내용에서 무엇에 집중해야 하는지를 인지하여 긴 글을 주어도 소화할 수 있게 되었다. 또한 트랜스포머가 나오면서 문장 전체를 스스로가 해석이 가능해지면서 GPU 병렬 처리가 적합해졌는데 여기에 스케일링 법칙에서 이야기하는 규모를 키우면 성능이 예측 가능하게 오른다는 근거로 모델과 데이터를 대규모로 끌어올릴 수 있게 되었다. 그리고 위에서도 설명했듯 여러 단어를 품고 있는 단어를 문맥에 맞춰서 추측하여 대화를 진행할 수 있게 되었고, 학습에서 직접적으로 배우지 않은 작업도 프롬프트의 설명이나 예시로도 수행이 가능해졌다. 그리고 이전에는 부자연스러운 대화를 SFT(지시 따르기 학습)과 RLHF(사람 피드백 학습)으로 인해서 더욱 부드러운 대화가 가능해졌고 역할과 말투도 유연해졌다. 마지막으로 자연어로도 조작이 가능하게 되면서 많은 사람들이 사용하기에 편리해졌다.
핵심 개념: LLM은 방대한 언어를 학습하고 사용하며 대화를 자연스럽게 주고 받을 수 있는 모델이며 지시 따르기 학습(SFT)와 사람 피드백 학습(RLHF)으로 자연스러운 대화가 가능해졌으며 트랜스포머의 어텐션으로 긴 글도 충분히 읽을 수 있게 되면서 요약이나 질의응답도 가능해졌다. 마지막으로 자연어도 학습되어 누구든지 쉽게 사용할 수 있게 되었다.
AI 대화 내역 링크: https://claude.ai/share/812f3eb7-d286-42ab-b716-7a88152c9cf0
오늘 잘한 점: 이전에 비해서 꼬리질문이 늘었던거 같다. 내용중에서 관심이 있는 부분을 적극적으로 질문하여 부족한 부분을 채우려고 노력했다. 궁금한 단어를 적극적으로 질문하여 대화의 흐름을 이해하기 위해서 노력하였다.
오늘 부족했던 점: 대화를 완전히 이해하고 단어의 뜻을 채운것이 아닌 대화를 적으면서 궁금한 단어를 질문하였다. 즉 완전히 이해가 되지 않은 상태에서도 넘어가는 상황이 발생했던것이다. 또 하나의 내용에서 너무 오랜시간을 사용하는 듯하여 진도가 상당히 느린듯 하다. 적극적인 질문으로 빠르게 이해를 도와 진도에 속도를 붙어야할거 같다.
오늘 총평: 대화에서 궁금한 부분은 적극적으로 질문하여 모르는 부분을 채우기 위해 노력하였다. 하지만 대화를 먼저 읽고 작성을 하는데 작성을 하는중 단어를 질문하는 일이 자주 생겼는데 이는 대화를 읽을때 단어를 몰라도 먼저 작성해버려서 생기는 문제점이라고 생각하고 읽을때 더욱 꼼꼼히 읽고 더욱 적극적인 질문으로 이해를 더욱 빠르게 도와야겠다.
부족한 단어: 하이퍼링크, 링크, HTML, URL, HTTP, ENQUIRE, W3C, FTP, Usenet, Telnet, Archie, Gopher, 하이퍼텍스트, 하이퍼카드, 메멕스(Memex), 모자이크(Mosaic), link rot, 테드 넬슨, HTML Tags, 바이너리 형식, SGML, 검색 엔진, 스크린 리더, 자동 처리 도구, 로이 필딩, 헨릭 프리스틱 닐슨(Henrik Frystyk Nielsen), IETF, 인터넷 통신 방식(TCP/IP), 메서드, 데이터, 도메인, Head-of-Line Blocking, 멀티플렉싱, n-gram 모델, 트랜스포머, 클로드 섀넌, IBM 연구진, 요슈아 벤지오 연구팀, BERT, GPU
여기에 파일을 드롭하세요
