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. ? 3200 dolar, ah! ? 1850$; Bir tane alabilsen bile bu acı verir. ? 1200 dolardan başlıyor, yine de çok fazla. Macbook M3 Maks Nvidia 4090 Microsoft Yüzey Dizüstü Bilgisayar 6 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. 7B) yerel olarak kullanmanın yanı sıra görüntüleri oluşturma . Lama 2 Kararlı Difüzyon Ş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. veya LLM çıkarımı. Bu görevin aslında tamamı CPU'da yapılabileceği için GPU'ya ihtiyacı yoktur. 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. büyük dil modelleri lama.cpp 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: 5800H (8C/16T, 4,4 GHz'e kadar) AMD Ryzen7 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 , 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. Ryzen 7 5800H 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 , özellikle (1024x1024), iGPU için sistemin izin verdiği kadar RAM ayırmanız gerekir (genellikle toplam RAM'in yarısı) Kararlı Difüzyon SDXL 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 Yıldızları Hizala AMD'ler (Radeon Open Compute platformu), Nvidia'nınkine benzer , 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. ROCm CUDA 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 ROCm Kurulumu https://rocm.docs.amd.com/en/latest/deploy/linux/os-native/install.html Kurulumun tamamı iyi tamamlanırsa, yazabilirsiniz ve buna benzer bir şey görünecektir (yalnızca en alakalı parçaları vurgulanmış sarı renkte kestim): 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 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 veya bu amaç için. konda venv source venv/bin/activate conda activate llm Pytorch https://pytorch.org/get-started/locally/ 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ı 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: sohbet için optimize edilmiş 7B parametreleriyle. LLaMA 2 Ayrıca, küçük Yüksek Lisans'ları da deneyebilirsiniz. , , , Ve . UC Berkeley'in çok kullanışlı "chatbot arena lider tablosunda" daha kaliteli LLM'leri burada bulabilirsiniz. . Mistral QWen Zefir Vicuna LMSYS laboratuvarları https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard Lama.cpp Kullanıyor olacağız 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. lama.cpp https://github.com/ggerganov/llama.cpp Öncelikle ve kurmanız gerekiyor. Daha sonra llama.cpp'yi derlemek ve yüklemek için adımları izleyin. wget git 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: . Bu yüzden. örneğimizde, bu dosyadaki ağırlıkları indirmeniz gerekiyor: gguf 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 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. Ö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!