Эльбрус/нейросети

Материал из ALT Linux Wiki
< Эльбрус
Версия от 08:56, 18 июня 2023; Алексей Михайлюк (обсуждение | вклад) (Новая страница: « __TOC__ <h1>ggml</h1> <div> ggml - Это тензорная библиотека для машинного обучения. В примере ниже используется для работы llama(Large Language Model) </div> <div> Для работы с ggml и llama.cpp необходимо выполнить следующие действия: </div> <pre>git clone https://github.com/alexmihalyk23/llama.cpp-e2k cd llama.cpp-e2k make -j8</pre> <di...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

ggml

ggml - Это тензорная библиотека для машинного обучения. В примере ниже используется для работы llama(Large Language Model)

Для работы с ggml и llama.cpp необходимо выполнить следующие действия:

git clone https://github.com/alexmihalyk23/llama.cpp-e2k
cd llama.cpp-e2k
make -j8
Для загрузки необходимой модели можно воспольщоваться скриптом:
./download-koala.sh
Для тестового диалога можно воспользоваться следующей командой, которая запустит чат-бота
./alpaca.sh

ncnn

ncnn - Это высокопроизводительный фреймворк нейросетевого вывода, оптимизированный для мобильной платформы. Также данный фреймворк поддерживает vulkan что позволяет запускать нейросети на видеокартах AMD.

Для установки необходимо выполнить следующие действия:

git clone https://github.com/Tencent/ncnn.git
cd ncnn
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DNCNN_VULKAN=ON ..
make -j8
sudo make install
На данный момент не реализованна поддержка многопоточности под Эльбрус
Для запуска теста можно запустить следующий тест:
cd ../examples
../build/examples/squeezenet ../images/256-ncnn.png

Stable-Diffusion-NCNN

Для работы Stable-Diffusion необходимо установить ncnn

Stable-Diffusion-NCNN - Это программное обеспечение, создающее изображения по текстовым описаниям, с открытым исходным кодом. Данная реализация поддерживает vulkan благодаря работе с ncnn.

Для установки необходимо выполнить следующие действия:

git clone https://github.com/EdVince/Stable-Diffusion-NCNN.git
cd Stable-Diffusion-NCNN/x86/linux
sed -i 's/net.opt.use_vulkan_compute = true/net.opt.use_vulkan_compute = false/' src/decoder_slover.cpp
sed  -i 's/net.opt.use_vulkan_compute = false/net.opt.use_vulkan_compute = true/' src/decoder_slover.cpp
sed  -i 's/net.opt.use_fp16_storage = false/net.opt.use_fp16_storage = true/' src/decoder_slover.cpp
sed  -i 's/net.opt.use_bf16_storage = true/net.opt.use_bf16_storage = false/' src/decoder_slover.cpp
sed  -i 's/net.opt.use_vulkan_compute = false/net.opt.use_vulkan_compute = true/' src/diffusion_slover.cpp
mkdir build cd build
cmake ..
make -j8

Для работы с Stable-Diffusion необходимо скачать модели AutoencoderKL-fp16.bin, FrozenCLIPEmbedder-fp16.bin, UNetModel-MHA-fp16.bin, AutoencoderKL-encoder-512-512-fp16.bin. Google Диск И поместить в папку assets, которая располагается в папке build.

Для запуска генерации можете выполнить
./stable-diffusion-ncnn

Если хотите генерировать что-то свое, то можно изменить файл magic.txt (на странице github есть более подробное описание)