내 연락처 정보
우편메소피아@프로톤메일.com
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