EXO: запуск распределенных кластеров ИИ с использованием неработающих домашних устройств, поддержка нескольких механизмов вывода и автоматическое обнаружение устройств.
Общее введение
Exo - это проект с открытым исходным кодом, цель которого - запустить собственный кластер искусственного интеллекта, используя повседневные устройства (например, iPhone, iPad, Android, Mac, Linux и т. д.). Благодаря динамическому разделению моделей и автоматическому обнаружению устройств, Exo способен объединить несколько устройств в один мощный GPU, поддерживающий множество моделей, таких как LLaMA, Mistral, LlaVA, Qwen и Deepseek. Exo также предоставляет ChatGPT-совместимый API, который позволяет пользователям легко запускать модели на своем собственном оборудовании.

Список функций
- Широкая поддержка моделей: Поддерживает широкий спектр моделей, таких как LLaMA, Mistral, LlaVA, Qwen и Deepseek.
- Динамическое разбиение модели: Оптимизация разбиения модели на основе текущей топологии сети и ресурсов устройств.
- Автоматизированное обнаружение устройств: Автоматическое обнаружение других устройств без ручной настройки.
- Совместимый с ChatGPT API: Предоставляет ChatGPT-совместимый API, который облегчает запуск моделей на вашем собственном оборудовании.
- равенство оборудования: Устройства подключены друг к другу с помощью соединения "точка-точка" и не используют архитектуру "ведущий-ведомый".
- Несколько стратегий разделения: Поддерживает различные стратегии разделения, такие как кольцевое разделение с учетом объема памяти.
Использование помощи
Использование помощи
Процесс установки
- предварительно::
- Убедитесь, что версия Python >= 3.12.0.
- Если вы используете Linux и поддерживаете графические процессоры NVIDIA, установите драйверы NVIDIA, набор инструментов CUDA и библиотеку cuDNN.
- Установка из источника::
- Проект клонирования:
git clone https://github.com/exo-explore/exo.git
- Перейдите в каталог проектов:
cd exo
- Установите зависимость:
pip install -e .
- Или используйте виртуальную среду для установки:
source install.sh
- Проект клонирования:
Функции Поток операций
- операционная модель::
- Запустите пример на нескольких устройствах macOS:
- Оборудование 1:
exo
- Оборудование 2:
exo
- Exo автоматически обнаруживает другие устройства и запускает веб-интерфейс, похожий на ChatGPT (на базе tinygrad tinychat), на
http://localhost:52415
.
- Оборудование 1:
- Выполните пример на одном устройстве:
- Используйте команду:
exo run llama-3.2-3b
- Используйте пользовательскую подсказку:
exo run llama-3.2-3b --prompt "What is the meaning of exo?"
- Используйте команду:
- Запустите пример на нескольких устройствах macOS:
- Модельное хранилище::
- По умолчанию модели хранятся в
~/.cache/huggingface/hub
. - Это можно сделать, установив переменную окружения
HF_HOME
чтобы изменить место хранения модели.
- По умолчанию модели хранятся в
- регулировка компонентов во время тестирования::
- Использование переменных окружения
DEBUG
(0-9) Включение отладочной регистрации:DEBUG=9 exo
- Для механизма выводов tinygrad используйте отдельный флаг отладки
TINYGRAD_DEBUG
(1-6):TINYGRAD_DEBUG=2 exo
- Использование переменных окружения
- Код форматирования::
- пользоваться
yapf
Код форматирования:- Требования к форматированию установки:
pip3 install -e '.[formatting]'
- Запустите сценарий форматирования:
python3 format.py ./exo
- Требования к форматированию установки:
- пользоваться
Использование
- Запуск EXO::
exo
EXO автоматически обнаруживает и подключается к другим устройствам без дополнительной настройки.
- операционная модель::
- Используйте модель по умолчанию:
exo run llama-3.2-3b
- Пользовательские советы:
exo run llama-3.2-3b --prompt "EXO的意义是什么?"
- Примеры использования API::
- Отправить запрос:
bash
curl http://localhost:52415/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama-3.2-3b",
"messages": [{"role": "user", "content": "EXO的意义是什么?"}],
"temperature": 0.7
}'
- Отправить запрос:
оптимизация производительности
- пользователи macOS::
- Обновите macOS до последней версии.
- быть в движении
./configure_mlx.sh
Оптимизируйте распределение памяти GPU.
общие проблемы
- Ошибка SSL: На некоторых версиях MacOS/Python сертификат установлен неправильно. Выполните следующую команду, чтобы исправить это:
/Applications/Python 3.x/Install Certificates.command
- Журнал отладки: Включить ведение отладочного журнала:
DEBUG=9 exo
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...