DADB(데이터 분석가의 디지털 브레인) 무료 체험판
Gumroad
1. 이번 주 목표
현재 회사에서 특정 문제에 LLM을 적용하려고 할 때 보유하고 있는 데이터가 적다는 문제가 있다.
데이터가 적다는 문제도 LLM을 이용해서 해결할 수 있는 방법이 없을까?
고민하고 있는데 가능성을 확인해본다.
2. 학습 내용
1. Instruction Tuning
Next token prediction을 통해 많은 text corpus로 학습한 LLM은 text에 대한 이해도가 높다.
하지만 text 이해와 별개로 주어진 질문에 정확한 대답을 잘 하지는 못함.
따라서 prompting을 통해 LLM을 활용할 수 있도록 하는 instruction-tuning 기법을 사용한다.
1.1 SFT: Supervised Fine-Tuning
일반적으로 Next token prediction에서 사용하는 data는 평문이다.
질문과 대답이 순서쌍으로 이루어진 형태가 아닌 무언가에 대해서 쭉 설명하는 형태이다.
instruction-tuning은 다음과 같은 질문과 답변의 쌍으로 이루어진 data를 사용한다.
[
{"instruction": "다음 문장을 한글로 번역해줘: hello, world!", "output": "안녕, 세계!"},
{"instruction": "1+1은 얼마입니까?", "output": "답은 2입니다."},
...
]
이런 data를 가지고 Next token prediction을 수행하면 다음과 같은 Loss가 구성된다.
하지만 이런 방식으로 학습을 진행하게 되면 LLM이 instruction에 맞춰 답변하는 것이 아닌 instruction까지 생성해버리는 문제가 발생한다.
Question: 주어진 영어 문장을 한글로 번역하고 json으로 변환해줘. Answer: ...
와 같은 instruction-tuning data가 있따고 할 때, 일반적인 방식으로 학습을 하면 주어진 영어 문장을 한글로 번역
이라는 질문이 들어오면 한글로 번역하는 것이 아닌 고 json으로 변환해줘
까지 생성해버리는 문제가 발생할 수 있다.
따라서 instruction-tuning 단계에서 다음과 같이 답변만 생성하도록 loss에 제한을 둔다.
질문에 대해서는 Next token prediction을 수행하지 않고, 질문이 주어졌을 때 나와야 하는 답변에 대해서만 학습을 진행하게 된다. instruction-tuning data는 질문과 답변의 쌍으로 이루어져 있어 가능한 형태이다. 이런 형태를 Supervised Fine-Tuning(SFT)
이라고 부른다.
1.2 Instruction-tuning data
일반적으로 instruction-tuning을 할 때 사용하는 data는 plain text가 아닌 (instruction, output)의 쌍으로 구성되어 있다. 그래서 instruction-tuning data는 LLM이 해결했으면 하는 instruction set을 정의한 후 다음 세가지 방법 중 하나로 원하는 data를 만든다.
Human generated data: 말 그대로 사람이 직접 instruction들을 생성한다. 정확도는 보장되지만 효율이 떨어진다.
GPT generated data: GPT에 적절한 prompt를 넣어 data를 생성한다. 이 경우, 빠르게 많은 instruction-tuning을 만들 수 있지만 질이 떨어질 확률이 높고 비용이 높다.
기존 dataset 변형: 기존 dataset을 사람이 직접, 또는 GPT를 사용하여 변형한다.
순수하게 GPT만 활용해서 instruction-tuning data를 만든 대표적인 사례들은 다음과 같다.
Self-Instruct
GSM-Plus
UltraChat
2. MLLM: Multi-modal Large Language Model
지금까지의 LLM은 text를 입력으로 받고 text를 출력하는 딥러닝 모델이었다. 하지만 text 뿐만 아니라 다른 형태의 입력을 처리할 수 있다면 당연히 활용도가 늘어난다.
예를들어:
게임 AI: 일반적으로 게임은 text 정보 뿐만 아니라 이미지로 현재 상황을 표현한다. 게임 AI를 만들기 위해서는 이미지도 입력을 받을 수 있어야 한다.
악보 변환: 노래를 악보로 변환하려면 노래가 입력이어야 한다. 따라서 오디오를 입력으로 받을 수 있어야 한다.
그래서 많은 연구자들이 기존 LLM을 text 외에 이미지나 오디오 같은 정보도 받을 수 있도록 발전시켜왔다. 이러한 형태의 LLM을 여러 가지 형태(modal)의 입력을 받는다고 해서 MLLM이라고 부른다.
2.1 VLM: Vision Language Model
2.1.1 ViT: Vision Transformer
Transformer는 token sequence를 입력으로 받는 모델이다. 여기서 특정 이미지를 token sequence로 바꿔 transformer의 입력으로 주는 모델을 ViT라고 부른다.
Transformer Encoder는 text 처리할 때 사용하던 Transformer와 같은 모델을 사용하며, 실제로 차이는 이미지를 token sequence로 변환하는 과정에서 생긴다. token sequence로의 변환에서 이미지가 text와 다른점은 다음과 같다.
Patch 단위 분리: 이미지를 특정 patch size로 분리한다.
positional embedding의 학습: 이미지는 text와 달리 2차원이기 때문에 positional encoding을 정의하기 힘들다. 따라서 patch들을 1차원 sequence로 나열하되, positional encoding은 각 index마다 별개로 학습한다.
ViT가 다른 비전 특화 모델과 비교해서 얻는 이점은 다음과 같다.
Data가 많을 때 고성능: ViT도 Transformer이기 때문에 inductive bias가 없다. data가 적을 때에는 inductive bias를 가지고 있는 비전 특화 모델이 비교 우위에 있지만, data가 많은 경우에는 ViT의 이득이 더 크다.
Text Transformer와의 쉬운 통합: ViT도 Transformer이기 때문에 출력도 token sequence이다. 따라서 text를 입력받는 Transformer와의 통합이 쉽다.
2.1.2 VLM: ViT with LLM
ViT와 LLM을 결합한 VLM은 다음과 같은 구조를 가지고 있다.
Vision encoder: ViT를 vision encoder로 두어, 이미지로부터 token sequence를 추출한다.
Projection layer: projection layer를 두어 token sequence에 적용한다. Token마다 동일한 MLP를 적용하는 것이 예시 중 하나이다.
Language model: 이미지가 vision encoder와 projection layer를 거쳐 만들어진 token sequence를 text와 concat하여 language model에 입력으로 제공한다.
즉, ViT의 출력이 text와 같은 token들의 sequence임을 이용하여 단순히 ViT의 출력을 입력 text와 concat하는 식으로 구현된다. 이러한 VLM은 이미지, text로 구성된 corpus로 fine-tuning한다. VLM으로 수행할 수 있는 task들은 다음과 같다.
이미지 질의응답
도표 이해
3. RAG: Retrieval Augmented Generation
기억에만 의존하지 않고 외부 데이터 소스를 활용하도록 하는 기술.
Knowledge Source를 이용하기 때문에 자연스럽게 Hallucination이 줄어들게 된다.
요약
사용자의 질문 입력
Knowledge source로 부터 유사한 자료 추출
추출한 자료들과 사용자 질문으로 prompt 구성
Prompt에 대한 LLM의 답변 반환
3. 느낀점
이런것도 가능하지 않을까? 라고 생각했던 것들이 될 것 같다.
근데 초기에 fine-tuning 단계에서 사람의 손이 많이 갈 것 같다…….. 할 수 있나?
그래도 가능성이 보인다는게 큰 의의인 것 같다.
다음 내용이 궁금하다면?
이미 회원이신가요?
2025년 4월 27일 오후 2:16
제가 리드하고 있는 조직(당근마켓 커뮤니티실)에서 백엔드 엔지니어를 채용 중이에요.
커뮤니티실에는 동네 이웃들의 이야기와 정보를 공유하는 동네생활팀, 이웃 간의 취미와 관심사를 연결하는 모임팀, 그리고 아파트 단지 생활을 더 편리하고 즐겁게 만들어 줄 단지팀이 있어요. 지금 내 동네에서 일어나고 있는 일들을 더 쉽게 즐기고 공유할 방법들을 찾는 일이라면 무엇이든 도전하여 실행에 옮겨요. 만드는 사람이 불편할수록 쓰는 사람은 편하다는 믿음으로 도전적인 문제를 풀어나갈 분과 함께하고자 해요.
... 더 보기D
... 더 보기2
... 더 보기W
... 더 보기