AI, 머신러닝

PEFT란?최근 대형 언어 모델 (LLM: Large Language Model)의 성능이 비약적으로 향상되면서, 다양한 분야에서 이를 활용해 특정 태스크에 맞춰 모델을 미세조정하는 시도가 이어지고 있다. 그러나 대형 언어 모델의 파라미터 수가 수십, 수천 억개에 달하면서, 전체 파라미터를 모두 업데이트하는 전통적인 미세조정(Fine-Tuning) 방식은 막대한 계산 비용과 메모리 사용 문제를 야기한다.이에 따라, 학습해야 할 파라미터 수를 크게 줄이는 동시에 성능 저하를 최소화하는 파라미터 효율화 미세조정(PEFT, Parameter-Efficient Fine-Tuning) 기법이 각광받고 있다. PEFT 방법들은 모델의 일부 모듈만을 학습하거나 추가 파라미터를 최소한으로 도입해, 기존 모델의 대규모 ..
PySpark 간단 소개빅데이터와 머신러닝 환경에서는 방대한 데이터를 빠르게 처리하고, 효율적으로 분산 연산을 수행하는 것이 핵심이다.Spark는 In-Memory 분산 처리 기능을 제공하여, 기존 Hadoop의 MapReduce보다 최대 100배 빠른 속도로 데이터를 처리할 수 있다.또한, 병렬 처리 기반의 데이터 분산 저장 및 계산 기능을 제공하여 대규모 데이터셋을 활용한 머신러닝 모델 학습을 더욱 효율적으로 수행할 수 있다.PySpark는 Spark의 Python API로, Pandas, NumPy, Scikit-learn 등 Python의 데이터 분석 라이브러리와의 연동이 가능하다.머신러닝 프로젝트에서 PySpark를 사용하면 분산 컴퓨팅을 활용해 모델 학습 속도를 크게 향상시킬 수 있으며, ML..
2025.01.29 - [AI, 머신러닝] - RAG 시스템 강화하기 (1) Multi-Query, Self-Query, Reranker - 이론편이전 포스팅에서 이론적으로 설명한 내용을 RangChain을 통해 구현해보겠다. from bs4 import SoupStrainerimport getpassimport osfrom dataclasses import dataclassimport loggingfrom typing import Listimport faissfrom langchain.schema import Documentfrom langchain_community.vectorstores import FAISSfrom langchain_community.docstore.in_memory import ..
Qualtative Analysis가 필요한 이유주식이나 금융 시장에서 투자를 결정하는데 있어 흔히 사용하는 방식 중 하나가 재무제표, 차트, 지표 등 정량적 분석(Quantative Analysis)이다. 하지만 이런 수치적인 데이터만으로는 시장 심리, 특정 이슈 및 트렌드를 놓칠 수 있다.예를 들어 최근 중국의 deepseek로 인해 미국 반도체, 테크 주식들이 대폭락을 했는데 이는 재무제표에는 반영되지는 않지만 투자심리와 주가 변동에 큰 영향을 미친것이다. 이러한 이유로 정성적 분석(Qualitative Analysis)가 중요해졌다. 뉴스 기사, 업계 평가, 산업의 미래투자가치, 애널리스트 코멘트 등은 미래의 트렌드를 파악하면서 투자 판단에 활용할 수 있는 유용한 텍스트 정보들이 필요하다.이를 R..
1. Multi Query1.1 배경전통적인 RAG 파이프라인에서는 사용자의 쿼리(Query)가 임베딩되어, 가장 유사한 문서를 검색(Retrieval)한 뒤 LLM이 답변을 생성한다.하지만 사용자의 쿼리가 애매하거나 범위가 넓은 경우, 단일 문장만으로는 문서 검색에서 정보 유실(Information Loss)이 생길 수 있다.Google의 Multi-Vector Retrieval, OpenAI 등이 제안한 쿼리 재작성 기법을 통해 질문을 여러 형태로 재생성하여 더 풍부한 검색을 유도하는 시도를 해왔다.1.2 사용하는 이유쿼리 다양성 확보사용자 입력 한 줄이 모호하거나, 특정 키워드를 놓쳤을 때, 다양한 표현의 쿼리를 생성하면 그만큼 다른 각도에서 문서를 검색할 수 있다.정확도(Recall) 향상단일 쿼..
이전 포스팅 [2025.01.27 - [AI, 머신러닝] - RAG 코드 간단하게 구현하기] 에서 RAG 코드를 간단하게 구현해 봤습니다.하지만 Generator 모델의 성능이 낮아 원하는 답변을 제대로 얻을 수 없었습니다.이번 포스팅에서는 OpenAI API로 ChatGPT 모델을 불러와 고성능 generator 모델 역할을 맡기고,전체 RAG 시스템의 동작을 trace하기 위해 langchain으로 RAG 코드를 구현해보겠습니다.전체 코드 흐름은 이전 포스팅과 동일합니다.0. Prerequisite먼저 LangSmith와 OpenAI API에 대한 API Key를 생성해줍니다.OpenAI: https://platform.openai.com/settings/organization/api-keysLang..
본 포스팅은 RAG를 처음 입문하는 스타터들을 위해 간단하게 RAG를 코드로 구현하는 방법을 설명합니다.먼저 RAG 코드 구현에 있어 RAG가 뭔지 모르겠다면 아래 글을 참고해주길 바랍니다.2025.01.24 - [AI, 머신러닝] - Prompt Engineering으로 ChatGPT 제대로 활용하기 - (5) 프롬프트 엔지니어링 심화편 III (Tree of Thought, RAG) Prompt Engineering으로 ChatGPT 제대로 활용하기 - (5) 프롬프트 엔지니어링 심화편 III (Tree of Thought, RAG)Tree of Thought기존 Chain of Thought(CoT) 방식은 LLM이 문제 해결 시 연속된 단일 추론 경로(chain)에 의존하게 된다.그러나 탐색(ex..
Tree of Thought기존 Chain of Thought(CoT) 방식은 LLM이 문제 해결 시 연속된 단일 추론 경로(chain)에 의존하게 된다.그러나 탐색(exploration)이나 전략적인 미래 예측(lookahead)이 필요한 복잡한 문제에서는 한 번의 직선적인 추론만으로는 부족하다. 이를 해결하기 위해 Tree of Thoughts가 제안되었다.  ToT는 생각(추론 단계)를 트리 구조로 확장하여 문제를 해결하는 과정에서 다양한 분기점을 동시에 고려한다.각 중간 단계(thought)를 모델이 자체 평가(self-evaluation) 하며 이 경로가 유망하다, 혹은 불가능/의미 없다고 판단하여 해당 경로를 배제할지 계속 탐색할지 결정하게 된다.탐색 방법은 BFS/DFS/Beam Search..
EBEL
'AI, 머신러닝' 카테고리의 글 목록