본문 바로가기
IT 공부/생성형 AI

[생성형 AI] 프롬프트 엔지니어링 애플리케이션 설계

by 해모해모 2024. 11. 20.
728x90
반응형

주제 소개

애플리케이션 설명

  • 기능: 사용자가 기분, 상황, TPO 등을 설명하면 적절한 옷 코디 제안
  • 입력: 사용자의 기분/상황/TPO 설명(자연어)
    • ex) 겨울비가 와서 기분이 울적할 때, 소극장에서 하는 친구 공연을 보러 갈 때
  • 출력: 해당 입력 값에 알맞은 옷 코디(자연어) + 색상 배합(이미지)
    • ex) 전체적인 코디 스타일 및 색상 조합

애플리케이션 개발 FLOW

  • 파이프라인 아웃라인
    • 각 기능별 필요한 세부 기능 확인
  • 프론트엔드 설계
    • input과 output을 중심으로 디자인
  • 구현 및 디버깅

애플리케이션 파이프라인 아웃라인

    1. 사용자 Input(자연어): 질문, 혹은 요청의 형태
    1. 생성 AI (LLM): 시스템 프롬프트 조정
    1. 생성된 Output(자연어): 사용자 요청에 알맞은 코디
    1. 색상 배합(이미지): 제안한 코디 시각화

프론트엔드 설계

  • 사용자 Input / LLM이 생성한 Output / 색상 배합 이미지
  • 기본적으로 챗봇 형태 + 색상 배합 시각화

구현 및 디버깅

  • 간단한 Python 앱 데모 프레임워크인 Streamlit 사용
  • LLM은 API로 제공되는 모델(ChatGPT, Claude 등) 중에서 선택
    • 구현이 편리하고 인퍼런스(모델 Output 생성)가 효율적이며 성능도 우수
  • 색상은 생성 AI의 output에서 추출하여 별도로 시각화

주제에 적합한 모델 선택 가이드

Open Source vs Proprietary

  • 현재 거대 언어모델은 크게 오픈 소스(누구나 무료로 사용) 모델과 사유(API를 통해 유료로 사용) 모델로 나뉨
  • 사유 모델들이 오픈 소스 모델에 비해 성능 측면에서 더 뛰어난 경향
  • 오픈 소스 모델들도 최근 빠르게 발전하고 있음

Open Source LLM

  • 학습된 모델의 파라미터들을 공개하여 누구라도 이를 추가 학습 추론 등에 활용할 수 있음
    • 구체적인 사용 제한은 해당 모델의 License 부분 확인(특히, 상업적 이용)
  • 일반적으로 무료로 사용할 수 있다는 장점이 있으나, 인퍼런스 파이프라인을 직접 구현해야 함
    • 경우에 따라 인퍼런스 서빙 비용이 클 수 있음
  • LLaMA, MPT, Alpaca, Vicuna, Falcon 등이 대표적

Proprietary LLM

  • 모델의 파라미터는 공개하지 않고 대신 API end point를 제공하여 권한이 있는 유저들이 편하게 사용할 수 있도록 함
  • API 사용량에 따라 비용이 발생하나, 모델 인퍼런스 관련해서 신경 쓸 것이 없음
    • 구현이 편리하고 MS Azure 등의 우월한 클라우드 인프라의 혜택을 받을 수 있음
  • 현재 기준으로는 오픈 소스 모델들에 비해 성능도 뛰어난 편
  • ChatGPT(Open AI), Claude(Anthropic), Bard(Google) 등이 대표적

LLM 리더보드

  • LLM은 그 output 특성상 평가가 쉽지 않지만 몇 가지 랭킹들이 공개되고 있음

사유 언어모델 간 비교

  • GPT-3.5 Turbo가 Claude Instant와 유사(가격, 성능, 속도)
  • GPT-4는 Claude 2와 유사
  • 성능 측면에서는 전반적으로 GPT가 우위
  • Claude는 가격과 Context Length가 장점

모델 선택

  • 이번 프로젝트에서는 OpenAI의 GPT-3.5 Turbo(4K) 선택
    • 흔히 ChatGPT라고 알려진 모델
  • 영어 기준 1K token이 약 750 단어 정도이므로, 본 애플리케이션에서는 4K로 충분
  • 750 단어를 생성하는데 $0.002 이므로, 비용적으로도 크게 부담이 되지 않음

기본 코드 구조 및 UI 확인

OpenAI API

  • User input을 prompt로 입력받아 GPT 답변을 반환하는 함수
  • openai.ChatCompletion API 활용

Streamlit

  • Input text, Output text, image를 위한 프론트엔드 구현

UI 확인

  • 챗봇 + 이미지 형태의 프론트엔드 UI 확인
728x90
반응형

댓글