소식

시원한! 휴대폰, iPad, MacBook과 같은 오래된 장치는 이기종 클러스터를 형성하고 Llama 3를 실행할 수 있습니다.

2024-07-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

기계 심장 보고서

머신하트 편집부

여분의 장비가 있다면 시도해 볼 수도 있습니다.

이번에는 당신의 손에 있는 하드웨어 장비도 AI 분야에서 그 재능을 보여줄 수 있습니다.

iPhone, iPad, Macbook을 결합하여 "이기종 클러스터 추론 솔루션"을 조립한 후 Llama3 모델을 원활하게 실행할 수 있습니다.



이 이기종 클러스터는 Windows 시스템, Linux 또는 iOS 시스템이 될 수 있으며 Android에 대한 지원이 곧 제공될 예정이라는 점을 언급할 가치가 있습니다.

이기종 클러스터가 실행 중입니다.



프로젝트 작성자 @evilsocket에 따르면 이 이기종 클러스터에는 iPhone 15 Pro Max, iPad Pro, MacBook Pro(M1 Max), NVIDIA GeForce 3080 및 2x NVIDIA Titan X Pascal이 포함되어 있습니다. 모든 코드는 GitHub에 업로드되었습니다.

이를 본 네티즌들은 이 노인이 정말 단순하지 않다고 표현했다.



그러나 일부 네티즌들은 속도에 관계없이 전기요금을 감당할 수 없어 에너지 소비를 걱정하기 시작했습니다. 데이터를 앞뒤로 이동하면 너무 많은 손실이 발생합니다.





프로젝트 소개

위 함수의 구현은 Cake라는 Rust 프레임워크와 분리될 수 없습니다. Cake는 대형 모델(예: Llama3)의 분산 추론을 완료할 수 있으며 소비자급 하드웨어를 이기종 클러스터에 결합하도록 설계되었습니다. 소비자급 하드웨어는 iOS, Android, macOS, Linux 및 Windows를 포함한 다양한 운영 체제를 사용합니다. AI에 더 쉽게 접근할 수 있도록 말이죠.



프로젝트 주소: https://github.com/evilsocket/cake

Cake의 주요 아이디어는 일반적으로 단일 장치의 GPU 메모리에 맞지 않는 모델에 대해 추론을 실행할 수 있도록 여러 장치에 걸쳐 변환기 청크를 분할하는 것입니다. 동일한 작업자 스레드의 연속 변환기 블록에 대한 추론은 일괄적으로 수행되어 데이터 전송으로 인한 지연을 최소화합니다.

현재 Cake가 지원하는 시스템 및 장치는 다음과 같습니다.



엮다

Rust를 설치한 후 다음 코드를 실행하세요.

카고 빌드 --릴리스

사용자가 애플리케이션에서 iOS 바인딩을 생성하려는 경우 다음을 수행할 수 있습니다.

ios를 만들다

사용

작업자 노드를 실행합니다.

cake-cli --model /path/to/Meta-Llama-3-8B # 모델 경로, 작업자를 위한 모델 크기를 최적화하는 방법은 아래에서 확인하세요.

--mode worker # 작업자로 실행

--name worker0 # 토폴로지 파일의 작업자 이름

--토폴로지 토폴로지.yml # 토폴로지

--주소 0.0.0.0:10128 # 주소 바인딩

마스터 노드를 실행합니다.

cake-cli --model /경로/메타-라마-3-8B

--토폴로지 토폴로지.yml

그 중 topology.yml은 어떤 작업자가 어떤 레이어를 제공하는지 결정합니다.

리눅스 서버 1:

호스트: 'linux_server.host:10128'

설명: 'NVIDIA Titan X Pascal (12GB)'

레이어:

- '모델.레이어.0-5'

리눅스 서버 2:

호스트: 'linux_server2.host:10128'

설명: 'NVIDIA GeForce 3080(10GB)'

레이어:

- '모델.레이어.6-16'

아이폰:

호스트: 'iphone.host:10128'

설명: '아이폰 15 프로 맥스'

레이어:

- '모델.레이어.17'

아이패드:

호스트: 'ipad.host:10128'

설명: '아이패드'

레이어:

- '모델.레이어.18-19'

맥북:

호스트: 'macbook.host:10128'

설명: 'M1 Max'

레이어:

- '모델.레이어.20-31'

메모리 및 디스크 공간 최적화 문제와 관련하여 사용자는 전체 폴더가 아닌 모델에 실제로 필요한 데이터만 작업자에게 제공하기를 원할 수 있으며, 이 경우 케이크 분할 모델을 사용할 수 있습니다. 예를 들어 더 작은 버전의 llama3 safetensor를 생성하려면 다음 코드를 사용할 수 있습니다.

cake-split-model --model-path path/to/Meta-Llama-3-8B # 분할할 소스 모델

--topology path/to/topology.yml # 토폴로지 파일

--출력 출력 폴더 이름

참조 링크: https://x.com/tuturetom/status/1812654489972973643