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.
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.
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.
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:
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.
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
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ı.
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.
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.
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.
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.
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 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
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.7
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
Ş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
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.
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
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.
Ayrıca dosya formatı şöyle olmalıdır:
İ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ı:
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
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ı:
./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)
AMD ROCm ile ilgili olarak bu sayfaya da dikkat edin
export HSA_OVERRIDE_GFX_VERSION=9.0.0
source venv/bin/activate
./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half
./webui.sh --upcast-sampling --skip-torch-cuda-test --precision full --no-half
Test 1
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:
Test 2:
Bu makale Linux işletim sistemlerine odaklansa da, Stabil Difüzyonun Windows'ta da çalışmasını sağlayabilirsiniz. İşte denemelerim:
Test 1:
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?
Yapay zeka, açık kaynak ve cihaz üzerinde keyifli çalışmalar!