Andyyyy64/whichllm

Find the local LLM that actually runs and performs best on your hardware. Ranked by real, recency-aware benchmarks, not parameter count. One command, run it instantly.

GitHub에서 열기 ↗ aiapple-siliconbenchmarksclicommand-line-toolggufgpuhuggingfaceinferencellmlocal-llmollamapythonvram
5,719
GitHub 스타
302
포크
Python
언어
MIT
라이선스
2026.07.08
최근 푸시
2026.05.23
별표한 날

AI 분석

설치 난이도: 쉬움
큐레이터 노트
로컬 LLM 선택을 자동화하고 최적의 모델을 찾는 데 매우 유용한 도구입니다. 특히 다양한 하드웨어에서 실험하거나 업그레이드를 고려할 때 강력한 추천 기능을 제공하므로 적극 도입할 가치가 있습니다.

강점

  • 하드웨어를 자동 감지하고 실제 벤치마크 점수와 최신성을 기반으로 모델을 추천하여 단순한 VRAM 적합성 이상의 정보를 제공합니다.
  • GPU 시뮬레이션, 업그레이드 계획, 역조회 등 다양한 CLI 옵션을 제공하여 사용자 유연성이 뛰어납니다.
  • 실시간 HuggingFace 데이터를 사용하며 오프라인 폴백을 지원하고, 증거 신뢰도 기반 점수 체계로 신뢰성을 높였습니다.

약점

  • README에 점수 계산의 세부 공식이 완전히 명시되지 않아 투명성이 다소 부족할 수 있습니다.
  • Ollama와의 통합 시 모델 ID 매핑이 필요하여 추가 작업이 발생할 수 있습니다.

주의사항

  • 기본 설정이 야심차게 동작하므로, 안전한 추천을 원한다면 --gpu-only 및 --vram-headroom 옵션을 사용해야 합니다.
  • 추정 속도는 계획 범위이며 실제 성능과 다를 수 있습니다.

시작 가이드

  • uvx whichllm@latest 명령으로 즉시 실행해보고 현재 하드웨어에 대한 추천 결과를 확인합니다.
  • --gpu 옵션으로 구매 예정인 GPU를 시뮬레이션하여 성능을 사전 평가합니다.
  • --json 출력을 활용하여 스크립트나 Ollama와의 통합을 구성합니다.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

whichllm

실제로 내 하드웨어에서 실행되는 최고의 로컬 LLM을 찾아드립니다.

GPU/CPU/RAM을 자동 감지하고 시스템에 맞는 HuggingFace의 상위 모델을 순위별로 보여줍니다.

빠른 시작

프로젝트 설정 없이 한 번의 명령으로 추천을 실행합니다.

uvx whichllm@latest

하드웨어를 구매하기 전에 GPU를 시뮬레이션합니다.

uvx whichllm@latest --gpu "RTX 4090"

자주 사용한다면 설치하세요.

uv tool install whichllm
uv tool upgrade whichllm  # 기존 설치 업데이트

다른 설치 방법.

brew install andyyyy64/whichllm/whichllm
pip install whichllm

더 안전한 선택을 원하시나요?

기본적으로 whichllm은 야심차게 동작합니다. 시스템에서 실행 가능해 보이는 최상의 모델을 순위 매기며, 부분 RAM 오프로드와 거의 VRAM 한계에 가까운 모델도 사용 가능해 보이면 포함합니다.

LM Studio 스타일의 더 편안한 추천을 원한다면 다음으로 시작하세요:

uvx whichllm@latest --gpu-only --speed usable --vram-headroom 1GB

이렇게 하면 GPU VRAM에 완전히 맞는 모델만 유지하고, 느린 추정치는 걸러내며, 런타임 오버헤드를 위해 여유 VRAM을 남깁니다.

LM Studio에서 여전히 모델이 약간 너무 크다고 표시되면 헤드룸을 늘리세요:

uvx whichllm@latest --gpu-only --speed usable --vram-headroom 1.5GB

일반적인 워크플로

설치 후 whichllm을 직접 실행하세요. 일회성 실행의 경우 whichllmuvx whichllm@latest로 대체하세요.

# 이 머신에 가장 적합한 모델
whichllm

# 특정 GPU가 있다고 가정
whichllm --gpu "RTX 4090"

# 감지된 iGPU/통합 메모리 한계 재정의
whichllm --vram 8 --ram-bandwidth 68

# GPU VRAM에 완전히 맞는 모델만 표시
whichllm --gpu-only
whichllm --fit gpu

# 멀티 GPU 워크스테이션 시뮬레이션
whichllm --gpu "2x RTX 4090"

# 기술적으로 실행 가능하지만 너무 느린 모델 숨기기
whichllm --speed usable
whichllm --speed fast

# GitHub / Slack / Discord에 붙여넣기 가능한 출력
whichllm --markdown

# 업그레이드 후보 비교
whichllm upgrade "RTX 4090" "RTX 5090" "H100"

# 모델에 필요한 GPU 찾기
whichllm plan "llama 3 70b"

# 모델과 채팅 시작
whichllm run "qwen 2.5 1.5b gguf"

# 복사-붙여넣기 Python 코드 출력
whichllm snippet "qwen 7b"

# 스크립트용 JSON 반환
whichllm --top 1 --json

!데모

결과 보기

$ whichllm --gpu "RTX 4090"

#1  Qwen/Qwen3.6-27B     27.8B  Q5_K_M   score 92.8    27 t/s
#2  Qwen/Qwen3-32B       32.0B  Q4_K_M   score 83.0    31 t/s
#3  Qwen/Qwen3-30B-A3B   30.0B  Q5_K_M   score 82.7   102 t/s

32B 모델은 카드에 잘 맞습니다 — 하지만 whichllm은 여전히 27B를 #1로 순위 매깁니다. 실제 벤치마크에서 더 높은 점수를 받았고 더 최신 세대이기 때문입니다. 단순히 "무엇이 맞는가?"만 확인하는 도구라면 더 큰 모델을 제시했을 것입니다. 그 차이가 바로 whichllm의 핵심입니다. (#3 참고: MoE 모델로 102 t/s — 속도는 활성 파라미터 기준, 품질은 전체 파라미터 기준으로 순위가 매겨집니다.)

무엇을 실행할 수 있나요?

실제 최고 추천 (2026년 5월 스냅샷 — 결과는 실시간 HuggingFace 데이터를 추적하며, 이는 정적 목록이 아닙니다):

하드웨어 VRAM 최고 추천 속도
RTX 5090 32 GB Qwen3.6-27B · Q6_K · score 94.7 ~40 t/s
RTX 4090 / 3090 24 GB Qwen3.6-27B · Q5KM · score 92.8 ~27 t/s
RTX 4060 8 GB Qwen3-14B · Q3KM · score 71.0 ~22 t/s
Apple M3 Max 36 GB Qwen3.6-27B · Q5KM · score 89.4 ~9 t/s
CPU only gpt-oss-20b (MoE) · Q4KM · score 45.2 ~6 t/s

whichllm --gpu "<your card>" 명령으로 구매 전에 이 중 어떤 GPU든 시뮬레이션할 수 있습니다. 기본적으로 순위에는 전체 GPU, 부분 오프로드, CPU 전용 후보가 사용 가능할 때 포함됩니다. GPU VRAM에 완전히 맞는 모델만 원한다면 --gpu-only 또는 --fit full-gpu를 사용하세요. 기본 테이블은 메모리, 예상 생성 속도, 적합 유형, 게시 날짜를 보여줍니다. 속도는 실용성에 따라 색상이 지정됩니다: 4 tok/s 미만은 빨간색, 4-10은 노란색, 10-30은 녹색, 30 이상은 밝은 녹색입니다. ~ / ?는 여전히 추정 신뢰도를 나타냅니다.

왜 whichllm인가?

모델을 VRAM에 맞추는 것은 쉬운 부분입니다. 어려운 부분은 맞는 모델 중 실제로 가장 좋은 것이 무엇인지 아는 것이며, whichllm은 이를 정확히 해결하기 위해 만들어졌습니다.

  • 증거 기반 순위, 크기 휴리스틱이 아님 — 최고 추천은 병합된 실제 벤치마크(LiveBench, Artificial Analysis, Aider, 멀티모달/비전, Chatbot Arena ELO, Open LLM Leaderboard)에서 선택되며, 결코 "우연히 맞는 가장 큰 모델"이 아닙니다.
  • 최신성 인식 — 오래된 리더보드는 각 모델 계보에 따라 등급이 낮아져, 2024년 모델이 구식 점수로 최신 세대 모델을 앞지를 수 없습니다. 벤치마크 스냅샷 날짜는 모든 순위 아래에 출력되므로, 오래된 추천이 조용히 신뢰되는 대신 스스로 드러납니다.
  • 증거 등급 및 보호 — 모든 점수는 direct / variant / base / interpolated / self-reported로 태그가 지정되고 신뢰도에 따라 할인됩니다. 조작된 업로더 주장과 교차 계열 상속(작은 포크가 훨씬 큰 베이스의 점수를 빌리는 경우)은 적극적으로 거부됩니다.
  • 아키텍처 인식 추정 — VRAM = 가중치 + GQA KV 캐시 + 활성화 + 오버헤드; 속도는 대역폭 제한적이며, 양자화별 효율성, 백엔드별 요소, MoE 활성 대 전체 분할, 통합 메모리 대 개별 PCIe 부분 오프로드 모델링을 포함합니다.
  • 하나의 명령, 스크립트 가능whichllm은 답을 출력하고, --json | jq를 추가하면 파이프라인에 사용할 수 있습니다. TUI나 키바인딩을 외울 필요가 없습니다.
  • 실시간 데이터 — HuggingFace API에서 직접 모델을 가져오며, 오프라인 또는 속도 제한 상황을 위해 선별된 고정 폴백이 있습니다.

기능

  • 하드웨어 자동 감지 — NVIDIA, AMD, Intel, Apple Silicon, CPU 전용
  • 스마트 순위 — VRAM 적합성, 속도, 벤치마크 품질로 모델 점수 매기기
  • 원클릭 채팅whichllm run으로 즉시 모델을 다운로드하고 채팅 세션 시작
  • 코드 스니펫whichllm snippet으로 모든 모델에 대한 즉시 실행 가능한 Python 코드 출력
  • 실시간 데이터 — HuggingFace에서 직접 모델 가져오기 (성능을 위해 캐시됨)
  • 벤치마크 인식 — 신뢰도 기반 감쇠와 함께 실제 평가 점수 통합
  • 작업 프로필 — 일반, 코딩, 비전, 수학 사용 사례별 필터링
  • GPU 시뮬레이션 — 모든 GPU로 테스트: whichllm --gpu "RTX 4090"
  • 멀티 GPU 시뮬레이션--gpu 반복, 쉼표 사용, 또는 2x RTX 4090 작성
  • 전체 GPU 필터--gpu-only / --fit full-gpu로 오프로드 후보 숨기기
  • 속도 인식 필터링--speed usable|fast로 임계값에 따라 느린 행 숨기기
  • 마크다운 출력--markdown / -m으로 붙여넣기 가능한 GFM 테이블 출력
  • 런타임 메모리 예산--vram-headroom--ram-budget으로 한계 적합 방지
  • 하드웨어 계획 — 역조회: whichllm plan "llama 3 70b"
  • 업그레이드 계획 — 현재 머신과 후보 GPU 비교
  • JSON 출력 — 파이프 친화적: whichllm --json

실행 및 스니펫

단일 명령으로 모든 모델을 시험해보세요. 수동 설치가 필요 없습니다 — whichllm이 uv를 통해 격리된 환경을 만들고, 종속성을 설치하고, 모델을 다운로드하고, 대화형 채팅을 시작합니다.

!실행 데모

# 모델과 채팅 (최고의 GGUF 변종 자동 선택)
whichllm run "qwen 2.5 1.5b gguf"

# 하드웨어에 가장 적합한 모델을 자동 선택하고 채팅
whichllm run

# CPU 전용 모드
whichllm run "phi 3 mini gguf" --cpu-only
  • GGUFllama-cpp-python 사용 (가볍고 빠름)
  • AWQ / GPTQtransformers + autoawq / auto-gptq 사용
  • FP16 / BF16transformers 사용

모든 모델 형식과 호환:

복사-붙여넣기 Python 스니펫을 얻으려면:

whichllm snippet "qwen 7b"
from llama_cpp import Llama

llm = Llama.from_pretrained(
    repo_id="Qwen/Qwen2.5-7B-Instruct-GGUF",
    filename="qwen2.5-7b-instruct-q4_k_m.gguf",
    n_ctx=4096,
    n_gpu_layers=-1,
    verbose=False,
)

output = llm.create_chat_completion(
    messages=[{"role": "user", "content": "Hello!"}],
)
print(output["choices"][0]["message"]["content"])

사용법

# 하드웨어 자동 감지 및 최고 모델 표시
whichllm

# GPU 시뮬레이션 (예: 구매 계획)
whichllm --gpu "RTX 4090"
whichllm --gpu "RTX 5090"
# 변종 지정
whichllm --gpu "RTX 5060 16"
# 감지된 iGPU/통합 메모리 한계 재정의
whichllm --vram 8 --ram-bandwidth 68
# 여러 GPU 시뮬레이션
whichllm --gpu "2x RTX 4090"
whichllm --gpu "RTX 4090" --gpu "RTX 3090"
whichllm --gpu "RTX 4090, RTX 3090"

# GPU VRAM에 완전히 맞는 모델만 표시
whichllm --gpu-only
whichllm --fit gpu
whichllm --fit full-gpu

# 한계 적합 및 백그라운드 RAM 문제 방지
whichllm --vram-headroom 1.5GB
whichllm --ram-budget available
whichllm --ram-budget 8GB

# CPU 전용 모드
whichllm --cpu-only

# 더 많은 결과 / 필터
whichllm --top 20
whichllm --details          # 런타임 열 대신 다운로드 메타데이터 표시
whichllm --speed usable     # 최소 10 tok/s
whichllm --speed fast       # 최소 30 tok/s
whichllm --min-speed 4      # 정확한 tok/s 하한
whichllm --markdown         # 붙여넣기 가능한 GitHub-Flavored Markdown 테이블
whichllm --profile coding
whichllm --context-length 64k
whichllm --quant Q4_K_M
whichllm --min-speed 30     # 정확한 tok/s 하한
whichllm --evidence base   # id/base-model 일치 허용
whichllm --evidence strict # id-exact만 (--direct와 동일)
whichllm --direct

# JSON 출력
whichllm --json

# 강제 새로고침 (캐시 무시)
whichllm --refresh

# 하드웨어 정보만 표시
whichllm hardware

# 계획: 특정 모델에 어떤 GPU가 필요한가?
whichllm plan "llama 3 70b"
whichllm plan "Qwen2.5-72B" --quant Q8_0
whichllm plan "mistral 7b" --context-length 32768

# 업그레이드: 현재 머신을 후보 GPU와 비교
whichllm upgrade "RTX 4090" "RTX 5090" "H100"
whichllm upgrade "Apple M4 Max" --top 5

# 실행: 모델을 다운로드하고 즉시 채팅
whichllm run "qwen 2.5 1.5b gguf"
whichllm run                       # 하드웨어에 가장 적합한 모델 자동 선택

# 스니펫: 즉시 실행 가능한 Python 코드 출력
whichllm snippet "qwen 7b"
whichllm snippet "llama 3 8b gguf" --quant Q5_K_M

마크다운 출력은 GitHub 이슈, README, Slack, Discord, 블로그 게시물에 적합합니다:

whichllm --markdown
whichllm -m --top 5 --gpu "RTX 4090"

JSON 모델 행에는 fittype, vramrequiredbytes, vramavailablebytes, usesmultigpu, multigpueffectivevrambytes, estimatedtokpersec, speedconfidence, speedrangetokpersec, speednotes, benchmarksource, benchmarkconfidence가 포함됩니다. 속도 범위는 계획 범위이며 실시간 벤치마크가 아닙니다.

통합

Ollama

JSON 출력을 사용하여 HuggingFace ID를 로컬 Ollama 모델 이름에 매핑하는 스크립트에 공급하세요:

# 최고 HuggingFace 모델 ID 선택
whichllm --top 1 --json | jq -r '.models[0].model_id'

# 최고 코딩 모델 ID 찾기
whichllm --profile coding --top 1 --json | jq -r '.models[0].model_id'

Ollama 모델 이름이 HuggingFace 저장소 ID와 항상 일치하는 것은 아니므로, ollama run 전에 일반적으로 작은 매핑 단계가 필요합니다.

셸 별칭

.bashrc / .zshrc에 추가:

alias bestllm='whichllm --top 1 --json | jq -r ".models[0].model_id"'
# 사용법: ollama run $(bestllm)

점수 매기기

각 모델은 0-100 점수를 받습니다. 벤치마크 품질과 크기가 핵심을 형성하고, 증거 신뢰도와 런타임 적합성이 이를 조정하며, 속도, 소스 신뢰도, 인기도가 조정 요소로 작용합니다.

요소 효과 설명
벤치마크 품질 핵심 병합된 LiveBench / Artificial Analysis / Aider / Vision / Arena ELO / Open LLM Leaderboard, 소스 신뢰도로 가중치 부여
모델 크기 최대 35 log2 스케일 세계 지식 프록시 (MoE는 전체 파라미터 사용)
양자화 × 패널티 낮은 비트 양자화는 곱셈적으로 할인됨
증거 신뢰도 ×0.55–1.0 없음 / 자체 보고 ×0.55, 상속 ×0.78, 직접 전체
런타임 적합성 ×0.50–1.0 부분 오프로드 ×0.72, CPU 전용 ×0.50
속도 -8 ~ +8

[...생략...]

원본 저장소: Andyyyy64/whichllm

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.