51일차 : 앱에서 프롬프트엔지니어링 구현_Azure Open AI 활용

Luis_J·2024년 11월 21일
0

MS_AI_School 5기

목록 보기
53/70
post-thumbnail

Summary

프롬프트 수준에 따라 AI 답변의 품질이 달라집니다.
같은 재료와 도구를 누가 사용하느냐에 따라
결과물이 천지차이이듯, AI도 마찬가지입니다.

Introduction

프롬프트 엔지니어링은 AI 모델의 성능을 극대화하기 위한 핵심 기술입니다. Azure OpenAI와 함께 활용하는 방법을 정리했습니다.

Code, Conept & Explanation

1. 프롬프트 엔지니어링 이해

  • 프롬프트 엔지니어링이란?
    • AI 모델이 원하는 결과를 생성하도록 프롬프트를 설계하고 최적화하는 과정.
    • 명확하고 구체적인 프롬프트는 더 나은 응답을 제공합니다.
  • 중요성:
    • 프롬프트 품질에 따라 AI의 응답 품질이 크게 좌우됩니다.
    • 관련성 높은 프롬프트는 모델의 편향을 줄이고 더 공정한 결과를 제공합니다.

2. 효과적인 프롬프트 작성

명확한 지침 제공

  • 모델이 정확한 응답을 생성하도록 구체적이고 명확한 요청 작성.
  • 예시:
"새 물병의 주요 특징과 장점을 강조하여 마케팅용 제품 설명을 작성하세요."

섹션 표식 사용

  • 텍스트를 구조화하여 모델의 해석을 돕습니다.
  • 예시:
### 물병의 특징
- 재질: 스테인리스 스틸
- 용량: 500ml

생각의 사슬

모델에서 최고 품질의 답변을 얻기 위해 프롬프트를 반복하고 개선하는 데 가장 적합합니다.

모델이 응답을 형성하는데 사용된 이유와 단계를 알면 프롬프트를 분할 및 자세한 정보를 제공하거나 지침을 명확히 해야 하는 위치를 식별

일반적인 프롬프트 입력시 일반적인 응답이 나옵니다.
What sport is easiest to learn but hardest to master?

프롬프트를 입력하면 응답이 어떻게 결론에 도달했는지 구체적으로 명시합니다.
What sport is easiest to learn but hardest to master? Give a step by step approach of your thoughts, ending in your answer

3. 콘텐츠 유형

  • 기본 콘텐츠: 모델이 작업을 수행하는 데 필요한 핵심 정보.
    • 예: 번역할 문장, 요약할 문서.
  • 지원 콘텐츠: 추가 정보를 제공하여 안전성과 정확도를 높임.
    • 예: 날짜, 사용자 이름, 환경설정.
  • 그라운딩 콘텐츠: 모델에 신뢰할 수 있는 정보를 제공합니다.
    • 예: 회사 FAQ, 최신 기사.

4. 모델 매개변수 조정

  • 온도(Temperature): 모델의 응답 창의성을 제어.
    • 낮은 값(0.2): 논리적, 일관성 높은 응답.
    • 높은 값(0.8): 창의적이고 다양한 응답.
  • Top-p: 확률 기반으로 응답 범위를 조정.
    • 낮은 값(0.3): 확률 높은 단어에만 집중.
    • 높은 값(0.9): 더 다양한 단어 포함.

5. 프롬프트 엔지니어링 기술

퓨샷 러닝 (Few-shot Learning)

  • 사용자 정의 예제를 통해 모델의 응답 패턴을 개선.
  • 예시:
"다음 예제를 참고하여 주어진 문장을 요약하세요."
Example: 
Input: "인공지능 기술은 다양한 산업에서 활용되고 있다."
Output: "AI의 산업 활용."

복잡한 작업 나누기

  • 큰 작업을 여러 단계로 나누어 모델이 이해하기 쉽게 만듦.
  • 예시:
1. 물병의 주요 특징 정리.  
2. 정리된 내용을 바탕으로 3문단 광고문 작성.

시스템 메시지 활용

모델에 역할과 톤을 정의.
예시:

"당신은 여행 가이드를 돕는 AI 비서입니다. 사용자에게 추천 여행지를 제공하세요."

6. 실습 예시: Azure OpenAI와 통합

코드 샘플

from openai import AzureOpenAI
import os
from dotenv import load_dotenv

load_dotenv()
client = AzureOpenAI(
    endpoint=os.getenv("AZURE_OAI_ENDPOINT"),
    api_key=os.getenv("AZURE_OAI_KEY")
)

prompt = "새 물병의 주요 특징과 장점을 설명하는 마케팅 텍스트를 작성하세요."
response = client.Completions.create(
    deployment_id="gpt-3.5-turbo",
    prompt=prompt,
    max_tokens=100
)

print(response.choices[0].text)

Challenges & Solutions

Results

What I Learned & Insights

구체화할수록, 프롬프트에서 가정을 구체적으로 부여할수록, 더 수준 높은 답변을 얻을 수 있습니다.

Conlusion

  • 프롬프트 엔지니어링은 AI 모델의 성능과 응답 품질을 높이는 데 중요한 역할을 합니다.
  • 명확하고 구조화된 프롬프트를 설계하고, 매개변수를 조정하여 최적의 결과를 도출하세요.
profile
New life & History

0개의 댓글

관련 채용 정보