LLMs 파인튜닝 프로젝트: 제품 설명으로 가격 예측하기 (2)

데이터셋 검토 및 구축

·

5 min read

🔑 비즈니스 문제 해결을 위한 5단계 전략

비즈니스 문제를 해결하기 위한 5단계 전략은 다음과 같다.

  1. 이해 (Understanding)

    • 비즈니스 요구 사항을 깊게 파고들어서 어떤 문제를 해결하려고 하는지 정확히 인지하기

    • 목표가 정확히 무엇인지 문서화

  2. 준비 (Preparation)

    • Baseline 모델과 데이터 집합 큐레이팅 과정 등
  3. 모델 선택 (Select Models)

    • 모델의 장단점을 파악해서 모델을 선택
  4. 커스터마이징 (Customize)

    • RAG이나 파인튜닝을 통해 모델을 커스터마이징
  5. 프로덕션화 (Productionize)


위의 다섯 단계를 좀 더 자세히 알아보자.

1️⃣ 이해 (Understanding)

  • 비즈니스 요구 사항 수집하기.

  • 성공을 어떻게 측정할 것인지 명확히 하기.

    • 데이터 사이언스 지표뿐만 아니라 비즈니스 관점에서의 성공 기준도 필요하다.
  • 데이터 이해하기.

    • 데이터의 양품질을 평가하기.

    • 예를 들어, 구조화 데이터인지 비구조화 데이터인지, 또는 둘 다인지 확인한다.

  • 비기능적 요구 사항(Non-functional Requirements)을 정의한다.

    • 예산, 확장성(Scale), 지연 시간(Latency), 시장 출시 날짜(Time to Market) 등을 고려한다.

예:

  • 빠른 시간 내에 구축해야 한다면 Frontier 모델과 API 사용이 적합하다.

  • UI 구축은 Gradio를 사용해 수 분 내에 완료할 수 있다.


2️⃣ 준비 (Preparation)

준비 단계에는 세 가지 핵심 활동이 있다.

  1. 기존 솔루션 조사 (Research Existing Solutions)

    • 기존 모델이 문제를 해결하는 방식을 조사한다.

      • 예: 제품 가격 예측에는 선형 회귀(Linear Regression) 모델이 사용될 수 있다.
    • 간단한 문법(ex. if 문)으로 해결할 수 있는 경우도 고려한다.

    • LLM이 더 나은 성능을 낼 것이 분명해도, 기준선(Baseline)을 마련하는 것은 중요하다.

    • 왜냐하면, 새로운 모델의 성능 향상을 정량적으로 증명할 수 있기 때문이다.

  2. 관련 LLM 비교 (Compare Relevant LLMs)

    • 가격, 문맥 길이, 라이선스 조건, 벤치마크 점수 등을 평가한다.

    • Seal 같은 전문 리더보드도 참고한다.

  3. 데이터 큐레이션 및 전처리 (Curate and Preprocess Data)

    • 데이터를 스크러빙(Scrubbing)하고 전처리(Parsing) 한다.

    • 데이터를 훈련, 검증, 테스트 세 가지로 분할한다.

      • 훈련 데이터: 모델 훈련에 사용

      • 검증 데이터: 하이퍼파라미터 조정 및 성능 평가

      • 테스트 데이터: 최종 모델의 성공 여부 판단


3️⃣ 모델 선택 (Select Models)

  • 실험(Experimenting)을 통해 모델을 비교하고,

  • 큐레이션한 데이터로 훈련 및 검증을 진행한다.


4️⃣ 커스터마이징 (Customize)

  • RAG, 파인 튜닝 등 모델 최적화 기법을 사용해 모델 성능을 극대화한다.

  • 이 단계는 우리가 가지고 있는 프리트레인된 모델(pre-trained model)이나 프론티어 모델(frontier model)을 더 나은 성능으로 끌어올리는 것이다.

  • 모델 최적화에는 세 가지 접근법이 있다.

    1. 프롬프팅 (Prompting)

    2. RAG (Retrieval-Augmented Generation)

    3. 파인 튜닝 (Fine Tuning)

🤔 어떤 상황에서 어떤 기법을 선택해야 할까?

많은 사람들이 어떤 상황에서 어떤 기법을 사용해야 하는지 헷갈려한다.
이 세 가지 기법은 서로 배타적인 것이 아니라, 함께 사용할 수도 있다.
하지만 일반적으로는 프로젝트 초기에는 하나의 기법에 집중하는 경우가 많다.

👉 프롬프팅과 RAG는 추론 시(inference time) 사용되는 기법이다.
👉 반면, 파인 튜닝은 훈련(training time) 단계에서 이루어진다.

🛠️ 각 기법의 장단점

1️⃣ 프롬프팅 (Prompting)

장점

  • 빠르다 – 간단한 프롬프트 수정만으로도 결과를 바로 얻을 수 있음

  • 쉬운 구현 – 누구나 쉽게 시도할 수 있음

  • 저비용 – 인프라 비용이 낮음

단점

  • 제한된 컨텍스트 윈도우 – 모델에 입력할 수 있는 최대 길이가 존재

  • 비효율성 – 긴 컨텍스트를 사용하면 비용 증가 및 추론 속도 저하

  • 제한적 개선 – 지속적인 프롬프팅으로 성능 향상에는 한계가 있음

2️⃣ RAG (Retrieval-Augmented Generation)

장점

  • 높은 정확도 – 필요한 정보를 데이터베이스에서 직접 검색해 제공

  • 확장성 – 방대한 데이터를 효율적으로 활용 가능

  • 비용 절감 – 필요한 정보만 검색해 모델에 전달, 불필요한 컨텍스트 비용 절감

단점

  • 구축이 복잡 – 벡터 데이터베이스와 검색 파이프라인을 구축해야 함

  • 데이터 유지보수 필요 – 최신 정보로 지속적으로 업데이트해야 함

  • 깊이 있는 학습 부족 – 문맥을 기반으로 한 검색이므로 깊은 의미 파악은 어려움


3️⃣ 파인 튜닝 (Fine Tuning)

장점

  • 전문성 강화 – 특정 도메인에 특화된 모델 구축 가능

  • 뉘앙스 학습 – 미묘한 표현이나 스타일도 학습 가능

  • 빠른 추론 – 훈련 후에는 추가 데이터베이스 조회 없이 바로 추론 가능

단점

  • 비용이 많이 듦 – 훈련 데이터와 GPU 비용이 큼

  • 많은 데이터 필요 – 충분한 예시 데이터가 없으면 학습이 어려움

  • 구현 난이도 – 구현 및 조정이 복잡함

  • 캐터스트로픽 포겟팅(Catastrophic Forgetting) – 특정 문제에 과하게 특화되면 기존의 지식이 망각될 위험


🧩 언제 어떤 기법을 사용해야 할까?

  • 프롬프팅 – 프로젝트 초기에 가장 많이 사용됨. 빠르게 결과를 보고 싶을 때 적합

  • RAG정확도가 중요하고 비용을 절감하고 싶을 때 사용. 지식 데이터베이스가 이미 존재하는 경우 이상적

  • 파인 튜닝특정 도메인에 특화된 모델이 필요하거나, 대량의 데이터를 가지고 있을 때 적합

💡 프로젝트 예시

우리가 진행 중인 제품 가격 예측 프로젝트는 다음과 같은 특징이 있다.

  • 특수한 작업이 필요하다.

  • 대량의 데이터를 보유하고 있다.

  • 높은 성능과 뉘앙스 이해가 요구된다.

따라서, 파인 튜닝이 가장 적합한 선택이 될 것이다.


5️⃣ 프로덕션화 (Productionize)

  • 마지막 단계는 Productionize로, 모델을 실제 서비스에 배포하는 단계이다.

  • 당연히 모델 훈련이 끝난 후 Jupyter 노트북을 그대로 프로덕션에 배포하지는 않는다.

  • 🚀 Production 단계 주요 활동

    • API 정의 및 구축

      • 모델을 호출할 수 있는 API 설계.

      • 오픈 소스 모델을 직접 사용하거나, 프론티어 모델(frontier model)을 호출해 RAG나 프롬프팅 같은 보조 기술을 결합.

    • 호스팅 및 배포 결정

      • API와 모델을 어디에 배포할지 결정.

      • 클라우드(AWS, GCP 등) 또는 온프레미스 서버에 배포할 수 있음.

    • 모니터링 및 보안

      • 실시간 모니터링 시스템을 구축해 모델 성능을 주기적으로 확인.

      • 정보 보안, API 접근 권한 등을 설정해 보안을 강화.

    • 확장성(Scaling) 고려

      • 트래픽이 증가할 경우 API 및 모델의 확장성을 준비.

      • 오토스케일링, 로드밸런싱 등을 통해 안정적으로 서비스할 수 있도록 함.

    • 비즈니스 메트릭 측정 및 지속적 개선

      • 1단계에서 설정했던 비즈니스 메트릭(성공 지표)을 지속적으로 모니터링.

      • 주기적으로 모델을 재훈련(retrain)하고, 성능을 향상시킴.


원본 출처: Udemy - Become an LLM Engineer in 8 weeks: Build and deploy 8 LLM apps, mastering Generative AI and key theoretical concepts.