LLM trend
** 본문에 포함된 일부 용어는 학계/산업계의 일반 용례와 달리 편의를 위해 임의로 명명했으니 주의하기 바람.
4월부터 Arxiv 등에 올라오는 웬만한 언어모델 (LM, Language Model) 관련 논문은 following 하고 있다. 허깅페이스 (https://huggingface.co/papers)와 https://paperswithcode.com/에 새로 올라오는 논문들을 우선 확인하고, 때론 arxiv에 직접 접속해서 AI 관련 논문을 빠르게 확인한다. 우선 제목을 보고 논문의 주제를 대략 파악하지만, 제목만으로 이해하기 어려운 경우에는 초록 abstract을 읽거나 본문의 architecture나 overview 그림을 확인한다. 필요한 경우 실험 세팅과 결과도 확인하지만, 대부분 자신들의 방법이 조금이라도 낫다고 주장하는 거라서 굳이 자세히 보지는 않는다. 당장 업무에 필요하다면 본문을 자세히 읽겠지만 지금은 약간 한직에 있기 때문에 굳이 본문까지는 읽지 않았다. 제목과 초록 수준이지만 많은 최신 논문들을 확인하다 보니 최근 동향은 대략 파악할 수 있다.
언어모델을 학습해서 답변을 얻기까지의 과정을 대략 아래처럼 그려봤다. InstructGPT (https://arxiv.org/pdf/2203.02155.pdf 또는 https://openai.com/research/instruction-following) 논문의 내용을 많이 참조했지만, 다른 내용을 종합해서 나의 시각으로 그렸다. IDEF0 (Functional Model)이 형태만 따라왔을 뿐, 화살표가 정확히 ICOM을 따르지 않고 의미가 혼합돼 있다. 텍스트 중심의 LLM을 가정하고 설명하지만, 이미지, 비디오, 오디오 등의 Multi-modal LLM에 기본 골격은 크게 다르지 않다.
세상에 존재하는 무수한 문서(Data)들에서 내가 질문한 Query에 맞는 답변 Answer를 얻는 과정은 크게 1) 모델 구축, 2) 도메인 적응, 3) 인간에 맞추기, 4) 질문하기로 볼 수 있다. 모델 구축은 정의된 모델 아키텍처 (현재 LLM은 보통 Transformer 또는 변형 모델)에 수많은 Text 데이터로 Pre-trained LM을 만든다. 많은 문서 내의 단어들 간의 관계를 unsupervised 방식으로 학습한다. 모델의 사이즈가 충분히 크고 학습 데이터가 많으면 이렇게 구축된 PLM도 충분히 좋은 성능을 내지만, 데이터의 종류가 워낙 다양해서 특정 분야에 특화된 답을 정확히 제시하지 못할 수도 있다. 그래서, 특정 도메인(또는 태스크)의 속한 문서들로 PLM을 더 정밀하게 Tuning 해서 사용하는 편이 일반적이다. 이때 PLM의 웨이트를 완전히 다시 업데이트하는 fine-tuning 하는 방식은 리소스가 많이 필요해서, PLM은 그냥 Freezing 하고 좀 더 작은 사이즈의 adapter 모델을 학습하는 방식이 요즘 더 선호한다. 대표적으로 LoRA (Low-Rank Adaptation) 알고리즘을 많이 활용한다. Fine-tuned LM은 이제 도메인 지식을 배웠지만 보통이 인간 사회에서 요구하는 암묵적 규칙/규범을 따르지 않기 때문에 좀 더 Human-like 행위를 하도록 align 시키는 과정을 거친다. 대표적으로 RLHF (Reinforcement Learning with Human Feedback)를 주로 사용하지만 최근 다양한 방식이 계속 제안되고 있다. 이렇게 Steering 된 supervised LM이 만들어지면, 이제 질문 query를 던지면 적당한 답 answer를 얻을 수 있다. LLM의 성능을 최대한 잘 활용하기 위해서 옳은 방식으로 질문을 하는 것이 필수적인데, 이를 prompting이라 부른다. 질문과 답변의 몇 개 예시를 먼저 주고 답변을 얻을 수도 있고, 여러 상황이나 페르소나를 가정한 후에 답변하도록 한다. 소규모 집단에서 거대모델을 만들기가 현실적으로 거의 불가능하기 때문에 최근에는 off-the-shell 모델 (또는 오픈소스 모델)을 잘 활용하는 prompting에 좀 더 초점을 맞추는 연구들이 많아서 다양한 방식의 prompt들이 출현하고 있다.
현재는 모델 아키텍처는 대부분 (변형) Transformer를 사용하기 때문에 모델의 성능은 모델의 사이즈에 따르는 경향이 있다. 보통 큰 모델이 좋은 성능을 주지만 이를 학습하기 위해서 많은 양의 데이터 (문서 또는 Tokens)가 필요하다. 그래서 모델 구축에선 누가 어떤 문서들을 얼마나 많이 모았느냐가 가장 큰 관건이다. 더욱이 ChatGPT 이후로 데이터의 저작권 이슈가 활발히 논의되기 시작해서 이제는 쉽게 웹을 크롤링해서 바로 사용하면 나중에 큰 문제를 일으킬 여지가 있다. 기본 Transformer는 인풋 (context)가 길면 계산 시간이 많이 소요되기 때문에 계산량을 줄이면서 더 긴 인풋 데이터를 처리하는 방식에 관한 연구가 많았고, 한편으로는 로컬 PC, 심지어 스마트폰에서 구동되도록 모델 사이즈를 최대한 줄이는 연구도 활발하다. 대표적으로 양자화 quantization 방식을 많이 활용한다. 그리고 GPT4부터 이미지 데이터를 처리할 수 있는데, 다른 오픈소스 커뮤니티에서도 이미지, 비디오, 오디오 등의 multi-modality를 적용하는 방식에 관한 연구도 최근 많이 소개되고 있다.
프리트레이닝에서는 — 가능한 — 모든 단어들 간의 관계를 파악하기 위해서 데이터의 양이 절대적으로 중요했다면 파인튜닝은 도메인 내에서의 관계를 정밀히 파악하기 위해서 데이터의 질이 매우 중요하다. 특히 최근 한 논문은 소량의 고품질 데이터만 있어도 충분히 좋은 성능을 보인다는 것을 밝히기도 했다. Alignment 관련 논문도 많이 나오고 있는데, LLM의 결과를 신뢰할 수 있느냐는 모델의 transparency가 가장 필수적이라 본다. 다양한 Prompt 방식도 연구되고 있지만, 현실 세계(World Model)와 어떻게 연결할 것인가가 메인 연구 주제다. LLM이 독단적으로 문장을 — 흔히 hallucination이라 하는 — 만들어내는 것이 아니라 검색 등을 통해서 얻은 데이터와 결합해서 결과를 만들어는 것이 대표적이다. DB와 바로 연결하기도 하고 KG와 결합해서 하이브리드 형태로 추론하는 것도 연구도 더러 있다. LLM 관련 다양한 애플리케이션들이 계속 선보이고 있지만, 프로그래밍과 의학 분야의 논문이 가장 활발히/꾸준히 나오는 편이다.