Outlines는 신경망 텍스트 생성을 위한 라이브러리로, transformers 라이브러리의 generate 메소드를 대체하기 위해 더 유연하게 설계되었습니다.
개발자들이 정규 표현식을 따르거나 JSON 스키마를 따르는 출력을 보장하면서 견고한 인터페이스를 구축하는 데 도움이 됩니다.
이 라이브러리는 몇 번의 샷 생성, ReAct, 메타-프롬프팅, 에이전트 등을 단순하게 구현할 수 있도록 프롬프팅과 실행 로직을 분리하는 견고한 프롬프팅 기본 요소를 제공합니다.
Outlines는 더 넓은 생태계와 호환되도록 설계되었으며, 가능한 한 적은 추상화를 사용하며, 제어 흐름, 조건문, 사용자 정의 Python 함수, 다른 라이브러리에 대한 호출과 함께 생성을 교차할 수 있습니다.
모든 모델과 호환되며, 다음 토큰 로짓을 통해 모델과 인터페이스를 제공합니다. 또한 API 기반 모델과 함께 사용할 수 있습니다.
이 라이브러리는 Jinja 템플릿 엔진을 기반으로 한 간단하고 강력한 프롬프팅 기본 요소, 가이드 생성, 빠른 정규 표현식 가이드 생성, JSON 스키마 또는 Pydantic 모델을 따르는 빠른 JSON 생성, HuggingFace의 transformers 모델과의 통합을 특징으로 합니다.
Outlines는 PyPi에서 사용할 수 있으며 pip install outlines 명령어를 사용하여 설치할 수 있습니다.
이 라이브러리는 주어진 시퀀스가 발견된 후 생성을 조기에 중단하거나, 여러 가능성 사이에서 선택으로 완성을 축소하거나, 모델에 정수 또는 실수만 반환하도록 지시하는 기능을 허용합니다.
또한 빠른 정규 표현식 가이드 생성과 Pydantic 모델을 따르는 효율적인 JSON 생성이 포함되어 있습니다.
Outlines는 "템플릿 함수" 내에 템플릿을 캡슐화함으로써 프롬프트 로직과 일반 프로그램 로직을 분리하고 프롬프트 작성과 관리를 더 쉽게 만듭니다.
이 라이브러리는 언어 모델이 추가 정보를 얻거나 작업을 수행하기 위해 외부 함수를 호출할 수 있도록 허용하며, 함수의 설명을 프롬프트에 인코딩합니다.
Outlines는 오픈 소스이며 Apache License 2.0에 따라 라이선스가 부여됩니다.