outlines: 타입 제한 생성을 통해 구조화된 LLM 출력을 보장하는 라이브러리
outlines: 타입 제한 생성을 통해 구조화된 LLM 출력을 보장하는 라이브러리
무엇을 해결하는가
LLM 출력은 종종 예측 불가능하고 구조가 없으며, 이로 인해 개발자는 데이터를 사용 가능한 형식으로 강제하기 위해 취약한 정규 표현식이나 후처리 파싱을 사용해야 하는 경우가 많습니다. Outlines는 생성 과정 자체에서 구조화된 출력을 보장함으로써これを 해결하며, 후처리가 필요 없이 데이터가 지정된 스키마와 일치하도록 보장합니다.
작동 방식
Outlines는 Python의 타입 시스템을 사용하여 Literal(고정 선택), int(숫자), 또는 중첩된 복잡한 객체를 위한 Pydantic 모델과 같은 원하는 출력 유형을 정의할 수 있게 합니다. 다양한 모델 제공자(OpenAI, vLLM, Ollama, Hugging Face transformers 포함)와 통합하여 LLM의 토큰 생성을 이러한 유형을 엄격히 따르도록 제한합니다.
누구를 위한 것인가
이는 LLM으로부터 신뢰할 수 있는 기계가 읽을 수 있는 데이터를 필요로 하는 프로덕션 AI 애플리케이션을 구축하는 개발자를 위해 설계되었습니다. 예를 들어 고객 지원 triage 자동화, 전자상거래 분류, 또는 함수 호출과 같은 경우입니다.
주요 특징
- Model Agnostic: vLLM, Ollama, OpenAI와 같은 로컬 및 API 기반 모델의 넓은 범위에서 작동합니다.
- Guaranteed Validity: 생성 중에 구조를 강제함으로써 파싱 오류와 손상된 JSON을 제거합니다.
- Pydantic Integration: Pydantic 모델을 통해 복잡한 데이터 구조를 지원하여 쉬운 검증을 제공합니다.
- Flexible Constraints: 정수와 리터럴과 같은 간단한 유형뿐만 아니라 자동 매개변수 추출을 위한 복잡한 함수 서명도 지원합니다.