LLM 용어 정리2

김은배·2024년 1월 18일
0

LLM 총정리

목록 보기
3/10
post-custom-banner

1. Attention Mechanism

- AI가 출력을 생성할 때, 입력 텍스트의 특정 부분에 더 집중하여 처리하는 기법. 

- 입력 데이터의 각 단어에 대한 가중치를 계산하고, 더 중요한 부분에 더 큰 가중치 부여.

2. Fine-tuning

- LLM을 "domain specific" 하게 조정하는 프로세스.

- 사전학습에 사용되는 dataset의 경우 보편적인 언어와 문맥에 대해서 학습을 함.

- 학습된 모델이 특정 분야 용어 또한 잘 이해할 수 있도록 dataset을 학습시키고, 가중치를 조정.

3. LoRA(Low Rank Adaptation)

- 언어 모델 영역에서는 특정 작업을 수행하기 위해, 기존 언어 모델을 Fine-Tuning하는 것이 일반적.

- 이때, back propagation을 통해 기존 신경망의 가중치를 업데이트 해야 함. 

- 전체 미세조정 방식의 경우, 신경망의 모든 레이어를 최적화하고 훈련하는 작업이 포함됨. 

- 이는 사전학습된 LLM의 가중치 행렬을 모두 미세조정하여 많은 리소스와 시간을 사용. 

- LoRA은 모든 가중치 행렬을 조정하기보다 이를 근사화하는 두개의 작은 행렬로 미세조정을 진행. 

- LoRA는 허깅 페이스의 PEFT 라이브러리에서 구현되어 사용이 간편함. 

4. LangChain

- LLM과 App의 통합을 간소화하도록 설계된 오픈소스 개발 프레임워크.

- LLM 개발의 복잡성을 줄이고, 효율적 프로그래밍을 사용할 수 있는 몇가지 구성요소 제공.

- LLM 인터페이스, 프롬프트 템플릿, 에이전트, 검색 모듈, 메모리, 콜백 등으로 구성됨. 

- Prompt Template: LLM에 최적의 답변을 도출하기 위한 모듈

5. RAG(Retrieval-Augmented Generation)

- LLM에서 학습 과정에 포함되지 않는 지식을 주입하는 방법은 Fine-Tuning과 RAG가 있음.

- RAG는 새로운 지식에 관한 텍스트 데이터소스를 Embedding하여 Vector stores에 저장.

- 이렇게 외부에서 가져온 텍스트 데이터와 Query를 결합하여 프롬프트 구성 및 LLM에 답변을 이끔.

- LangChain에서는 RAG 구현을 위한 다양한 모듈 지원 

	1. PDF, URLs, Database를 로딩할 수 있는 "Document Loading"
    
    2. 하나의 텍스트 문서를 부분 텍스트로 나눠주는 "Splitting"
    
    3. 부분 텍스트를 embedding한 것을 "Vector Store"에 저장
    
    4. Query가 들어왔을 때, 이에 맞는 부분 텍스트를 Vector Store에서 가져오는 "Retrieval"
    
    5. Query와 Vector store에서 가져온 적절한 부분 텍스트를 결합해 프롬프트에 전달
    
    5. 생성된 프롬프트는 N-Shot Learning을 통해 파라미터 변경 없이 양질의 답변이 가능해짐.
    6. 이를 통해 할루시네이션을 줄일 수 있음. 
    

6. Vector DB

- 데이터를 고차원 벡터로 변화하여 비정형 데이터 저장하고 관리

- 기존 키워드 검색의 경우 키워드 일치도, 출현 빈도에 따라 정보가 검색됨.

- 이 경우에는 남성/남자와 같이 유사한 의미지만 다른 단어일 경우 검색에 어려움이 있음.

- 하지만 Vector DB는 K-최근접 이웃(KNN)등으로 유사한 벡터 등을 추출할 수 있게 함. 

- 이를 통해, 정보를 의미를 중심으로 검색할 수 있게 됨. 

- 그러나 KNN은 사용자의 잘못된 검색에도 결과를 무조건 도출한다는 문제가 있음. 

- ex) Elastic Search, Milvus, FAISS 등이 있음 
profile
hello!
post-custom-banner

0개의 댓글