본문 바로가기
LLM 생성할레나

[LLM/임베딩] 임베딩 이란? 임베딩 모델 추천

by LENA-cfg 2024. 5. 28.

임베딩이란?

임베딩은 자연어 처리와 기계 학습에서 텍스트 데이터를 수치형 벡터로 변환하는 방법입니다.

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


임베딩 방법

출처: https://comlini8-8.tistory.com/6

1. Word2Vec

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


 

 

출처: https://wikidocs.net/161974

2. GloVe

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


 

출처: https://simonezz.tistory.com/54

3. FastText

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


 

출처: https://jongsky.github.io/Study-Log/posts/%EC%96%B8%EC%96%B4%EB%AA%A8%EB%8D%B8,-BERT-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0/

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