프롬프트 엔지니어링을 특별한 분야로 취급하는 것은 LLM 시스템의 오류 진단과 해결을 어렵게 합니다. 웹 개발이 Rails를 통해 표준화된 것처럼, LLM 개발도 기존 소프트웨어 공학 원칙을 적용해야 합니다. LLM의 신규성 때문에 새로운 규칙을 고집하기보다, 타입 시스템, 테스트, 관측 가능성 등 검증된 공학적 접근이 필수적입니다. 사용자에게 부담을 전가하는 챗봇을 넘어, 안정적인 반복 가능한 추론 시스템으로 나아가야 합니다.
체계적인 LLM 개발
-
계약 기반:
DSPy::Signature로 LLM과의 입력/출력 계약을 정의하여 타입 시스템처럼 오류를 사전 감지합니다. -
프롬프트는 구현 상세: 프롬프트는 자동 최적화 및 모델 교체가 용이한 구현 상세가 되며, 행동 기반 테스트가 가능해집니다.
LLM 개발의 당면 과제 및 해결책
현재 LLM 개발은 오류 재현 및 추적 불가, 추론 과정의 관측 불가능성, 비체계적인 평가 등의 문제에 직면해 있습니다. 이는 전통 소프트웨어에서 이미 해결된 과제들입니다. 표준화된 패턴, 계약 정의, 모듈화를 통해 툴링의 도움을 받아 신속한 문제 추적이 가능하며, 평가는 CI/CD의 일부가 되어 배포 전 회귀를 방지해야 합니다. DSPy.rb는 이러한 원칙을 Ruby 환경에서 구현한 오픈소스 프레임워크입니다.