paint-brush
Как построить компьютер с искусственным интеллектом за 300 долларов для тех, у кого мало графических процессоровк@zbruceli
8,254 чтения
8,254 чтения

Как построить компьютер с искусственным интеллектом за 300 долларов для тех, у кого мало графических процессоров

к Bruce Li12m2024/03/24
Read on Terminal Reader

Слишком долго; Читать

Однако для нас, у которых мало графических процессоров, собственный компьютер с искусственным интеллектом кажется дорогой мечтой. Макбук М3 Макс? 3200 долларов, ой! Нвидиа 4090? 1850 долларов США; это больно, даже если ты сможешь его получить. Ноутбук Microsoft Surface 6? Начиная с 1200 долларов, это все еще слишком много. Что, если я скажу вам, что вы можете получить полезный компьютер с искусственным интеллектом за 300 долларов? Заинтересованы? Вам необходимо предоставить собственный монитор, клавиатуру и мышь. И вам нужно немного повозиться с операционной системой Linux, драйверами, промежуточным программным обеспечением и конфигурациями.
featured image - Как построить компьютер с искусственным интеллектом за 300 долларов для тех, у кого мало графических процессоров
Bruce Li HackerNoon profile picture


вступление

Запуск моделей искусственного интеллекта с открытым исходным кодом локально на наших собственных компьютерах дает нам конфиденциальность, бесконечные возможности для работы и свободу от крупных корпораций. Это почти вопрос свободы слова.


Однако для нас, у которых мало графических процессоров, собственный компьютер с искусственным интеллектом кажется дорогой мечтой. Макбук М3 Макс ? 3200 долларов, ой! Нвидиа 4090 ? 1850 долларов США; это больно, даже если ты сможешь его получить. Ноутбук Microsoft Surface 6 ? Начиная с 1200 долларов, это все еще слишком много.


Что, если я скажу вам, что вы можете получить полезный компьютер с искусственным интеллектом за 300 долларов? Заинтересованы? Вам необходимо предоставить собственный монитор, клавиатуру и мышь. И вам нужно немного повозиться с операционной системой Linux, драйверами, промежуточным программным обеспечением и конфигурациями.


Чтобы уточнить: мы НЕ говорим об «обучении» или «тонкой настройке» больших генеративных моделей ИИ. Мы сосредоточимся на том, как запускать LLM с открытым исходным кодом (большие языковые модели, такие как Лама 2 7Б) локально, а также генерация изображений с помощью Стабильная диффузия .


Теперь продолжим.

Что делает хороший (и дешевый) компьютер с искусственным интеллектом?

Высокоскоростные межсоединения от zbruceli


Давайте предположим, что один из основных вариантов использования домашнего компьютера с искусственным интеллектом — это работа. большие языковые модели или вывод LLM. Для этой задачи вообще не требуется графический процессор, поскольку все можно выполнить с помощью процессора. лама.cpp это программное обеспечение с открытым исходным кодом, которое обеспечивает очень быстрый вывод LLM с использованием обычного процессора. Первоначально он был разработан для Macbook с процессором Apple серии M, но работает и с процессорами Intel/AMD.


Однако для более высокой скорости вывода вам необходимо следующее. В противном случае вы будете словно наблюдать, как волосы растут на вашей ладони, в то время как LLM выплевывает по одному жетону за раз.


  • Высокая пропускная способность процессора и памяти
  • Более быстрая DRAM (как минимум DDR4, DDR5 будет еще лучше)
  • Много памяти (минимум 16 ГБ), особенно если вы хотите запускать более крупные модели (более 7 ГБ)


Для генерации изображений с помощью Stable Diffusion вам понадобится мощность графического процессора. Однако для этого вам не обязательно иметь очень навороченный графический процессор. Вы можете использовать встроенный графический процессор уже на своих домашних компьютерах:


  1. Все компьютеры Mac с процессором M1/M2/M3, который объединяет процессор, графический процессор и высокоскоростную память (они действительно хороши, но из-за цены исключены из этой конкретной статьи).


  2. AMD APU (например, Ryzen 7 5700U), который объединяет процессор и графический процессор для недорогих мини-ПК. Этому будет посвящена данная статья.


  3. ЦП Intel (например, Core i5-1135G7), который также объединяет ЦП и графический процессор. Они немного превышают бюджет всего мини-ПК в 300 долларов, но читатели могут изучить их самостоятельно.

А компьютер с искусственным интеллектом за 300 долларов?

Мини-ПК на базе AMD со следующими характеристиками обычно продается менее чем за 300 долларов. Я не хочу рекламировать какой-либо конкретный бренд, поэтому вы можете поискать сами:

  • AMD Райзен 7 5800H (8C/16T, до 4,4 ГГц)
  • 16 ГБ ОЗУ DDR4 (рекомендуется 32 ГБ)
  • Твердотельный накопитель NVME M.2 емкостью 512 ГБ


Я немного потратился и выбрал модель за 400 долларов с 32 ГБ ОЗУ и SSD на 1 ТБ (при прочих равных условиях). Основная причина в том, что я исследую LLM с открытым исходным кодом и хотел бы запускать более крупные модели в дополнение к Stable Difusion. Но вы сможете сделать почти все, что описано в этой статье, на компьютере стоимостью 300 долларов.

Подготовка 1. Выделите достаточно памяти iGPU

Для APU AMD, таких как Райзен 7 5800H , память распределяется между ЦП и iGPU (встроенным графическим процессором). В моем случае всего у меня 32 ГБ ОЗУ, но по умолчанию для iGPU было выделено всего 3 ГБ! Это зависит от компьютера и настраивается в BIOS во время производства.


Вам нужно изменить это в зависимости от вашего основного варианта использования:

  1. Если вам нужно только запустить вывод LLM, вы можете пропустить весь этот подготовительный шаг. Поскольку для вывода LLM потребуется использовать только ЦП, и вам следует сохранить большую часть оперативной памяти для ЦП, чтобы можно было запускать более крупные модели LLM.


  2. Если вам нужно бежать Стабильная диффузия , особенно SDXL (1024x1024), вам необходимо выделить для iGPU столько ОЗУ, сколько позволяет система (обычно половина от общего объема ОЗУ)


В моем случае я хочу запустить вывод Stable Diffusion XL и LLM на одном мини-ПК. Поэтому я хотел бы выделить 16 ГБ (из 32 ГБ) для графического процессора.


Добиться этого можно, изменив настройки в BIOS. Обычно существует верхний предел, и настройка по умолчанию может быть намного ниже верхнего предела. На моем компьютере верхний предел составлял 16 ГБ или половину всей доступной оперативной памяти.

Хороший биос

Если BIOS вашего компьютера поддерживает такие настройки, измените их на желаемое число. В моем биосе такой настройки нет.

Плохой BIOS: используйте универсальный инструмент AMD

Если в вашем BIOS нет этой настройки, следуйте удобной инструкции «Разблокировка распределения памяти графического процессора на APU AMD Ryzen™?» Уинстон Ма. Я попробовал, и все сработало, так что теперь у меня 16 ГБ видеопамяти.


https://winstonhyypia.medium.com/amd-apu-how-to-modify-the-dedicated-gpu-memory-e27b75905056

Подготовка 2. Установите драйверы и промежуточное ПО

Сложные конфигурации от zbruceli

Выровнять звезды

AMD РПЦм (платформа Radeon Open Compute), сравнимая с платформой Nvidia КУДА , представляет собой набор драйверов и промежуточного программного обеспечения, позволяющий разработчикам использовать мощь графических процессоров ADM. И обычно приложениям искусственного интеллекта требуется ROCm для ускорения графического процессора.


Чтобы установить и заставить AMD ROCm работать, вы должны убедиться, что версии аппаратного обеспечения графического процессора, дистрибутива Linux, ядра, Python, драйвера HIP, библиотеки ROCm и pytorch совместимы. Если вы хотите минимум боли и максимальную вероятность успеха с первого раза, придерживайтесь рекомендуемых и проверенных комбинаций.

Предварительное условие

Пожалуйста, перейдите по следующей ссылке, чтобы получить совместимые версии ОС и ядра Linux и установить их. Первоначально я совершил ошибку, просто установив свою любимую ОС Linux и ядро Linux по умолчанию, и мне было очень трудно вернуться назад, чтобы решить проблемы совместимости. Вы можете избежать этой боли, просто используя официально поддерживаемые комбинации.


https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html


Таблица совместимости ОС AMD ROCm

Установка РОКм

https://rocm.docs.amd.com/en/latest/deploy/linux/os-native/install.html


Если вся установка завершится успешно, вы можете ввести rocminfo и отобразится что-то вроде этого (я вырезал только самые важные части, выделенные желтым цветом):

ROCk module is loaded

=====================

HSA System Attributes

=====================

Runtime Version: 1.1

System Timestamp Freq.: 1000.000000MHz

Sig. Max Wait Duration: 18446744073709551615 (0xFFFFFFFFFFFFFFFF) (timestamp count)

Machine Model: LARGE

System Endianness: LITTLE

Mwaitx: DISABLED

DMAbuf Support: YES


==========

HSA Agents

==========

*******

Agent 1

*******

Name: AMD Ryzen 7 5800H with Radeon Graphics

Uuid: CPU-XX

Marketing Name: AMD Ryzen 7 5800H with Radeon Graphics

Vendor Name: CPU

  

Pool Info:

Pool 1

Segment: GLOBAL; FLAGS: COARSE GRAINED

Size: 16777216(0x1000000) KB

Среда Python

Зависимость Python может быть довольно сложной, поэтому рекомендуется настроить подходящую среду. Вы можете использовать либо Конда или венв для этой цели.

  • source venv/bin/activate
  • conda activate llm

Пайторч

https://pytorch.org/get-started/locally/


Таблица совместимости Pytorch

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7

Перезапись HSA

Следующее относится только к APU со встроенной графикой. Несмотря на то, что они официально не поддерживаются РПЦ, доказали свою эффективность следующие меры.


export HSA_OVERRIDE_GFX_VERSION=9.0.0

Как проверить

Теперь, после всех сложных действий, проверим, работает ли ROCm с Torch. И вы можете видеть, что ROCm «притворяется» CUDA для целей Pytorch.


https://rocm.docs.amd.com/en/latest/how_to/pytorch_install/pytorch_install.html#test-the-pytorch-installation


python3 -c 'import torch' 2> /dev/null && echo 'Success' || echo 'Failure'

Success


python3 -c 'import torch; print(torch.cuda.is_available())'

True

Вывод LLM

Разговор с чат-ботом от zbruceli


Давайте начнем с чего-то простого для нашего недавно сконфигурированного компьютера с искусственным интеллектом стоимостью 300 долларов: локального запуска большой языковой модели. Мы можем выбрать один из популярных режимов с открытым исходным кодом: ЛЛАМА 2 с параметрами 7B, оптимизированными для чата.


Кроме того, вы также можете попробовать небольшие LLM от Мистраль , КВэнь , Зефир , и Викунья . Больше качественных LLM можно найти здесь, в очень полезной «таблице лидеров арены чат-ботов» Калифорнийского университета в Беркли. лаборатории ЛМСИС .


https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard

Лама.cpp

Мы будем использовать лама.cpp , который изначально оптимизирован для процессора, а затем поддерживает и графический процессор. По моему опыту, вывод LLM хорошо работает на ЦП, и от скромного графического процессора, такого как тот, который встроен в машину искусственного интеллекта стоимостью 300 долларов, мало что можно выиграть.


https://github.com/ggerganov/llama.cpp


Сначала вам нужно установить wget и git . Затем следуйте инструкциям по компиляции и установке llama.cpp.


sudo apt-get install build-essential

git clone https://github.com/ggerganov/llama.cpp.git

cd llama.cpp

make

Загрузить вес модели

Чтобы запустить LLM на нашей недорогой машине вместо облачных серверов с дорогими графическими процессорами, нам нужно использовать «сжатую» версию моделей, чтобы они могли поместиться в пространство оперативной памяти. В качестве простого примера модель LLaMA-2 7B имеет 7B параметров, каждый из которых представлен числом float16 (2 байта).


  • Число с плавающей запятой 16: 14 байт или 14 ГБ, что не поместится в нашу 8 ГБ ОЗУ.


  • Квантовано до 4 бит: 3,5 Ббайт или 3,5 ГБ, которые теперь могут поместиться в нашу 8 ГБ ОЗУ.


Кроме того, формат файла должен быть ггуф . Так. в нашем примере вам необходимо скачать веса в этом файле:

https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGUF/blob/main/llama-2-7b-chat.Q4_0.gguf

Тестирование на мини-ПК AMD

Сначала мы протестировали его на мини-ПК AMD и получили около 10 токенов в секунду. На самом деле это вполне прилично, и вы можете продолжать общение с LLM, не слишком долго ожидая.


Конфигурация системы:

  • AMD Райзен 5800H
  • 32 ГБ ОЗУ


Инструкция командной строки:

./main -m models/llama-2-7b-chat.Q4_0.gguf --color -ins -n 512 --mlock


llama_print_timings: load time = 661.10 ms

llama_print_timings: sample time = 234.73 ms / 500 runs ( 0.47 ms per token, 2130.14 tokens per second)

llama_print_timings: prompt eval time = 1307.11 ms / 32 tokens ( 40.85 ms per token, 24.48 tokens per second)

llama_print_timings: eval time = 50090.22 ms / 501 runs ( 99.98 ms per token, 10.00 tokens per second)

llama_print_timings: total time = 64114.27 ms

Тестирование на мини-ПК Intel

Затем мы протестировали на мини-ПК Intel и достигли скорости около 1,5 токенов в секунду. Это слишком медленно для плодотворного сеанса чата. Сравнение некорректное, поскольку Intel N5105 явно слабее AMD 5800H. Но это единственный мини-ПК Intel, который у меня есть. Если вы используете более мощный процессор Intel (например, Core i5-1135G7), вы должны получить сопоставимые результаты. Пожалуйста, сообщите о своих выводах в комментариях ниже.


Конфигурация системы:

  • 4 ядра 11-го поколения N5105 (до 2,9 ГГц), 4 ядра и 4 потока
  • 16 ГБ ОЗУ (2 ГБ видеопамяти для iGPU)


./main -m models/llama-2-7b-chat.Q4_0.gguf -ins --color -n 512 --mlock


llama_print_timings: load time = 14490.05 ms

llama_print_timings: sample time = 171.53 ms / 97 runs ( 1.77 ms per token, 565.49 tokens per second)

llama_print_timings: prompt eval time = 21234.29 ms / 33 tokens ( 643.46 ms per token, 1.55 tokens per second)

llama_print_timings: eval time = 75754.03 ms / 98 runs ( 773.00 ms per token, 1.29 tokens per second)

Стабильная диффузия

Художник рисует драконов с помощью ИИ от zbruceli

Монтаж

https://github.com/AUTOMATIC1111/stable-diffusion-webui


Также обратите внимание на эту страницу, касающуюся AMD ROCm.

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Install-and-Run-on-AMD-GPUs

Быстрый старт

export HSA_OVERRIDE_GFX_VERSION=9.0.0

source venv/bin/activate

./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half

Тест стабильной диффузии 1.5

./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half


Тест 1

  • Подсказка: «лошадь в лесу».


  • Шаги: 20, Сэмплер: DDIM, Масштаб CFG: 7, Начальное число: 519288240, Размер: 512x512, Хэш модели: 6ce0161689, Модель: v1-5-pruned-emaonly, Версия: v1.6.0


  • Затраченное время: 1 мин. 8,3 сек.

Тест стабильной диффузии XL 1.0

SDXL (максимальное разрешение 1024x1024) рекомендует иметь как минимум 12 ГБ видеопамяти, поэтому вам обязательно необходимо выполнить шаг «Подготовка 1», чтобы выделить 16 ГБ видеопамяти для iGPU. Итак, эта задача возможна только с мини-ПК за 400 долларов.

./webui.sh --upcast-sampling

Тест 1:

  • Подсказка: «лошадь в лесу».


  • Шаги: 20, Сэмплер: DDIM, Масштаб CFG: 7, Начальное значение: 1102941451, Размер: 1024x768, Хэш модели: 31e35c80fc, Модель: sd_xl_base_1.0, Версия: v1.6.0


  • Затраченное время: 7 мин. 41 секунда


Тест 2:

  • Подсказка: «Молодая Тейлор Свифт в красной толстовке верхом на лошади в лесу»


  • Отрицательная подсказка: уродства, деформация, деформированные глаза, деформированные зубы, деформированные пальцы, деформированное лицо, деформированные руки, деформированные.


  • Шаги: 20, Сэмплер: DDIM, Масштаб CFG: 7, Начальное значение: 2960206663, Размер: 1024x1024, Хэш модели: 31e35c80fc, Модель: sd_xl_base_1.0, Версия: v1.6.0


  • Затраченное время: 6 мин. 12,3 сек.

Windows 11 и AMD/директмл

Хотя эта статья посвящена операционным системам Linux, вы можете заставить Stable Diffusion работать и в Windows. Вот мои эксперименты:

https://github.com/lshqqytiger/stable-diffusion-webui-directml


  • Сначала вам необходимо установить Python 3.10.6.


  • Добавьте директор Python 3.10.6 в PATH.



  • Установите git и репозиторий клонов git


  • Запустите webui-user.bat из проводника.


Тест 1:

  • Подсказка: «лошадь в лесу».
  • Настройки: DPM++ 2M Karras, 512x512, шагов выборки 20.
  • Затраченное время: 1м19с

Выводы

Модели искусственного интеллекта с открытым исходным кодом на персональных устройствах от zbruceli


Итак, вам нравится запускать собственные генеративные модели искусственного интеллекта на новом мини-ПК за 300 долларов? Я надеюсь, что да.


Модели искусственного интеллекта с открытым исходным кодом, работающие на персональных устройствах, — одна из самых интересных областей для специалистов, поскольку ни у кого из нас не будет огромного пула графических процессоров для обучения базовой модели. Это позволит создать новое поколение приложений, которые будут одновременно очень умными и при этом сохранят конфиденциальность наших данных.


Что дальше?

  • Запустите его на встроенных устройствах даже меньшего размера: например, Raspberry Pi.


  • Запустите его на своих смартфонах (llama.cpp поддерживает iOS и Android).


И удачи в работе с искусственным интеллектом, открытым исходным кодом и возможностью установки на устройстве!