LLM(Large Language Model)이란?대규모 텍스트 데이터를 학습하여 자연어를 이해하고 생성할 수 있는 AI 모델이다. GPT-3, GPT-4, BERT와 같은 모델들이 대표적이다.
이 모델들은 매우 큰 크기의 파라미터를 가지고 있으며, 텍스트의 맥락(Context)을 파악해 다양한 언어 작업을 수행할 수 있다.
쉽게 말하자면, 대형 언어 모델(LLM)은 수십억 개의 파라미터를 기반으로 한 인공지능이기에, 대규모 텍스트 데이터셋을 사용해 학습시켜서 마치 사람처럼 문맥을 파악하고 자연스럽게 대답할 수 있는, 자연어 처리를 갖게 만든 모델(맥락 이해 등도 포함)이다.
학습된 데이터에서 맥락을 파악할 수 있었던 경우, LLM은 그 작업을 수행할 수 있다.
기본적으로 자연어 처리(NLP)의 다양한 작업(장문, 번역, 질의응답, 요약, 텍스트 생성 등 글로써 수행할 수 있는 작업 등)을 할 수 있다. 심지어는 소스 코드 자체도 텍스트 형태를 띠기 때문에 코딩에 유용하다는 특징이 있다. 이러한 자연스러운 입력 및 출력을 넘어서 서비스의 영역에서도 크게 넓힐 수 있는 장점이 있다.
LLM이 동작하는 원리는 크게 3가지 단계로 말할 수 있다.
1. 학습(Training)
LLM은 대규모 텍스트 데이터셋을 이용해 학습하기에, 수많은 텍스트에서 단어와 문장의 '패턴'을 찾아내서, 새로운 문장이나 답변을 생성할 때 그 패턴을 적용한다.
2. 추론(Inference)
학습된 LLM은 질문이나 입력을 받으면, 관련해서 이전의 맥락을 기억하고 활용하며, 번역이라면 번역, 채팅이라면 채팅 수행하는 등, 추론을 통해 답변을 생성한다.
3. 미세 조정(Fine-tuning)
LLM은 특정 도메인이나 용도에 맞춰 추가 학습(미세 조정)할 수 있다.(모든 LLM원리가 미세조정을 하는 것은 아니다.) 특히 콜센터,의료나 법률 등 특수한 분야에 Fine-Tuning과 같은 작업이 필요하여, 알맞은 데이터를 추가로 학습시키면 해당 분야에 대한 답변의 정확성이 높아진다.
LLM은 크게 랜덤성과 조건성을 가지고 있다.
1. 랜덤성(Randomness)
LLM은 기본적으로 확률에 기반하여 문장을 생성하기에, 같은 질문에 매번 동일한 답변을 주지 않는다. 이를 긍정적으로 생각한다면, 모델이 새로운 문장을 만들어내는 능력을 가지고 있다.
LLM이 결과를 생성할 때, 토큰의 확률 분포를 계산하여 그 중에서 높은 확률을 가진 토큰을 선택해 문장을 만들게 된다. 이때 "온도(temperature)"라는 매개변수가 랜덤성에 영향을 미친다.
temperature : ChatGPT에 Tamperature을 설정할 수 있는데, 얼마나 이 모델이 랜덤하게 결과를 만들어낼까를 설정할 수 있다.
예시 질문 : "오늘 날씨는 어떤가요?"
LLM은 질문에 정확한 답을 유도하려고 노력하는 것이지, 100%가 정확한 것은 아니다. 주의할 것.
2. 조건성(Conditioning)
LLM은 모델은 이전의 입력 내용에 따라 문장을 조건부 확률을 기반으로 결과를 나타내는데, 이를 컨텍스트(context)라고도 한다. 이 과정을 다음과 같은 두 과정 요소는 정리할 수 있다.
프롬프트: 입력된 문장이나 질문이 무엇인지에 따라 결과가 달라진다.
- 원하는 답변을 더 쉽게 얻기 위해 정확한 프롬프트를 작성한다.
맥락 기억: LLM은 대화를 나누는 동안 이전 문장이나 대화 흐름을 기억하고 그에 맞춰 답변을 생성한다.
예시
즉, 조건성을 준다는 것은, 어느정도 랜덤성을 낮춘다.
어느 정도 사용자가 원하는 대로 동작하되, 랜덤 안에서 창의적으로 생성해낸다. 랜덤성과 조건성, 두 가지 특징들로부터 출력에 관해 창의적인 업무 가능하다.
1. 대규모 데이터 학습
많은 데이터를 바탕으로 언어 패턴을 학습한 후 사람의 말의 문맥을 이해할 수 있다.
2. 문맥 기반 추론
입력된 텍스트의 맥락을 파악해 가장 적절한 답변을 생성한다.
3. 랜덤성 및 조건성
확률을 기반으로 다양한 답변을 생성하며, 조건에 따라 결과가 달라진다.
4. 미세 조정
특정 용도나 도메인에 맞춰 추가 학습 가능하다.
5. 한계 극복 및 성능 개선
LLM의 한계를 알면, 적절한 상황에서 더 나은 도구를 선택할 수 있다. 성능 개선을 위한 기술 요소들(RAG, LangChain 등)을 효과적으로 도입할 수 있다.
LLM은 완벽한 모델이 아니기에, 이를 보완하는 기법들이 필요하다. 관련 기법들은 다음과 같으며, 다음 페이지에서 자세히 다룰 예정이다.
1. RAG (Retrieval-Augmented Generation)
LLM이 스스로 모든 답을 생성하는 대신, 데이터베이스에서 정보를 검색한 것의 기반으로 답변을 생성하는 기법이다.
LLM의 한계를 극복할 수 있는 방법 중 하나라고 보면 된다.
2. Vector DB
RAG를 동작시키기 위해 데이터베이스 역할을 한다.
벡터 데이터베이스는 텍스트를 숫자의 나열인 벡터 형태로 변환하고, 이를 빠르게 찾을 수 있는 데이터베이스를 갖춰서, 유사한 의미를 가진 텍스트를 효율적으로 검색할 수 있게 도와주는 기술이다.
위 변환과정에서, 임베딩을 진행하게 되면, 텍스트는 숫자의 나열인 벡터로 바뀌기 때문에, Vector DB에 넣을 수 있는 형태가 된다.
LLM과 결합하면 더 강력한 검색 및 응답 기능을 구현할 수 있는 장점을 가지고 있다.
장점
이는 임베딩 덕분인데, 완전 동일치 않아도, 유사한 의미를 갖는 텍스트로 검색할 수 있기에, 조금 더 데이터베이스의 구성이 쉬워진다.
CPU 말고도 GPU 활용까지도 가능하기에 성능적으로 좋다.
3. CHATGPT
문자나 음성을 통해 인간과 대화를 수행하도록 만들어진 컴퓨터 프로그램,인공지능 모델 중 하나이다.
4. GEMINI
구글의 제미나이라고 불리며, 인공지능 모델 중 하나이다. LLM의 종류 중 하나라고 보면 된다.
5. NLP(Natural Language Processing)
사람이 사용하는 언어인 '자연어(Natural Language)'를 컴퓨터에서 처리하기 위한 기술이다.