DeepSeek V4 Flash 0731 로컬 설정 시 주의사항: 모델, 도구 호출(tool call) 및 설정 문제
요약
DeepSeek V4 Flash 모델을 로컬 환경(oMLX)에서 설정하며 겪은 도구 호출(tool call) 오류와 캐시 무효화 문제를 다룹니다. Unsloth Studio의 버그와 CPU 폴백 문제, 그리고 핫 캐시 크기 제한으로 인한 성능 저하 해결 과정을 공유합니다.
핵심 포인트
- Unsloth GGUF 사용 시 CPU 폴백으로 인한 추론 속도 저하 주의
- Unsloth Studio의 도구 호출 템플릿 전달 버그 확인
- oMLX 환경에서 30GB 핫 캐시 제한으로 인한 캐시 무효화 문제 발생
- 로컬 모델 설정 시 API 서비스 대비 도구 호출 및 캐시 관리의 복잡성 존재
저는 로컬 DeepSeek V4 Flash 설정을 디버깅하는 데 꽤 많은 시간을 보냈으며, 다른 분들의 시간을 아껴드릴 수 있도록 이 과정에서 얻은 몇 가지 교훈을 공유하고자 합니다. 지금까지 저는 이 설정 과정에서 세 가지 장애물을 해결했습니다.
처음에는 Unsloth Studio에서 Unsloth의 GGUF 모델을 다운로드했습니다. 해당 모드에서 저는 Unsloth에게 LinkedIn 채용 URL에 접속하도록 요청했습니다. 모델은 다음과 같은 web_search 도구 호출(tool call)을 생성했습니다: json {"toolName": "web_search", "args": {"url": "..."}}. 이 시점에서 web_search 도구 호출은 유효했습니다. Unsloth Studio는 사용 가능한 도구와 도구 템플릿(tool template)을 보냈지만, 추론(inference) 속도가 초당 약 4-7 토큰(tok/s) 정도로 느렸습니다. 로그를 확인해보니 Unsloth GGUF가 추론을 위해 CPU 사용으로 폴백(fallback)되고 있다는 것을 발견했습니다.
그 다음, Vontra/DeepSeek-V4-Flash-0731-MXFP4-MLX를 다운로드하여 oMLX에서 실행하고, Unsloth Studio의 API를 업데이트했습니다. UI가 좋아서 이를 사용하고 싶었기에 다시 웹사이트를 읽어달라고 요청했으나, 도구 호출(tool call)이 응답 없이 조용히 반환되었습니다. 저는 모델이 멍청하다고 생각했습니다. 깊이 파고들어 보니 Unsloth가 사용 가능한 도구나 도구 호출 템플릿을 모델에 보내지 않고 있다는 것을 발견했습니다. 모델은 채팅 기록(chat history)에서 이를 가져오고 있었습니다. 버그는 Unsloth에 있었습니다. 그들은 도구 호출 실패 오류를 모델에 다시 전달했어야 했습니다. 그래서 저는 모델을 포기하지 않고 Hermes가 oMLX 엔드포인트를 사용하도록 구성했습니다.
그 후 캐시 무효화(cache invalidation) 문제에 직면했습니다. 130K 토큰 이후에 캐시가 무효화되고 있었습니다. 여기서 문제는 핫 캐시(hot cache) 크기가 30GB로 제한되어 있었다는 점입니다. 로그에는 cache match 97%와 같은 내용이 뜨지만, 재사용된 토큰(reused tokens)은 0으로 나타납니다. 샘플 로그: text 2026-08-01 00:09:55,454 - omlx.scheduler - INFO - [-] - prefix cache: request 113b5b1e-66b4-4623-9b0e-a501beddc312 re-prefills 142198 of 142198 tokens (reused 0); closest stored sequence b9d3322f-844d-473a-b3e1-193cdd83a349 shares the first 140288 of 140288 comparable tokens before diverging
설정:
Mac Studio M3 Ultra, 512GB 통합 메모리(unified memory)
oMLX로 DeepSeek-V4-Flash-0731-MXFP4-MLX 서빙
oMLX를 가리키는 Hermes Agent
현재로서는 Unsloth를 완전히 버렸습니다.
이것과는 별개의 이야기입니다만, 만약 제가 로컬 모델이 아닌 API를 사용하고 있었다면 이런 것들을 전혀 알아채지 못했을 것이라는 사실을 깨달았습니다. 제가 oMLX로 변경한 이유는 Unsloth GGUF 버전이 느렸기 때문입니다. API의 경우 속도는 문제가 되지 않습니다. 무엇이든 던져 넣을 수 있으니까요. 제가 Codex나 Claude Code를 사용한다면 도구 호출 (tool calls)은 실패하지 않습니다. 그것들은 성숙한 제품들이기 때문입니다. 핫 캐시 (hot cache) 설정 또한 그렇습니다. 그것이 존재하는지조차 몰랐지만, 느린 응답 속도 덕분에 다시 한번 이를 알게 되었습니다. 동기 부여를 유지해 주는 이 그룹에 다시 한번 감사드리고 싶습니다. 저는 이러한 로컬 설정들을 통해 매일 새로운 것들을 배우고 있으며, 이러한 문제들을 디버깅하면서 스택 (stack)을 훨씬 더 잘 이해하게 되었고 제 업무 능력도 향상되고 있습니다 :) /u/No_Run8812 제출 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기