paint-brush
GPU'su Yoksullar için 300 Dolarlık Yapay Zekalı Bilgisayar Nasıl Oluşturulurile@zbruceli
3,251 okumalar
3,251 okumalar

GPU'su Yoksullar için 300 Dolarlık Yapay Zekalı Bilgisayar Nasıl Oluşturulur

ile Bruce Li12m2024/03/24
Read on Terminal Reader

Çok uzun; Okumak

Ancak GPU'su zayıf olan bizler için kendi yapay zeka bilgisayarımıza sahip olmak pahalı bir hayal gibi görünüyor. Macbook M3Max mı? 3200 dolar, ah! Nvidia 4090 mı? 1850$; Bir tane alabilsen bile bu acı verir. Microsoft Surface Dizüstü Bilgisayar 6? 1200 dolardan başlıyor, yine de çok fazla. Peki ya size 300 dolara kullanışlı bir yapay zeka bilgisayarı alabileceğinizi söylesem? İlgili? Kendi monitörünüzü, klavyenizi ve farenizi sağlamanız gerekir. Ve Linux işletim sistemi, sürücüler, ara yazılımlar ve konfigürasyonlar üzerinde biraz uğraşmanız gerekiyor.
featured image - GPU'su Yoksullar için 300 Dolarlık Yapay Zekalı Bilgisayar Nasıl Oluşturulur
Bruce Li HackerNoon profile picture


Giriş

Açık kaynaklı yapay zeka modellerini yerel olarak kendi bilgisayarlarımızda çalıştırmak bize mahremiyet, sonsuz müdahale olanakları ve büyük şirketlerden özgürlük sağlar. Bu neredeyse bir ifade özgürlüğü meselesidir.


Ancak GPU'su zayıf olan bizler için kendi yapay zeka bilgisayarımıza sahip olmak pahalı bir hayal gibi görünüyor. Macbook M3 Maks ? 3200 dolar, ah! Nvidia 4090 ? 1850$; Bir tane alabilsen bile bu acı verir. Microsoft Yüzey Dizüstü Bilgisayar 6 ? 1200 dolardan başlıyor, yine de çok fazla.


Peki ya size 300 dolara kullanışlı bir yapay zeka bilgisayarı alabileceğinizi söylesem? İlgili? Kendi monitörünüzü, klavyenizi ve farenizi sağlamanız gerekir. Ve Linux işletim sistemi, sürücüler, ara yazılımlar ve konfigürasyonlar üzerinde biraz uğraşmanız gerekiyor.


Açıklığa kavuşturmak gerekirse, büyük üretken yapay zeka modellerinin "eğitiminden" veya "ince ayarından" söz etmiyoruz. Açık kaynaklı LLM'nin (örneğin büyük dil modelleri) nasıl çalıştırılacağına odaklanacağız. Lama 2 7B) yerel olarak kullanmanın yanı sıra görüntüleri oluşturma Kararlı Difüzyon .


Şimdi devam edelim.

İyi (ve Ucuz) Bir Yapay Zeka Bilgisayarını Ne Yapar?

zbruceli'den yüksek hızlı ara bağlantılar


Evdeki yapay zeka bilgisayarının ana kullanım durumlarından birinin çalıştığını varsayalım. büyük dil modelleri veya LLM çıkarımı. Bu görevin aslında tamamı CPU'da yapılabileceği için GPU'ya ihtiyacı yoktur. lama.cpp normal CPU kullanarak çok hızlı LLM çıkarımına olanak sağlayan açık kaynaklı bir yazılımdır. Başlangıçta Apple M serisi CPU'lu Macbook için tasarlandı, ancak Intel/AMD CPU'larda da çalışıyor.


Ancak daha hızlı bir çıkarım hızı için aşağıdakilere ihtiyacınız vardır. Aksi takdirde, LLM her seferinde bir jeton dağıtırken avucunuzda saçların büyümesini izlemek gibi olacaksınız.


  • Hızlı CPU'dan bellek bant genişliğine
  • Daha hızlı DRAM (en azından DDR4, DDR5 daha da iyi olacaktır)
  • Özellikle daha büyük modelleri (7B'nin ötesinde) çalıştırmak istiyorsanız çok fazla bellek (minimum 16 GB gibi)


Kararlı Yayılma ile görüntü oluşturmak için GPU gücüne ihtiyacınız vardır. Ancak bunun için çok gelişmiş bir GPU'ya sahip olmanıza gerek yok. Zaten ev bilgisayarlarınızda bulunan entegre GPU'dan yararlanabilirsiniz:


  1. CPU, GPU ve yüksek hızlı belleği entegre eden M1/M2/M3 CPU'lu tüm Mac'ler (gerçekten iyidirler, ancak fiyat nedeniyle bu makalenin kapsamı dışındadır)


  2. Bütçe dostu mini bilgisayarlar için CPU ve GPU'yu entegre eden AMD APU (örn. Ryzen 7 5700U). Bu makalenin odak noktası bu olacak.


  3. CPU ve GPU'yu da entegre eden Intel CPU (örn. Core i5-1135G7). Bunlar, mini bilgisayarın tamamı için 300 dolarlık bütçenin biraz üzerindedir, ancak okuyucular bunları kendi başlarına daha fazla keşfedebilirler.

Ve 300 Dolarlık Yapay Zeka Bilgisayarı mı?

Aşağıdaki özelliklere sahip AMD tabanlı bir Mini PC genellikle 300 doların altında bir fiyata satılmaktadır. Belirli bir markayı desteklemek istemiyorum, bu yüzden kendiniz arayabilirsiniz:

  • AMD Ryzen7 5800H (8C/16T, 4,4 GHz'e kadar)
  • 16 GB RAM DDR4 (32 GB önerilir)
  • 512 GB NVME M.2 SSD


Biraz savurganlık yaptım ve 32 GB RAM ve 1 TB SSD'ye (geri kalan her şey eşit) sahip 400 dolarlık modeli tercih ettim. Bunun ana nedeni, açık kaynaklı Yüksek Lisans'lar üzerinde araştırma yapmam ve Stabil Difüzyon'un yanı sıra daha büyük modelleri de çalıştırmak istememdir. Ancak bu makaledeki hemen hemen her şeyi 300 dolarlık bilgisayarla yapabilmeniz gerekir.

Hazırlık 1: Yeterli iGPU Belleği Ayırın

AMD APU'ları için Ryzen 7 5800H , bellek CPU ve iGPU (entegre GPU) arasında paylaşılır. Benim durumumda toplam 32 GB RAM'im var, ancak iGPU için varsayılan tahsis yalnızca 3 GB'tı! Bu, bilgisayardan bilgisayara değişir ve üretim sırasında BIOS'ta yapılandırılır.


Ana kullanım durumunuza bağlı olarak bunu değiştirmeniz gerekir:

  1. Yalnızca Yüksek Lisans çıkarımını çalıştırmanız gerekiyorsa bu hazırlık adımının tamamını atlayabilirsiniz. LLM çıkarımının yalnızca CPU kullanması gerekeceğinden ve daha büyük LLM modellerini çalıştırabilmek için RAM'in çoğunu CPU için kaydetmeniz gerekir.


  2. Koşman gerekiyorsa Kararlı Difüzyon , özellikle SDXL (1024x1024), iGPU için sistemin izin verdiği kadar RAM ayırmanız gerekir (genellikle toplam RAM'in yarısı)


Benim durumumda, hem Stable Diffusion XL hem de LLM çıkarımını aynı mini bilgisayarda çalıştırmak istiyorum. Bu nedenle GPU'ya 16GB (toplam 32GB'tan) ayırmak istiyorum.


BIOS'taki ayarları değiştirerek bunu başarabilirsiniz. Tipik olarak bir üst sınır vardır ve varsayılan ayar üst sınırdan çok daha düşük olabilir. Bilgisayarımda üst sınır 16 GB veya mevcut toplam RAM'in yarısı kadardı.

İyi BIOS

Bilgisayarınızın BIOS'u bu tür ayarları destekliyorsa devam edin ve istediğiniz sayıya geçin. BIOS'umda böyle bir ayar yok.

Zayıf BIOS: Evrensel AMD aracını kullanın

BIOS'unuzda bu ayar yoksa lütfen "AMD Ryzen™ APU'da GPU Bellek Tahsisinin Kilidi Açılıyor mu?" başlıklı güzel talimatı izleyin. Winston Ma tarafından. Denedim ve işe yaradı, artık 16 GB VRAM'im var.


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

Hazırlık 2: Sürücüleri ve Ara Yazılımları Yükleme

Zbruceli'den karmaşık konfigürasyonlar

Yıldızları Hizala

AMD'ler ROCm (Radeon Open Compute platformu), Nvidia'nınkine benzer CUDA , geliştiricilerin ADM'nin GPU'larının gücünden yararlanmasını sağlayan bir sürücü ve ara yazılım paketidir. Ve genellikle AI uygulamalarının GPU hızlandırması elde etmek için ROCm'ye ihtiyacı vardır.


AMD'nin ROCm'sini kurmak ve çalışmasını sağlamak için GPU donanımı, Linux dağıtımı, çekirdek, python, HIP sürücüsü, ROCm kütüphanesi ve pytorch sürümlerinin uyumlu olduğundan emin olmalısınız. En az acıyı ve ilk seferde maksimum başarı olasılığını istiyorsanız, önerilen ve doğrulanan kombinasyonlara sadık kalın.

Önkoşul

Uyumlu Linux işletim sistemi ve çekirdek sürümlerini edinmek ve yüklemek için lütfen aşağıdaki bağlantıyı kontrol edin. Başlangıçta, en sevdiğim Linux işletim sistemini ve varsayılan Linux çekirdeğini kurma hatasını yaptım ve uyumluluk sorunlarını çözmek için geriye doğru yürümek büyük bir acıydı. Sadece resmi olarak desteklenen kombinasyonları kullanarak bu acının önüne geçebilirsiniz.


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


AMD ROCm İşletim Sistemi uyumluluk tablosu

ROCm Kurulumu

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


Kurulumun tamamı iyi tamamlanırsa, rocminfo yazabilirsiniz ve buna benzer bir şey görünecektir (yalnızca en alakalı parçaları vurgulanmış sarı renkte kestim):

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 Ortamı

Python bağımlılığı oldukça yanıltıcı olabilir, bu nedenle uygun bir ortam oluşturmak iyi bir uygulamadır. İkisinden birini kullanabilirsiniz konda veya venv bu amaç için.

  • source venv/bin/activate
  • conda activate llm

Pytorch

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


Pytorch uyumluluk tablosu

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

HSA Üzerine Yazma

Aşağıdakiler entegre grafikli APU'lara özeldir. ROCm tarafından resmi olarak desteklenmeseler de aşağıdakilerin işe yaradığı kanıtlandı.


export HSA_OVERRIDE_GFX_VERSION=9.0.0

Doğrulama nasıl yapılır

Şimdi tüm karmaşık adımlardan sonra ROCm'nin Torch ile çalışıp çalışmadığını test edelim. Ve ROCm'nin Pytorch'un amacı doğrultusunda CUDA gibi "rol yaptığını" görebilirsiniz.


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

Yüksek Lisans Çıkarımı

zbruceli'nin chatbot'uyla konuşuyor


Yeni yapılandırılmış 300 ABD doları değerindeki yapay zeka bilgisayarımız için kolay bir şeyle başlayalım: büyük bir dil modelini yerel olarak çalıştırmak. Popüler açık kaynak modlarından birini seçebiliriz: LLaMA 2 sohbet için optimize edilmiş 7B parametreleriyle.


Ayrıca, küçük Yüksek Lisans'ları da deneyebilirsiniz. Mistral , QWen , Zefir , Ve Vicuna . UC Berkeley'in çok kullanışlı "chatbot arena lider tablosunda" daha kaliteli LLM'leri burada bulabilirsiniz. LMSYS laboratuvarları .


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

Lama.cpp

Kullanıyor olacağız lama.cpp Başlangıçta CPU için optimize edilmiş ve daha sonra GPU'yu da destekleyen. Deneyimlerime göre, LLM çıkarımı CPU üzerinde iyi çalışıyor ve 300 $'lık yapay zeka makinesine entegre edilenler gibi mütevazı bir GPU ile kazanılacak çok az şey var.


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


Öncelikle wget ve git kurmanız gerekiyor. Daha sonra llama.cpp'yi derlemek ve yüklemek için adımları izleyin.


sudo apt-get install build-essential

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

cd llama.cpp

make

Model Ağırlıklarını İndirin

LLM'leri pahalı GPU'lara sahip bulut sunucular yerine ucuz makinemizde çalıştırmak için, modellerin RAM alanına sığabilmeleri için "sıkıştırılmış" bir versiyonunu kullanmamız gerekiyor. Basit bir örnek olarak, bir LLaMA-2 7B modelinin her biri float16 (2 bayt) ile temsil edilen 7B parametresi vardır.


  • Float 16: 14B bayt veya 14GB, 8GB RAM'imize sığmaz.


  • 4 bit olarak nicelendirilmiş: 3,5 milyar bayt veya 3,5 GB, artık 8 GB RAM'imize sığabilir.


Ayrıca dosya formatı şöyle olmalıdır: gguf . Bu yüzden. örneğimizde, bu dosyadaki ağırlıkları indirmeniz gerekiyor:

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

AMD Mini PC'de test edin

İlk olarak AMD mini PC'de test ettik ve saniyede yaklaşık 10 token elde ettik. Bu aslında oldukça makul ve çok fazla beklemeden LLM ile sohbete devam edebilirsiniz.


Sistem yapılandırması:

  • AMD Ryzen 5800H
  • 32GB RAM


Komut satırı talimatı:

./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 Mini PC'de test edin

Daha sonra bir Intel mini bilgisayarda test ettik ve saniyede yaklaşık 1,5 token elde ettik. Bu verimli bir sohbet oturumu için biraz fazla yavaş. Intel N5105, AMD 5800H'den açıkça daha zayıf olduğu için bu adil bir karşılaştırma değil. Ama elimdeki tek Intel mini bilgisayar bu. Daha güçlü Intel CPU'yu (örneğin, Core i5-1135G7) kullanırsanız benzer sonuçlar elde etmelisiniz. Lütfen bulgularınızı aşağıdaki yorumlarda bildirin.


Sistem yapılandırması:

  • 11. Nesil 4 Çekirdek N5105 (2,9 Ghz'ye kadar) 4 Çekirdek ve 4 İş Parçacığı
  • 16 GB RAM (iGPU için 2 GB VRAM)


./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)

Kararlı Difüzyon

Sanatçı zbruceli'den yapay zekayla ejderha çiziyor

Kurulum

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


AMD ROCm ile ilgili olarak bu sayfaya da dikkat edin

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

Hızlı başlangıç

export HSA_OVERRIDE_GFX_VERSION=9.0.0

source venv/bin/activate

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

Kararlı Difüzyon 1.5 Testi

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


Test 1

  • Komut istemi: “ormandaki at”


  • Adımlar: 20, Örnekleyici: DDIM, CFG ölçeği: 7, Tohum: 519288240, Boyut: 512x512, Model karması: 6ce0161689, Model: v1-5-pruned-emaonly, Sürüm: v1.6.0


  • Harcanan süre: 1 dk. 8,3 saniye

Kararlı Difüzyon XL 1.0 Testi

SDXL (maksimum çözünürlük 1024x1024) en az 12 GB VRAM önerir; bu nedenle iGPU'ya 16 GB VRAM tahsis etmek için kesinlikle Hazırlık 1 adımını tamamlamanız gerekir. Yani bu görev yalnızca 400 dolarlık mini bilgisayarla mümkün.

./webui.sh --upcast-sampling

Test 1:

  • Komut istemi: “ormandaki at”


  • Adımlar: 20, Örnekleyici: DDIM, CFG ölçeği: 7, Tohum: 1102941451, Boyut: 1024x768, Model karması: 31e35c80fc, Model: sd_xl_base_1.0, Sürüm: v1.6.0


  • Harcanan süre: 7 dk. 41 saniye


Test 2:

  • Komut istemi: “kırmızı kapüşonlu genç Taylor Swift ormanda ata biniyor”


  • Olumsuz ipucu: şekil bozuklukları, şekil bozukluğu, deforme gözler, deforme dişler, deforme parmaklar, deforme yüz, deforme eller, deforme


  • Adımlar: 20, Örnekleyici: DDIM, CFG ölçeği: 7, Tohum: 2960206663, Boyut: 1024x1024, Model karması: 31e35c80fc, Model: sd_xl_base_1.0, Sürüm: v1.6.0


  • Harcanan süre: 6 dk. 12,3 saniye

Windows 11 ve AMD/directml

Bu makale Linux işletim sistemlerine odaklansa da, Stabil Difüzyonun Windows'ta da çalışmasını sağlayabilirsiniz. İşte denemelerim:

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


  • Öncelikle Python 3.10.6'yı kurmanız gerekiyor.


  • PATH'e Python 3.10.6 yöneticisini ekleyin.



  • Git ve git clone repo'yu yükleyin


  • webui-user.bat dosyasını dosya gezgininden çalıştırın


Test 1:

  • Komut istemi: “ormandaki at”
  • Ayarlar: DPM++ 2M Karras, 512x512, örnekleme adımları 20
  • Harcanan süre: 1dk19s

Sonuçlar

zbruceli'den kişisel cihazlarda açık kaynaklı yapay zeka modelleri


Peki, 300 dolarlık yeni mini bilgisayarınızda kendi üretken yapay zeka modellerinizi çalıştırırken eğleniyor musunuz? Umarım yaparsın.


Kişisel cihazlarda çalışan açık kaynaklı yapay zeka modelleri, tamirciler için en heyecan verici alanlardan biridir çünkü hiçbirimiz temel bir modeli eğitmek için devasa GPU havuzuna sahip olamayacağız. Bu, hem süper akıllı hem de veri gizliliğimizi koruyan yeni nesil uygulamalara olanak tanıyacak.


Sırada ne var?

  • Daha da küçük gömülü cihazlarda çalıştırın: örneğin Raspberry Pi


  • Akıllı telefonlarınızda çalıştırın (llama.cpp, iOS ve Android'i destekler)


Yapay zeka, açık kaynak ve cihaz üzerinde keyifli çalışmalar!