BM25 & Vector Search
·
Tech Experiments & Study/Advanced
RAG를 사용할 때, 사용자의 질의와 실제로 관련된 문서들을 잘 가져와야 답변의 품질이 올라갑니다.그렇지 않다면, 오히려 답변을 생성하는데에 노이즈가 될 것입니다. 이때, 사용자의 질의와 관련된 문서들을 선택하는 방법들이 여러 개가 있지만, 대표적인 방법 중 BM25와 Vector Search에 대해 오늘은 얘기해보고자 합니다. BM25 (Best Matching 25) BM25를 이해하기 위해서는 TF-IDF(Term Frequency - Inverse Document Frequency)를 알아야합니다.왜냐하면, BM25는 TF-IDF를 개선한 알고리즘이기 때문입니다. TF-IDF BM25 TF-IDF와 BM25의 수식을 보면, 두 알고리즘 모두 특정 단어의 빈도수, 문서의 개수와 같이 특정 단어..
LangChain & LangGraph
·
Tech Experiments & Study/Advanced
이번 글은 필자가 현재 진행 중인 프로젝트에서 사용하는 프레임워크인 LangChain과 LangGraph에 대해 소개해보고자 합니다.들어가기에 앞서, 본 글은 프로젝트 개발 과정에서 얻었던 경험들과 공부했던 내용들을 기반으로 LangChain과 LangGraph를 입문하고자 하는 분들에게 있어 소개글 같은 느낌이 될 예정입니다.가볍게 읽어주시면 좋을 것 같습니다. LangChainfrom transformers import pipelinefrom langchain_huggingface import HuggingFacePipelinefrom langchain_core.prompts import ChatPromptTemplatepipe = pipeline( "text-generation", mo..
[DL & ML] - 최적화 개념과 경사 하강법 원리 도출 과정
·
Tech Experiments & Study/Basic
Optimization 머신러닝 혹은 딥러닝은 실제 값과 예측 값 사이의 오차를 줄이는 것이 주목적입니다. 이때 오차를 확인하기 위한 함수를 손실 함수(목적 함수)라고 합니다. 즉, 손실 함숫값을 줄이는 것이 머신러닝 혹은 딥러닝의 주 목적이며 손실 함수 값을 최소화하는 파라미터를 찾는 과정이 바로 Optimization(최적화)입니다. Optimization의 종류는 많지만 그중 가장 널리 알려진 Gradient Descent(경사 하강법)에 대해 알아보고자 합니다. Gradient Descent Gradient Descent(경사 하강법)는 말 그대로 경사를 타고 이동하면서 최솟값을 갖는 지점을 찾는 기법입니다. 예를 들어 아래와 같은 2차 함수가 존재한다고 가정해보도록 하겠습니다. 위 그림..
[DL & ML] - 계층형 신경망
·
Tech Experiments & Study/Basic
What is Feed-Forward Neural Network(FNN)? Feed-Forward Neural Network(FNN)(계층형 신경망)은 신경망의 기본입니다. 계층형 신경망은 일반적으로 입력층, 은닉층(중간층), 출력층으로 구성됩니다. 입력층 신경망에 할당하는 입력 정보를 가져오며, 이 층에 속한 유닛은 입력을 의미하는 화살표 선이 존재하지 않으므로 데이터에서 얻은 값을 그대로 출력합니다. 은닉층(중간층) 신경망에서 실질적으로 정보를 처리하는 부분이며, y = a(w_1x_1+w_2x_2+b)와 같은 식을 처리합니다. 연산된 결과는 화살표 방향에 맞게 유닛에 전달합니다. 출력층 은닉층(중간층)과 동일하게 y = a(w_1x_1+w_2x_2+b)와 같은 식을 처리하면서 연산 결과를 출력합니다..
[DL & ML] - 인공신경망의 편향과 활성화 함수
·
Tech Experiments & Study/Basic
What is Bias? 출력 신호 전달 여부는 각 입력 신호와 가중치의 곱의 합이 임계값 이상이면 신호를 전달하고, 임계값 미만이면 신호를 전달하지 않습니다. 이 식을 변형해보면 조금 다른 방향으로 해석이 가능합니다. 위 식과 같이 "- (임계값)"을 "+b"로 치환할 수 있으며, 이때 b를 편향(Bias)라고 합니다. 그렇다면 변형된 식을 이용하여 출력 신호 여부를 표현해본다면 아래와 같이 나타낼 수 있습니다. 단순 모형으로 표현해보면 아래와 같이 편향을 하나의 입력 신호로 볼 수 있으며, 이때 가중치는 1이라고 볼 수 있습니다. What is Activation Function? 먼저 이전 포스팅에서 뉴런의 신호 전달 과정을 알아보았습니다. 이때 출력 신호는 0 또는 1이었지만, 이것은 생물학적인 ..