1P by neo 2023-08-15 | favorite | 댓글 1개
  • 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에 따라 라이선스가 부여됩니다.
Hacker News 의견
  • 언어 모델 라이브러리(Language Model Libraries, LLMs)가 100% 유효한 JSON을 생성하는 방법에 대한 기사
  • LLMs가 모든 토큰에 대한 확률 분포를 생성하고, JSON 파서가 다음 유효 토큰 목록을 제공
  • 어휘 공간의 일부를 마스킹하는 아이디어와 효율적인 시간 단계를 취하는 라이브러리 논의
  • Llama2와 같은 기본 모델의 효과성에 대한 의문과 특정 사용 사례에 대한 지시 조정이 필요한지 여부
  • generate.regex에 대한 온도 또는 샘플링 파라미터의 존재에 대한 질문
  • GPT4가 시스템 메시지의 예제를 제공함으로써 대부분의 경우 유효한 JSON을 반환할 수 있다는 기사 언급
  • 라이브러리의 메커니즘이 인정받고, JSON 외의 구조화된 입력이 필요한 작업에 대한 잠재적 사용에 대한 호기심
  • 이러한 라이브러리가 공식 경로 계획(Formal path planning)에서의 잠재력에 대한 관심
  • 복잡한 출력 형식을 요청하는 것이 기본 작업의 성능을 저하시킬 수 있다는 기사 언급, GPT-3.5와 GPT-4의 코드 편집 벤치마크에서 확인
  • LLama.cpp가 지난 달 문법 기반 샘플링을 구현했다는 기사 언급
  • LLM에 의해 생성된 각 토큰 후에 로짓 편향 "마스크"를 업데이트하여 다음 토큰이 유효한 JSON 토큰이 될 수 있도록 하는 과정