AI VIDEO BRIEFING
DSPy로 작업과 모델 분리하기: 스펙·코드·평가로 재사용 가능한 AI 프로그램 만들기
DSPy는 함수처럼 재사용·조합·최적화 가능한 AI 프로그램을 만들게 해준다. 입력·출력 계약을 고정해 작업과 모델을 분리하고, 스펙·코드·평가 세 가지로 작업을 명세하는 설계 철학을 소개한다.

핵심 메시지
쉽게 이해하기
AI 엔지니어 컨퍼런스 무대에서 Maxime Rivest와 Isaac Miller가 오픈소스 파이썬 프레임워크 DSPy의 핵심 철학을 발표했다. 출발점은 단순한 비유다. 일반 프로그래밍에서 자주 반복하는 작업을 함수로 묶으면 이름·입력·출력이라는 계약만 알면 내부를 몰라도 재사용할 수 있고, 조합·테스트·최적화·배포까지 가능해진다. DSPy는 바로 이런 함수의 성질을 AI 프로그램에 그대로 부여하려는 시도다.
핵심은 "작업(무엇을 원하는가)"과 "구현(모델·하니스·세부 방식)"을 떼어놓는 것이다. 지난 몇 년간 새 모델과 기법이 격주로 쏟아졌지만, 발표자는 이것들이 모두 "구현 전술"일 뿐이라고 본다. 반복되는 AI 작업에 입력 인터페이스와 출력 인터페이스를 정의해 두면, 그 계약을 유지한 채 내부에서는 단순 프롬프트를 에이전트로 바꾸거나 도구를 추가하거나 루프를 넣는 등 무엇이든 실험할 수 있다. 바깥 계약이 고정돼 있으니 통합이 깨지지 않는다.
그렇다면 단순한 입력·출력 시그니처만으로 작업을 충분히 지정할 수 있을까? 발표자는 아니라고 답하며 세 가지 언어를 제시한다. 첫째는 "무엇이 일어나야 하는가"로, 자연어 지시(스펙)다. 둘째는 "반드시 무엇이 일어나야 하는가"로, 코드로 강제하는 제약이다. 예컨대 단순 추출이 실패하면 추론을 더 붙여 다시 실행하게 하거나, 값이 음수면 사람에게 넘기도록 하는 규칙은 AGI가 와도 지켜져야 하므로 코드로 못 박는다. 셋째는 "좋은 결과란 무엇인가"로, 지시나 코드로는 표현하기 어려워 예시를 통해 학습하는 평가다.
스펙·코드·평가 세 가지가 갖춰지면 작업이 완전히 명세되고, 그때부터 자동 최적화가 가능해진다. DSPy 초기에는 좋은 모델이 없어 코드로 few-shot 예시를 찾아 기본 모델을 원하는 방향으로 유도했고, 모델이 좋아지면서 지시(프롬프트) 자체를 자동 최적화할 수 있게 됐다. 발표자들은 앞으로 구현 세부는 점점 더 자동화에 위임하고 개발자는 명세에 집중하게 되는 방향을 지향한다고 밝혔다.
이 방식의 실질 이득은 기업 사례에서 드러난다. 구현이 유연하면 값싼 해법을 탐색해 비용을 크게 낮출 수 있는데, 발표에서는 Shopify가 비즈니스 로직을 그대로 둔 채 비싼 모델에서 저렴한 모델로 옮겨 550배 저렴하게 만든 사례가 소개됐다. 또한 MIT 박사과정 학생이 제안한 재귀적 언어 모델(RLM)이나 버클리에서 나온 강력한 프롬프트 최적화 기법처럼 새 연구 성과를 시그니처를 그대로 둔 채 한 줄로 붙여 효과를 시험할 수 있다는 점도 강조됐다.
주요 인사이트
- "지능은 전지(全知)가 아니다"라는 관점이 인상적이다. 아무리 똑똑한 모델(심지어 AGI)이라도 당신의 맥락과 업무, 인간관계까지 자동으로 알지는 못한다. 발표자들은 이 맥락을 효율적으로 학습시키는 "라스트 마일" 문제에 집중한다고 말한다.
- 새 기법이 나올 때마다 흔들리기보다, "이 기법이 내 문제를 더 잘 풀어주는가?"를 데이터 기반으로 따져야 한다는 조언이 핵심이다. 프롬프트·모델·코드를 해결해야 할 문제에 대해 책임지게 만들라는 것이다.
- 새로 공개된 기능으로는, 시간이 지나며 특정 함수를 풀 하니스(코드)를 학습하는 DSPy.flex와, 정답 데이터셋을 미리 만드는 대신 운영 중 쌓이는 실제 피드백(트레이스·사용자 행동·제품 분석)을 평가로 전환하는 "정성적 학습(qualitative learning)"이 소개됐다.
- 유연한 구현으로 만드는 가장 큰 이점은 커뮤니티 전체가 만들어내는 기법 생태계에 접근할 수 있다는 것이다. 계약만 고정돼 있으면 남이 발명한 기법을 그대로 가져와 내 문제에 적용해 볼 수 있다.
자주 묻는 질문
DSPy는 무엇이며 무엇을 해주나요?
DSPy는 파이썬으로 작성된 오픈소스 소프트웨어로, 함수의 성질(재사용·조합·테스트·최적화 가능성)을 AI 프로그램과 워크플로에 부여합니다. 입력·출력 계약을 고정해 작업과 모델·구현을 분리하고, 그 위에서 자동 최적화까지 지원합니다.
작업을 완전히 명세하려면 무엇이 필요한가요?
세 가지가 필요합니다. 무엇이 일어나야 하는지를 담은 자연어 지시(스펙), 반드시 지켜져야 할 제약을 코드로 강제하는 부분, 그리고 좋은 결과가 무엇인지 예시로 학습하는 평가입니다. 이 셋이 갖춰지면 자동 최적화가 가능해집니다.
왜 제약은 프롬프트가 아니라 코드로 강제하나요?
값이 음수면 사람에게 넘기거나, 첫 시도가 실패하면 추론을 더 붙여 재실행하는 것 같은 규칙은 모델이 아무리 똑똑해져도 반드시 지켜져야 하기 때문입니다. 발표에서는 이런 요구사항은 결정적으로 동작하도록 코드로 못 박아야 한다고 설명합니다.
원문과 출처
이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.
YouTube 원본 영상 보기 ↗