
회사에서 AI 관련 교육이 있어서 내용을 정리 해 두려고 합니다.서울대학교 AI 교수님께서 Multi Modal과 관련된 내용을 하면서 나온 내용의 일부입니다.가장 처음으로 학습한 내용이 바로 Few-Shot Learning 이었습니다. Few-shot learning 의 필요성일반적인 머신러닝 혹은 딥러닝의 경우 학습에 있어서 대량의 데이터가 필요합니다.예를 들어, 고양이 사진을 분류하는 모델을 학습하려면 수천/수만개의 고양이와 고양이와 관련 없는 사진이 필요합니다. 하지만, 사람의 경우에는 이전의 지식을 통해서 다른 지식을 추가로 쉽게 학습합니다.힌트가 몇개 없더라도 기존 지식과 차이를 통해서 다른 점을 인식하고 분류할 수 있습니다.이런 원리에 입각하여 AI 모델에도 몇 개의 데이터로도 결과를 추론 ..

Naive RAG1. Indexing문서로 부터 데이터를 추출합니다.PDF,HTML, Word 같은 다양한 파일을 plain text로 변환합니다.LLM 모델은 한번에 처리가능한 텍스트의 최대 길이가 제한되어있습니다.그래서 데이터를 청크 단위로 분리해서 효율적으로 관리합니다. (Chunking)2. Retrieval사용자 Query를 vector화 시키고 관련 데이터를 가지고 있는 Vector DB에 존재하는 vector와 비교했습니다.3. Generation쿼리와 데이터를 prompt에 입력하여 합치는 과정입니다.vector db에 저장된 데이터와 LLM의 응답을 합쳐 답변을 생성합니다. 기존 Naive RAG의 문제점1. Contextual 이해에 한계가 있습니다.키워드 일치성이나 기본 Semanti..

Vector DB란?핵심 요소는 3가지입니다.1. Vector2. Dimensionality3. Similarity Search Vector란?수학적으로 방향 (direction)과 크기 (magnitude)가 존재하는 값입니다. 왜 Vector DB를 써야 하는가?80%의 데이터는 unstructured data입니다.예를 들면 사진, 음악, PDF, 영상 등이 있죠.그래서 기존의 Relational DB에 위와 같은 데이터들을 저장하기 위해서는 별도의 메타데이터를 추가하는 등의 작업이 필요합니다.잘 어울리지는 않는 use case에 가깝죠. 반면 vector DB는 이러한 unstructured data의 저장에 특화되어 있습니다.왜일까요?1. 비정형 데이터를 의미 벡터로 변환해 저장임베딩 : 비정형..

Vector DB에 대해서 정리 하면서 궁금한점을 중간 중간에 추가해 두었고 그에 대한 답도 추가해 두었습니다.전통 DB의 특징RDBMS 기반입니다.Structured data 입니다 - predefined column과 row가 있습니다.Schema-based - database structure는 사용전에 미리 정의되어야 합니다.Data manipulation and querying - SQL로 데이터를 조작해야함.ACID Compliant - Atomicity, Consistency, Isolation, Durability를 보장해야함.Indexing - 데이터 검색 및 가져오기를 빠르게 하기 위함. 전통 DB의 한계Scalability - 큰 테이블에 대해서 복잡한 쿼리를 처리하는데 어렵다.Fle..

Vector Similarity 측정 방법vector similarity는 기본적으로 vector의 방향, 크기, 그리고 상대적인 위치에 영향을 많이 받습니다.이를 고려해서 vector similarity를 측정할 수 있는 3가지 정도의 방법이 있는데 아래와 같습니다. 1. Cosine Similarity위의 예제를 Cosine Similarity를 통해서 계산하면 아래와 같은 결과가 나옵니다. 2. Euclidean Distance1. vector의 크기가 고려 되어야할때2. clustering 할때 가장 이상적임과 같은 두가지 특징을 가지고 있습니다. 3. Dot Product1. Image 검색과 도출2. 음악 추천등에 도움이 되는 계산 방식이라고 합니다.

데이터베이스 엔진(Database Engine)은 데이터베이스 관리 시스템(DBMS)의 핵심 요소로, 데이터를 저장, 관리, 처리, 검색하는 역할을 수행하는 소프트웨어 구성 요소입니다. 사용자가 데이터베이스와 상호 작용할 수 있도록 하는 기본적인 백엔드 역할을 하며, 데이터를 처리하는 모든 작업의 중심에 있다고 할 수 있습니다. 아래에 Database Engine의 주요 기능과 개념을 설명합니다.Database Engine의 주요 기능1. 데이터 저장 및 관리:데이터베이스 엔진은 데이터를 효율적으로 저장하고 관리하는 역할을 합니다. 테이블, 인덱스, 트리거, 뷰 등 데이터 구조를 생성하고 유지합니다.2. 데이터 쿼리 처리:SQL(Structured Query Language)을 사용해 데이터를 검색하고 ..

마스터/스탠바이 복제 마스터(Master) 서버:데이터베이스의 원본 데이터를 보유하고 있으며, 모든 쓰기(INSERT, UPDATE, DELETE) 작업이 이 서버에서 이루어집니다.클라이언트는 일반적으로 마스터 서버에 데이터를 변경하기 위한 요청을 보냅니다.스탠바이(Standby) 서버:마스터 서버로부터 데이터를 복제하여 보유하며, 읽기 작업을 수행하거나 장애 발생 시 마스터 역할로 승격(failover)될 수 있습니다.보통 두 가지 유형으로 나뉩니다:핫 스탠바이(Hot Standby): 거의 실시간으로 마스터와 동기화되며, 필요 시 빠르게 마스터로 전환할 수 있습니다.콜드 스탠바이(Cold Standby): 복제는 이루어지지만, 활성화까지 시간이 더 걸릴 수 있습니다. 다중 마스터 복제다중 마스터 복..

파티셔닝이란?수직 파티셔닝 vs 수평 파티셔닝수직 파티셔닝수직 파티셔닝은 테이블을 컬럼 단위로 분할하여 관리, 수평 파티셔닝은 행 단위로 나누어 확장성과 성능을 개선합니다.개념: 테이블의 컬럼을 기준으로 데이터를 분할합니다. 테이블의 특정 컬럼들을 분리하여 별도의 테이블로 만들어, 각 테이블이 전체 데이터의 일부를 갖도록 합니다.장점:데이터를 더 잘 관리하고 보안 수준을 높일 수 있습니다. 예를 들어, 민감한 데이터를 별도 테이블에 두고 접근 권한을 다르게 설정할 수 있습니다.자주 조회되는 컬럼들만 모아서 별도 테이블로 만들면 메모리 사용을 최적화할 수 있습니다.단점:조인 연산이 필요할 수 있어 성능 저하가 발생할 수 있습니다.테이블 간 데이터 일관성을 유지하기 어려울 수 있습니다.사용 예:고객의 개인정..

Row Oriented Database디스크에 테이블이 Rows로 저장됩니다.하나의 IO block read는 테이블에서 여러개의 Rows를 읽어옵니다.특정 Row를 찾으려면 많은 양의 IO가 필요합니다. 예시일반적으로 우리가 사용하는 Row-Oriented Database의 예시입니다.사용자 입장에서는 위와 같이 보일 텐데 이를 실제 디스크에 저장한다면 아래와 같은 예시로 저장될 것입니다.회색은 하나의 block 에 있는 데이터를 의미하고 빨간 세로선 3개로 해당 Row가 끝났음을 명시했습니다. 검색 예시Select first_name from emp where ssn=666을 실행하면 아래와 같이 순서대로 페이지들을 검색합니다.1번 block -> 없음2번 block -> 없음3번 block -> 있..

매번 복습 할 때마다 새롭고 자주 까먹는 영역이 Transacion과 ACID인데요.한번 제대로 정리를 해두고 이를 자주 보면서 까먹지 않기 위해서 글을 써두려고합니다.Transaction 이란?SQL Query의 모음하나의 작업 단위여러 개의 Query가 하나의 작업 단위에 포함 될 수 있습니다. 실제 예제로는 돈을 맡기는 케이스가 있습니다.SELECT, UPDATE, UPDATE 와 같이 3개의 쿼리가 순서대로 필요합니다. 하나의 예시는 아래와 같습니다.계좌 1에서 계좌 2로 돈을 보내는 경우 아래와 같이 Transaction이 동작하죠.Transaction LifespanTransaction BEGIN을 통해서 Transaction을 시작할 수 있습니다.Transaction COMMIT을 통해서 실..