Yapay sinir ağı YaLM 100B pratikte.

Программирование

Haziran ayının sonunda Yandex,
YaLM 100B adlı 100 milyar parametreli bir sinir ağını kamuoyunun hizmetine sundu . Kamusal alandaki en büyük GPT benzeri sinir ağıdır. Nasıl öğrettiklerini, en iyi örnekleri gösterdiklerini ve nöronun neler yapabileceğini anlatıyor. Ama pratikte çok iyi ve evde uygulanabilir mi? Makale bu konuda sessiz, ayrıca yaklaşık 200 Gb GPU RAM gerektiğinden çalıştırılması ve kontrol edilmesi o kadar kolay değil. Habre ile ilgili
bu yorum durumu en doğru şekilde ortaya koymaktadır
.

İddiaya göre, Yandex’de bu kadar akıllı insanlar vardı ve normal bir Nasıl Yapılır’ı bile yayınlamadılar. Büyük bir model için api yoktur, sıradan insanlar için (Google Colab’da) hazır, soyulmuş orta veya küçük bir model yoktur. Modelin nasıl kurulacağı, metnin nasıl oluşturulacağı konusunda herhangi bir örnek verilmemiştir. Sadece makale inekler için birkaç nüansı gösteriyor ve hepsi bu. Bankanın bunu “C” harfi ile nasıl yaptığına yakından bakmak ve aynısını yapmak yeterlidir. Bu modelin başarısız deneylerden biri olduğu izlenimini edindim, onu çöpe atmak üzücüydü, bu yüzden Yandex’in ne kadar harika modeller yarattığını göstermek için Açık Kaynak’ta yayınlandı ve dahası, açık kaynak!

İnternette yalm nasıl çalıştırılır, hatta çevrimiçi olarak nasıl denenir bir sürü soru var ama bunun bir cevabı yok. Bu soruları soran kullanıcılar arasındaydım. Ve çözmeye koy. Finansal robotlar için metin oluşturmanın bir yoluna gerçekten ihtiyacım olduğundan beri. Böylece sadece değerleri tahmin etmekle kalmaz, aynı zamanda finansal raporlara dayalı olarak metinde yorum yapabilirler. Özünde, finansal analistlerin yaptığıyla aynı olacak, ancak yapay zeka kullanımıyla. Yalm çalıştırmanın iki yolu vardır.
Bulutta bir sunucu kiralayın200+ Gb GPU RAM ile veya kodu sonlandırın ve derin hızlı sıfır boşaltma kullanarak çalıştırın (GPU, sinir ağının bir bölümünü sırayla işlediğinde ve geri kalanı CPU RAM veya NVMe’de depolandığında). Birincisi çok pahalı, saatte yaklaşık 2500 ruble veya ayda 1,7 milyon. İkinci bilinmeyen, çünkü depodaki kod sağlanmamıştır, yalnızca
yapılması zor olmayan depo sorunuyla ilgili ipuçları verilmiştir. Basitten başlayalım.

YaLM 100B Lansman Talimatları

1. Örneğin burada 200 GB GPU RAM kiralıyoruz .

Yapay sinir ağı YaLM 100B pratikte.

En az 200 GB toplam video belleğine ihtiyacınız var. 8×40 = 320 GB. Sadece bu uyuyor. 200’den az imkansızdır, daha fazlası mümkündür. Ok CPU RAM’i gösterir, ona bakmıyoruz. O herhangi biri olabilir.

Yaklaşık 300 GB’lık bir diski belirtiyoruz, böylece yedek ve tercihen hızlı bir diskle, çünkü. Onlarca gigabayt veri ona ve oradan aktarılacaktır.

Yapay sinir ağı YaLM 100B pratikte.Kaynaklarda oluştururken Ubuntu ML’yi (Makine Öğrenimi) seçin. Bu zorunludur, böylece video kartları yapılandırılır ve ek olarak hiçbir şeyin yüklenmesi gerekmez.

Sunucu aktif edildikten sonra (5-10 dakika sürebilir), sunucu sayfasındaki web konsolundan veya ssh üzerinden sunucuya bağlanın ve komutu yürütün.

nvidia-smi

Sonuç, ekran kartları, sürücü sürümü ve cuda içeren bir tablo olmalıdır. Yaklaşık olarak böyle.
Yapay sinir ağı YaLM 100B pratikte.Sürücü sürümü başlığında ve nerede. Sol tarafta cihaz numaraları, ortada cihaz hafızasının boyutu var. Bu bilgilere sahip değilseniz, sunucuyu yanlış kaynaktan topladınız. Yukarıda açıklandığı gibi Ubuntu ML (Makine Öğrenimi) gereklidir.

2. Depoyu YaLM ile klonlayın

sudo git klonu https://github.com/yandex/YaLM-100B/ yalm
cd yalm

Daha sonra docker yapılandırmasını düzenlemek zorunda kalmamak için ana klasörünüze klonlayın. Başka bir yere klonlanmışsa,
buraya gidin ve klonlandığı yere giden yolu ekleyin.

3. Kontrol noktalarını indirin (temel model eğitim bilgileri)

sudo chmod +x ./download/download.sh
sudo bash ./download/download.sh

Bu yaklaşık bir saat sürecektir. Boşuna zaman kaybetmemek için yeni bir ssh bağlantısı oluşturuyoruz ve buna paralel olarak bir docker konteyneri oluşturmaya başlıyoruz.

4. nvidia’yı yükleyin – docker 2

Normal docker uygun değil,
nvidia-docker2 gerekli .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit

5. YaLM için bir konteyner inşa etmek

cd yalm
sudo chmod +x ./docker/*
sudo bash ./docker/build.sh

Ayrıca yaklaşık bir saat.

Hayat kesmek. Kontrol noktalarını indirebilir, liman işçisi kurabilir ve tek bir ekran kartıyla ucuz bir sunucuda bir kapsayıcı oluşturabilirsiniz. Zamanla aynı olacak, böylece biraz tasarruf edebilirsiniz. Ucuz bir sunucuda topladıktan sonra onu sileriz ve ucuz bir sunucudan bir disk kullanarak bir savaş sunucusu oluştururuz. O zaman montajı beklemek ve kontrol noktalarını pompalamak için fazladan ödeme yapmayacaksınız.

6. İçerik hazırlayın

6.1 Kontrol Noktaları

Kontrol noktalarının indirilmesi tamamlandıktan sonra, bunları yapılandırmalara kaydırmanız gerekir. İki yol vardır, parametreleri düzeltin veya kontrol noktalarını aktarın. Kontrol noktalarının projenin ana dizininde olması beklenen her yerde, indirilenler yukarıdaki indirme klasöründen aktarılmalıdır. yalm klasöründe olmak yürütür

mv ./download/yalm100b_checkpoint ./

Veya örnek dosyalardaki dosyaların yollarını değiştirin
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9

6.2 Ekran kartları

Video kartlarının doğru ayarlanıp ayarlanmadığını kontrol ediyoruz. Sekiz ekran kartınız varsa, hiçbir şeyin değiştirilmesi gerekmez. Rakam farklıysa o zaman bu satırları değiştiriyoruz
Yapay sinir ağı YaLM 100B pratikte.İkinci satırda kullanılan cihazların numaraları (onlara daha önce başlatmış olduğunuz nvidia-smi’den bakabilirsiniz). Dördüncüsü, sayıları.

7. Docker konteynerini çalıştırın

yalm klasöründe olmak, komutu yürütün

sudo bash ./docker/run.sh

Her şey yolundaysa, ana dizininizdeki yalm klasörüne gitmeniz gereken bir konteynere götürüleceksiniz.

cd ~/yalm

8. YaLM 100B’den örneği çalıştırın

Örneklerden birini başlatmaya hazırız. Burada anlatılıyorlar
.

chmod +x ./examples/generate_interactive.sh
./examples/generate_interactive.sh

Sabırlı olun, GPT2 modeli oluşturulana ve kontrol noktalarından gelen ağırlıklar yüklenene kadar 10-15 dakika daha beklemeye devam ediyor.
Yapay sinir ağı YaLM 100B pratikte.

Oluşturma tamamlandığında MegatronML, metin oluşturmak için bir bağlam girmenizi isteyecektir. Yazarken dikkatli olun. Belirli koşullar altında bir hata oluşur, program çöker ve montajı yeniden başlatmanız gerekir. Bu nedenle, bir dosyadan metin alan örnekler kullanmak daha iyidir.

9. Çalışmanın sonuçları

Yapay sinir ağı YaLM 100B pratikte.
Yapay sinir ağı YaLM 100B pratikte.İlgi çekici görünüyor. Tabii ki, bunlar sadece iyi örnekler. Testi farklı örnekler üzerinde çalıştırdım. Beklendiği gibi, bağlam ne kadar iyi olursa, o kadar anlamlı metin üretilecektir. Deneysel nesillerin tam seti bağlantılarda görüntülenebilir:

Fiyat olarak, eğitimden ve hazırlıktan nesle kadar farklı kapasitelerde sunucu kiralamak bana yaklaşık 9 bin rubleye mal oldu. Özel bir hayal kırıklığı, her şeyi anında üretememenizdi. Sunucunun saat başına maliyeti göz önüne alındığında, başlaması çok uzun zaman alıyor ve metin istediğimiz kadar hızlı üretilmiyor.
Yapay sinir ağı YaLM 100B pratikte. 

200Gb GPU RAM olmadan YaLM nasıl çalıştırılır?

Yapılandırmaya derin hızlı sıfır boşaltma eklemeniz gerekir. Ne hakkında konuştuğumuzu bilenler için bunu yapmak çok kolay olacak. Diğerleri için bu hiç de önemsiz bir görev değildir. Boşaltmanın CPU RAM’de veya NVMe’de olabileceğini bilmek önemlidir. Şu anda NVMe’yi unutabilirsiniz, çünkü. çok büyük miktarda veri işleniyor ve disk bununla baş edemiyor. Sıfır boşaltma CPU’su daha gerçektir. Doğru, bunun için stokta 200+ Gb CPU RAM’e ihtiyacınız var ve bu da ucuz değil. Ve iki ekran kartında paralel hale getirmek henüz mümkün olmadığından, yaklaşık 20-40 dakika boyunca bir metin oluşturulacaktır. Aşağıdaki ekran görüntüsünde görebileceğiniz gibi, nesile yalnızca bir ekran kartı dahil edildi ve daha sonra belleğin yalnızca dörtte biri için. 24 GB’ın tamamının neden kullanılmadığı görülmeye devam ediyor,
Yapay sinir ağı YaLM 100B pratikte.Sonuç olarak, bir RTX 3070 TI üzerinde bile çalıştırmanın mümkün olduğunu söyleyeceğim. Ancak bunda özel bir anlam yoktur, çünkü. NVMe, 96 GB RAM’in ekinde bulunan takasta 150 GB veriyi hızlı bir şekilde işlemenize izin vermez.
Yapay sinir ağı YaLM 100B pratikte.

Özetliyor

Tabii ki, yine de en uygun başlatma yollarını bulmaya çalışacağım. Ancak şu ana kadar YaLM 100b’nin görevlerim için çok pahalı / çok yavaş olduğu sonucuna vardım. Aynı paraya insanlar çok daha fazla ve çok daha iyi yazacaklar. Ama bence geçici, göreceğiz. Yalm’ı başlatma, kurma konusunda yardıma ihtiyacınız varsa veya bağlam örneklerinizdeki sonuçları görmek istiyorsanız, postaya veya telgrafa yazın.

pskucherov
Rate author
Add a comment

  1. Olha

    Статья на Мега актуальную тему! Спасибо.

    Yanıtla
  2. Данила

    Крутая статья! Спасибо автору!

    Yanıtla
  3. Дмитрий

    СПАСИБО !!!
    три дня эту информацию искал
    нет подобного о RuGPT3 и Порфириче?

    Yanıtla