1. LoRA와 QLoRA 란?1. LLM을 적은 비용으로 파인튜닝하기 위한 기법2. 기존 Weight는 절대 수정하지 않고 작은 Adapter만 학습하는 방법3. QLoRA = LoRA + Quantization (양자화) 2. 관련용어 설명1. Weight(가중치) = AI가 학습한 지식, 실제로는 숫자의 집합2. Adapter = 새로운 지식을 덧붙이는 작은 추가 Weight , 기존 Weight를 건드리지 않음, 플러그인 같은 역할3. 파인튜닝은 기존 지식에 학습하여 새로운 지식을 생성하는 방식4. Adapter 만으로는 실행불가하고 해당 Adapter 에 맞는 Base 모델과 같이 실행해야함 3. LoRA / QLoRA 비교구분LoRAQLoRABase ModelFP16/BF16 형식4bit 양자..
📌 참고사항conda 환경으로 작성되었습니다.BAAI/bge-m3 모델 사용1. 환경설정conda create -n searchEngine python=3.10 -yconda activate searchEngineconda install pytorch torchvision torchaudio cpuonly -c pytorchpip install sentence-transformers==2.7.0pip install transformers==4.41.2pip install faiss-cpupip install pandas numpypip install fastapi uvicorn 2. embedding.pyfrom sentence_transformers import SentenceTransformermo..
1. 검색엔진 흐름도DB : 텍스트 파일, CSV, SQLite 등인덱스 : 검색을 빠르게 하기 위한 구조검색 API : 입력 쿼리를 받아서 문서 조회 및 랭킹 구현결과 반환 : 문서나 데이터로 출력 2. 프로젝트 구조 설계 3. 사용 기술단계내용기술1DB에서 문서 불러오기Python, SQLite/CSV2임베딩 생성BAAI/bge-m3 모델 사용하여 단어끼리 유사한 벡터로 변환시키도록 함3벡터 유사도 검색FAISS4API 서버FastAPI5벡터 데이터베이스faiss.index6실제 정보metadata.json
1. 행렬미분스칼라, 벡터, 행렬에 대한 미분을 포함하며 그레디언트 행렬 또는 야코비안 행렬로 표현됨머신러닝에서는 선형 회귀, 로지스틱 회귀, 신경망의 역전파등의 활용2. 경사 하강법에 활용import torch# 데이터 정의 (입력 X, 정답 y)# 입력 데이터X = torch.tensor([[1.0], [2.0], [3.0]], requires_grad=False)# 실제 값 (y = 2x)y = torch.tensor([[2.0], [4.0], [6.0]], requires_grad=False)# 가중치 초기화 (학습할 값)w = torch.tensor([[1.0]], requires_grad=True) # 초기값 w = 1.0# 학습률 설정lr = 0.1 for epoch in range(10..
1. 선형대수머신러닝 모델은 데이터를 숫자로 표현하는데 보통 벡터(vector) 와 행렬(matrix) 로 표현할때 선형대수를 사용 ✅ 개념스칼라 - 0차원 텐서 ([2], [3])벡터 - 1차원 텐서 ([2,3])행렬(매트릭스) - 2차원 텐서 ([[2,3],[4,5]])텐서 - n차원 배열로 구성된 데이터노름(norm) - 벡터나 행렬의 크기를 측정하는 방법📌 norm대표적으로 L1노름, L2노름, 무한 노름이 있으며 L1노름은 벡터의 각 원소의 절댓값을 모두 더한 값으로 희소성을 강조하는 데 사용돼서 Lasso 회귀 같은 모델에서 많이 활용됨import numpy as npx = np.array([3, -4, 2])L1_norm = np.linalg.norm(x, ord=1) # L1 노름 계산p..
1. Pandas1) 데이터 조작, 정제, 분석, 시각화 등을 위한 다양한 기능을 제공, 데이터를 전처리하고 탐색하는 데 많이 사용2) 시리즈(Series)와 데이터프레임(DataFrame)이라는 자료형을 이용하여 데이터를 처리📌 Series, DataFrameSeries : 1차원 배열과 같은 구조, 인덱스(index)와 값(value)으로 구성됨 DataFrame : 2차원 테이블 형태의 구조, 여러 개의 Series가 모여서 만들어짐 ✅ Pandas 생성import pandas as pd# 생성s = pd.Series([10, 20, 30, 40, 50], index=["A", "B", "C", "D", "E"])"""A 10B 20C 30D 40E 50dtype: in..
1. Numpy파이썬에서 과학적 계산을 위한 기본 패키지로, 다차원 배열과 행렬을 다루는 데 특화됨📌 Numpy 정리1. 다차원 배열(ndarray) 지원 : 리스트보다 빠르고 효율적인 연산 가능 2. 벡터 연산 및 브로드캐스팅 지원 : 반복문 없이도 배열 단위 연산 가능 3. 선형대수 연산 기능 제공 : 행렬 곱셈, 역행렬, 고유값 분해 등 4. 통계 및 수학 연산 지원 : 평균, 표준편차, 합계 등의 빠른 계산 가능5. np.ndarray : NumPy에서 제공하는 다차원 배열 객체 ✅ Numpy 함수import numpy as np// 배열 생성np.array([1, 2, 3])// 범위 내 정수 배열 생성np.arange(2) # [0, 1, 2]np.arange(3, 5) # [3, 4]np..
1. 데이터세트 모듈≫ 사용자의 입력 데이터를 전처리하기 위한 모듈 ≫ 사용자로부터 문장이 입력되면 네이버 맞춤법 검사기를 이용하여 오탈자를 교정후, 품사를 기반으로 토큰화를 진행≫ 토크나이저는 Open Korean Text 토크나이저를 사용 2. 임베딩 모듈≫ 워드 임베딩을 수행하며, FastText와 Word2Vec을 지원≫ 사용자는 입력한 코퍼스를 이용하여 워드 임베딩 모델을 직접 학습 3. 인텐트 모듈≫ 사용자 발화의 의도를 파악하기 위해 사용≫ 사용자 발화를 분류하기 위해 합성곱신경망(CNN)과 장단기메모리신경망(LSTM)을 지원 4. 폴백 모듈≫ 폴백이란 정해진 도메인 이외의 문장이 입력된 경우, “잘 모르겠어요.”와 같은 문장을 반환하여 대화가 지정된 도메인 안에서 진행되게 유도하는 것 ≫ ..