1. 생성형 AI 도입의 문제점
애플리케이션에 생성형 AI를 구축할 때 직면하는 주요 문제 중 하나는 프롬프트 관리에 대한 표준화된 방법이 없다는 점이다. 각 팀이 서로 다른 접근 방식을 사용해 데이터를 관리하며, 이로 인해 이미 존재하는 것을 반복적으로 개발하게 된다. 이로 인해 개발자 자원은 낭비되고, 각 애플리케이션의 프롬프트 구성 및 테스트 방식에 대한 일관성이 떨어진다. 다양한 AI 모델(GPT, Llama, Claude, Phi 등)을 사용하면 복잡성이 증가하며, 각각의 모델에 맞는 상호작용 모델을 구축해야 한다.
2. 프롬프티(Prompty)의 등장
이러한 문제를 해결하기 위해 등장한 것이 마이크로소프트가 후원하는 프롬프티(Prompty)다. 프롬프티는 비주얼 스튜디오 코드(VS Code) 확장 프로그램으로, 다양한 AI 모델에 상관없이 LLM을 다룰 수 있는 툴을 제공한다. 이 오픈소스 프로젝트는 깃허브에서 제공되며, 프롬프트 관리 및 테스트를 쉽게 할 수 있도록 돕는다. YAML 형식을 본뜬 구성 언어를 사용해 직관적인 프롬프트 관리가 가능하며, 파이썬, C#을 지원하고 있으며, 추후 자바스크립트와 타입스크립트도 지원할 예정이다.
3. 프롬프티의 기능 및 사용 방법
프롬프티는 비주얼 스튜디오 코드와 통합되어 있으며, .prompty 파일을 통해 프롬프트 에셋을 생성하고 관리할 수 있다. 사용자는 이 파일에 애플리케이션에 사용될 모델과 매개변수, 샘플 정보 등을 상세히 설명할 수 있으며, 예상되는 출력 유형을 정의하는 시스템 프롬프트도 포함할 수 있다. 이를 통해 프롬프트를 테스트하고 디버깅하며, LLM 출력의 동작을 구체화할 수 있다. 프롬프티를 사용하면 다양한 오케스트레이터와 함께 프롬프트 데이터를 내보내고 사용할 수 있으며, 애저 AI 스튜디오의 프롬프트 플로우(Prompt Flow)나 시맨틱 커널(Semantic Kernel) 등과 통합하여 AI 기반 에이전트를 구축할 수 있다.
4. LM 오케스트레이터와의 통합
프롬프티를 사용하여 프롬프트를 작성하고 테스트한 후, 프롬프트 에셋 데이터를 내보내 다양한 LLM 오케스트레이터와 함께 사용할 수 있다. 이를 통해 외부 데이터 소스와의 상호작용을 통해 정확도를 높이고, 자연어 인터페이스를 구축할 수 있다. 결과 함수는 비동기 연산으로 LLM과의 상호작용을 구성하며, 이는 코드에서 사용자 입력을 조합하고 LLM 출력을 표시하는 것 외에 추가적인 코드 작성이 필요 없음을 의미한다. 프롬프티는 애플리케이션 외부에서 LLM 상호작용을 업데이트할 수 있도록 하며, 애플리케이션과 프롬프트를 병렬로 구축할 수 있게 해준다.
5. AI 툴체인의 성장
프롬프티와 같은 툴은 AI 애플리케이션 개발 툴체인의 중요한 부분으로, 다양한 기술을 가진 사람들이 협업할 수 있게 해준다. 프롬프트 엔지니어는 일관성 있는 AI 애플리케이션을 제공하는 데 필요한 프롬프트를 작성하고 관리할 수 있는 툴을 제공받게 된다. 비주얼 스튜디오 코드는 여러 확장을 통해 일관된 툴체인을 제공하며, 이는 단일 AI 개발 환경보다 더 나은 접근 방식을 제공할 수 있다.
모델 튜닝을 위해 윈도우 AI 툴킷을 사용할 수 있고, 프롬프티를 사용해 프롬프트를 구축하며, 개발자는 자신이 선택한 오케스트레이터를 위한 툴과 윈도우 앱 SDK를 사용할 수 있다. 마이크로소프트 데브 박스(Dev Box) 가상 머신이나 깃허브 코드스페이스(Codespace)와 같은 툴을 통해 적절한 개발 환경을 구축하고 관리할 수 있다.
6. 프롬프티의 중요성
프롬프티는 LLM 애플리케이션 개발을 위한 더 성숙한 접근 방식을 제공하며, 코드 외부에서 프롬프트를 테스트하고 디버깅함으로써 애플리케이션과 프롬프트를 병렬로 구축할 수 있다. 이는 프론트엔드 기술과 유사하게 프롬프트 엔지니어와 애플리케이션 개발자가 더 효과적으로 협업할 수 있게 해준다. 프롬프티는 AI 애플리케이션 개발을 위한 중요한 도구로 자리 잡고 있으며, 다양한 AI 모델과의 통합을 통해 더 스마트한 소프트웨어 개발을 가능하게 한다.