Imp - DSPy를 BEAM으로 완전히 포팅한 프로젝트

5 hours ago 2

Imp는 언어 모델 단계의 입력과 출력을 선언하고, 예제와 평가 지표로 프로그램을 개선하는 Elixir 프로젝트로, DSPy의 시그니처, 모듈, 최적화기, 에이전트 루프와 검색 기능을 OTP의 신뢰성과 동시성 위에서 실행함 시그니처로 프롬프트를 생성하고 응답을 검증하므로 프롬프트나 파서를 직접 작성할 필요가 없으며, 같은 입출력 정의를 유지한 채 추론이나 도구 사용을 추가할 수 있음 GEPA는 프로그램의 실패를 분석해 지시문을 다시 작성하며, 다른 최적화기는 예제 선택, 지시문과 예제 조합 탐색, 규칙 학습, 모델 가중치 학습을 지원함 에이전트를 감독되는 독립 프로세스로 실행해 관찰, 중지, 도구 호출 승인을 관리할 수 있으며, 이미 효과가 발생했을 가능성이 있는 도구 호출은 조용히 재시도하지 않고 결과를 알 수 없는 상태로 보고함 Imp 0.5는 Hex에 처음 배포한 실험적 릴리스로, API가 바뀔 수 있고 최적화기에 대한 대규모 벤치마킹이 아직 필요함 선언형 언어 모델 프로그램과 BEAM 실행 모델 Imp는 DSPy를 BEAM으로 완전히 포팅해, Elixir에서 선언형으로 정의하고 스스로 개선하는 언어 모델 프로그램을 구축함 각 모델 호출을 측정하고 개선할 수 있는 타입이 있는 함수로 선언함 시그니처, 모듈, 최적화기, 에이전트 루프와 검색 기능을 제공함 BEAM의 에이전트는 자체 상태를 유지하고 메시지를 받으며, 애플리케이션의 다른 구성 요소와 함께 감독자 아래에서 실행되는 프로세스임 타입이 있는 단일 호출부터 오래 실행되는 여러 에이전트까지 구성하고, 각 부분을 측정해 개선할 수 있음 시그니처로 작업 정의 Imp.signature 로 입력과 출력을 정의하고 Imp.predict로 모델을 연결하면, Imp가 프롬프트를 생성하고 응답이 시그니처에 맞는지 검사함 GitHub 이슈 분류 예제는 issue를 받아 kind: enum[bug,feature,question]과 summary를 반환함 kind는 세 값 중 하나여야 하며, 그렇지 않으면 호출이 오류를 반환함 시그니처를 바꾸지 않고 실행 방식을 변경할 수 있음 Imp.chain_of_thought/2는 같은 작업에서 먼저 추론하도록 함 Imp.react/3는 도구를 사용하는 에이전트로 구성함 예제와 지표로 평가하고 최적화 레이블이 있는 예제와 평가 지표를 제공하면 프로그램에 점수를 매기고 최적화할 수 있음 trainset은 최적화기가 학습하는 데이터이며,...

Read Entire Article