본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
*_1. 학습 인증샷 4장 이상 포함
*_① 오늘자 날짜, 공부 시작 시각 포함 사진 1장
② 오늘자 날짜, 공부 종료 시각 포함 사진 1장
③ 1개 클립 수강 인증 사진 (강의장 목록 캡쳐, 강의 내용이 담긴 수강화면이 보이지 않도록) 1장
④ 학습 인증샷 1장 이상 (ex. 필기 촬영, 작업물, 등)
2. 학습 후기 700자 이상 (공백 제외)
허깅페이스 임베딩
from sentence_transformers import SentenceTransformer
import numpy as np
from numpy import dot
from numpy.linalg import norm
import pandas as pd
model = SentenceTransformer('BAAI/bge-m3')
def get_embedding(text):
return list(model.encode(text))
data = ['저는 배가 고파요',
'저기 배가 지나가네요',
'굶어서 허기가 지네요',
'허기 워기라는 게임이 있는데 즐거워',
'스팀에서 재밌는 거 해야지',
'스팀에어프라이어로 연어구이 해먹을거야']
df = pd.DataFrame(data, columns=['text'])
df['embedding'] = df.apply(lambda row: get_embedding(
row.text
), axis=1)
코사인 유사도 구하기
def cos_sim(A, B):
return dot(A, B)/(norm(A)*norm(B))
def return_answer_candidate(df, query):
# query라고 하는 텍스트가 들어오면 get_embedding이라는 함수를 통해서 벡터값을 얻음.
# query라고 하는 텍스트의 임베딩 값은 query_embedding에 저장이 됩니다.
query_embedding = get_embedding(
query
)
# query라는 텍스트가 임베딩이 된 query_embedding과
# 데이터프레임 df의 embedding 열에 있는 모든 임베딩 벡터값들과 유사도를 계산을 하여
# similarity 열에다가 각각의 유사도 점수를 기록.
df["similarity"] = df.embedding.apply(lambda x: cos_sim(np.array(x),
np.array(query_embedding)))
# similarity 열에 있는 유사도 값 기준으로 상위 3개의 행만 반환
results_co = df.sort_values("similarity",
ascending=False,
ignore_index=True)
return results_co.head(3)
sim_result = return_answer_candidate(df, '아무 것도 안 먹었더니 꼬르륵 소리가나네')
url : https://abit.ly/lisbva
'스타트업 투자 > 데이터 + 테크' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 13일차 : 랭체인을 이용한 RAG파이프라인 (0) | 2025.04.13 |
---|---|
패스트캠퍼스 환급챌린지 12일차 : 거대 언어 모델의 답변 (0) | 2025.04.12 |
패스트캠퍼스 환급챌린지 10일차 : RAG (0) | 2025.04.10 |
패스트캠퍼스 환급챌린지 9일차 : 파인튜닝 (0) | 2025.04.09 |
패스트캠퍼스 환급챌린지 8일차 : 허깅페이스, 토크나이저와 템플릿 (0) | 2025.04.08 |
댓글