매직코드
article thumbnail

논문을 선정한 이유

요즘 회사에서 LLM, LangChain 관련사업을 많이 하고 있는데, 원래 정형데이터나 CV를 하다가 갑자기 언어모델을 하려고하니 여러가지 부분에서 부족한 느낌을 받으면서 일하고 있었다. LLM의 최신 동향을 알고싶기도 했고, 다른곳에서는 어떻게 LLM을 사용하고 있는지 궁금해서 논문을 읽어보게 되었다.

 

이번 논문리뷰는 기존에 실습코드를 같이 진행했던 논문리뷰와 다르게 서베이 논문이기 때문에 논문을 잘 요약하여 그 내용을 내것으로 만드는데 중점을 두었다.

 

 

 

 

논문읽기

서론

LLM이 등장하기 전에는 번역, 요약, 질의응답, 형태소분석 등의 작업이 각각 개별적으로 연구되고 있었으나 GPT와 같은 LLM이 등장한 이후 자연어로 할 수 있는 여러가지 task들이 하나의 LLM모델이 모두 처리할 수 있게 되었다.

 

LLM이 크게 발전할 수 있었던 요인이 있다.

1. 데이터의 양적 확대: 디지털화를 통한 텍스트 데이터 증가

2. 컴퓨팅 기술의 진보: GPU/TPU 하드웨어 개발

3. 알고리즘 및 기술 발전: Attention, Transformer Architecture 도입

 

LLM의 활용분야가 넓어졌다.

1. 교육: 정보검색, 개인화된 학습 경로 추천, 과제 자동 평가 등

2. 의료: 초기 진단 도구, 의료 기록 분석, 신약 개발 분석, 최신 의학 연구 동향 파악 등

3. 금융: 개인 투자성향 분석, 시장 동향 분석, 금융 위험 분석, 금융 거래 자동화 등

4. 제조: 설계, 생산, 품질관리 최적화 등

 

LLM의 한계점과 위험성

1. 편향성: 학습 데이터의 편향성을 그대로 반영하여 편향된 결과를 추천할 가능성

2. 안전성: 악의적인 목적으로 사용하는 위험성

3. 설명가능성: LLM의 동작 원리나 결과에 대한 설명력 부족

4. 최신성: 최신 정보를 반영하는데 한계

 

언어모델부터 초거대언어모델까지

자연어: 인간의 언어

자연어처리: 인간의 언어를 컴퓨터가 처리하는 것

언어모델: 인간의 언어(자연어)를 컴퓨터가 이해할 수 있는 형태로 변환하는 역할

따라서 자연어를 언어모델에 집어넣으면 컴퓨터가 이해할 수 있는 형태로 변환해주고 그 변환된 것을 처리하는게 자연어처리임

 

전통적인 언어모델 연구

인간이 사용하는 단어를 컴퓨터가 이해할 수 있는 숫자 체계로 변환하는 데 초점을 맞춰 발전

방법: 단어집합(vocabulary)생성을 통해 단어를 모으고 대표적으로 원-핫 인코딩을 사용하여 단어들 구분

한계: 단어간의 의미적인 연관성을 고려할 수 없음 (ex. 강아지와 고양이를 비슷한 특징을 가진 단어라고 판단하지 못함)

 

의미기반 언어모델 연구

단어간의 의미적인 연관성을 고려하여 언어를 표현하기 위해 단어를 밀집 벡터 공간에 표현하는 데 초점을 맞춰 발전

방법: 이때부터 모델이라고 할 수 있는 Word2Vec 모델 탄생, 주변 단어들로부터 중심 단어를 예측하거나 중심 단어로 주변 단어들을 예측하도록 학습하여 유사한 의미의 단어들을 밀집 벡터 공간 상 가까운 거리에 분포하도록 학습

한계: 단어간의 연관성을 찾게되었지만 문맥 정보를 이해하지 못함 (ex. '사과를 먹고싶다'와 '내가 사과할께' 라는 문장에 나온 '사과'가 문맥에 따라 다른의미를 가질 수 있다고 판단하지 못함)

 

문맥기반 언어모델 연구

1. RNN: 문맥을 이해하기 위해 텍스트 내의 정보를 이용하는 RNN이 등장했으나, 입력 텍스트의 길이가 길어질수록 앞쪽에 위치한 정보들을 기억하지 못함

2. LSTM, GRU: 앞쪽에 위치한 정보들도 기억할 수 있게끔 생성한 모델이지만 텍스트에 존재하는 단방향 문맥 정보만 활용

3. ELMo: 양방향 문맥 정보를 활용하기 위한 모델로 순방향 LSTM과 역방향 LSTM을 사용하지만 하나의 벡터에 텍스트의 모든 정보를 담기 때문에 정보손실 발생, 입력 텍스트의 길이가 길어지면 기울기 소실 발생

4. Attention Mechanism & Transformer Architecture: 하나의 벡터에 텍스트의 모든 정보를 담는게 아니라 텍스트 내 단어들의 벡터들을 필요에 따라 적절히 활용하는 기법으로 현재 언어모델의 근간이 됨. Transformer의 인코더는 주어진 텍스트를 이해하는 역할, 디코더는 이해한 텍스트를 기반으로 언어를 생성하는 역할을 하는데, 인코더를 기반으로 발전한 대표적인 모델이 BERT, 디코더를 기반으로 발전한 대표적인 모델이 GPT

 

초거대 언어모델 연구

학습데이터가 많아지고 모델이 거대해질수록 모델 성능이 좋아진다는 'scaling law'가 밝혀지면서 초거대 언어모델이 등장

LLM은 별도의 학습없이 task 수행이 가능한 In-context learning(zero-shot, few-shot) 능력이 있음

별도의 학습이 없기 때문에 LLM에 입력으로 주는 프롬프트 작성의 중요도가 높아짐

Chain-of-Thought(CoT): 가장 대표적인 프롬프트 엔지니어링 연구로, 해결하고자 하는 task의 예시를 중간 추론 단계와 함께 입력하여 복잡한 문제를 여러 단계로 나누어 해결할 수 있도록 함

Reinforcement Learning from Human Feedback(RLHF): LLM의 조종성을 높이지 위해 다양한 task를 지시, 입력, 출력 형태의 데이터로 구성하여 해당 데이터를 통해 LLM을 미세조정하는 학습 기법이지만 학습과정이 복잡하다는 한계가 있다.

 

 

 

 

 

한국어 초거대 언어모델 동향

외국어를 기반으로한 초거대언어모델은 GPT, PALM, Falcon, Llama, Claude, Qwen 등이 공개됨

한국어 LLM: HyperClova, KoGPT, 믿음, Exaone, VARCO, Luxia, 코난LLM, Solar-0-70b

오픈소스 한국어 LLM: Polyglot-Ko를 기반으로 미세조정한 KoAlpaca, KORani, KULLM, NA-LLM

한국어 공개 데이터셋: AI-Hub, 모두의 말뭉치, 위키백과, 청와대 국민청원

하지만 여전히 전문지식, 고품질의 한국어 데이터가 부족하여 한국어 LLM은 사용자가 만족하기에는 불충분한 성능을 보임

 

최신 초거대 언어모델 연구 동향

사전학습

언어 생성 및 문맥 이해 능력 등을 모델에 학습시킴으로써 LLM의 근간을 형성하는 과정

대량의 코퍼스와 검퓨팅 자원을 활용하여 LLM이 세상에 대한 기본지식을 습득할 수 있도록 함

 

데이터 활용 현황

웹페이지가 주를 이루고 책, 뉴스, 학술데이터, 코드데이터 등이 일부를 차지하며, 사전학습 데이터의 다양성을 강조하는 추세에 비해 최적의 혼합비율과 필요한 데이터양에 관한 연구는 아직 초기단계임

데이터의 다양성을 강조하는 방향과는 별개로, 하위 task에 특화된 LLM을 위한 사전학습 전략도 활용

 

전처리

1. 품질 필터링: 고품질의 텍스트 데이터를 학습한 분류기로 저품질 데이터를 걸러내거나, 규칙에 기반한 휴리스틱스 사용

2. 중복 제거: 반복되는 단어를 가지는 저품질 문장, 단어 및 N-그램 기반 겹침 비율에 기반하여 유사한 내용을 갖는 중복 문서 필터링 & 학습데이터와 평가데이터 사이의 중복 데이터도 제거

3. 개인정보 제거: 대부분의 데이터를 웹에서 가져오기 때문에 민감한 개인정보 제거

4. 토큰화: 원본 텍스트를 토큰이라 불리는 작은 단위의 시퀀스로 분리

 

미세조정

사전학습이 완료된 LLM은 다양한 하위 작업을 수행할 수 있지만 최근에는 특정 목적에 맞게 미세조정하는 경우가 증가하고 대표적인 전략으로는 Instruction Tuning과 Alignment Tuning이 주목받고 있음. 각 방법론에 대한 자세한 내용은 생략

 

1. Instruction Tuning: 기존에 본 적 없는 태스크에 대한 일반화 능력을 향상시키는 방법론으로, 포맷팅된 지시사항-출력 쌍으로 이루어진 데이터를 기반으로 추가 학습을 진행하여 미세조정

2. Alignment Tuning: LLM 출력을 인간의 가치와 기준에 부합하도록 조정하는 접근법으로, 고품질의 인간 피트백을 반영하여 미세조정

3. Resource-Dfficient Fine-Tuning: LLM의 계산 집약적 특성으로 인한 한계를 개선하기 위한 자원 효율적 미세조정 방법론으로, 가능한 좋은 성능을 유지하면서 학습 가능한 파라미터 수를 줄이는 방법인 Parameter Efficient Fine Tuning(PEFT)가 있음

 

활용 및 증강

LLM 활용

가장 대표적인 방법으로 task 해결을 위한 적적한 프롬프팅 전략 수립

1. in-context learning(ICL): 몇가지 예시를 제공하여 언어모델이 task를 학습하게 하는 방식으로 장점1. 자연어 형태로 제공되는 예시를 통해 LLM과 명확하고 이해하기 쉬운 소통 방식 제공, 장점2. 인간의 의사결정과 비슷함, 장점3. 전통적인 지도학습 방식에 비해 training free learning 구조를 가지고 있기 때문에 새로운 task 적응에 필요한 계산비용을 크게 줄이고 확장 가능함

2. CoT: ICL에서 추론능력을 보다 강화하기 위한 연구로, 입력과 출력 사이에 중간 추론 단계를 추가하여 전체 추론과정을 단계별 추론과정으로 분리함으로써 복잡한 추론 작업에서 LLM 성능을 향상시킬 수 있음

 

LLM 증강

LLM은 missing token prediction 목적 함수를 최적화하는 형태로 학습되기 때문에 사실이 아니지만 구조적으로 그럴듯하게 보이는 컨텐츠를 생성하는 한계가 있음(챗지피티가 초반에 오픈되었을 때 조선시대에 발생한 좀비사건에 대해 물어보면 그럴듯한 대답을 했었다)

좋은 성능의 LLM은 필연적으로 많은 수의 파라미터와 데이터를 요구하고, 자연어를 학습했기 때문에 산술 추론에 약점을 보이기도 함

 

1. Augmented LMs: 위와같은 한계를 극복하고 적은 수의 파라미터로도 목적을 달성할 수 있도록 추론 및 도구사용 관점에서 강화한 모델

2. Retrival Augmented Generation: LLM이 특정 작업을 수행하기 위해서 context에 명시되지 않은 정보를 내재적으로 갖춰야하는 경우가 많은데 만약 외부지식을 활용할 수 있다면, 모든 지식을 내부 메모리에 저장하는 대신 필요한 정보를 외부에서 추출하여 사용하는 방식으로 파라미터를 줄일 수 있음. 이렇게 검색 엔진과 같은 도구를 외부 메모리 모듈로 활용하는 방법론을 Retrival Augmented Eneration이라 함

 

초거대 언어모델 평가 동향

예전부터 NLP는 고도의 언어 이해 능력과 일반 상식 기반의 추론 능력을 측정하는데 초점을 맞췄으나, LLM의 등장 이후 기존의 평가 방식의 변별력이 줄어들고 있어 새로운 평가 개발 필요해졌고, HuggingFace에서는 OpenLLM Leaderboard를 공개하면서 여러개의 벤치마크 데이터셋을 통해 LLM 성능을 체계적으로 평가했다.

 

초거대 언어모델 윤리 원칙 동향

이 부분은 윤리원칙에 대한 내용으로 생략한다.

 

논문리뷰

논문을 보고 느낀점?

논문을 읽고싶었던 이유인 언어모델에 대한 이해도가 조금 생긴 것 같고, 언어모델의 전체적인 흐름을 파악할 수 있어서 좋았다. 포스팅에는 자세히 작성하지 않았지만 LLM증강의 Retrival Augmented Generation에서부터 외부 도구를 사용하는 방법론이 등장하더니 other tools라는 파트에서는 LangChain이 언급되기도 했다.

LangChain이 어떠한 필요성과 방향을 가지고  발생한지 몰랐기 때문에 회사에서 LangChain 업무를 할 때 활용하는 방법이 너무 한정적이라는 생각이 들었었는데 논문을 통해 언어모델이 어떻게 발전해왔고 무엇을 해결하기 위해 외부도구를 사용하기로 했는지 알게되면서 생각이 확장될 수 있었다.

 

추가적으로 공부해야할 것 또는 참고하고 싶은 다른 레퍼런스에는 어떤 것이 있는가?

프롬프트 엔지니어링의 중요성은 업무를 하면서 어렴풋이 느끼고 있었지만 언어모델의 전체적인 내용을 알고나니 프롬프트 엔지니어링이 왜 중요한지 확실하게 알게된 것 같다. 그래서 프롬프트 엔지니어링을 좀 더 공부하면 좋을 것 같다.

 

 

참고문헌

https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE11610124

 

 

 

profile

매직코드

@개발법사

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!