전체 글 99

Faiss 모듈 내 코드 분석1

배경faiss 모듈 내 코드를 분석해서, 여러 용도로 응용하고자함.코드from __future__ import annotations # 미래 버전의 타입 힌트를 사용할 수 있게 함import loggingimport operatorimport osimport pickleimport uuidimport warningsfrom pathlib import Pathfrom typing import ( Any, Callable, Dict, Iterable, List, Optional, Sized, Tuple, Union,)import numpy as npfrom langchain_core.documents import Documentfrom langchain_co..

langchain 공부 2024.11.11

벡터 DB 유사도 측정 방식 총 정리(L2 Distance,Inner Product, Cosine,Jaccard)

벡터 DB 유사도 측정 방식 총 정리1. L2 Distance (유클리드 거리)요약 : 유클리드 거리는 벡터 간의 직선 거리를 측정하므로, 크기와 방향 모두가 유사도 계산에 영향을 줍니다.수학적 원리: 두 벡터 간의 직선 거리를 계산하며, 각 요소의 차이를 제곱해 합한 후 제곱근을 구하는 방식입니다. 이로 인해 두 벡터 간의 물리적 거리를 나타내며 크기와 방향이 모두 고려됩니다.사용 상황벡터의 크기와 방향이 모두 중요한 경우, 예: 이미지 임베딩 간 거리 계산, 물리적 거리, 픽셀 간 거리 비교 등.이런 상황에 왜 좋은가?이미지 임베딩은 고차원 공간의 특징 벡터로, L2 거리 계산을 통해 시각적 차이를 반영할 수 있습니다.코드import numpy as npimport faiss# 128차원 벡터 10,..

langchain 공부 2024.11.10

Document, BaseMedia 내부 분석

이 두 클래스는 상속 관계에 있으며, 데이터와 메타데이터를 관리하기 위한 계층 구조를 형성합니다. BaseMedia는 미디어 데이터에 대한 기본 구조와 속성을 정의하는 추상적인 베이스 클래스 역할을 하고, Document는 이를 확장하여 텍스트 문서 데이터와 관련된 구체적인 기능과 속성을 추가하는 역할을 합니다.1. BaseMedia 클래스의 역할BaseMedia는 미디어 데이터의 기본 구조를 정의하는 추상적이고 상위 개념의 클래스로, 다른 미디어 데이터 관련 클래스들이 상속받을 수 있도록 설계된 베이스 클래스입니다. 여기에는 데이터나 파일의 메타데이터와 ID와 같은 공통된 속성을 정의하고, 그 데이터를 구조화하거나 검색하는 데 필요한 기능을 제공합니다.BaseMedia의 주요 특징:ID: 각 미디어 데..

langchain 공부 2024.11.09