minhas informações de contato
Correspondência[email protected]
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