notícias

legal! Dispositivos antigos como Phone, iPad e MacBook formam um cluster heterogêneo e podem executar o Llama 3

2024-07-16

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

Relatório do coração da máquina

Departamento Editorial de Coração de Máquina

Se você tiver algum equipamento sobressalente, experimente.

Desta vez, o equipamento de hardware em suas mãos também pode mostrar seus talentos na área de IA.

Ao combinar iPhone, iPad e Macbook, você pode montar uma "solução de inferência de cluster heterogêneo" e, em seguida, executar o modelo Llama3 sem problemas.



Vale ressaltar que esse cluster heterogêneo pode ser um sistema Windows, Linux ou iOS, e o suporte para Android estará disponível em breve.

Cluster heterogêneo está em execução.



De acordo com o autor do projeto @evilsocket, este cluster heterogêneo inclui iPhone 15 Pro Max, iPad Pro, MacBook Pro (M1 Max), NVIDIA GeForce 3080 e 2x NVIDIA Titan X Pascal. Todo o código foi carregado no GitHub.

Vendo isso, os internautas expressaram que esse velho não é realmente simples.



Porém, alguns internautas começam a se preocupar com o consumo de energia. Independentemente da velocidade, não conseguem arcar com a conta de luz. Mover dados para frente e para trás causa muitas perdas.





Introdução ao Projeto

A implementação das funções acima é inseparável de um framework Rust chamado Cake. Cake pode completar inferência distribuída de modelos grandes (como Llama3) e é projetado para combinar hardware de consumidor em clusters heterogêneos. O hardware de consumidor usa uma variedade de sistemas operacionais, incluindo: iOS, Android, macOS, Linux e Windows. para que a IA seja mais acessível.



Endereço do projeto: https://github.com/evilsocket/cake

A ideia principal do Cake é fragmentar pedaços do transformador em vários dispositivos para poder executar inferências em modelos que normalmente não cabem na memória da GPU de um único dispositivo. A inferência em blocos transformadores consecutivos no mesmo thread de trabalho é realizada em lotes para minimizar atrasos causados ​​pela transferência de dados.

Os sistemas e dispositivos atualmente suportados pelo Cake são os seguintes:



compilar

Após instalar o Rust, execute o seguinte código:

construção de carga --liberação

Se o usuário quiser gerar vinculações iOS no aplicativo, ele poderá fazer o seguinte:

fazer ios

usar

Execute o nó do trabalhador:

cake-cli --model /path/to/Meta-Llama-3-8B # caminho do modelo, leia abaixo sobre como otimizar o tamanho do modelo para trabalhadores

--mode worker # executar como trabalhador

--name worker0 # nome do trabalhador no arquivo de topologia

--topologia topologia.yml # topologia

--address 0.0.0.0:10128 # endereço de ligação

Execute o nó mestre:

cake-cli --model /caminho/para/Meta-Llama-3-8B

--topologia topologia.yml

Entre eles, topology.yml determina quais camadas são atendidas por quais trabalhadores:

servidor_linux_1:

anfitrião: 'linux_server.host:10128'

descrição: 'NVIDIA Titan X Pascal (12GB)'

camadas:

- 'modelo.camadas.0-5'

servidor_linux_2:

anfitrião: 'linux_server2.host:10128'

descrição: 'NVIDIA GeForce 3080 (10GB)'

camadas:

- 'modelo.camadas.6-16'

Iphone:

anfitrião: 'iphone.host:10128'

descrição: 'iPhone 15 Pro Max'

camadas:

- 'modelo.camadas.17'

iPad:

anfitrião: 'ipad.host:10128'

descrição: 'iPad'

camadas:

- 'modelo.camadas.18-19'

Macbook:

anfitrião: 'macbook.host:10128'

descrição: 'M1 Max'

camadas:

- 'modelo.camadas.20-31'

Em relação às questões de otimização de memória e espaço em disco, os usuários podem desejar fornecer aos trabalhadores apenas os dados realmente necessários no modelo, em vez da pasta inteira, caso em que o modelo cake-split pode ser usado. Por exemplo, para gerar uma versão menor dos safetensors llama3, você pode usar o seguinte código:

cake-split-model --model-path caminho/para/Meta-Llama-3-8B # modelo de origem para dividir

--topology caminho/para/topologia.yml # arquivo de topologia

--output nome-da-pasta-de-saída

Link de referência: https://x.com/tuturetom/status/1812654489972973643