자동 인코딩
- 언어 모델은 알려진 어휘에서 문장의 어느 부분이든 누락된 단어를 채우도록 모델에 요청함
자기회귀
- 언어 모델은 알려진 어휘에서 주어진 문장의 바로 다음에 가장 가능성 있는 토큰을 생성하도록 모델에 요청
LLM
- 자기회귀, 자동 인코딩 등 두가지 조합이 될 수 있는 언어 모델을 말한다
- 크고 광범위한 학습 데이터셋을 사용한다
- 텍스트 생성 및 분류와 같은 복잡한 언어 작업을 파인튜닝이 필요 없을 만큼 높은 정확도로 수행 가능함
LLM의 주요 특징
- 기존 트랜스포머 아키텍처는 2017년 고안된 시퀀스-투-시퀀스 모델이다
- 보통 인코더 & 디코더로 이루어진다
- 인코더
- 원시 텍스트를 받아들여 핵심 구성 요소로 분리
- 해당 구성 요소를 벡터로 변환하는 업무 (Word2cec 과정과 유사)를 담당
- 어텐션을 사용해 텍스트 맥락을 이해
- 디코더
- 수정된 형식의 어텐션을 사용해 다음에 올 최적의 토큰을 예측, 텍스트 생성
- 인코더
트랜스포머
- 더 빠른 훈련, 일반화 및 더 나은 성능을 위한 기타 하위 구성 요소들을 가짐
- BERT, GPT 등의 모델들은 트랜스포머를 인코더와 디코더로 분해 → 이해와 생성에 뛰어난 모델을 구축
- 인코더 : 텍스트를 이해
- 디코더 : 텍스트를 생성
기존 트랜스포머
- 두가지 주요 구성 요소
- 텍스트를 이해하는데 탁월한 인코더, 텍스트를 생성하는데 탁월한 디코더
- 이 둘을 함께 사용시 전체 모델이
LLM 작동 원리
- 사전훈련, 파인튜닝 방식에 따라 성능 차이가 만들어짐
- 사전 훈련 (pre-training)
- LLM이 일반적인 언어와 단어 간의 관계를 배우고 이해하도록 도움
- 전이학습을 적용하도록 도움 → 최고 수준의 결과를 얻음
- BERT
- 두개의 공개적으로 사용가능한 텍스트 말뭉치에서 사전 훈련됨
- 영어 위키백과, BookCorpus
- 두가지 언어 모델링 작업에서 사전훈련됨
- 마스크된 언어 모델링(MLM) - 자동 인코딩 작업
- 단어를 추측
- 개별 단어 임베딩을 가르치기 위함
- BERT가 하나의 문장 안에서 토큰의 상호작용을 인식하도록 도움
- 다음 문장 예측(NSP)
- 문장 B는 문장 A의 바로 다음에 왔는지 (예/아니오)
- 전체 텍스트 시퀀스를 임베딩하는 방법을 학습
- BERT가 문장 사이에서 토큰이 서로 어떻게 상호작용하는지를 이해하도록 도움
- 마스크된 언어 모델링(MLM) - 자동 인코딩 작업
- 전이학습 (transfer-learning)
- 머신러닝 작업에서 얻은 지식으로 다른 관련 작업의 성능을 향상시키는 기술
- 텍스트 데이터의 한 말뭉치에서 사전 훈련된 LLM을 가져와 전이학습을 진행
- 텍스트 분류, 텍스트 생성 같은 실제작업을 위해 작업 특정 데이터로 모델의 파라미터를 업데이트함으로써 모델을 파인튜닝하는 것을 포함함
- 특정 언어와 언어 내 단어 간의 관계 정보를 이미 많이 습득, 새로운 작업에서의 성능 향상 시작점
- 훨씬 적은 양의 작업에 연관된 데이터로 특정 작업에 대해 파인튜닝 → 필요 시간과 자원을 크게 줄임
- 전이학습 과정
-
- 전이 학습 모델 예, 자연어처리(NLP)를 위한 BERT, 이미지를 위한 Resnet
- 비지도 학습으로 사전 훈련하여 모델에 일반적인 개념(언어)를 가르침
- 실제 작업1,2,… (예, 시퀀스 분류, 질문-답변, 토큰 분류)
- 특정 작업/도메인의 지도학습으로 모델을 파인튜닝함
- 전이 학습 모델 예, 자연어처리(NLP)를 위한 BERT, 이미지를 위한 Resnet
-
- 파인튜닝 (Fine-tuning)
- LLM을 작업에 특화된 상대적으로 작은 크기의 데이터 셋에서 훈련시켜, 특정 작업을 위한 파라미터를 조정하는 것
- 사전 훈련된 언어에 대한 지식을 활용해 특정 작업의 정확도를 향상 가능
- 특정 도메인 및 작업에서의 성능을 크게 향상시킴
- 파인튜닝 기본 과정
- 파인튜닝하려는 모델과 파인튜닝 파라미터를 결정
- 파라미터 : 예) 학습률
- 학습(훈련) 데이터를 모읍니다. (포맷 및 기타 특성은 업데이트 모델에 따라 다름)
- 손실과 기울기를 계산함
- 손실 : 오류 판단 기준
- 기울기 : 오류 최소화를 위해 모델을 어떻게 변경할지에 대한 정보
- 오류를 최소화하기 위해 모델 파라미터를 업데이트하는 매커니즘인 역전파로 모델을 업데이트
- 파인튜닝하려는 모델과 파인튜닝 파라미터를 결정
어텐션(Attention)
- 트랜스포머만이 아니라 다양한 가중치를 입력의 다른 부분에 할당하는 딥러닝 모델에서 사용되는 매커니즘
- 모델이 동적으로 입력의 다른 부분에 집중할 수 있도록해 성능 향상, 정확한 결과를 도출
- 트랜스포머 기반 LLM의 핵심구성 요소
- 훈련 과정과 작업 사이의 정보를 효과적 유지 → 전이학습 (긴 텍스트를 쉽게 처리)
“LLM은 큰 말뭉치에서 사전 훈련되고, 특정 작업을 위해 더 작은 데이터셋에서 파인튜닝된다”
“트랜스포머가 언어모델로 좋은 역할을 하려면 고도의 병렬 처리가 가능해야한다”
임베딩
- 다른 단어와의 의미와 관계를 포착하는 방식
- 단어, 구절, 토큰을 의미
- 종류
- 위치 임베딩 : 문장에서 토큰 위치를 인코딩
- 토큰 임베딩 : 토큰의 의미를 인코딩
토큰화 (Tokenization)
- 텍스트를 가장 작은 이해 단위인 토큰으로 분해하는 과정
- 토큰 : 의미를 내포한 정보 조각, 어텐션 계산에 입력으로 사용되어 LLM이 실제 학습 및 작동하게 됨
- 전처리단계 (대소문자 변환) casing
- 소문자화 토큰화 uncased
- 모든 토큰이 소문자, 악센트가 글자에서 제거됨
- 대소문자 구분 토큰화 cased
- 토큰 대문자가 유지
- 소문자화 토큰화 uncased
- OOV(out of vacabulary) 어휘 사전에 없는 구문
- 토큰으로 인식하지 않는 구문/단어로 더 작게 나누어야함
정렬 + RLHF
- alignment, 정렬
- 모델이 사용자 기대에 부합하는 입력 프롬프트에 잘 대답하는지를 나타냄
- 잘 정렬하려면? : 강화학습 (Reinforcement Learning, RL)을 훈련과정에 포함하기
- 인간 피드백 기반 강화학습 (RLHF, Reinforcement Learning from Human Feedback)
- 사전 훈련된 LLM을 정렬하는데 인기있는 방법
- 사람 피드백을 사용해 성능 향상
- LLM에 그 자체의 축력을 상대적으로 작고 고품질의 피드백 단계인 사람에서 학습하게해서 지도학습의 일부 한계를 극복
많이 사용되는 LLM
1) BERT
- 문장의 양방항 표현을 구성하는 어텐션 매커니즘을 사용, 자동 인코딩 모델
- 문장 분류, 토큰 분류 작업에 이상적
- 트랜스포머의 인코더만 사용, 디코더 무시 → 엄청난 양의 텍스트를 빠르게 이해 및 처리 → 대량의 말뭉치를 빠르게 작업 및 분석에 적합
- 자체는 텍스트 분류, 문서 요약하지 않지만 하위 NLP 작업을 위한 사전 훈련된 모델로 자주 사용
- BERT는 NLP 커뮤니티에서 널리 사용되고 높이 평가받는 LLM
2) GPT
- 어텐션 매커니즘을 사용해 이전 토큰을 기반으로 시퀀스에서 다음 토큰을 예측하는 자기회귀 모델
- GPT 알고리즘 계열 (ChatGPT, GPT-4)
- 주로 텍스트 생성
- 트랜스포머 디코더에 의존, 인코더 무시 → 한번에 하나의 토큰을 생성하는데 특화
- 큰 문맥 윈도우를 제공시 텍스트 생성에 적합
- 텍스트 처리/이해에 사용
- 자유로운 텍스트 작성 능력
3) T5
- 텍스트 분류, 텍스트 요약, 생성까지 설계된 순수한 인코더/디코더 트랜스포머 모델
- 인코더로 입력 테스트 표현을 구축, 디코더로 텍스트를 생성하는 능력(텍스트 분류~텍스트 생성)수행
- 파인튜닝 없이 여러 작업 수행 능력 → 다양한 LLM을 촉진
도메인 특화 LLM
- 훈련받은 도메인 내에 사용되는 특정 언어와 개념을 이해하기 위해 설계됨
- BioGPT
- 200만개 이상의 생물의학 연구 논문 데이터셋에서 훈련됨
- 명명된 엔티티 인식, 관계 추출, 질문[답변 작업
- 생물의학 지식과 도메인 특화 어휘를 LLM에 인코딩한 사전훈련
- 작은 데이터셋에서 파인튜닝 가능
- 장점
- 특정 텍스트 집합 훈련
- 좁지만 특화된 사전 훈련으로 해당 도메인에서의 언어 및 개념에 더 잘 이해
LLM을 이용한 애플리케이션
- 3가지 방식
- 사전 훈련된 LLM의 기본적인 텍스트 처리 및 생성 능력을 큰 아키텍처의 일부로 추가적인 파인튜닝 없이 이용하기
- 사전 훈련된 BERT/GPT를 사용해 정보 검색 시스템 만들기
- 전이학습을 사용해 매우 특정한 작업을 수행하기 위해 사전훈련된 LLM을 파인튜닝
- 특정 도메인/산업의 문서 요약 생성을 위해 T5 파인튜닝
- 사전훈련된 LLM에 사전훈련을 통해 해결할 수 있도록 학습되었거나 합리적인 직관으로 수행가능한 작업 요청
- GPT-4에 블로그 포스트 작성 요청
- 사전 훈련된 LLM의 기본적인 텍스트 처리 및 생성 능력을 큰 아키텍처의 일부로 추가적인 파인튜닝 없이 이용하기
- 전통적인 NLP
- 텍스트 분류
- 주어진 텍스트 조각에 레이블 할당
- 감정 분석에 흔히 사용
- 텍스트를 긍정적, 부정적, 중립으로 분류
- 주제 분류 : 텍스트를 하나 이상의 미리 정의된 카테고리로 분류
- 번역 작업
- 의미와 맥락을 유지하면서 한 언어의 텍스트를 다른 언어로 번역
- 모델의 성능을 정확히 판단하기 위해 두 언어 및 도메인 지식을 갖춰야함
- 사람 언어 <> 사람 언어
- 트랜스포머 등장 전부터 주목받은 애플리케이션 - AI 모델을 통해 한 언어를 다른 언어로 번역하는 기계 번역 작업
- SQL 생성
- SQL을 언어로 간주, 영어를 SQL로 변환하는 것은 실제로 영어를 프랑스어로 변환하는 것과 크게 다르지 않음
- 최신 LLM은 이미 기본적으로 즉석에서 수행가능하지만 SQL 쿼리는 종종 파인튜닝이 필요
- 텍스트 분류
- 자유로운 텍스트 생성
- 정보 검색/신경망 의미 기반 검색
- 새로운 정보로 최신 상태 유지하는 것은 어려움 → 새로운 데이터에서 모델을 더 파인튜닝, 사전 훈련 단계를 처음부터 다시 수행
- 정보를 동적으로 최신 상태로 유지하기 위해, 벡터 데이터베이스를 사용해 우리만의 정보 검색 시스템을 설계할 것
- 챗봇
- LLM 사용시 챗봇 구축 방식 - 의도, 엔티티 및 트리 기반의 대화 흐름을 통한 전통적인 챗봇 설계 방식과 다름
- 시스템 프롬프트, 문맥 및 페르소나로 대체
- ChatGPT는 대화를 나눌 수 있는 유일한 LLM
마치며
- LLM은 자연어 처리 분야의 혁신을 이끈 고급 AI 모델
- 텍스트 분류, 텍스트 생성, 기계 번역을 포함한 여러 가지 NLP 작업에 매우 다양히 사용
- LLM은 대량의 텍스트 데이터로 사전 훈련 받은 후 특정 작업을 위해 파인튜닝
'Computer Engineering > AI' 카테고리의 다른 글
chatgpt API를 활용하여 이미지 기반 응답 생성하기 (4) | 2024.12.02 |
---|---|
벤치마크 데이터셋에 대해 (2) | 2024.08.14 |
의료 LLM의 발전에 대해서 (1) | 2024.07.16 |
Data centric AI란? (0) | 2024.07.11 |
요약 - 섹션 1) 커피 한잔 마시며 듣는 AI 이야기 (2) | 2024.07.08 |