군만두의 IT 개발 일지

[구글 클라우드 스터디잼] Prompt Design in Vertex AI 본문

학습일지

[구글 클라우드 스터디잼] Prompt Design in Vertex AI

mandus 2026. 5. 16. 12:14

목차

     

    구글 클라우드 스터디잼에 참가하여 'Prompt Design in Vertex AI'의 챌린지 랩을 진행한 내용을 정리했습니다. 챌린지 랩은 단계별 가이드 없이 학습한 내용만으로 시나리오를 직접 해결해야 하는 형태로, 이번에는 'Cymbal Direct'를 위한 생성형 AI 마케팅 도구를 Vertex AI Studio와 Workbench에서 구축하는 실습이었습니다.

    1. Gen AI 시대의 MLOps

    1.1 예측 AI vs 생성형 AI

    구분 예측 AI (Predictive AI) 생성형 AI (Generative AI)
    목적 분류, 회귀, 객체 탐지, 예측 새로운 콘텐츠 생성 (텍스트, 이미지, 코드)
    학습 방식 모델을 처음부터(from scratch) 학습 사전학습 모델 발견 후 커스터마이징
    데이터 대량의 라벨링 데이터 큐레이션된 데이터셋
    평가 지표 정확도, 정밀도 유창성, 사실성, 브랜드 평판

     

    예측 AI는 기존 데이터로 분류·회귀 같은 특정 문제를 푸는 데 초점이 있고, 생성형 AI는 패턴 학습을 통해 새로운 콘텐츠를 만들어내는 것이 핵심입니다. 두 영역이 MLOps의 기본 원칙은 공유하지만, 생성형 AI는 추가 적응(adaptation)이 필요합니다.

    1.2 Gen AI MLOps의 새로운 단계

    • 사전학습 모델 탐색: Model Garden에서 Google/오픈소스/서드파티 모델 선택
    • 직접 예측 단축 경로: 프롬프트만으로 즉시 추론 실행 (전용 ML 파이프라인 불필요)
    • 커스터마이징과 튜닝: Supervised Tuning, RLHF, 어댑터 레이어
      • 어댑터 레이어는 수십 MB 크기로, 파운데이션 모델 옆에 결합되어 추론에 사용된다.
    • 큐레이션된 데이터 통합: 임베딩, Vector Search, Grounding
    • 새로운 평가/모니터링: Safety Score, Recitation Check
    이번 챌린지 랩은 Model Garden에서 Gemini를 골라 Vertex AI Studio에서 프롬프트를 설계하고, Workbench(Jupyter)에서 Python 코드로 호출하는 흐름을 따름.

    1.3 콘솔에서 주의할 점

    실습을 시작하면서 한 가지 문제가 있었습니다. 기존 문서에서 "Vertex AI"로 표기되던 메뉴가 실제 콘솔에서는 Agent Platform으로 바뀌어 있습니다. 처음에 메뉴 위치를 찾지 못해 헷갈렸습니다.

    ▲ Google Skills 공지
    ▲ Agent Platform 콘솔 화면

    2. 챌린지 랩 시나리오

    Cymbal Direct라는 가상의 아웃도어 용품 온라인 리테일러가 신제품 라인 마케팅 캠페인을 준비 중이라는 설정입니다. 생성형 AI를 활용해 두 가지 도구를 만드는 것이 목표입니다.

    도구 목적
    이미지 분석 기반 제품 설명 생성기 제품 사진에서 자연의 감성을 담은 짧은 묘사 텍스트 생성
    태그라인 생성기 제품 속성, 타겟 청중, 감정적 공감에 따른 광고 카피 생성

     

    전체 챌린지는 총 4개의 Task로 구성됩니다. Task 1, 2는 Vertex AI Studio에서 프롬프트를 설계하는 단계이고, Task 3, 4는 그 프롬프트를 Python 코드로 내보내 Workbench에서 수정 및 실행하는 단계입니다.

    3. Task 1. Gemini 이미지 분석 도구 만들기

    3.1 목표

    Vertex AI Studio에서 지정된 Gemini 모델로 Cloud Storage에 있는 Cymbal Direct 제품 이미지를 분석하여 다양한 스타일의 설명 텍스트를 생성하는 프롬프트 템플릿을 만듭니다.

    3.2 진행 순서

    1. Vertex AI Studio에서 새 프롬프트 생성, 모델은 챌린지에서 지정한 Gemini 모델 선택
    2. 이미지 입력으로 Cloud Storage 경로의 제품 이미지 첨부
    3. 아래 세 가지 스타일이 모두 나오도록 프롬프트 실험
      • 이미지에서 영감을 받은 짧은 설명
      • 광고에 어울리는 캐치프레이즈
      • 자연 친화적 캠페인을 위한 시적 묘사
    4. 출력이 만족스러울 때까지 프롬프트와 파라미터(Temperature, Top-P 등) 조정
    5. 프롬프트 이름을 Cymbal Product Analysis로 지정
    6. Save 클릭 후 지정된 리전 선택

    ▲ 이미지 입력 + 생성된 텍스트 결과

    4. Task 2. Gemini 태그라인 생성기 만들기

    4.1 목표

    제품 속성, 타겟 청중, 감정 공감 코드를 파라미터로 받아 커스터마이징 가능한 태그라인을 생성하는 프롬프트 템플릿을 구축합니다.

    4.2 System instructions 설정

    프롬프트의 System instructions 칸에 다음 지시문을 입력합니다.

    Cymbal Direct is partnering with an outdoor gear retailer.
    They're launching a new line of products designed to encourage young people
    to explore the outdoors.
    Help them create catchy taglines for this product line.

    4.3 Few-shot examples 작성

    모델 출력 스타일을 잡기 위해 2개의 예시를 추가해야 합니다. 한 개는 챌린지에서 제공된 예시를 그대로 쓰고, 다른 한 개는 같은 형식으로 직접 작성했습니다.

    Input Output
    Write a tagline for a durable backpack designed for hikers that makes them feel prepared. Consider styles like minimalist. Built for the Journey: Your Adventure Essentials.
    Write a tagline for a lightweight tent designed for young adventurers that makes them feel connected to nature. Consider styles like poetic. Sleep Under Stars, Wake With the Wild.

     

    Few-shot prompting이란? 모델에게 원하는 입출력 쌍을 몇 개 보여주는 것만으로 출력 스타일을 학습시키는 기법. 파인튜닝 없이도 도메인 특화 출력을 유도할 수 있음. 이번 Task에서는 2개의 예시로 출력 형식(짧은 문장, 콜론으로 두 절 구분, 영어 대문자 시작)까지 모델이 흉내내도록 유도함.

    4.4 커스터마이징 파라미터

    • 제품 속성: durable, lightweight, waterproof 등
    • 타겟 청중: young adventurers, families 등
    • 감정적 공감: empowered, connected, free 등
    • 스타일: minimalist, poetic, bold 등

    ▲ 태그라인 생성 결과

    4.5 저장

    프롬프트 이름을 Cymbal Tagline Generator Template로 지정하고 지정된 리전에 저장합니다. Autosave로 이미 저장돼 있다면 이름만 정확한지 확인하면 됩니다.

    5. Task 3. 이미지 분석 코드 실험

    5.1 목표

    Vertex AI Studio에서 만든 프롬프트를 Python 코드로 내보내, Workbench(Jupyter Notebook)에서 직접 호출하고 수정합니다.

    5.2 진행 순서

    1. 콘솔에서 Agent Platform → Notebooks → Workbench로 이동
    2. 지정된 Workbench 인스턴스에서 Open JupyterLab 클릭
    3. image-analysis.ipynb 열고 커널을 Python 3로 설정
    4. 전체 셀 실행하여 환경 정상 동작 확인
    5. Vertex AI Studio → Cymbal Product Analysis 프롬프트 → 우측 Code 버튼 → 언어 Python두 번째 코드 셀을 노트북의 지정 셀에 복사
    6. API 키 기반 인증 블록을 PROJECT_ID, LOCATION 기반 코드로 교체
    API 키 방식을 PROJECT_ID/LOCATION 방식으로 바꾸는 이유? API 키는 노출 시 누구나 호출 가능하므로 운영 환경에서 위험함. Workbench는 이미 서비스 계정으로 인증된 환경이므로, 프로젝트와 리전만 명시하면 IAM 권한에 따라 안전하게 API를 호출할 수 있음. 보안의 기본 원칙인 최소 권한(Principle of Least Privilege)을 따른 것임.

    ▲ JupyterLab에서 image-analysis.ipynb 열기
    ▲ 코드 셀 복사

    5.3 프롬프트 수정 두 가지

    코드가 정상 동작하는 것을 확인한 후, 두 가지 요구사항에 맞춰 프롬프트를 수정합니다.

    수정 항목 요구사항 방법
    출력 길이 10단어 미만 프롬프트 본문을 더 구체적으로 (예: "in fewer than 10 words")
    창의성 가장 창의적이고 예상치 못한 묘사 유도 Temperature 값을 높임 (힌트: 파라미터 조정 필요)

     

    "창의적이고 예상치 못한" 묘사를 원한다면 Temperature를 높이고(예: 0.9 이상), 필요시 Top-P도 함께 조정합니다. 프롬프트 수정 후 셀을 다시 실행하여 결과가 짧고 더 창의적으로 변했는지 확인하고, 마지막에 노트북 파일을 반드시 저장해야 진행도 체크가 통과됩니다.

    ▲ 수정 후 결과

    6. Task 4. 태그라인 생성 코드 실험

    6.1 목표

    Task 2에서 만든 태그라인 프롬프트를 Python 코드로 내보내, 마지막 입력에 특정 키워드를 강제하는 방식으로 수정합니다.

    6.2 진행 순서

    1. Workbench에서 tagline-generator.ipynb 열기 (커널 Python 3)
    2. Vertex AI Studio의 Cymbal Tagline Generator Template 프롬프트 → CodePython → 두 번째 코드 셀을 노트북에 복사
    3. 인증 블록을 PROJECT_ID, LOCATION 방식으로 교체
    4. 코드 실행하여 정상 출력 확인
    5. 마지막 input을 수정하여 태그라인에 nature 키워드가 포함되도록 명시적 지시 추가
    6. 저장 후 재실행하여 결과 검증

    6.3 키워드 강제 패턴

    마지막 입력 텍스트를 아래처럼 수정합니다. 단순히 "include nature"라고 적기보다 "the tagline must explicitly include the word 'nature'"처럼 명령의 강도를 높이면 결과가 더 안정적입니다.

    # 마지막 입력 예시
    """Write a tagline for a lightweight rain jacket designed for young adventurers
    that makes them feel connected to the outdoors.
    The tagline must explicitly include the word 'nature'.
    Consider styles like poetic."""

    ▲ tagline-generator.ipynb 코드 셀
    ▲ nature 키워드가 포함된 결과

    7. 정리

    7.1 챌린지 랩에서의 Gen AI 개발 흐름

    1. Vertex AI Studio에서 프롬프트 프로토타이핑
    2. 출력 스타일을 잡기 위한 Few-shot 예시 설계
    3. 창의성/길이/포맷 제어를 위한 샘플링 파라미터 조정
    4. 최종 프롬프트를 Python 코드로 내보내 애플리케이션에 통합
    5. Workbench에서 인증/배포 환경에 맞춰 코드 수정

    실제 운영 단계에서는 여기에 평가(Evaluation Service), 모니터링(Safety Score), Vector Search 기반 Grounding, Vertex Extensions를 통한 외부 도구 연결이 추가된다고 합니다. 추가로 아래와 같이 정리할 수 있습니다.

    • 프롬프트는 새로운 인터페이스: API 호출처럼 정형화된 호출이 아니라 자연어로 모델의 동작을 정의함.
    • Few-shot 예시의 위력: 파인튜닝 없이도 출력 스타일을 정밀하게 제어할 수 있음.
    • 파라미터 조정의 중요성: Temperature 하나로 같은 프롬프트의 출력 다양성이 완전히 달라짐.
    • Studio → Workbench로의 연결: 프로토타이핑된 프롬프트가 그대로 운영 코드로 이어짐.
    전통적인 LLM 통합 이번 실습 방식
    API 키를 코드에 직접 하드코딩하 호출 IAM 기반 인증으로 안전하게 호출
    프롬프트를 코드 안에서 직접 수정 Studio에서 시각적으로 설계 후 코드로 내보내기
    출력 형식을 후처리로 강제 Few-shot 예시로 모델 출력 자체를 제어
    파라미터 튜닝을 별도 코드 변경으로 처리 Studio UI에서 즉시 실험·조정

     

    이 글은 '2026 구글 클라우드 스터디잼'에서 학습한 내용을 바탕으로 작성되었습니다.
    Comments