LLM & RAG 용어정리 (한국어 임베딩 실습)

2024. 11. 18. 20:37·용어정리/LLM & RAG

Sentence-Transformer, Word2Vec, Transformer 기반 임베딩에 대해 공부해보자!


Word2Vec

장점 : 단어 간의 의미적인 관계의 파악에 적합함.

단점 : 문장 단위에서는 유연성이 부족함.

 

 

  1. 우선 긴 문장을 한문장 한문장 토큰화 시킴.
  2. Word2Vec 모델을 불러와 토큰화된 문장을 학습시킨다.
  3. 학슴된 문장에서 특정 단어와 가장 유사한 단어 찾기

 

# Python 기본 split() 사용해 간단하게 토큰화
tokenized_sentences = [sentence.split() for sentence in sentences]

# Word2Vec 모델 학습
word2vec_model = Word2Vec(sentences=tokenized_sentences, vector_size=100, window=5, min_count=1, workers=4)

# 단어 '고양이'와 유사한 단어 찾기
similar_words = word2vec_model.wv.most_similar("고양이")
print(similar_words)

 

 


Sentence-Transformer

장점 : 문장간의 유사성을 측정, 문맥을 고려하여 임베딩을함.

단점 : 학습의 속도가 느림.

 

'sentence-transformer/kr-sentence_bert-base' 모델을 사용

 

 

# 최신 Ko-Sentence-BERT 모델 로드
model = SentenceTransformer('sentence-transformers/kr-sentence_bert-base')

# 문장 임베딩 생성
embeddings = model.encode(sentences)

# 첫 번째 문장 임베딩 확인
print(embeddings[0])

 

 


Transformer

장점 : 양방향으로 문맥을 이해, 문장 전체의 의미를 반영

단점 : 계산의 비용과 모델의 크기가 큼

 

  1. bert 토큰화와 bert모델을 불러온다.
  2. 문장을 토큰화 시키며 데이터를 파이토치 텐서 형식으로 변환한다는 뜻이다.
  3. 모델의 인풋으로 임베딩을 생성
  4. 임베딩 한 벡터를 평균화 하여 추출한다.

 

 

# KLUE-BERT 모델과 토크나이저 로드
tokenizer = BertTokenizer.from_pretrained('klue/bert-base')
model = BertModel.from_pretrained('klue/bert-base')

# 토큰화 및 텐서 변환
inputs = tokenizer(sentence, return_tensors='pt')

# 임베딩 생성
with torch.no_grad():
    outputs = model(**inputs)

# 임베딩 벡터 추출 (평균값으로 계산)
embedding = outputs.last_hidden_state.mean(dim=1)
print(embedding)

 

저작자표시 비영리 변경금지

'용어정리 > LLM & RAG' 카테고리의 다른 글

LLM & RAG 용어정리 (LangChain과 FAISS 실습)  (3) 2024.11.13
LLM & RAG 용어정리 (LangChain 개념과 활용)  (0) 2024.11.13
LLM & RAG 용어정리 (텍스트 처리 기법과 임베딩)  (0) 2024.11.12
LLM & RAG 용어정리 (Vector DB 와 RAG의 개념)  (0) 2024.11.12
LLM & RAG 용어정리 (LLM 사용 전 중요한 개념)  (1) 2024.11.12
'용어정리/LLM & RAG' 카테고리의 다른 글
  • LLM & RAG 용어정리 (LangChain과 FAISS 실습)
  • LLM & RAG 용어정리 (LangChain 개념과 활용)
  • LLM & RAG 용어정리 (텍스트 처리 기법과 임베딩)
  • LLM & RAG 용어정리 (Vector DB 와 RAG의 개념)
코드 유랑자 승열
코드 유랑자 승열
코드 유랑자 승열의 프로그래밍 일지를 남기는 공간입니다.
  • 코드 유랑자 승열
    승열의 프로그래밍 시네마
    코드 유랑자 승열
  • 전체
    오늘
    어제
  • 링크

    • 깃허브 보러가기
    • 링크드인 보러가기
    • 인스타그램 보러가기
    • 카테고리
      • 코딩테스트
        • BaekJoon
      • TIL and WIL
        • TIL
        • WIL
      • 주말스터디
      • 내일배움캠프
        • 사전캠프 강의 (SQL)
      • 용어정리
        • Python
        • Python-Library
        • Machine-Learning
        • Deep-Learning
        • AI 활용
        • LLM & RAG
        • Docker
        • Django
        • SQL
        • Java Script
        • etc
      • Daily 코드카타
        • SQL
        • Python 알고리즘
      • 임시저장
      • 보류
  • 태그

    티스토리챌린지
    RAG
    vector db
    word2vec
    langchain
    오블완
    django
    View
    llm
    template
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코드 유랑자 승열
LLM & RAG 용어정리 (한국어 임베딩 실습)
상단으로

티스토리툴바