Notice
Recent Posts
Today
Total
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
관리 메뉴

나름개발블로그

임베딩 / 벡터 db 본문

A/ML

임베딩 / 벡터 db

성남개발자 2024. 5. 15. 22:45

ML에서 자주 나오는 임베딩이 뭔지 정리를 하는 시간을 가져가려고 한다. 

 

1. 임베딩이란? 

ML에서 말하는 임베딩은 쉽게 설명하면 '단어' , '문장' 등을 컴퓨터가 알기 편하게 숫자 벡터로 표현한 것이다. 아주 간단한 예를 들어보면 보면 사과는 [1,0,0] , 배 [ 0,1,0] , 오렌지 [0,0,1] 을 이런식으로 1차원 벡터로 표현 한 것을 임베딩 했다라고 말 할 수 있다. 

고차원의 데이터를 저차원으로 표현하는 기법으로, 자연어 처리, 이미지 처리, 추천 시스템 등 다양한 분야에서 활용된다. 변환한 벡터 값에 의미와 정보를 손실없이 변환 하는게 좋은 임베딩이라고 할 수 있다. 

임베딩백터 ( 출처 aws )

다양한 내용을 벡터로 변환하면 사이에 관계를 쉽게 찾아 낼 수 있다. 컴퓨터 비전 모델, AI 챗봇, AI 추천 시스템은 모두 임베딩을 사용하여 인간의 지능을 모방한 복잡한 작업을 하는 데 사용이 된다. 임베딩은 대규모 언어 모델(LLM)을 훈련할 때 데이터 품질을 개선에도 도움을 준다. 벡터값이기 때문에 산술을 통해 유의미한 관계를 도출 할 수 도있다. 현재 거의 대부분 모델에서 사용 하고 있다. 내가 모르는 것도 존재 할 테니.. 거의 모든 것으로 퉁친다. 

 

현재 내가 현업에서 주로 사용 하고 있는 임베딩 모델은 BERT이다. 

https://ko.wikipedia.org/wiki/BERT_(%EC%96%B8%EC%96%B4_%EB%AA%A8%EB%8D%B8) 

 

BERT (언어 모델) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. BERT(Bidirectional Encoder Representations from Transformers)는 구글 연구원이 2018년에 도입한 마스킹된 언어 모델 제품군이다.[1][2] 2020년 문헌 조사에서는 "1년이 조금 넘는

ko.wikipedia.org

설명은 링크로 대체한다. 

 

2. 벡터 db 

말그대로 벡터값을 저장하고 있는 db 이다. llm이 부각 되면서 점점 수면위로 올라오고 있는 듯하다.? 

임베딩 결과값들을 벡터 db에 저정하고 검색하고 하는데 쓰인다. 특히 유사한 벡터를 찾는데 특화되어있다. 반대로 예기하면 정확한 결과를 요하는 예를 들어 검색어로 '판교 한정식 ccc' 이라고 검색을 한다면 유사한것은 나오지만 정확한 값은 나오지 않는다. 유사한 값을 비교하는 것중 유명한 것으로는 코사인 유사도 가 있다. 

llm등을 이용해서 정확한 값을 찾아가는 식으로 응용해서 사용 한다. 

 

내가 속한 조직, 환경에서 보면 현재 가장 많이 쓰이는 부분은 유사한 문서 검색, RAG에서 주로 사용 하고 있다. 비슷한 느낌? 의 문서를 빠르게 검색해서 원본문서와 비슷한 문서를 작성한 사람을 찾는다던지, RAG에서 문서를 컨텍스트로 줘서 해당문서에서 결과 값을 도출 하는 방향으로 사용 하고 있다. 

 

다양한 벡터 db를 서비스 하고 있는데 추후에 직접 써보고 후기? 등을 작성 해보겠다. 

 

 

 

* 쓰다보니 중간중간 새롭게 알게 되는 부분도 있고, 설명이 더 필요한 부분도 존재한다. 

'A > ML' 카테고리의 다른 글

LangChain #3  (0) 2024.05.24
LangChain #2  (2) 2024.05.21
LangChain #1  (0) 2024.05.14
LLM - intro  (0) 2024.05.13
Hands-ON ML 15장  (0) 2020.10.04
Comments