outlines: 타입 제약 생성을 통해 구조화된 LLM 출력을 보장하는 라이브러리

outlines: 타입 제약 생성을 통해 구조화된 LLM 출력을 보장하는 라이브러리

해결하는 문제

LLM 출력은 종종 예측 불가능하고 비구조적입니다. 이로 인해 개발자는 데이터를 사용 가능한 형식으로 강제하기 위해 취약한 regex 또는 생성 후 파싱을 사용해야 하는 경우가 많습니다. Outlines는 생성 과정 자체에서 구조화된 출력을 보장함으로써, 사후 처리 없이 데이터가 지정된 스키마와 일치하도록 보장하여 이 문제를 해결합니다.

작동 방식

Outlines는 사용자가 Python의 타입 시스템을 사용하여 원하는 출력 타입을 정의할 수 있도록 합니다. 예를 들어 고정된 선택을 위한 Literal, 숫자를 위한 int, 또는 복잡한 중첩 객체를 위한 Pydantic 모델을 사용할 수 있습니다. Outlines는 다양한 모델 제공업체(OpenAI, vLLM, Ollama, Hugging Face transformers 포함)와 통합되어 LLM의 토큰 생성을 이러한 타입에 엄격히 따르도록 제한합니다.

대상 사용자

고객 지원 분류 자동화, 이커머스 카테고리 분류, 또는 function calling과 같이 LLM으로부터 신뢰할 수 있는 기계 판독 가능 데이터를 필요로 하는 프로덕션 AI 애플리케이션을 구축하는 개발자를 위해 설계되었습니다.

주요 특징

  • Model Agnostic: vLLM, Ollama, OpenAI를 포함한 광범위한 로컬 및 API 기반 모델에서 작동합니다.
  • Guaranteed Validity: 생성 중에 구조를 강제함으로써 파싱 오류 및 손상된 JSON을 제거합니다.
  • Pydantic Integration: 쉬운 검증을 위해 Pydantic 모델을 통한 복잡한 데이터 구조를 지원합니다.
  • Flexible Constraints: 정수 및 리터럴과 같은 단순한 타입뿐만 아니라 자동화된 파라미터 추출을 위한 복잡한 함수 시그니처도 지원합니다.

Sources