LLM에서 전이 학습(Transfer Learning): 개념 및 응용
요약
본 문서는 검색 증강 생성(RAG)을 활용하여 도메인 특화 지원 에이전트를 구축하는 과정을 안내합니다. 파운데이션 모델 미세 조정 대신, 관련 지식 기반 문서를 컨텍스트로 주입하고 시스템 프롬프트를 통해 답변 범위를 제한하는 방법을 설명합니다.
핵심 포인트
- RAG 패턴을 사용하여 전이 학습 효과를 구현할 수 있습니다.
- LLM의 비용 효율성을 위해 요청(request)당 과금 모델을 활용했습니다.
- 임베딩과 코사인 유사도를 이용해 관련 문서를 검색하는 것이 핵심입니다.
- 시스템 프롬프트로 답변 범위를 명확히 제한하여 정확도를 높였습니다.
우리는 검색 증강 생성(retrieval-augmented generation)을 통해 전이 학습을 적용하는 도메인 특화 지원 에이전트를 구축할 것입니다. 파운데이션 모델을 미세 조정(fine-tuning)하는 대신, 관련 문서를 컨텍스트 창에 주입하여 Llama 3.3 70B를 가상의 SaaS API에 대한 질문에 답하도록 적응시킬 것입니다. 이 패턴은 Oxlo.ai에서 비용 예측 가능성을 유지시켜주는데, 이곳의 가격 책정은 토큰당이 아닌 요청(request)당이기 때문입니다. 현재 요율은 pricing page를 참조하십시오.
준비물
- Python 3.10 이상
- https://portal.oxlo.ai에서 받은 Oxlo.ai API 키
- OpenAI SDK:
pip install openai. 유사도 계산을 위해numpy도 사용합니다.
1단계: Oxlo.ai 클라이언트 구성
OpenAI SDK를 초기화하고 이를 Oxlo.ai에 연결합니다. 이 클라이언트는 임베딩과 채팅 완료(chat completions) 모두에 재사용할 것입니다.
from openai import OpenAI
import os
...
2단계: 지식 기반 생성
일반 모델을 적응시키기 위해 도메인 데이터가 필요합니다. 여기는 결제 게이트웨이에 대한 가짜 API 문서를 나타내는 작은 JSON과 유사한 목록입니다.
import json
KB = [
...
3단계: Oxlo.ai 임베딩을 사용한 검색기(retriever) 구축
지식 기반과 사용자 질의를 Oxlo.ai의 임베딩 모델로 임베딩하고, 코사인 유사도에 따라 상위 일치 항목을 반환합니다. 이것이 전이 메커니즘입니다: 일반 BGE 임베딩 모델이 우리의 특정 도메인에 적용됩니다.
import numpy as np
def get_embedding(text):
...
4단계: 시스템 프롬프트 작성
시스템 프롬프트는 일반 LLM이 도메인 전문가처럼 행동하도록 제약합니다. 이 프롬프트는 모델에게 검색된 컨텍스트만을 사용하고 주제와 관련 없는 질문은 거부하도록 지시합니다.
SYSTEM_PROMPT = """당신은 Acme Payments API의 기술 지원 에이전트인 PayAssist입니다.
제공된 API 문서 컨텍스트만 사용하여 답변하십시오.
답변이 컨텍스트에 없으면, '현재 문서에는 해당 정보가 없습니다.'라고 말하십시오.
...
5단계: 에이전트 파이프라인 조립
5단계: 에이전트 파이프라인 조립
이제 검색(retrieval)을 생성(generation)에 연결합니다. 이 함수는 관련 문서를 가져와 컨텍스트를 포함한 메시지를 형식화하고, Oxlo.ai의 Llama 3.3 70B 모델을 호출합니다.
def ask_agent(question):
context, score = retrieve(question)
...
실행하기 (Run it)
도메인 전이(domain transfer)가 필요한 질문으로 에이전트를 테스트해 보세요. 이 모델은 사전 학습 과정에서 Acme Payments 문서를 본 적이 없지만, 올바른 컨텍스트를 검색했기 때문에 정확하게 답변합니다.
if __name__ == "__main__":
question = "What happens if I exceed the sandbox rate limit?"
result = ask_agent(question)
...
예시 출력:
Question: What happens if I exceed the sandbox rate limit?
Retrieved: The default rate limit is 100 requests per minute for sandbox and 1000 requests per minute for production. Exceeding the limit returns HTTP 429 with a Retry-After header.
Score: 0.8912
...
마무리 및 다음 단계 (Wrap-up and next steps)
이것이 전이 학습 지원 에이전트의 핵심입니다. Oxlo.ai에 호스팅된 일반 모델을 어떤 가중치(weights)도 건드리지 않고 특정 도메인에 특화시키는 것입니다.
두 가지 구체적인 다음 단계가 있습니다. 정적 JSON 지식 기반을 Chroma 또는 pgvector와 같은 벡터 데이터베이스로 교체하여 에이전트가 수천 개의 문서까지 확장할 수 있도록 하거나, 만약 사용자의 도메인이 복잡한 추론(reasoning)이나 코드 생성을 포함한다면 채팅 모델을 Oxlo.ai의 DeepSeek V3.2로 교체하는 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기