0Pricing
AI Prompt Engineering · 강의

DSPy 프레임워크 소개

DSPy가 직접 작성한 프롬프트를 선언적 시그니처로 대체하는 이유를 알아봅니다.

DSPy 프레임워크 소개은(는) CoddyKit의 무료 AI Prompt Engineering 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 AI Prompt Engineering 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.

손으로 작성한 프롬프트의 취약성

수작업으로 만든 프롬프트는 취약합니다. 단어 하나만 바뀌어도 모델의 동작이 크게 달라질 수 있으며, GPT-4에서 작동하는 것이 Claude나 Gemini에서는 자주 제대로 작동하지 않습니다.

프롬프트 엔지니어는 문구를 조정하는 데 몇 시간씩 들이지만, 변경 사항이 데이터 세트나 모델 버전 전반에 일반화되지 않는다는 사실을 발견하게 됩니다. 이러한 취약성이 바로 DSPy가 해결하는 핵심 문제입니다.

DSPy란 무엇인가

DSPy(선언적 자기 개선 Python)는 프롬프트 작성을 숙련 작업이 아니라 컴파일 문제로 다루는 스탠퍼드의 프레임워크입니다.

"Think step by step and answer the following question..."처럼 작성하는 대신, 원하는 것(signature)을 선언하면 DSPy가 모델이 이를 달성하도록 프롬프트를 작성하는 방법을 알아냅니다.

DSPy 설치하기

DSPy는 PyPI에서 사용할 수 있습니다. DSPy를 설치하고 언어 모델 백엔드를 구성하여 get started 하시면 됩니다.

pip install dspy-ai

# Basic setup in Python
import dspy

# Configure the language model
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)

print('DSPy configured successfully')

핵심 개념: 논리와 프롬프트 분리하기

전통적인 프롬프트 작성에서는 프로그램 논리와 프롬프트 텍스트가 서로 얽혀 있습니다. 모델의 추론 방식을 바꾸려면 프롬프트 문자열을 다시 작성해야 합니다.

DSPy는 이러한 관심사를 분리합니다. 모듈을 사용해 Python 논리를 작성하면, DSPy가 컴파일 단계에서 실제 프롬프트 텍스트를 자동으로 생성하고 최적화합니다.

시그니처: 의도 선언하기

DSPy에서 signature는 입력과 출력을 형식이 지정된 형태로 선언한 것입니다. 이는 방법이 아니라 무엇을 선언합니다.

DSPy는 signature를 사용해 적절한 프롬프트를 compile 시점에 구성하므로, 사용자가 프롬프트 엔지니어링을 할 필요가 없습니다.

import dspy

# Declare: given a question, produce an answer
class SimpleQA(dspy.Signature):
    """Answer questions with short factual responses."""
    question: str = dspy.InputField()
    answer: str = dspy.OutputField(desc='A concise factual answer')

# DSPy turns this declaration into a real prompt automatically
print(SimpleQA.__doc__)

모듈: 조합 가능한 추론 블록

DSPy는 일반적인 추론 패턴을 구현하는 모듈을 제공합니다. 이를 PyTorch 계층처럼 사용하여 더 큰 프로그램으로 조합할 수 있습니다.

  • dspy.Predict — 직접 예측
  • dspy.ChainOfThought — 추론 단계 추가
  • dspy.ReAct — 추론 + 도구 사용
import dspy

class SimpleQA(dspy.Signature):
    """Answer questions with short factual responses."""
    question: str = dspy.InputField()
    answer: str = dspy.OutputField()

# Three different module strategies for the same signature
predict_module = dspy.Predict(SimpleQA)
cot_module = dspy.ChainOfThought(SimpleQA)

# Call just like a function
result = predict_module(question='What is the capital of France?')
print(result.answer)

컴파일이 하는 일

컴파일은 DSPy가 학습 데이터 세트와 평가 지표 함수를 사용해 프로그램의 프롬프트를 최적화하는 과정입니다.

컴파일 전에는 DSPy가 기본 프롬프트를 사용합니다. 컴파일 후에는 평가 지표를 최대화하는 퓨샷 예시, 더 나은 지침 또는 사고 과정 시연 예시를 찾아냅니다. 최적화된 프롬프트는 저장되어 추론 시점에 재사용됩니다.

최소한의 DSPy 프로그램

다음은 완전한 최소 DSPy 프로그램입니다. signature, 모듈, 호출로 구성되며 프롬프트 문자열은 어디에도 작성하지 않습니다.

import dspy

# 1. Configure LM
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)

# 2. Define signature
class Summarize(dspy.Signature):
    """Summarize text into one sentence."""
    text: str = dspy.InputField()
    summary: str = dspy.OutputField()

# 3. Create module
summarizer = dspy.Predict(Summarize)

# 4. Use it
result = summarizer(text='DSPy is a framework for programming language models.')
print(result.summary)

전통적인 프롬프트 엔지니어링과 DSPy 비교

핵심적인 철학의 차이는 다음과 같습니다.

  • 전통적인 방식: 프롬프트 텍스트 작성 → 모델이 실행 → 텍스트를 수동으로 조정
  • DSPy: Python 논리 작성 → 최적화기가 최적의 프롬프트 텍스트 탐색 → 모델이 최적화된 프롬프트 실행

DSPy는 컴파일러가 Python을 바이트코드로 변환하는 것처럼, 프롬프트를 컴파일러가 처리해야 하는 구현 세부 사항으로 다룹니다.

DSPy를 사용할 가치가 있는 경우

다음과 같은 경우 DSPy의 장점이 잘 드러납니다.

  • 최적화할 명확한 평가 지표(정확도, F1, 사용자 평점)가 있는 경우
  • 학습 데이터 세트에 예시가 있는 경우(20~50개만 있어도 충분합니다)
  • 서로 상호작용하는 여러 추론 단계가 있는 파이프라인을 사용하는 경우

일회성 단순 프롬프트에는 DSPy의 추가 부담이 가치가 없습니다. 측정 가능한 목표가 있는 운영 환경의 LLM 파이프라인에서는 DSPy가 획기적인 변화를 가져옵니다.

DSPy 생태계 개요

DSPy는 단순한 API 래퍼가 아니라 완전한 생태계입니다.

  • 시그니처: 입력과 출력 선언
  • 모듈: 추론 전략
  • 최적화기: BootstrapFewShot, MIPRO, COPRO
  • Evaluate: 내장 평가 도구
  • 검증 조건: 선언적으로 출력 제한

이 과정의 다음 수업에서 이러한 항목을 각각 살펴봅니다.

지식 확인: DSPy 핵심 개념

수동으로 프롬프트를 작성하는 것과 비교할 때 DSPy가 다른 가장 중요한 방식은 무엇입니까?

복습: DSPy 프레임워크의 기초

DSPy는 프롬프트 작성을 컴파일 문제로 다룸으로써 손으로 작성한 프롬프트의 취약성을 해결합니다. 사용자는 시그니처(형식이 지정된 입력/출력 선언)를 작성하고 Predict 및 ChainOfThought와 같은 모듈로 조합합니다. 그런 다음 최적화기가 학습 데이터와 평가 지표를 사용해 최적의 프롬프트 텍스트를 자동으로 찾습니다. 그 결과 수동 프롬프트 엔지니어링 없이도 이식 가능하고 테스트할 수 있으며 자동으로 개선되는 프롬프트 파이프라인을 얻을 수 있습니다.

자주 묻는 질문

“DSPy 프레임워크 소개” 강의는 무료인가요?

네 — “DSPy 프레임워크 소개” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 AI Prompt Engineering 강의 전체를 잠금 해제할 수 있습니다. AI Prompt Engineering 강의에는 총 4개의 강의가 포함되어 있습니다.

“DSPy 프레임워크 소개”에서 뭘 배우나요?

DSPy가 직접 작성한 프롬프트를 선언적 시그니처로 대체하는 이유를 알아봅니다. 브라우저에서 직접 실행하는 실습 코드로 AI Prompt Engineering을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

AI Prompt Engineering을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 AI Prompt Engineering은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“DSPy 프레임워크 소개” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 AI Prompt Engineering 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 AI Prompt Engineering 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. DSPy 프레임워크 소개
  2. 시그니처와 모듈 정의
  3. 프롬프트 컴파일 및 최적화
  4. DSPy 파이프라인 평가
← AI Prompt Engineering(으)로 돌아가기