ASUS ROG Ally에서 LLM을 로컬로 실행해 보았습니다
몇 주 동안 ASUS ROG Ally에서 로컬 AI 모델을 실행해 보았습니다. 재미있는 프로젝트가 될 줄 알았는데, 오히려 하드웨어 한계에 대해 배우는 계기가 되었습니다.
클라우드 대체용으로 사용한 것은 아닙니다. 작은 작업들을 위한 특화된 도구로 사용했습니다. 휴대용 하드웨어에서 AI를 실행하며 배운 점들을 공유합니다.
메모리 장벽
휴대용 기기는 통합 메모리 아키텍처(Unified Memory Architecture)를 사용합니다. 이는 CPU와 GPU가 동일한 RAM을 공유한다는 의미입니다. 기본적으로 GPU에는 아주 적은 양의 메모리만 할당됩니다.
모델이 할당된 메모리 용량을 초과하면 시스템은 CPU를 사용하게 됩니다. 이로 인해 텍스트 생성 속도가 고통스러울 정도로 느려집니다.
해결 방법:
- BIOS에 진입합니다.
- UMA 프레임 버퍼(UMA frame buffer)를 수동으로 늘립니다.
- 저는 4 GB까지 늘렸습니다. 이 설정 변경이 그 어떤 튜닝보다 큰 도움이 되었습니다.
효과 없는 방법들
메모리를 더 확보하기 위해 zRAM을 사용해 보았지만 실패했습니다. 대부분의 AI 모델은 이미 압축된 GGUF 파일을 사용하기 때문에, 공간을 확보하기 위해 추가로 압축할 수는 없습니다.
디스크 스왑(disk swap)을 활용하는 방법도 시도해 보았습니다. 하지만 스왑은 속도를 높여주지 않습니다. 오히려 사용 불가능한 수준으로 만듭니다. 모델이 디스크 스왑에 의존하게 되면, 몇 초에 단 한 단어씩만 생성되는 것을 보게 될 것입니다.
스왑을 활성화해 두는 유일한 이유는 RAM이 부족할 때 시스템이 프로세스를 강제로 종료하는 것을 방지하기 위함입니다.
원활한 실행을 위한 팁
AI 출력 결과가 끊기거나 버벅거린다면 Linux 커널 설정을 확인해 보세요.
vm.swappiness값을 낮춥니다.- 이렇게 하면 시스템이 메모리를 너무 일찍 스왑으로 옮기는 것을 방지할 수 있습니다.
- 이를 통해 생성이 버벅거리지 않고 안정적으로 느껴지게 됩니다.
모델 선택은 사용 사례에 따라 달라집니다
대부분의 사람들은 가장 빠른 모델을 찾습니다. 하지만 저는 대신 조금 느리더라도 더 정교한 모델을 선택했습니다.
- 실시간 채팅을 원한다면 속도가 필요합니다.
- 백그라운드 에이전트를 실행한다면 품질이 필요합니다.
저는 제 설정을 백그라운드 작업용으로 사용합니다. 요청을 보내두고 나중에 결과를 확인하는 방식입니다. 화면을 계속 보고 있는 것이 아니기 때문에, 응답이 8초가 아닌 40초가 걸리더라도 상관없습니다. 저는 가장 빠른 답변이 아니라 가장 좋은 답변을 원합니다.
휴대용 기기에서는 reasoning 모델을 피하세요. 단계별 사고 과정은 성능이 낮은 하드웨어에서 너무 많은 시간을 잡아먹습니다. 품질 향상이 기다릴 만한 가치가 없는 경우가 많습니다.
활용하기 좋은 작업
16 GB 기기는 다음과 같은 작업에 적합합니다:
- 짧은 이메일 초안 작성.
- 작은 코드 스니펫 검토.
- 대략적인 일일 계획 세우기.
- 네트워크 외부로 유출되면 안 되는 개인적인 작업.
다음과 같은 작업에는 적합하지 않습니다:
- 긴 문서 작업.
- 심층적인 연구.
- 복잡한 코딩 프로젝트.
로컬 AI는 기적 같은 도구가 아니라 하나의 도구일 뿐입니다. 일상적이고 가벼운 작업에 완벽합니다.
Optional learning community: https://t.me/GyaanSetuAi
