1P by neo 2023-07-23 | favorite | 댓글 1개
  • 새로운 API인 llama.cpp에서 문법 기반 샘플링을 추가하여 생성을 안내하고 제한하는 기사를 다룹니다.
  • llama API는 문법 규칙에 기반한 샘플링을 허용하는 컨텍스트-프리 문법을 나타내는 데이터 구조를 받습니다.
  • 문법 샘플링 코드는 비결정적 푸시다운 오토마타를 모델링하며, 파싱 상태를 위한 여러 스택을 유지합니다.
  • 기사에서는 체스, 산술, JSON 및 일본어와 같은 다양한 시나리오에 대한 문법 API 사용 예제를 제공합니다.
  • 문법을 상태 전이 텐서로 컴파일하고 GPU에서 실행하는 등의 잠재적인 최적화가 언급되었습니다.
  • 협력자들은 문법 파일 지원 추가, 문법 파서 개선, 토큰 평가 최적화에 대해 논의하고 있습니다.
  • 기여의 유용성이 강조되며, 샘플링 API를 별도의 모듈로 분리하는 제안이 있습니다.
  • lmql.ai 및 jsonformer와 같은 문법 기반 생성에 유사한 접근 방식을 사용하는 다른 프로젝트가 언급되었습니다.
  • 문법에서 전체 토큰을 참조하고, llama.cpp API에 파서를 포함시켜 사용성을 개선하는 제안이 있습니다.
  • 협력자들은 코드를 검토하고 피드백을 제공하며, 잠재적인 개선 사항을 논의하고 해당 기능에 대한 경험을 공유하고 있습니다.
  • 소프트웨어 엔지니어가 문법 샘플링과 관련된 프로젝트에 참여하고 ARM64+CUDA에서 문제를 겪고 있습니다.
  • 편집자는 문제가 도구 체인 패키지 조합과 관련이 있을 수 있다고 제안하며 도움을 제안합니다.
  • LocalAI 함수를 추가하기 위한 풀 리퀘스트가 있으며, 프로젝트에 더 표준적인 BNF 구문을 사용하는 제안이 있습니다.
  • 문법을 위반하는 것은 최악의 결과로 간주되며, 향후 고려를 위해 백트래킹이 제안됩니다.
  • EBNF의 구현과 따를 형식에 대한 논의가 진행 중입니다.
  • 최신 업데이트에서 샘플링은 완전한 토큰 일치로 제한되었으며, 토큰이 부적절하게 분리되는 경우를 처리하기 위한 추가 개선이 제안되었습니다.
  • 프로젝트에 대한 변경 사항이 승인되어 병합 준비가 되었으며, 편집자는 업데이트된 프로젝트로 놀기를 기대하고 있습니다.
  • 다른 프로젝트에서 작업 중인 유사한 문제가 언급되며, 어휘 토큰 분포의 사전 계산을 제안합니다.
  • 소프트웨어 엔지니어는 해당 접근 방식에 관심을 표하고 의견을 공유할 의사가 있습니다.
  • GitHub에서의 대화는 여러 참가자들과 계속되고 있습니다.
Hacker News 의견
  • 언어 모델은 토큰을 한 번에 하나씩 생성하여 세밀한 제어가 가능합니다.
  • 문법 기반 샘플링은 생성된 텍스트에 문법적 제약을 부여하는 데 사용될 수 있습니다.
  • 문법 기반 샘플링은 정렬 문제를 해결하거나 올바른 라벨링을 보장하지 못할 수도 있습니다.
  • PyTorch에서 문법 기반 샘플링을 구현하기 위한 GitHub 저장소가 있습니다.
  • 결합 확률을 고려하면 다중 선택 문자열 열거형에서 선택지를 더 잘 선택할 수 있습니다.
  • 형식이 어떻게 될 수 있는지에 대한 예로 문법 라이브러리가 인용되었습니다.
  • 일부 사용자들은 이 개념에 관심을 가지지만 장기적인 효과에 대해 의문을 제기합니다.
  • 문법 기반 샘플링은 특정 분야 및 내부 DSL에 유용할 수 있습니다.
  • 원하는 출력을 위해 여전히 프롬프트 엔지니어링이 필요합니다.
  • 비슷한 다른 방법과 도구들도 있습니다.
  • 신경망 시대의 디코딩 방법에 대한 권장 사항 요청.