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.
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.
Şimdi devam edelim.
İyi (ve Ucuz) Bir Yapay Zeka Bilgisayarını Ne Yapar?
Evdeki yapay zeka bilgisayarının ana kullanım durumlarından birinin çalıştığını varsayalım.
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:
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)
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.
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
Ana kullanım durumunuza bağlı olarak bunu değiştirmeniz gerekir:
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.
Koşman gerekiyorsa
Kararlı Difüzyon , özellikleSDXL (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.
Hazırlık 2: Sürücüleri ve Ara Yazılımları Yükleme
Yıldızları Hizala
AMD'ler
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.
ROCm Kurulumu
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
-
source venv/bin/activate
-
conda activate llm
Pytorch
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.
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ı
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:
Ayrıca, küçük Yüksek Lisans'ları da deneyebilirsiniz.
Lama.cpp
Kullanıyor olacağız
Ö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:
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
Kurulum
AMD ROCm ile ilgili olarak bu sayfaya da dikkat edin
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:
- Öncelikle Python 3.10.6'yı kurmanız gerekiyor.
- PATH'e Python 3.10.6 yöneticisini ekleyin.
- Önemli: Python yolu en üstteki yol olmalıdır
- https://realpython.com/add-python-to-path/
- 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
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!