지난 포스팅에서 LangChain에 대해 소개했습니다.
LangChain에 대해 더 알고 싶으시다면 아래 포스팅을 참고하시면 됩니다.
[LLM] LangChain이란?
이전 포스팅에서 대규모 언어 모델(LLM)의 기능 및 활용 사례를 살펴보았습니다. [LLM] LLM이란?(Large Language Model)LLM(Large Language Model)대규모 언어 모델 이러한 모델들은 인공지능 분야에서 "텍스트
yeonjinj.tistory.com
이번 포스팅에서는 LangChain의 주요 구성 요소 중 하나인 embeddings에 대해 자세히 알아보겠습니다.
LangChain은 다양한 NLP 및 ML 작업을 수행하는 데 필요한 강력한 도구들을 제공합니다. 주요 구성 요소로는 LLM (Large Language Models), prompt templates(프롬프트 템플릿), chains(체인), memory(메모리) 등이 있습니다.
이러한 구성 요소들은 각각 중요한 역할을 담당하며, 이들 요소들이 효과적으로 작동하기 위해 embeddings가 필수적인 역할을 합니다.
Embeddings
텍스트나 기타 데이터를 벡터 형태로 변환하는 기술
이 벡터들은 고차원 공간에서 데이터의 의미적 관계를 표현합니다. 예를 들어, 단어 임베딩은 단어를 숫자 벡터로 변환하여 단어 간의 의미적 유사성을 수치화할 수 있게 합니다. 이런 벡터들은 NLP 모델이 텍스트 데이터를 더 잘 이해하고 처리하는 데 매우 유용합니다.
Embeddings의 종류에는 단어 임베딩, 문장 임베딩, 문맥 임베딩, 문서 임베딩 등이 있습니다. 각각의 임베딩은 특정한 유형의 텍스트 데이터를 벡터로 변환하는 데 사용됩니다.
Embeddings 종류
- Word Embeddings (단어 임베딩):
- Word2Vec: 단어의 의미를 벡터로 표현하며, 단어 간의 의미적 유사성을 잘 포착하는 embedding 기법입니다.
- GloVe (Global Vectors for Word Representation): 단어 공존 확률을 기반으로 한 임베딩으로, 대규모 말뭉치를 사용하여 미리 학습된 벡터를 제공합니다.
- FastText: 단어 자체뿐만 아니라 단어의 내부 구조 (character n-grams)를 고려하여 임베딩을 생성합니다.
- Sentence Embeddings (문장 임베딩):
- Sentence-BERT (SBERT): BERT 모델을 기반으로 문장을 임베딩하는 방법으로, 문장의 유사성을 잘 포착합니다.
- Universal Sentence Encoder (USE): 다양한 언어 처리 작업에서 활용할 수 있는 범용적인 문장 임베딩을 제공합니다.
- Contextualized Embeddings (문맥 임베딩):
- BERT (Bidirectional Encoder Representations from Transformers): 문맥을 고려한 단어 및 문장 임베딩을 생성합니다.
- GPT (Generative Pre-trained Transformer): 문맥을 기반으로 단어와 문장 임베딩을 생성하며, 언어 생성 작업에 주로 사용됩니다.
- RoBERTa (Robustly optimized BERT approach): BERT의 변형으로, 더 많은 데이터와 학습 단계를 통해 성능을 개선합니다.
- Document Embeddings (문서 임베딩):
- Doc2Vec: 문서의 의미를 벡터로 표현하며, Word2Vec의 확장 버전으로 문서 간의 유사성을 측정하는 데 유용합니다.
- Doc2Vec: 문서의 의미를 벡터로 표현하며, Word2Vec의 확장 버전으로 문서 간의 유사성을 측정하는 데 유용합니다.
- Specialized Embeddings (특수 임베딩):
- BioBERT: 생물학적 텍스트를 처리하기 위해 특화된 BERT 모델.
- SciBERT: 과학 논문 텍스트를 처리하기 위해 특화된 BERT 모델.
- ClinicalBERT: 임상 기록 텍스트를 처리하기 위해 특화된 BERT 모델.
- Multimodal Embeddings (멀티모달 임베딩):
- CLIP (Contrastive Language–Image Pre-training): 텍스트와 이미지를 동시에 처리하여 임베딩을 생성합니다.
- ALIGN (A Large-scale ImaGe and Noisy-text embedding): 텍스트와 이미지를 동시에 임베딩하는 모델로, 대규모 데이터를 활용합니다.
Embeddings와 LangChain의 구성 요소들
- LLMs (Large Language Models): LLMs는 텍스트 데이터를 이해하고 생성하기 위해 embeddings를 사용합니다.
- Prompt Templates: 프롬프트 템플릿을 사용할 때, 주어진 프롬프트를 벡터화하여 문맥을 이해하는 데 embeddings가 사용될 수 있습니다.
- Chains: 여러 NLP 태스크를 순차적으로 처리할 때, 각 단계에서 생성된 텍스트나 데이터를 벡터로 변환하여 다음 단계로 전달합니다.
- Agents: Agents가 특정 작업을 수행할 때, 작업의 문맥을 이해하고 적절한 응답을 생성하기 위해 embeddings를 사용합니다.
- Memory: 대화형 시스템이나 지속적인 문맥을 유지해야 하는 작업에서, embeddings를 통해 이전 대화나 데이터를 기억하고 참조할 수 있습니다.
- Tools and Integrations: 다양한 외부 도구나 API와 통합될 때, 데이터의 벡터화를 통해 효율적인 데이터 처리 및 분석을 수행합니다.
- Callback Systems: 시스템의 상태나 중간 결과를 저장하고 참조하는 데 embeddings가 활용될 수 있습니다.
- Document Loaders: 문서를 로드하고 처리하는 과정에서, 문서의 내용을 벡터화하여 검색, 분류, 요약 등의 작업을 수행합니다.
'AI > AI' 카테고리의 다른 글
[LLM] 대형 언어 모델, LLM의 고급 활용 기술 소개 (0) | 2024.05.24 |
---|---|
[langchain] LangChain에서 Prompt Template 사용하기 (0) | 2024.05.21 |
[LLM] LangChain이란? (0) | 2024.05.17 |
[LLM] LLM이란?(Large Language Model) (0) | 2024.05.10 |
[AI] 인공지능의 역사 (3) | 2024.04.12 |