Mi informacion de contacto
Correo[email protected]
2024-07-16
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Informe del corazón de la máquina
Departamento editorial de Machine Heart
Si tienes algún equipo de repuesto, quizás quieras probarlo.
Esta vez, el equipo de hardware que tiene en la mano también puede ejercitar sus músculos en el campo de la IA.
Al combinar iPhone, iPad y Macbook, puede ensamblar una "solución de inferencia de clústeres heterogéneos" y luego ejecutar el modelo Llama3 sin problemas.
Vale la pena mencionar que este clúster heterogéneo puede ser un sistema Windows, Linux o iOS, y pronto llegará el soporte para Android.
Se está ejecutando un clúster heterogéneo.
Según el autor del proyecto @evilsocket, este grupo heterogéneo incluye iPhone 15 Pro Max, iPad Pro, MacBook Pro (M1 Max), NVIDIA GeForce 3080 y 2x NVIDIA Titan X Pascal. Todo el código se ha subido a GitHub.
Al ver esto, los internautas expresaron que este anciano en realidad no es simple.
Sin embargo, algunos internautas están empezando a preocuparse por el consumo de energía, independientemente de la velocidad, no pueden pagar la factura de la luz. Mover datos de un lado a otro provoca demasiadas pérdidas.
Introducción al proyecto
La implementación de las funciones anteriores es inseparable de un marco de Rust llamado Cake. Cake puede completar la inferencia distribuida de modelos grandes (como Llama3) y está diseñado para combinar hardware de consumo en grupos heterogéneos. El hardware de consumo utiliza una variedad de sistemas operativos, incluidos: iOS, Android, macOS, Linux y Windows. para que la IA sea más accesible.
Dirección del proyecto: https://github.com/evilsocket/cake
La idea principal de Cake es fragmentar fragmentos de transformadores en múltiples dispositivos para poder realizar inferencias en modelos que normalmente no caben en la memoria GPU de un solo dispositivo. La inferencia en bloques de transformadores consecutivos en el mismo subproceso de trabajo se realiza en lotes para minimizar los retrasos causados por la transferencia de datos.
Los sistemas y dispositivos admitidos actualmente por Cake son los siguientes:
compilar
Después de instalar Rust, ejecute el siguiente código:
construcción de carga --liberación
Si el usuario desea generar enlaces de iOS en la aplicación, puede hacer lo siguiente:
hacer ios
usar
Ejecute el nodo trabajador:
cake-cli --model /path/to/Meta-Llama-3-8B # ruta del modelo, lea a continuación cómo optimizar el tamaño del modelo para los trabajadores
--mode worker # ejecutar como trabajador
--name worker0 # nombre del trabajador en el archivo de topología
--topología topología.yml # topología
--address 0.0.0.0:10128 # dirección de enlace
Ejecute el nodo maestro:
cake-cli --model /ruta/a/Meta-Llama-3-8B
--topología topología.yml
Entre ellos, topology.yml determina qué capas son atendidas por qué trabajadores:
servidor_linux_1:
anfitrión: 'linux_server.host:10128'
Descripción: 'NVIDIA Titan X Pascal (12 GB)'
capas:
- 'modelo.capas.0-5'
servidor linux_2:
anfitrión: 'linux_server2.host:10128'
Descripción: 'NVIDIA GeForce 3080 (10 GB)'
capas:
- 'modelo.capas.6-16'
iPhone:
anfitrión: 'iphone.host:10128'
Descripción: 'iPhone 15 Pro Max'
capas:
- 'modelo.capas.17'
iPad:
anfitrión: 'ipad.host:10128'
Descripción: 'iPad'
capas:
- 'modelo.capas.18-19'
Macbook:
anfitrión: 'macbook.host:10128'
Descripción: 'M1 Max'
capas:
- 'modelo.capas.20-31'
Con respecto a los problemas de optimización de la memoria y el espacio en disco, es posible que los usuarios deseen proporcionar a los trabajadores solo los datos realmente necesarios en el modelo, en lugar de toda la carpeta, en cuyo caso se puede utilizar cake-split-model. Por ejemplo, para generar una versión más pequeña de llama3 safetensors, puedes usar el siguiente código:
cake-split-model --model-path ruta/a/Meta-Llama-3-8B # modelo fuente a dividir
--topology path/to/topology.yml # archivo de topología
--output nombre-de-carpeta-de-salida
Enlace de referencia: https://x.com/tuturetom/status/1812654489972973643