Shoehorn: 로컬 하드웨어를 위한 정밀 조정된 모델 양자화

Shoehorn은 사용자의 가용 메모리 예산 내에 정확히 들어맞도록 언어 모델을 양자화하여 로컬 하드웨어의 유용성을 극대화하도록 설계된 도구입니다. 사용되지 않는 메모리를 남기거나 공간 부족으로 인해 로드에 실패하는 경우가 많은 표준 프리셋 양자화와 달리, Shoehorn은 사용 가능한 메모리 예산의 최대 99.99%를 활용할 수 있도록 텐서별 혼합 정밀도 할당을 계산합니다.

메모리 중심 양자화 전략

Shoehorn은 양자화 프로세스를 프리셋을 선택하는 것에서 하드웨어의 실제 메모리 용량에서 시작하는 것으로 전환합니다. 이 도구는 추론에 필요한 메모리를 뺀 다음, 모델이 남은 예산 내에 들어맞도록 각 텐서에 대해 혼합 정밀도 할당을 해결합니다. 이 접근 방식은 머신의 특정 하드웨어 제약 조건이 주어진 상황에서 가능한 가장 높은 모델 품질을 허용합니다.

설치 및 백엔드 요구 사항

Shoehorn은 추론 백엔드로 사용하기 위해 llama.cpp가 시스템 PATH에 설치되어 있고 사용 가능해야 합니다. 사용자는 Homebrew를 통해 또는 Cargo를 사용하여 소스에서 도구를 설치할 수 있습니다:

  • Homebrew: brew install notactuallytreyanastasio/shoehorn/shoehorn
  • Source: 저장소를 클론한 후 cargo install --path .를 실행합니다.

사용자 인터페이스 및 탐색 기능

Shoehorn은 메모리 측정 및 양자화 프로세스를 자동화하는 로컬 웹 애플리케이션을 포함합니다. UI는 메모리 사용량을 시각화하기 위한 "tape measure" 예산 게이지를 제공하고, 특정 맞춤 설정의 perplexity 비용을 표시하며, Hugging Face의 가장 많이 다운로드된 모델을 스캔하여 사용자의 특정 메모리 예산 내에서 달성할 수 있는 품질에 따라 순위를 매기는 탐색 기능을 제공합니다.

커뮤니티 피드백 및 기술적 관찰

Shoehorn이 메모리 할당에서 높은 정밀도를 목표로 하지만, 초기 사용자 보고에 따르면 계산된 맞춤 설정과 실제 런타임 요구 사항 사이에 잠재적인 불일치가 있을 수 있음을 나타냅니다. 한 사용자는 도구의 크기 조정 결과가 모델이 들어맞을 것이라고 제안했음에도 불구하고 서버를 시작할 때 "insufficient memory error"를 받았다고 보고했습니다.

다른 커뮤니티 논의에서는 이 도구를 llmfit과 같은 기존 프로젝트와 비교하거나 AirLLM 또는 Colibri와 같은 프로젝트와의 특정 통합 가능성에 대한 호환성을 질문했습니다.

Sources

관련

  • Dispatch
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트