임베딩이란?
임베딩은 자연어 처리와 기계 학습에서 텍스트 데이터를 수치형 벡터로 변환하는 방법입니다.
단어, 문장 또는 문서와 같은 텍스트 데이터를 고차원 공간에서 저차원 공간으로 매핑하여, 기계 학습 모델이 텍스트 데이터를 이해하고 처리 할 수 있도록 도와주는 방법입니다.
임베딩 방법

1. Word2Vec
- 구글에서 개발한 임베딩 기법으로 단어를 저차원 벡터로 변환하는데 단어의 문맥을 고려하여 유사한 단어들이 가까운 벡터로 표현합니다. CBOW 방식과 Skip-gram 방식 2가지가 있습니다.

2. GloVe
- 스탠포드 대학에서 개발한 임베딩 기법으로, 전역적인 통계 정보를 이용하여 단어 임베딩을 생성합니다.

3. FastText
- 페이스북에서 개발한 임베딩 기법으로, 단어 자체뿐만 아니라 단어 내의 문자 n-그램을 활용하여 임베딩을 만듭니다.


4. Bert
- 구글에서 개발한 트랜스포머 기반 모델로, 문맥을 고려한 단어 임베딩을 생성합니다. 특히, 문장 내에서의 단어의 위치와 관계를 반영합니다.
오픈 임베딩 모델
일반적으로는 Open AI에서 제공되는 text-embedding-3 모델을 많이 활용하는데 이는 API를 사용하는것이기 때문에 비용 이슈가 발생합니다. 비용 걱정 없는 오픈 소스 모델을 사용했고 총 2가지를 비교해보았습니다.
1. BAAI/bge-m3
BAAI라는 중국 AI 연구소에서 만들어진 임베딩 모델이며 100개이상의 언어와 최대 8192토큰(긴문장)에서도 잘 동작한다고합니다.
학습코드는 제공되지 않았습니다. 보통의 임베딩 모델은 영어에서 잘 동작합니다. 한국에서 서비스하는 것은 한국어로 문제 없이 동작해야하기 때문에 multi lingual 기능이 중요합니다.
링크: https://huggingface.co/BAAI/bge-m3
BAAI/bge-m3 · Hugging Face
For more details please refer to our github repo: https://github.com/FlagOpen/FlagEmbedding In this project, we introduce BGE-M3, which is distinguished for its versatility in Multi-Functionality, Multi-Linguality, and Multi-Granularity. Multi-Functionalit
huggingface.co
2. jhgan/ko-sroberta-nli
bge-m3 모델은 다양한 언어에 대해 학습이 됬다면 ko-sroberta-nil는 한국어 데이터 셋(KirBKU)을 학습하여 더 좋은 성능을 보여주는 임베딩 모델입니다. 학습 모델은 sentence-transformers이고 문장과 문단을 768차원 벡터 공간에 매핑하고 클러스터링이나 의미 검색과 같은 작업에 사용할 수 있다고 합니다.
링크: https://huggingface.co/jhgan/ko-sroberta-nli
jhgan/ko-sroberta-nli · Hugging Face
ko-sroberta-nli This is a sentence-transformers model: It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search. Usage (Sentence-Transformers) Using this model becomes easy when you
huggingface.co
결론
pdf 문서를 입력받아 임베딩 공간에 적재하여 검색 문장을 맵핑할 때 개인적으로 성능이 좋다고 느낀건 jhgan/ko-sroberta-nli이었습니다.
임베딩 추천 블로그
https://news.hada.io/topic?id=11593
임베딩(Embeddings)은 무엇이고 왜 중요한가 | GeekNews
임베딩이란?"임베딩"은 콘텐츠를 "부동 소수점 숫자의 배열"로 변환하는 것이 배열의 핵심은 "콘텐츠 내용의 길이"에 관계없이 "배열의 크기"가 항상 같다는 것배열의 크기는 사용하는 임베딩 모
news.hada.io
https://news.hada.io/topic?id=15094
초보자를 위한 Vector Embeddings 가이드 | GeekNews
벡터 임베딩의 종류단어 임베딩: NLP에서 단어를 표현하며, 단어 간의 의미적 관계를 캡처함. 언어 번역, 단어 유사성, 감정 분석 등에 사용됨.문장 임베딩: 문장의 의미와 문맥을 캡처하며, 정보
news.hada.io
'LLM 생성할레나' 카테고리의 다른 글
| [자연어] 자연어 처리 기초 정리 (0) | 2024.08.05 |
|---|---|
| [openai/API] Audio Response Format 음성 응답 형식 (1) | 2024.06.07 |
| [LLM/모델 선정] 모델 선정 시 고려 사항 (1) | 2024.05.27 |
| [STT/Whisper] Speech To Text 빠른 시도와 작은 실패 (0) | 2024.05.20 |
| [LLM/파인튜닝] Adapter - LoRA 차이와 Gemma Fine Tunning (0) | 2024.05.16 |