생성형 AI 서비스 개발 (3)

이영진·2025년 4월 21일
0

LLM

목록 보기
4/25

Fine-tuning

PEFT(Parameter Efficient Fine Tuning):

기존 사전학습된 대형 모델의 대부분 파라미터를 고정(freeze)하고, 일부 작은 부위만 학습 가능하게 만들어 파인튜닝하는 방식

목적
  • GPU 메모리 절약

  • 빠른 학습 속도

  • 전이학습 시 고효율

  • 다양한 작업(task)에 모델을 쉽게 적용 가능


LLM은 수억~수천억 개의 파라미터를 가짐

→ 이걸 전부 fine-tune 하려면 막대한 자원과 시간이 필요함

예) GPT-3 (175B 파라미터)를 fine-tune하면 수십~수백 GB 메모리 필요
→ PEFT는 이를 수 MB~수백 MB 수준으로 줄임


주요 PEFT 기법들

방법설명
Adapter기존 모델에 작은 층 (Adapter module)을 추가하여 이 부분만 학습
LoRA (Low-Rank Adaptation)파라미터 행렬의 low-rank 부분만 학습
Prefix-Tuning입력 앞부분에 학습 가능한 prefix 벡터를 붙임
Prompt-Tuninginput prompt에 학습 가능한 가상 토큰을 삽입

예시: LoRA

  • 원래 weight W에 대해
    W' = W + ΔW
    대신,
    ΔW = A * B  (A, B는 저차원 행렬)
  • W는 고정하고, A, B만 학습

전체 weight 수의 1~2%만 학습하면 성능을 거의 유지할 수 있음


언제 유용한가?

  • 여러 작업(task)에 같은 LLM을 재활용할 때

  • Edge 환경이나 리소스가 적은 디바이스에 모델을 배포할 때

  • 빠르게 프로토타이핑하거나 서비스에 맞춘 미세조정을 할 때


예: Hugging Face에서 LoRA 사용하기 (PEFT 라이브러리)

from peft import get_peft_model, LoraConfig

peft_config = LoraConfig(
    task_type="CAUSAL_LM",
    r=8,
    lora_alpha=32,
    lora_dropout=0.1
)

model = get_peft_model(base_model, peft_config)

LoRa(Low Rank-adaptation Fine Tuning)

W를 다 쓸 필요가 없고, d의 정보를 r차원으로 줄여서 내재된 (Intrinsic) 데이터를 추출하고, 이를 활용하는 것 만으로도 파인튜닝의 효과를 낼 수 있음

⇒ 저차원 행렬 A 와 B 를 학습하여 적은 연산량으로 성능 향상을 이끌어냄


#7. Deployment

vLLM(Very Large)

"초거대 언어 모델(LLM)"을 빠르고 효율적으로 서빙(Serving)하기 위해 개발된 새로운 시스템.

특히 대형 언어모델을 다수의 유저에게 빠르게 응답하는 것이 목표 : 추론 속도 혁신

양자화와 병행하여 효율을 증가시킴

내부 정보는 내부 LLM을 사용해서 정보가 유출되지 않도록 유도

웹 서치가 필요한 부분은 외부 LLM을 사용함

Multi-LLM을 사용하여 내부와 외부의 서비스를 분리


vLLM의 핵심 기술: PagedAttention

vLLM은 PagedAttention이라는 혁신적인 기술을 도입

PagedAttention이란?

LLM은 매 토큰 생성 시 과거 모든 토큰(hidden states)을 참조. (Self-Attention)

일반적으로 이 캐시를 GPU 메모리에 일렬로 (contiguous) 저장.

하지만 이렇게 하면 대화 길이가 다양한 여러 유저를 동시에 처리할 때 메모리 낭비가 심해짐.

  • PagedAttention은:

히든 상태(hidden states)를 "메모리 페이지(Page)" 단위로 쪼개 저장하고, 필요한 부분만 효율적으로 불러와(attend) 계산

대규모 배치를 효율적으로 처리할 수 있어 속도도 빠르고 GPU도 더 많이 활용할 수 있게 됩니다.


#8. Rag, Vector DB, AI APP

RAG의 이해

RAG에서의 LCEL

LLM 처리 방식을 LCEL 스타일로 구현

⇒ 정보와 질문을 구분 : 사실 답변 + 모르는 주제도 답변 생성

체인 형태로 질문 → 답변 → 질문 → …

환각현상을 막기 위해선, 정확한 맥락을 제공하는 것이 중요함!!


정의

LLM(대형 언어 모델)의 한계를 극복하기 위해 정보 검색(Retrieval)과 생성(Generation)을 결합한 AI 기술

RAG(Retrieval-Augmented Generation)의 핵심 기술 요소

  1. 문서 임베딩(Document Embedding)

    • 텍스트 데이터를 벡터 형태로 변환하여 유사성을 계산 가능
  2. 벡터 검색(Vector Search)

    • 높은 속도로 의미적으로 가장 유사한 문서를 찾음
  3. LLM(대형 언어 모델)

    • 검색된 문서를 참고하여 최적의 답변을 생성
  4. Knowledge Base(지식 베이스)

    • 외부 데이터(기업 문서, 논문, 뉴스 등)와 연결하여 최신 정보 제공

RAG의 장점

신 정보 활용 가능 → LLM 단독으로는 알 수 없는 최신 데이터 검색하여 반영

정확성 향상 → 임의 생성 내용(Hallucination) 발생 가능성 감소

도메인 특화 가능 → 특정 산업, 기업, 기술 관련 정보를 포함한 맞춤형 AI 구축 가능

즉, RAG는 검색과 생성(LLM)을 결합하여 더 신뢰성 높은 답변을 제공하는 기술!


검색 단계

Indexing : 데이터 준비하기

  • 다양한 데이터 포맷 고려: PDF, JSON, Markdown, 다양한 요소 처리(텍스트, 이미지, 표)

  • 문서 전체를 하나의 Context에 담기 어려우므로 전체를 분리 Ex) 페이지 단위, 섹터 단위로 데이터베이스에 저장

  • 청킹(Chunking): 문자나 토큰 단위로 나누는 경우

    • 청크 사이즈: 각 청크의 크기
    • 최적의 청크 사이즈는 도메인/데이터마다 다를 수 있음

Advanced RAG

정렬 최적화: Alignment Optimization

‘검색이 잘 되도록’ 데이터 청크 수정

Multi-Query Retrieval

쿼리를 여러 개의 버전으로 세분화 후 각각의 검색을 모두 수행
쿼리의 검색 다변화

0개의 댓글