본문 바로가기

LLM을 활용한 실전 AI 애플리케이션 개발/1부 | LLM의 기초 뼈대 세우기

01 LLM 지도

멀티모달 AI 모델이 텍스트뿐만 아니라 이미지, 음성, 동영상 등 다양한 형식의 데이터를 처리하는 것
에이전트 AI 모델이 장기 기억을 가지고 인터넷 검색, 코드 실행 등 다양한 도구를 활용해 사용자의 문제를 해결하는 더 발전된 시스템
온디바이스AI AI 모델이 클라우드나 고성능의 서버에서 실행되는 것이 아니라 사용자의 장비에서 직접 실행되는 것

 

1.1 딥러닝과 언어 모델링

LLM은 기술적으로는 딥러닝에 기반을 두고 있다.

더보기

딥러닝이란 인간의 두뇌에 영감을 받아 만들어진 신경망으로서, 데이터의 패턴을 학습하는 머신러닝의 한 분야다.

딥러닝은 표 형태의 정형 데이터뿐만 아니라 텍스트와 이미지 같은 비정형 데이터에서도 뛰어난 패턴 인식 성능을 보여 2010년대 중반 이후 AI 분야의 주류 모델로 자리잡았다.

LLM은 사람의 언어를 컴퓨터가 이해하고 생성할 수 있도록 연구하는 자연어 처리분야에 속하며, 특히 그중에서도 사람과 비슷하게 텍스트를 생성하는 방법을 연구하는 자연어 생성에 속한다.

 

LLM은 다음에 올 단어가 무엇일지 예측하면서 문장을 하나씩 만들어 가는 방식으로 텍스트를 생성하는데, 이렇게 다음에 올 단어를 예측하는 모델을 언어 모델이라고 한다. 즉 한마디로 간추리자면, LLM은 딥러닝 기반의 언어 모델이다.

 

1.1.1 데이터의 특징을 스스로 추출하는 딥러닝

딥러닝에서 문제를 해결하는 방법은 간단하다.

- 문제의 유형(예: 자연어 처리, 이미지 처리)에 따라 일반적으로 사용되는 모델을 준비한다.

- 풀고자 하는 문제에 대한 학습 데이터를 준비한다.

- 학습 데이터를 반복적으로 모델에 입력한다.

 

딥러닝과 머신러닝의 가장 큰 차이는 보이는 지점은 '데이터의 특징을 누가 뽑는가?'이다.

1.3(a) - 데이터의 특징(feature)을 연구자 또는 개발자가 찾고 모델에 입력으로 넣어 자동차인지 아닌지 결과를 출력

1.3(b) - 모델이 스스로 데이터의 특징을 찾고 분류하는 모든 과정을 학습

 

1.1.2 임베딩: 딥러닝 모델이 데이터를 표현하는 방식

딥러닝 모델은 데이터의 의미를 숫자의 집합으로 표현한다. 데이터의 의미와 특징을 포착해 숫자로 표현한 것을 임베딩이라 부른다.

예시) MBTI

INTP - [0.3, 0.2, 0.9, 0.2]

즉 임베딩이란 MBTI 검사 결과를 바탕으로 사람을 4개의 숫자로 표현한 것처럼, 데이터를 그 의미를 담아 여러 개의 숫자의 집합으로 표현하는 것을 말한다.

 

데이터를 임베딩으로 표현하면 데이터 사이의 거리를 계산하고 거리를 바탕으로 관련 있는 데이터와 관련이 없는 데이터를 구분할 수 있다.

 

임베딩은 거리를 계산할 수 있기 때문에 다음과 같은 작업에 활용할 수 있다.

- 검색 및 추천: 검색어와 관련이 있는 상품을 추천한다.

- 클러스터링 및 분류: 유사하고 관련이 있는 데이터를 하나로 묶는다.

- 이상치(outlier) 탐지: 나머지 데이터와 거리가 먼 데이터는 이상치로 볼 수 있다.

 

데이터는 어떻게 숫자로 변환할까?

더보기

2013년 구글에서 발표한 [Efficient Estimation of Word Representations in Vector Space(벡터 공간에서 단어 표현의 효율적인 추정)]라는 논문에서 워드투벡 word2vec이라는 모델을 통해 단어를 임베딩으로 변환하는 방법을 소개했다.

 

단어가 워드투벡 모델을 통해 숫자의 집합인 임베딩으로 변환한 것을 일컬어 단어 임베딩(word embedding)이라고 한다.

 

1.1.3 언어 모델링: 딥러닝 모델의 언어 학습법

언어 모델링 - 모델이 입력받은 텍스트의 다음 단어를 예측해 텍스트를 생성하는 방식

언어 모델 - 다음 단어를 예측하는 방식으로 훈련한 모델

 

언어 모델링은 텍스트를 생성하는 모델을 학습시키는 방법으로도 사용되지만, 대량의 데이터에서 언어의 특성을 학습하는 사전 학습(pre-training) 과제로도 많이 사용된다.

 

딥러닝 분야에서는 하나의 문제를 해결하는 과정에서 얻은 지식과 정보를 다른 문제를 풀 때 사용하는 방식을 많이 활용하는데, 이를 전이 학습(transfer learning)이라고 부른다. 전이 학습에서는 대량의 데이터로 모델을 학습시키는 사전 학습과 특정한 문제를 해결하기 위한 데이터로 추가 학습하는 미세 조정(fine-tuning)의 두 단계로 나눠 학습을 진행한다.

유방암이 양성인지 악성인지 분류하는 새로운 문제를 풀고자 할 때, 유방암 데이터만으로 학습한 모델보다 사전 학습 모델의 일부를 가져와 활용했을 때 일반적으로 성능이 더 높다. 사전 학습에 사용한 이미지와 현재 풀고자 하는 과제의 이미지가 다르더라도 선이나 점 같은 특징을 파악하는 능력은 공통적으로 필요하기 때문이다. 이때 사전 학습 모델을 미세 조정해 풀고자 하는 과제를 흔히 다운스트림(downstream)과제라고 부른다. 전이 학습은 학습 데이터가 적은 경우에 특히 유용한데, 그림 1.8에서 사전에 학습한 모델을 활용하면 더 적은 유방암 이미지만으로도 높은 성능의 모델을 학습시킬 수 있다.

 

1.9(a) - 각각의 데이터셋으로 별도의 모델을 학습

1.9(b) - 모델의 본체 부분은 대규모 데이터셋인 이미지넷으로 학습한 모델에서 가져오고 분류를 수행하는 헤드 부분은 해결하려는 작업에 데이터 셋으로 추가 학습

헤드 부분은 일반적으로 본체 부분에 비해 작기 때문에 비교적 적은 데이터로도 학습 가능하다. 이때 헤드를 추가 학습하는 과정이 사전 학습에 비해 적은 양의 학습 데이터를 사용한다는 의미에서 미세조정이라고 부른다.

 

2018년 fast.ai의 제레미 하워드와 세바스찬 루더가 다음 단어를 예측하는 언어 모델링 방식으로 사전 학습을 수행했을 때 훨씬 적은 레이블 데이터로도 기존 지도 학습 모델의 성능을 뛰어넘는다는 사실을 발견했다[Universal Language Model Fine-Tuning for Text Classification(텍스트 분류를 위한 범용 언어 모델 미세 조정)]

 

1.10(a) - 다음 단어를 예측하는 방식으로 언어 모델을 사전 학습

1.10(b) - 다운스트림 과제의 데이터셋으로 언어 모델 미세 조정을 수행

1.10(c) - 텍스트 분류 미세 조정

 

1.2 언어 모델이 챗GPT가 되기까지

1.2.1 RNN에서 트랜스포머 아키텍처로

딥러닝이나 머신러닝 분야에서 텍스트는 단어가 연결된 문장 형태의 데이터를 일컫는다. 이처럼 작은 단위(단어)의 데이터가 연결되고, 그 길이가 다양한 데이터의 형태를 '시퀀스(sequence)'라 한다. ex) 텍스트, 오디오, 시계열

역사적으로 이러한 시퀀스 데이터를 처리하기 위해 크게 순환신경망이나 트랜스포머의 두 가지 아키텍처로 대표되는 다양한 모델을 사용해왔다.

 

RNN은 입력하는 텍스트를 순차적으로 처리해서 다음 단어를 예측한다. RNN의 특징은 모델이 '하나의 잠재 상태(hidden state)에 지금까지의 입력 텍스트의 맥락을 압축'한다는 점이다.

 

이 방식은 여러 단어로 구성된 맥락을 하나의 잠재 상태에 압축하기 때문에 메모리를 적게 사용한다는 장점이 있다. 또한 다음 단어를 예측할 때 지금까지 계산을 통해 만들어진 잠재 상태와 입력 단어만 있으면 되기 때문에 다음 단어를 빠르게 생성할 수 있다. 하지만 순차적으로 입력되는 단어를 하나의 잠재 상태에 압축하다 보니 먼저 입력한 단어의 의미가 점차 희석되며, 입력이 길어지는 경우 의미를 충분히 담지 못하고 성능이 떨어진다는 문제가 있다.

 

2017년 등장한 트랜스포머 아키텍처는 RNN의 순차적인 처리 방식을 버리고, 맥락을 모두 참조하는 어텐션(attention) 연산을 사용해 RNN의 문제를 대부분 해결했다.

 

RNN이 하나의 잠재 상태로 맥락을 압축하던 것과는 달리 맥락 데이터를 그대로 모두 활용해 다음 단어를 예측한다는 사실만 기억하자. 어텐션 연산은 2장 참고.

 

트랜스포머 아키텍처는 맥락을 압축하지 않고 그대로 활용하기 때문에 성능을 높일 수 있지만, 입력 텍스트가 길어지면 맥락 데이터를 모두 저장하고 있어야 하기 때문에 메모리 사용량이 증가한다. 또한 매번 다음 단어를 예측할 때마다 맥락 데이터를 모두 확인해야 하기 때문에 입력이 길어지면 예측에 걸리는 시간도 증가한다.

 

트랜스포머 아키텍처는 많은 연산량이 필요하다는 단점이 있지만 성능이 좋고 순차적으로 처리하는 RNN과 달리 병렬 처리를 통해 학습 속도를 높일 수 있어 현재는 대부분의 LLM이 트랜스포머 아키텍처를 기반으로 하고 있다.

최근 뛰어난 성능 효율성을 갖춘 새로운 아키텍처가 공개되며 많은 기대를 받고 있다.(새롭게 등장한 모델 아키텍처 중 대표적인 맘바(Mamba)를 16장에서 살펴본다).

 

1.2.2 GPT 시리즈로 보는 모델 크기와 성능의 관계

수치는 파라미터 개수

OpenAI의 GPT 시리즈는 모델 구조에는 큰 변경 없이 오직 모델과 학습 데이터셋의 크기만 키워왔는데, 이렇게 간단한 접근 방식으로도 성능이 크게 높아져 GPT-3에 와서는 사람의 언어 생성 능력과 유사하다는 평가를 받았다.

 

그렇다면 왜 모델의 크기가 커지고 학습 데이터가 많을수록 모델의 성능이 높아질까?

언어 모델이 학습 데이터를 압축한다는 관점에서 본다면 이 사실을 더 직관적으로 이해할 수 있다. 언어 모델의 경우 학습 데이터와 언어 모델의 결과가 모두 '생성된 언어'다. 따라서 언어 모델이 학습하는 과정을 학습 데이터를 압축하는 과정으로 해석할 수 있다. 여기서 말하는 압축은 우리가 일상생활에서 아용하는 zip 파일을 만들 때처럼 무손실(lossless) 압축을 의미하는 것은 아니고, 공통되고 중요한 패턴을 남기는 손실 압축이다.

 

대표적인 오픈소스 LLM인 메타(Meta)의 라마 2(Llama2) 모델을 예시로 보면, 약 10TB의 텍스트로 학습해 최종적으로 140GB 크기의 모델이 된다. 학습 데이터 대비 약 1.4% 정도의 작은 모델에, 학습 데이터가 갖고 있던 텍스트 생성의 패턴을 압축했다고 볼 수 있다.

 

1.2.3 챗GPT의 등장

어마어마한 비용이 들지만 만들 수 있는 가치는 비교적 적었던 GPT-3를 챗GPT로 바꾼 것은 OpenAI가 [Training language models to follow instructions with human feedback(사람의 피드백을 통해 언어 모델이 지시를 따르도록 훈련하기]이라는 논문의 연구 결과 발표와 함께 공개한 지도 미세 조정(supervised fine-tunning)과 RLHF(Reinforcement Learning from Human Feedback(사람의 피드백을 활용한 강화 학습)라는 기술이었다. 이 기술을 통해 챗 GPT는 그저 사용자가 한 말 다음에 이어질 말을 생성하는 것이 아니라 사용자의 요청을 해결할 수 있는 텍스트를 생성하게 됐다.

 

LLM이 생성하는 답변을 사용자의 요청 의도에 맞추는 것을 정렬(alignment)이라고 한다. 지도 미세 조정은 정렬을 위한 가장 핵심적인 학습 과정으로서, 언어 모델링으로 사전 학습한 언어 모델을 지시 데이터셋(instruction dataset)으로 추가 학습하는 것을 뜻한다. 이때 지시 데이터셋은 사용자가 요청 또는 지시한 사항과 그에 대한 적절한 응답을 정리한 데이터셋을 의미한다.

 

OpenAI에서는 두 가지 답변 중 사용자가 더 선호하는 답변을 선택한 데이터셋을 구축했는데, 이를 선호 데이터셋(preference dataset)이라고 한다. 선호 데이터셋으로 LLM의 답변을 평가하는 리워드 모델(reward model)을 만들고 LLM이 점점 더 높은 점수를 받을 수 있도록 추가 학습하는데, 이때 강화 학습(reinforcement learning)을 사용하기 때문에 이 기술을 일컬어 RLHF(사람의 피드백을 활용한 강화 학습)라고 불렀다.

 

1.3 LLM 애플리케이션의 시대가 열리다

sLLM(small Large Language Model), RAG(Retrieval Augmented Generation) - 검색 증강 생성

 

1.3.1 지식 사용법을 획기적으로 바꾼 LLM

기존에는 자연어 처리 분야를 크게 자연어 이해와 자연어 생성의 두 분야로 나눠 접근했다. 또 각각의 영역에서도 일부 좁은 영역의 작업을 해결하기 위해 별도의 모델을 개발하는 방식으로 문제에 접근하는 경우가 많았다.

 

LLM은 언어 이해와 생성 두 측면 모두 뛰어나고, 사용자의 요청에 맞춰 다양한 작업을 수행하는 '다재다능함'을 가졌다는 점에서 이전까지의 자연어 처리 모델과 뚜렷이 구분된다.

 

세 가지 작업 모두 언어를 이해하는 것뿐만 아니라 결과를 언어로 생성해야 한다.

 

기존의 자연어 처리 접근 방식에서는 이렇게 복합적인 작업을 수행하기 위해 언어 이해 모델과 언어 생성 모델을 각각 개발해 연결했다. 많은 모델을 연결할수록 시스템의 복잡도가 높아지고 관리는 어려워진다. 하지만 다재다능한 LLM을 활용한다면, 하나의 LLM으로 작업하도록 만들 수 있다.

 

LLM은 우리가 기존에 지식을 습득하고 활용하던 모든 측면에 영향을 줄 수 있기 때문에 이전의 AI 모델보다 사회에 미치는 영향이 크다.

 

1.3.2 sLLM: 더 작고 효율적인 모델 만들기

LLM 애플리케이션을 개발할 때 LLM을 활용하는 방법은 크게 두 가지로 나눌 수 있다.

1. OpenAI의 GPT-4나 구글의 제미나이처럼 상업용 API를 사용하는 방법

2. 오픈소스 LLM을 활용해 직접 LLM API를 생성해 사용하는 방법

 

일반적으로 상업용 모델은 오픈소스 LLM에 비해 모델이 크고 범용 텍스트 생성 능력이 뛰어나다. 하지만 오픈소스 LLM은 원하는 도메인의 데이터, 작업을 위한 데이터로 자유롭게 추가 학습할 수 있다는 장점이 있다. 이렇게 추가 학습을 하는 경우 모델 크기가 작으면서도 특정 도메인 데이터나 작업에서 높은 성능을 보이는 모델을 만들 수 있는데, 이를 sLLM이라고 한다.

 

2024년 4월 메타가 라마-3 모델 오픈소스로 공개하면서 sLLM 연구를 리드.

2024년 4월 마이크로소프트는 언어 추론 능력에 집중한 Phi-3를 공개(38억 개의 적은 파라미터로 강력한 언어 추론 능력).

2024년 6월 구글이 제미나이 개발에 사용한 기술로 만든 젬마-2 모델을 공개.

텍스트 요청을 SQL로 변환하는 작업에서 GPT-4를 뛰어넘은 디포그 에이아이(Defog.ai)의 SQLCoder도 있다.

 

1.3.3 더 효율적인 학습과 추론을 위한 기술

트랜스포머 아키텍처 연산은 무겁고 또 모델 성능을 높이기 위해 모델의 크기를 키우면서 LLM의 학습과 추론에 필요한 연산량이 크게 증가 -> 많은 연산을 병렬로 처리하는 데 특화된 GPU의 수요가 급증

 

GPU를 더 효율적으로 사용하는 연구가 활발히 진행

- 모델 파라미터를 더 적은 비트로 표현하는 양자화(quantization) 방식

- 모델 전체를 학습하는 것이 아니라 모델의 일부만 학습하는 LoRA(Low Rank Adaptation) 방식

- 무거운 어텐션 연산을 개선해 효율적인 학습과 추론이 가능하게 하는 방식

 

1.3.4 LLM의 환각 현상을 대처하는 검색 증강 생성(RAG) 기술

환각 현상: LLM이 잘못된 정보나 실제로 존재하지 않는 정보를 만들어 내는 현상

왜 이런 현상이 일어나는지 정확히 알기 어렵지만, 기본적으로 LLM은 학습 데이터를 압축해 그럴듯한 문장을 만들 뿐 어떤 정보가 사실인지, 거짓인지 학습한 적은 없어 특정 정보가 사실인지 판단할 능력은 없다. 또한 학습 데이터를 압축하는 과정에서 비교적 드물게 등장하는 정보는 소실될 텐데, 그런 정보의 소실이 부정확한 정보를 생성하는 원인이 될 수도 있다.

 

이런 문제를 줄이기 위해 검색 증강 생성(RAG)이라는 기술을 사용한다. RAG기술은 프롬프트에 LLM이 답변할 때 필요한 정보를 미리 추가함으로써 잘못된 정보를 생성하는 문제를 줄인다.

 

1.4 LLM의 미래: 인식과 행동의 확장

- LLM이 더 다양한 형식의 데이터(예: 이미지, 비디오, 오디오 등)를 입력으로 받을 수 있고 출력으로도 여러 형태의 데이터를 생성할 수 있도록 발전시킨 멀티 모달 LLM

- LLM이 텍스트 생성 능력을 사용해 계획을 세우거나 의사결정을 내리고 필요한 행동까지 수행하는 에이전트(agent)

- 트랜스포머 아키텍처를 새로운 아키텍처로 변경해 더 긴 입력을 효율적으로 처리하려는 연구

 

2024년 5월에 공개된 GPT-4o는 뛰어난 이미지 및 음성 처리 능력을 보여줬고 구글의 제미나이, 앤트로픽(Anthropic)의 클로드(Claude) 같은 상업용 모델도 이미지를 함께 처리할 수 있다. RAG에서도 이미지와 텍스트를 함께 검색하는 멀티 모달 RAG에 대한 관심이 높아지고 있다.

 

2023년 LLM을 핵심 엔진으로 사용하는 자동화 시스템인 AutoGPT가 공개되면서 LLM 기반 에이전트의 가능성에 대한 기대가 커졌고 최근에는 마이크로소프트의 AutoGen, CrewAI 등 여러 개의 에이전트를 활용해 문제를 해결하는 멀티 에이전트 프레임워크도 많은 인기를 얻고 있다.

 

1.5 정리

이번 장에서는 텍스트 생성 딥러닝 모델로서 LLM이 걸어온 길과 최근의 연구 동향, LLM이 나아가고 있는 방향을 살펴봤다.

챗GPT는 거대한 모델과 지시 데이터셋을 활용한 정렬을 통해 엄청난 가능성이 있음을 입증했다. 지금의 LLM 연구는 최첨단의 LLM과 비교적 작은 모델에서도 뛰어난 성능을 낼 수 있는 sLLM으로 크게 분기되어 나아가고 있다. 또한 텍스트만 처리할 수 있었던 한계를 벗어나기 위해 다양한 형식의 데이터를 활용하는 멀티 모달 모델도 빠르게 발전하고 있다. 마지막으로, LLM을 인간의 뇌와 같이 활용하는 LLM 에이전트를 통해 앞으로 더 많은 작업이 자동화될 것이다.