본문 바로가기
Programming

임베딩, RAG, Lang chain 나도 할 수 있다 #2

by WelcomeBro 2024. 5. 12.
반응형

구글에 랭체인 임베딩을 치면 상위에 아래 4개의 페이지가 나온다.(링크)

오늘은 이 4개의 페이지에 나와 있는 임베딩 방법론을 좀 공부해보겠다.

(openai 적용 가능 위주로, 중복은 제외하고)

 

1. 위키독스 - 랭체인 입문부터 응용 (링크) --> 글의 구조화가 잘 잡혀 있어서 도움이 되었다. --> 강추 --> 구글이 일을 잘한다고 느낌

2. 알기쉽게 풀어쓴 랭체인-임베딩벡터의 기본 - 아카라이브 (링크) --> 쭉 보기에 괜찮은 글이었다. --> 추천

    랭체인 적용 가능 text embedding(링크)

3. 위키독스 - 랭체인 노트 (링크) --> 1번 글보다 더 자세했다.

4. 8기 랭체인 (링크) --> 유료 글이었다.

1. 위키독스 - 랭체인 입문부터 응용 (링크)

임베딩을 요약하면 다음 한줄로 요약 가능하다.

 

"문자를 숫자로 표현한 것"

 

가수 --> 2, 배우 --> 2.4, 유투버 --> 3.1

변호사 --> 7, 검사 --> 7.2, 판사 --> 7.1

 

위 표는 직업을 1차원 공간에 숫자로 매핑시켜본 것이다.

(2차원은 숫자 2개, 3차원은 3개, 12차원은 12개, 100차원은 100개이다.)

(위 예시를 보면 가수 배우 유투버는 숫자가 서로 가깝고,
변호사 검사 판사또한 숫자가 서로 가깝다.)

 

예시와 같이 비슷한 의미끼리 가까운 공간에 매핑되는 것이 임베딩에 핵심이다.

 

예를 들어

가수, 배우, 검사, 판사 --> 2*2 --> 4

변호사, 유투버 --> 3*3 --> 이렇게 매핑된다면

 

실패한 임베딩이다.

 

a. openAIEmbeddings --> openAI에서 제공하는 임베딩 코드이다. 

아래 코드는 한개의 input에 대해서 1536개의 차원을 생성해 숫자로 표현한다.

(1536개라니 엄청 성능이 좋을 것만 같다.)

 

from langchain_openai import OpenAIEmbeddings

embeddings_model = OpenAIEmbeddings()

 

 

1500개여도 소귀에 경읽기 였다. 이건 좀....

사짜 직업은 조금 분류가 된듯 하다..... 물리적으로 글자가 있어서 그런가 보다....

 

그래서 허깅 스페이스에 한글 임베딩 모델을 사용해 보았더니.... (이건 약 750개 벡터 공간이다.)

TV에 나오는 직업은 openai 임베딩 방법론 보다는 잘 맞춘듯 하다.

 

하지만 사짜 직업은 좀 낮다.

 

어찌 해야할지....... 갈길이 멀다.....

 

일단 넘어간다 성능올리기는 지금 해결할 문제가 아니다.

 

그 다음은 이제 임베딩한 벡터를 잘 갖고 있어야한다. 어디에?

바로 벡터 디비에! vector DB에!!!

 

벡터 DB에 저장한 후에 사용자 질문

(chatGPT에서 자연어로 물어보는 질문)과

 

유사한 값을 빼오기 위한 DB라고 일단 이해했다.

 

Chroma DB -->

    1. 유사도 기반 검색(코사인 유사도)

    2. MMR (Maximum marginal relevance search) --> 롤에서 본 mmr 하고 같은거 같다. --> match making rating으로 다르다

FAISS DB --> FAISS(Facebook AI Similarity Search) --> chroma DB하고는 약간 메신저앱에서 카카오냐 라인이냐 차이다 

 

2. 알기쉽게 풀어쓴 랭체인-임베딩벡터의 기본 - 아카라이브 (링크)

    랭체인 적용 가능 text embedding(링크)

    임베딩 종류가 엄청 다양하다.

    다 보는 것은 무리고 LLama, Openai, HuggingFace Inference.

3개만 심층 분석을 아주 조금이라도 하고자 한다.

Openai embedding model 방법론 (링크) --> 해당 페이지를 한글로 간단히 설명한 자료(링크)

아래 2개가 24년 1월 25일에 개선된 임베딩 방법론으로 나왔다. --> 아래 2가지를 설명한 영어 자료(링크)

    text-embedding-3-small 

    text-embedding-3-large

더 자세한 설명을 찾고 싶은데....

논문까지 가야하는 건지

그냥 더 좋다 이렇게만 설명이 나와 있고

방법론에 대한 이야기가 잘 없다. --> 찾은 임베딩 기본 자료(링크)

 

Be positive

Be rich

Live your life

반응형