Strata 성능 미세 조정 (finetuning) - 직접 테스트해보세요
요약
본 기사는 Strata라는 도구의 성능을 극대화하기 위한 다양한 파라미터 튜닝 방법을 상세히 다룹니다. --pcie-frac, --pool-workers, --trim-stage-weights 등 여러 설정을 조정하여 디코드 속도와 전반적인 추론 성능을 크게 향상시킬 수 있습니다. 특히 멀티 GPU 환경에서 PCIe 레인 순서에 따른 GPU 할당 최적화가 큰 성능 개선 효과를 가져왔습니다.
핵심 포인트
- Strata의 다양한 파라미터(예: --pool-workers, --trim-stage-weights) 튜닝을 통해 추론 속도를 높일 수 있습니다.
- CPU와 관련된 설정(--pipeline-windows) 변경만으로도 상당한 성능 향상(+15%)이 가능합니다.
- 멀티 GPU 환경에서는 PCIe 레인에 연결된 GPU의 순서(0/1)를 정확히 파악하고 최적화하는 것이 중요합니다.
- GPU 할당 순서를 조정하는 것만으로 15% 이상의 큰 성능 개선을 얻을 수 있습니다.
strata가 비교적 새로운 도구이다 보니, 아직 많은 사람들이 자신의 장치에서 최고의 성능을 내도록 finetune하는 방법을 알지 못한다고 생각합니다. 저는 문서(documentation)를 탐색하기가 다소 어렵다고 느낍니다 (이것은 여러분의 에이전트(agents)를 사용하세요!). 심각한 테스트를 거친 후, 제가 사용할 수 있는 거의 모든 매개변수(parameter)들을 조정해 보았습니다. 일부는 명백해서 mtp 조정에 시간을 낭비하고 싶지 않습니다. 일부는 더 생소하다고 생각하며, 이것들이 언급할 가치가 있습니다: Strata 설정은 여러분을 위해 최고의 --pcie-frac 값을 선택한다고 합니다. 하지만 저는 그것이 종종 그렇지 않다는 것을 발견했습니다. 여기에 시간과 노력을 투자하여 테스트해 볼 가치가 있습니다. 직관에 반하게도, 제가 가장 성능이 좋았던 값은 낮은 0.2였습니다. 다양한 --pool-workers 값을 테스트함으로써, 디코드(decode)에서 쉽게 +10%를 얻을 수 있었습니다. 이것이 무엇을 하는지 (그리고 포인트 4와 어떻게 다른지) 설명할 만큼 저는 똑똑하지 않지만, 여러분의 장치에서 몇 가지 벤치마크를 실행하는 데 시간을 투자할 가치가 있습니다. --trim-stage-weights. 짜잔, 추가 +8%가 생깁니다. 한번 시도해 보세요. 궁금하다면 문서에 무엇을 하는지 매우 명확하게 나와 있습니다. 저는 이것이 세션 후반부의 성능에 영향을 미치고 스왑(swaps)을 증가시킬 수 있다고 생각하지만, 여전히 가치가 있습니다. --pipeline-windows. 제가 아는 것은 값이 높을수록 제 CPU가 더 많이 작동한다는 것입니다. 아무것도 안 하던/기본값에서 6으로 변경했을 때 거의 15%의 증가를 얻었습니다. 마지막으로, 다중 GPU(multi-GPU) 소유자들은 GPU 우선순위에 주의해야 합니다. 만약 여러분의 GPU 중 하나가 더 느린 pcie 레인에 연결되어 있다면 더욱 그렇습니다. 저는 RTX3060 두 개를 가지고 있습니다. GPU 0과 GPU 1입니다. 어느 시점에서 저는 두 GPU 중 하나가 기본적으로 메모리 풀(memory pool) 역할을 하며 컴퓨팅을 전혀 하지 않는다는 것을 알아차렸습니다. MOE 모델에게는 말이 되는 것 같습니다. 하지만 이제 어떤 것이 실제로 작업을 수행하는지 이해하고 싶었습니다. 그래서 제 기본 GPU 0이 가장 느린 pcie 레인에 연결된 장치라는 것을 빠르게 알아냈습니다! 만약 서로 동일한 두 개의 GPU를 다른 속도의 레인에 가지고 있다면, 그들의 0/1 순서는 기본적으로 무작위라는 점을 명심하세요. 정확히 어느 것이 무엇인지 파악하고 빠른 쪽이 추론(inference)을 수행하도록 강제해야 합니다.
에이전트에게 pci_e1 레인에서 0인지 1인지 알아내는 커맨드 라인을 요청해 보세요. 제 경우 GPU 1이었고, 이를 메인 GPU로 설정하는 유일한 방법은 그다지 사용자 친화적이지 않은 두 줄의 코드였습니다 :) "gpu": [1,0], "gpu_order": "as_given" 이것만으로도 무려 +15%나 향상되었습니다. 정말 말도 안 되는 수치입니다. 이 모든 것이 누적되면서, 제 머신에서 나올 수 없을 것 같은 속도를 보고 있습니다. Qwen Flash Next IQ3_S로 35 디코드 피크 정도였던 것이 빈 컨텍스트에서의 평균 코드 생성 시 60 tps, 그리고 60-70 tps의 피크를 기록했습니다. 전체 컨텍스트에서도 성능 저하는 있지만, 이전 기준 테스트 대비 여전히 쉽게 +15%~20% 이상의 견고한 향상을 보입니다. 여기에는 전체 컨텍스트와 압축이 필요한 대규모 세션도 포함됩니다. 그러니 직접 시도해 보세요. 제출자: /u/Dreeew84 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/LocalLLaMA의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기