VRAM을 24GB에서 2x24GB로 두 배로 늘리면, 더 높은 양자화 (Quantization) 수준과 더 많은 컨텍스트 (Context)를 사용하여 더 똑똑한 LLM을 얻을 수 있을 것이라 기대했지만, 결과는 그렇지 않았습니다.
적어도 코딩에 있어서는, 예를 들어 qwen 27B UD-Q4-XL에서 Q6 또는 Q8로 전환했을 때의 품질 차이는 상당히 작다는 것을 발견했습니다.
대신, 적어도 코딩 측면에서 제가 추가된 성능을 활용하는 방식은 병렬성 (Parallelism)입니다.
더 똑똑한 LLM을 얻는 대신, 저는 qwen 27B를 많은 컨텍스트를 가진 오케스트레이터 (Orchestrator)로 사용하고 있습니다. 작업을 더 작고 좁은 하위 작업으로 나눈 뒤 이를 서브 에이전트 (Subagents)에게 전달하는 방식입니다. 이 서브 에이전트들은 종종 qwen 35B-A3B를 사용하는데, 작업이 좁고 명확하게 정의되어 있을 때는 충분히 훌륭하며, 이 서브 에이전트들은 보통 115k 컨텍스트 제한 내에서 작업을 수행하고 메인 에이전트에게 보고한 뒤 종료될 수 있어, 저는 이들을 2개까지 운용할 수 있습니다.
그 결과, 이전에는 단 하나의 에이전트만 가질 수 있었던 반면 이제는 3개의 에이전트를 병렬로 가질 수 있기 때문에 전체적인 처리량 (Throughput)이 훨씬 높아졌습니다. 탐색이나 웹 리서치와 같이 덜 중요한 작업을 실행하기 위해 더 빠른 모델을 로드하려고 기존 모델을 언로드 (Unload)할 필요가 없으며, 대부분의 경우 이 에이전트들은 압축 (Compact)할 필요 없이 작업을 수행합니다.
메인 에이전트는 결국 압축을 수행하지만, 그 빈도가 훨씬 줄어들었습니다. 서브 에이전트들은 거의 압축을 하지 않습니다.
VRAM이 32GB를 초과하는 사람들이 이에 대해 이야기하는 것을 많이 보지 못했습니다. 대부분의 사람들은 필요하다면 시스템 RAM을 공유하면서 100B 이상의 모델을 실행하는 데 집착하는 것 같지만, 저는 모든 것을 한 번에 해결(one-shot)하려고 부적절한 속도로 거대 모델 (Behemoth models)을 실행하려 애쓰는 것보다, 분할 정복 (Divide and conquer)을 통해 서로의 작업을 검토하는 작은 모델들을 사용하는 것에서 실제로 더 많은 가치를 얻고 있습니다.
가끔 저는 진정한 SOTA 폐쇄형 모델 (Closed model)에게 전체 프로젝트를 검토하고 개선 사항 목록을 작성하도록 요청하는데, 이는 마치 누군가가 짧은 기간 동안 전문가 컨설턴트를 고용하는 것과 비슷합니다.
하지만 대부분의 작업은 이제 더 이상 그것을 필요로 하지 않습니다.
submitted by /u/cibernox to r/LocalLLaMA
[link] [comments]