3P by GN⁺ | ★ favorite | 댓글 1개
  • distributed-llama v0.12.2에서 deepseek_r1_distill_llama_8b_q40 모델을 Raspberry Pi 5 8GB 4대로 실행한 결과, 2대 구성보다 평가와 생성 속도가 모두 높게 나옴
  • 2대 구성은 Evaluation 7.70 tok/s, Prediction 3.54 tok/s를 기록했고, 4대 구성은 Evaluation 11.68 tok/s, Prediction 6.43 tok/s를 기록함
  • 4대 구성의 Prediction 로그는 토큰당 약 155.60ms, 2대 구성은 토큰당 약 282.22ms로 표시되어, 같은 모델에서 노드 수 증가에 따른 처리 속도 차이가 드러남
  • 다른 사용자는 v0.12.7에서 8개 노드, 2.5G LAN, 오래된 Intel CPU 기반 구성으로 Evaluation 33.64 tok/s와 Prediction 16.63 tok/s를 공유함
  • Raspberry Pi 5 8GB 2대에서 메모리 부족으로 프로세스가 종료되는 사례에는 --max-seq-len 4096으로 컨텍스트 크기 축소가 필요하다는 답변이 붙음

Raspberry Pi 5 8GB 구성의 실행 결과

  • 테스트 모델은 deepseek_r1_distill_llama_8b_q40, distributed-llama 버전은 0.12.2
  • 비교 대상은 2 x Raspberry Pi 5 8GB4 x Raspberry Pi 5 8GB 구성임
구성 Evaluation Prediction
2 x Raspberry Pi 5 8GB 7.70 tok/s 3.54 tok/s
4 x Raspberry Pi 5 8GB 11.68 tok/s 6.43 tok/s

2대 구성의 로그 수치

  • 2 x Raspberry Pi 5 8GB 구성은 Evaluation에서 다음 수치를 기록함
    • nBatches: 32
    • nTokens: 19
    • tokens/s: 7.70
    • 129.89 ms/tok
  • Prediction에서는 다음 수치를 기록함
    • nTokens: 77
    • tokens/s: 3.54
    • 282.22 ms/tok
  • 실행 종료 시 로그에는 Network is closed가 표시됨

4대 구성의 로그 수치

  • 4 x Raspberry Pi 5 8GB 구성은 Evaluation에서 다음 수치를 기록함
    • nBatches: 32
    • nTokens: 19
    • tokens/s: 11.68
    • 85.63 ms/tok
  • Prediction에서는 다음 수치를 기록함
    • nTokens: 77
    • tokens/s: 6.43
    • 155.60 ms/tok
  • 로그에는 토큰 생성 중 송신 864 kB, 수신 1191 kB가 반복적으로 표시됨

다른 사용자의 8노드 결과

  • 한 사용자는 distributed-llama v0.12.7에서 8개 노드를 사용한 결과를 공유함
    • 대부분 오래된 Intel CPU, 4코어 또는 6코어 구성
    • AVX2 지원
    • 2.5G LAN 연결
  • 이 구성의 실행 결과는 다음과 같음
    • Evaluation: 33.64 tok/s, 29.73 ms/tok
    • Prediction: 16.63 tok/s, 60.13 ms/tok
    • Prediction 토큰 수는 245
  • 사용한 명령은 ./dllama inference에 모델, 토크나이저, --buffer-float-type q80, --nthreads 6, --max-seq-len 4096, 여러 --workers, --steps 256을 지정하는 형태임

실행 문제와 답변

  • Raspberry Pi 5 8GB 2대 구성에서 실행 중 RequiredMemory: 20474 MB가 표시된 뒤 Killed로 종료되는 사례가 공유됨
    • 루트 노드 명령에는 --buffer-float-type q80, --steps 16, --nthreads 4, worker 주소 1개가 포함됨
    • 답변은 --max-seq-len 4096으로 컨텍스트 크기를 줄여야 한다는 내용임
  • 다른 사용자는 여러 worker에 연결된 뒤 what is 99+12 프롬프트에 대해 공백과 점만 출력되는 현상을 공유함
    • 로그에는 RopeScaling: f=8.0, l=1.0, h=4.0, o=8192, RequiredMemory: 3310 MB, Chat template: deepSeek3가 표시됨
    • 관리자는 사용 중인 버전을 물었고, 마지막 변경 사항을 pull했는지와 어떤 CPU에서 실행하는지 확인해 달라고 답함

댓글과 토론

Hacker News 의견들
  • Raspberry Pi에서 Deepseek R1을 돌린다는 발표들은 대체로 같은 패턴임: 실제로는 DeepSeek의 증류 기법으로 수정한 LlamaQwen을 실행하는 것에 가까움

    • 증류된 DeepSeek 모델에서 흔히 보이는 실패 모드는, 스스로 제자리걸음을 하고 있다는 걸 모른다는 점임
      DeepSeek은 증류된 대규모 언어 모델이 “Wait.”로 자기 출력을 끊게 유도해 어느 정도 추론을 하게 만들지만, 전체 모델의 추론력보다 훨씬 약하고 이미 내린 결론을 새 뉘앙스로 발전시키기보다 끝없이 “Wait.”를 반복하며 자기 의심만 하는 순환에 빠질 수 있음
    • 제출 제목이 바뀐 건지는 모르겠지만, 지금은 명시적으로 Deepseek R1 Distill 8B Q40라고 되어 있어서 “Deepseek R1”이라고 부르면 결과를 잘못 표현하는 게 맞음
      다만 공식 R1 저장소의 Distilled Model Evaluation[1] 섹션을 보면 DeepSeek-R1-Distill-Llama-8B도 꽤 괜찮고, 일부 벤치마크에서는 4o-0513과 Sonnet-1022보다 낫다고 되어 있음
      형식 문법에서 샘플링하는 것도 있다는 걸 기억해야 함. llama.cpp에는 GBNF가 있고, lazy grammar[2] 설정도 생겨서 일부 용도에서는 꽤 쓸 만해졌음. 문법이 이후에 개입한다는 뜻임
      게다가 추가 미세조정 여지도 있음. 여러 업체가 이제 “RFT” 서비스를 제공하는데, 평범한 지도 미세조정 데이터셋을 큰 R1이 만든 합성 추론 데이터로 풍부하게 해주는 방식임. 그래서 이 결과는 생각보다 훨씬 가치 있는 사전 결과일 수 있음
      6 tok/s 디코딩은 빠르지 않지만, Raspberry Pi 쓰는 사람들은 그런 거 별로 신경 안 씀
      [1] https://github.com/deepseek-ai/DeepSeek-R1#distilled-model-e...
      [2] https://github.com/ggerganov/llama.cpp/pull/9639
    • 머신러닝이 본업이 아닌 소프트웨어 엔지니어에게 이 증류 방법이 무슨 뜻인지 설명해줬으면 함
      R1이 Llama 모델을 학습시킨다는 게 무엇이고, DeepSeek의 증류 방법이 무엇이 특별한지 궁금함
    • 이건 DeepSeek 비슷한 사고의 연쇄 생성을 하도록 미세조정한 LLaMa일 뿐임
      제대로 된 ‘증류’ 모델이라면, 더 큰 모델을 완전히 모방하도록 처음부터 학습되어야 하는데 여기서는 그런 일이 일어나지 않음
    • 이런 모델들이 Deepseek R1이라는 이름으로 브랜딩될 수 있는 게 정말 마음에 들지 않음
  • 언제나 그렇듯 tok/s 수치는 아주 크게 걸러 봐야 함
    데모에서는 500토큰도 안 되는 질문을 “해결”함. 가능하다는 것 자체는 여전히 놀랍지만, 실제 문제와 실제로 유용한 문맥 길이의 “생각하는” 모델, 즉 8~16k 토큰을 다룰 때는 저 속도에 근접하기 어렵다. 채널이 많은 Epyc도 문맥 길이가 4096쯤 지나면 2~4 tok/s로 떨어짐

    • Raspberry Pi 5 네 대에서 긴 실행, 즉 예측이 어떻게 되는지 확인해 봄
      pos=0 => P 138 ms S 864 kB R 1191 kB Connect
      pos=2000 => P 215 ms S 864 kB R 1191 kB .
      pos=4000 => P 256 ms S 864 kB R 1191 kB manager
      pos=6000 => P 335 ms S 864 kB R 1191 kB the
    • 작은 로봇은 보통 작은 문제를 다룸
      모델이 조금만 도와줘도 지금보다 훨씬 더 유능해질 수 있음
  • 나쁜 결과는 아니지만, Pi 5 네 대에 £320을 쓸 거면 중고 12GB 3080을 구할 수 있고 토큰 속도도 아마 10배 이상 빠를 것임

    • 아니면 12GB나 16GB GPU를 Pi 5 한 대에 직접 붙여서, 더 큰 모델에서도 20 tok/s 이상을 얻을 수 있음
      https://github.com/geerlingguy/ollama-benchmark?tab=readme-o...
    • “Deepseek R1 Distill 8B Q40 on 1x 3080, 60.43 tok/s (eval 110.68 tok/s)”라면 Hacker News에 올라오진 않았을 듯함
    • 그래도 전력은 48W 대 320W
    • 12GB 3060 두 장 정도를 쓰는 방법도 있음
  • 여기서 흥미로운 점은 여러 컴퓨터에 걸쳐 분산 방식으로 Llama 추론을 실행할 수 있다는 것임

    • 그렇다면 분산 GPU에 해당하는 것은 어디 있나 싶음
      Seti@HOME처럼 전 세계에 분산된 느린 R1 전체 모델에 도구를 연결하고, 깊고 복잡한 작업을 공개적으로 추론하게 할 수 있지 않을까 함
  • 이건 현대판 Beowulf 클러스터

    • Raspberry Pi 클러스터 밈은 솔직히 이해가 잘 안 됨
      Pi 5 네 대보다 조금 더 돈을 보태면 eBay에서 32코어 Epyc CPU와 64GB 메모리가 들어간 1U Dell 서버를 찾을 수 있고, 최소 한 자릿수 이상 더 높은 성능이 나옴
      홈랩에서 Beowulf 클러스터를 말하고 싶다면, 적어도 아주 저렴한 FDR Infiniband 네트워크를 붙인 계산 노드에 Slurm+Lustre나 k8s+OpenStack+Ceph 같은 구성을 돌려야 한다고 봄. 네 개의 느린 노드로도 선형 확장조차 안 되는 이런 건 좀 봐주기 어려움
  • 여러 Raspberry Pi가 어떻게 병렬로 사용되는지 보거나 이해하지 못했음
    누군가 방향을 알려주면 좋겠음

  • 이 멋진 새 AI 도구들을 언제쯤 apt-get install로 설치할 수 있을까?

    • Mac에서는 brew install ollama가 좋은 출발점일 수 있음
    • 현재 쓰는 배포판이 대규모 언어 모델 도구를 패키징하기 시작하거나, 그런 배포판으로 옮기면 가능함
    • ollama pull이 꽤 가까운 형태임
    • 엄밀히 apt-get은 아니지만, “AI 도구” 아래의 인프라 구성요소 대부분은 conda install로 설치 가능함
    • 보기 좋은 GUI 버전으로 lm-studio를 내려받을 수도 있음
      대화를 저장해주고 모델 다운로드도 쉽게 해줌
  • Mac에서 이 모델을 시험해 보고 싶다면, 사용된 모델이 DeepSeek-R1-Distill-Llama-8B 비슷해 보이는데 새 llm-mlx 플러그인으로 이렇게 실행할 수 있음
    brew install llm # or pipx install llm or uv tool install llm
    llm install llm-mlx
    llm mlx download-model mlx-community/DeepSeek-R1-Distill-Llama-8B
    llm -m mlx-community/DeepSeek-R1-Distill-Llama-8B 'poem about an otter'
    성능도 꽤 좋아서 방금 실행했을 때 22 tokens/second가 나왔음: https://gist.github.com/simonw/dada46d027602d6e46ba9e4f48477...

  • 메모리를 추가하면 도움이 될까? 최근 16GB RAM을 단 Rpi 5가 나왔음

    • 추론 속도는 메모리 크기보다 읽기/쓰기 속도에 크게 좌우됨
      모델이 메모리에 들어가기만 한다면, 실제 동작을 결정하는 건 메모리 대역폭임
    • 모델과 문맥이 메모리에 들어가는 한, 메모리 용량 자체는 도움이 되지 않음
      8B 매개변수 Q4 모델은 8GB Pi 한 대에도 들어갈 것임
    • 16GB Pi 5는 들어왔다가 금방 사라짐
      최근 Adafruit에 물량이 들어왔을 때 하나 겨우 샀는데, 곧바로 다시 매진됐음
      그래도 성능과 별개로, 실행에 8GB를 넘게 요구해서 Ollama가 아예 못 돌리는 모델들이 있음
  • Alexa나 Google Home 같은 제품이 필요함
    다만 클라우드에 연결하는 대신 로컬 대규모 언어 모델을 실행하는 형태여야 함. 왜 아직 없거나 아무도 만들고 있지 않은지 모르겠음

    • 가격 때문 아닐까 싶음
      좋은 대규모 언어 모델은 비싸니, 진짜 질문은 사람들이 살 만큼 유용한 모델을 넣으면서도 마진이 남을 만큼 싸게 만들 수 있느냐임
    • Home Assistant로 어느 정도 비슷하게 갈 수 있음
      도구 사용이 되는지는 확실하지 않지만, 날씨처럼 물어볼 만한 것들을 노출할 수는 있음
    • 로컬 대규모 언어 모델이라면 Ollama + llamacpp 같은 걸 말하는 건가?