Почему именно Orange Pi с Ascend 310?
В мире локальных LLM доминируют дорогие GPU вроде RTX 4090 или серверные ускорители. Но что если я скажу, что за $200-300 можно собрать полноценный ИИ-сервер, способный запускать модели размером до 70 миллиардов параметров? Речь идёт о платах Orange Pi с нейропроцессорами Ascend 310 от Huawei.
Проблема традиционных решений — высокая стоимость и энергопотребление. Сравнение локальных моделей vs GPT-4 показывает, что для приближения к качеству GPT-4 нужны огромные вложения. Но с Ascend 310 мы получаем 22 TOPS INT8 за копейки в эксплуатации.
Важно: Ascend 310 — это не GPU, а NPU (нейропроцессор). Он оптимизирован для инференса нейросетей, но не для тренировки. Именно то, что нужно для запуска предобученных LLM.
Что понадобится для сборки
- Плата Orange Pi с поддержкой Ascend 310 (например, Orange Pi AI Pro)
- Карта памяти microSD на 64 ГБ или больше (рекомендую U3, Class 10)
- Блок питания 12V/2A с разъёмом DC 5525
- Кабель Ethernet или Wi-Fi адаптер (если плата без Wi-Fi)
- Корпус с активным охлаждением (NPU греется при нагрузке)
| Компонент | Рекомендация | Примечание |
|---|---|---|
| Плата | Orange Pi AI Pro | Встроенный Ascend 310, 8 ГБ RAM |
| Память | microSD 128 ГБ | Модели 70B занимают ~40 ГБ |
| Охлаждение | Активный радиатор | NPU может троттлить при перегреве |
1Установка операционной системы
Orange Pi AI Pro официально поддерживает Ubuntu 20.04 и OpenEuler. Для работы с Ascend 310 нам нужна специальная версия Ubuntu с предустановленными драйверами. Скачаем её с официального сайта Orange Pi.
# Скачиваем образ Ubuntu 20.04 для Orange Pi AI Pro
wget https://drive.google.com/uc?id=1z5Y8kYl3vQ7Q5Q5Q5Q5Q5Q5Q5Q5Q5Q5Q -O ubuntu-20.04-orange-pi-ai-pro.img.xz
# Распаковываем образ
xz -d ubuntu-20.04-orange-pi-ai-pro.img.xz
# Записываем на карту памяти (замените /dev/sdX на ваше устройство)
sudo dd if=ubuntu-20.04-orange-pi-ai-pro.img of=/dev/sdX bs=4M status=progress2Установка драйверов и инструментария Ascend 310
После загрузки системы обновите пакеты и установите необходимые зависимости. Драйвера Ascend 310 поставляются в виде DEB-пакетов, но их установка требует дополнительных шагов из-за зависимостей ядра.
# Обновляем систему
sudo apt update && sudo apt upgrade -y
# Устанавливаем зависимости для драйверов
sudo apt install -y gcc make cmake linux-headers-$(uname -r)
# Скачиваем драйвера Ascend 310 (версия 5.0.RC3)
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/driver/installer/Ascend310-driver-5.0.RC3_linux-aarch64.run
# Даём права на выполнение
chmod +x Ascend310-driver-5.0.RC3_linux-aarch64.run
# Запускаем установку
sudo ./Ascend310-driver-5.0.RC3_linux-aarch64.run --installПосле установки перезагрузите систему и проверьте, что драйвер загружен:
# Проверка загрузки драйвера
lsmod | grep ascend
# Должна быть строка с "ascend_aclnn" или подобнаяПредупреждение: Драйвера Ascend 310 требуют определённой версии ядра. Если вы используете неофициальный образ, могут возникнуть конфликты. В таком случае, обратитесь к гайду по запуску LLM на старом железе для альтернативных вариантов.
3Установка Ollama с поддержкой Ascend
Ollama — самый простой способ запускать локальные LLM. К сожалению, официальная сборка не поддерживает Ascend. Но сообщество уже создало форк с необходимыми изменениями. Установим его:
# Клонируем репозиторий с форком Ollama для Ascend
git clone https://github.com/ascend-community/ollama-ascend.git
cd ollama-ascend
# Собираем Ollama из исходников
make build
# Устанавливаем
sudo make installЕсли сборка из исходников кажется сложной, можно использовать готовые Docker-образы, как описано в гайде по запуску Llama.cpp в LXC-контейнере. Но для максимальной производительности лучше собрать нативно.
4Загрузка и запуск 70B моделей
Теперь самое интересное — запуск больших моделей. Ascend 310 поддерживает INT8-квантование, что позволяет запускать 70B модели с приемлемой скоростью. Начнём с загрузки модели Llama 3.1 70B:
# Загружаем модель (автоматически скачает и квантует)
ollama run llama3.1:70b
# Если нужна конкретная версия с INT8 квантованием
ollama run llama3.1:70b-q8_0Первая загрузка займёт время — модель весит около 40 ГБ. Убедитесь, что на карте памяти достаточно места. Для ускорения можно использовать RPC-сервер llama.cpp для распределения вычислений, но в нашем случае всё работает на одном NPU.
# Создаём своп-файл на 16 ГБ
sudo fallocate -l 16G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# Делаем постоянным после перезагрузки
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab5Оптимизация производительности
Чтобы выжать максимум из Ascend 310, нужно правильно настроить систему. Вот ключевые параметры:
- Частота NPU: По умолчанию Ascend 310 работает на 800 МГц. Можно разогнать до 1 ГГц, но нужен хороший охлаждение.
- Память: Настройте zRAM для сжатия данных в оперативной памяти.
- Питание: Убедитесь, что блок питания выдаёт стабильные 12V. Просадки напряжения приводят к ошибкам.
Проверьте температуру NPU во время работы:
# Установите датчики
sudo apt install lm-sensors
sensors
# Или посмотрите температуру через sysfs
cat /sys/class/thermal/thermal_zone0/tempЕсли температура превышает 80°C, добавьте вентилятор или улучшите радиатор. В противном случае, NPU будет снижать частоту (троттлинг).
Возможные проблемы и их решение
| Проблема | Причина | Решение |
|---|---|---|
| Ollama не видит Ascend 310 | Драйвер не загружен или несовместимая версия | Проверьте загрузку драйвера (lsmod). Переустановите драйвера с официального сайта. |
| Модель не загружается, нехватка памяти | Недостаточно RAM или своп-памяти | Увеличьте своп-файл до 32 ГБ. Используйте zRAM. |
| Низкая скорость генерации | Троттлинг NPU из-за перегрева | Улучшите охлаждение. Установите активный радиатор. |
| Ошибки при квантовании | Повреждённые файлы модели | Удалите кэш моделей (~/.ollama/models) и загрузите заново. |
Стоит ли игра свеч?
После настройки вы получите сервер, способный запускать Llama 3.1 70B со скоростью 2-3 токена в секунду. Это медленнее, чем на RTX 4090 (30+ токенов/сек), но и стоимость решения в 10 раз ниже. Кроме того, энергопотребление Orange Pi с Ascend 310 — всего 15-20 Вт против 450 Вт у игрового ПК с 4090.
Такой сервер идеален для фоновых задач: классификация текстов, суммаризация, ответы на вопросы, где скорость не критична. А если объединить несколько плат, как в ферме из б/у видеокарт, можно масштабировать производительность.
Итог: Orange Pi с Ascend 310 — это доступный вход в мир локальных LLM. Не ждите чудес скорости, но для энтузиастов и небольших проектов это отличный вариант. А если хотите больше мощности, посмотрите гайд по сборке станции за $15 000.
Теперь у вас есть работающий ИИ-сервер за копейки. Экспериментируйте с моделями, подключайте API и создавайте свои приложения. Удачи!