17일 전

DSPy: 설명형 언어 모델 호출을 자가 개선형 파이프라인으로 컴파일하기

Omar Khattab, Arnav Singhvi, Paridhi Maheshwari, Zhiyuan Zhang, Keshav Santhanam, Sri Vardhamanan, Saiful Haq, Ashutosh Sharma, Thomas T. Joshi, Hanna Moazam, Heather Miller, Matei Zaharia, Christopher Potts
DSPy: 설명형 언어 모델 호출을 자가 개선형 파이프라인으로 컴파일하기
초록

머신러닝(Machine Learning, ML) 커뮤니티는 언어 모델(Language Models, LMs)을 프롬프팅하는 기법과 복잡한 작업을 해결하기 위해 이러한 모델들을 파이프라인으로 구성하는 방식에 대해 빠르게 탐구하고 있다. 그러나 기존의 LM 파이프라인은 일반적으로 시행착오를 통해 발견된 긴 문자열 형태의 ‘프롬프트 템플릿’으로 하드코딩되어 있어, 유연성과 재사용성에 한계가 있다. LM 파이프라인을 체계적으로 개발하고 최적화하기 위한 새로운 접근법으로, 우리는 DSPy를 제안한다. DSPy는 LM 파이프라인을 텍스트 변환 그래프(text transformation graphs)로 추상화한 프로그래밍 모델이다. 즉, 명령형(imperative) 계산 그래프로서, LMs는 선언형(declarative) 모듈을 통해 호출된다. DSPy 모듈은 매개변수화되어 있어, 프롬프팅, 피팅(finetuning), 증강(augmentation), 추론(reasoning) 기법들의 조합을 어떻게 적용할지 학습할 수 있다(예: 예시 생성 및 수집을 통해). 우리는 주어진 지표를 최대화하기 위해 어떤 DSPy 파이프라인도 최적화할 수 있는 컴파일러를 설계하였다. 두 가지 사례 연구를 통해, 간결한 DSPy 프로그램이 수학적 단어 문제에 대한 추론, 다단계 검색(multi-hop retrieval), 복잡한 질문 응답, 에이전트 루프 제어 등과 같은 고도화된 LM 파이프라인을 표현하고 최적화할 수 있음을 보였다. 컴파일 후 몇 분 내에, 단 몇 줄의 DSPy 코드만으로도 GPT-3.5와 llama2-13b-chat이 자체적으로 파이프라인을 구축할 수 있으며, 기존의 표준 few-shot 프롬프팅보다 평균적으로 25% 이상, 65% 이상 각각 우수한 성능을 발휘한다. 또한 전문가가 작성한 예시를 사용한 파이프라인보다도 최대 5~46% 및 16~40%의 성능 향상을 달성하였다. 더불어, 오픈소스이고 비교적 크기가 작은 언어 모델인 770M 파라미터 T5와 llama2-13b-chat에 컴파일된 DSPy 프로그램은 독점적인 GPT-3.5를 활용하는 전문가가 작성한 프롬프트 체인 기반 접근법과 경쟁 가능한 성능을 보였다. DSPy는 https://github.com/stanfordnlp/dspy 에서 공개되어 있다.