Ende Juni hat Yandex
ein neuronales Netzwerk mit 100 Milliarden Parametern namens YaLM 100B für die Öffentlichkeit freigegeben . Es ist das größte GPT-ähnliche neuronale Netzwerk im öffentlichen Bereich. Es erzählt, wie sie unterrichteten, die besten Beispiele zeigten und wozu das Neuron fähig ist. Aber ist es so gut in der Praxis und zu Hause anwendbar? Der Artikel schweigt darüber, außerdem ist es nicht so einfach, es auszuführen und zu überprüfen, da ungefähr 200 GB GPU-RAM erforderlich sind. Dieser Kommentar zu Habré
zeigt die Situation am genauesten
.
Angeblich sind in Yandex all diese schlauen Leute, und sie haben nicht einmal eine normale Anleitung gepostet. Es gibt keine API für ein großes Modell, es gibt kein fertiges abgespecktes mittleres oder kleines Modell für normale Leute (in Google Colab). Es wird kein Beispiel dafür gegeben, wie das Modell aufgebaut wird, wie Text erzeugt wird. Es ist nur so, dass der Artikel ein paar Nuancen für Nerds angibt und das war’s. Es reicht aus, sich genauer anzuschauen, wie es die Bank mit dem Buchstaben „C“ gemacht hat und das Gleiche zu tun. Ich hatte den Eindruck, dass dieses Modell nur eines der gescheiterten Experimente ist, das schade war, es in den Müll zu werfen, also wurde es in Open Source veröffentlicht, um zu zeigen, welche großartigen Modelle Yandex erstellt, und außerdem ist es Open Source!
Es gibt viele Fragen im Internet, wie man yalm betreibt oder sogar online versucht, aber es gibt keine Antworten darauf. Ich war unter den Benutzern, die diese Fragen gestellt haben. Und mache dich daran, es herauszufinden. Da brauchte ich unbedingt eine Möglichkeit, Texte für Finanzroboter zu generieren. Damit sie anhand von Finanzberichten die Werte nicht nur vorhersagen, sondern auch textlich kommentieren können. Im Wesentlichen wird es dasselbe sein wie bei Finanzanalysten, nur mit dem Einsatz künstlicher Intelligenz. Es gibt zwei Möglichkeiten, yalm auszuführen.
Mieten Sie einen Server in der Cloudmit 200+ Gb GPU RAM oder finalisieren Sie den Code und führen Sie ihn mit Deepspeed Zero Offload aus (wenn die GPU sequentiell einen Teil des neuronalen Netzwerks verarbeitet und der Rest im CPU RAM oder NVMe gespeichert wird). Der erste ist sehr teuer, etwa 2500 Rubel pro Stunde oder 1,7 Millionen pro Monat. Die zweite unbekannt, weil Der Code im Repository wird nicht bereitgestellt, sondern nur
Hinweise in der Ausgabe des Repositorys, was nicht schwierig ist. Fangen wir einfach an.
- Anweisungen zum Starten des YaLM 100B
- 1. Wir vermieten 200 GB GPU RAM, zum Beispiel hier .
- 2. Klonen Sie das Repository mit YaLM
- 3. Checkpoints herunterladen (Grundlegende Modelltrainingsinformationen)
- 4. Installieren Sie nvidia – Docker2
- 5. Erstellen eines Containers für YaLM
- 6. Inhalte vorbereiten
- 6.1 Kontrollpunkte
- 6.2 Grafikkarten
- 7. Führen Sie den Docker-Container aus
- 8. Führen Sie das Beispiel von YaLM 100B aus
- 9. Arbeitsergebnisse
- Wie führe ich YaLM ohne 200 GB GPU-RAM aus?
- Zusammenfassen
Anweisungen zum Starten des YaLM 100B
1. Wir vermieten 200 GB GPU RAM, zum Beispiel hier .
Sie benötigen insgesamt mindestens 200 GB Videospeicher. 8 x 40 = 320 GB. Nur dieser passt. Weniger als 200 geht nicht, mehr geht. Der Pfeil zeigt den CPU-RAM an, wir schauen ihn uns nicht an. Sie kann jeder sein.
Wir geben eine Festplatte von etwa 300 GB an, also mit einer Ersatz- und vorzugsweise einer schnellen Festplatte, weil. Dutzende von Gigabyte an Daten werden zu und von ihm übertragen.
Wählen Sie beim Erstellen in Quellen Ubuntu ML (Machine Learning). Dies ist zwingend erforderlich, damit die Grafikkarten konfiguriert sind und nichts zusätzlich installiert werden muss.
Nachdem der Server aktiviert ist (es kann 5-10 Minuten dauern), verbinden Sie sich per ssh oder direkt in der Webkonsole auf der Serverseite mit dem Server und führen Sie den Befehl aus.
nvidia-smi
Das Ergebnis sollte eine Tabelle mit Grafikkarten, Treiberversion und cuda sein. Ungefähr so.
In der Kopfzeile der Treiberversion und wo. Auf der linken Seite stehen die Gerätenummern, in der Mitte die Größe des Gerätespeichers. Wenn Sie diese Informationen nicht haben, haben Sie den Server von der falschen Quelle bezogen. Ubuntu ML (Machine Learnong) ist wie oben beschrieben erforderlich.
2. Klonen Sie das Repository mit YaLM
sudo git clone https://github.com/yandex/YaLM-100B/ yalm
cd yalm
Klonen Sie in Ihren Home-Ordner, damit Sie die Docker-Konfiguration danach nicht bearbeiten müssen. Wenn Sie woanders geklont haben,
gehen Sie hierher und fügen Sie den Pfad zum geklonten Ort hinzu.
3. Checkpoints herunterladen (Grundlegende Modelltrainingsinformationen)
sudo chmod +x ./download/download.sh
sudo bash ./download/download.sh
Dies dauert etwa eine Stunde. Um keine Zeit umsonst zu verschwenden, erstellen wir eine neue ssh-Verbindung und beginnen parallel mit dem Bau eines Docker-Containers.
4. Installieren Sie nvidia – Docker 2
Normaler Docker ist nicht geeignet,
nvidia-docker2 wird benötigt .
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit
5. Erstellen eines Containers für YaLM
cd yalm
sudo chmod +x ./docker/*
sudo bash ./docker/build.sh
Es ist auch ungefähr eine Stunde.
Lifehack. Sie können Checkpoints herunterladen, Docker installieren und einen Container auf einem billigen Server mit einer Grafikkarte erstellen. Es wird mit der Zeit dasselbe sein, sodass Sie ein wenig sparen können. Nach dem Zusammenbau auf einem billigen Server löschen wir ihn und erstellen einen Kampfserver mit einer Festplatte von einem billigen Server. Dann werden Sie die Zeit für das Warten auf die Montage und das Abpumpen von Kontrollpunkten nicht zu viel bezahlen.
6. Inhalte vorbereiten
6.1 Kontrollpunkte
Nachdem der Download der Checkpoints abgeschlossen ist, müssen Sie sie in die Konfigurationen einfügen. Es gibt zwei Möglichkeiten, Parameter korrigieren oder Checkpoints übertragen. Überall wird erwartet, dass sich die Checkpoints im Hauptverzeichnis des Projekts befinden bzw. was heruntergeladen wird, muss aus dem Download-Ordner oben übertragen werden. Im yalm-Ordner ausführen
mv ./download/yalm100b_checkpoint ./
Oder ändern Sie die Pfade zu den Dateien in den Beispieldateien
https://github.com/yandex/YaLM-100B/blob/c91b7d7fe8dbf39c9e307d6d324446d0df136a23/examples/generate_interactive.sh#L8-L9
6.2 Grafikkarten
Wir überprüfen, ob die Grafikkarten richtig eingestellt sind. Wenn Sie acht Grafikkarten haben, muss nichts geändert werden. Wenn die Nummer anders ist, dann ändern wir diese Zeilen
. In der zweiten Zeile die Nummern der verwendeten Geräte (Sie können sie in nvidia-smi ansehen, das Sie bereits gestartet haben). Im vierten ihre Zahl.
7. Führen Sie den Docker-Container aus
Führen Sie den Befehl aus, wenn Sie sich im Ordner yalm befinden
sudo bash ./docker/run.sh
Wenn alles in Ordnung ist, werden Sie zu einem Container weitergeleitet, in dem Sie zum Yalm-Ordner in Ihrem Home-Verzeichnis wechseln müssen.
cd ~/yalm
8. Führen Sie das Beispiel von YaLM 100B aus
Wir sind bereit, eines der Beispiele zu starten. Sie werden
hier beschrieben .
chmod +x ./examples/generate_interactive.sh
./examples/generate_interactive.sh
Seien Sie geduldig, es müssen noch 10-15 Minuten gewartet werden, bis das GPT2-Modell erstellt und die Gewichte von den Kontrollpunkten geladen sind.
Wenn der Build abgeschlossen ist, fordert MegatronML Sie auf, einen Kontext einzugeben, um Text zu generieren. Seien Sie vorsichtig, wenn Sie tippen. Unter Umständen tritt ein Fehler auf, das Programm stürzt ab und Sie müssen die Montage neu starten. Daher ist es besser, Beispiele zu verwenden, die Text aus einer Datei entnehmen.
9. Arbeitsergebnisse
Sieht interessant aus. Das sind natürlich nur gute Beispiele. Ich habe den Test an verschiedenen Proben durchgeführt. Wie erwartet, je besser der Kontext, desto aussagekräftigerer Text wird generiert. Der vollständige Satz experimenteller Generationen kann unter den Links eingesehen werden:
Für den Preis hat es mich ungefähr 9.000 Rubel gekostet, Server mit unterschiedlichen Kapazitäten von der Schulung und von der Vorbereitung bis zur Generierung zu mieten. Eine besondere Enttäuschung war, dass man nicht alles sofort generieren kann. Der Start dauert sehr lange und der Text wird angesichts der Kosten des Servers pro Stunde nicht so schnell generiert, wie wir es gerne hätten.
Wie führe ich YaLM ohne 200 GB GPU-RAM aus?
Sie müssen der Konfiguration Deepspeed Zero Offload hinzufügen. Für diejenigen, die wissen, wovon wir sprechen, wird es sehr einfach sein, es zu tun. Für andere ist dies überhaupt keine triviale Aufgabe. Es ist wichtig zu wissen, dass die Auslagerung entweder im CPU-RAM oder in NVMe erfolgen kann. NVMe können Sie im Moment vergessen, denn. Es werden sehr viele Daten verarbeitet und die Festplatte kann damit nicht umgehen. Null-Offload-CPU ist realer. Richtig, dafür müssen Sie 200+ Gb CPU-RAM auf Lager haben, was auch nicht billig ist. Und ein Text wird etwa 20-40 Minuten lang generiert, da es noch nicht möglich war, ihn auf zwei Grafikkarten zu parallelisieren. Wie Sie im Screenshot unten sehen können, war nur eine Grafikkarte an der Generierung beteiligt, und dann nur für ein Viertel des Speichers. Warum nicht alle 24 GB genutzt werden, bleibt abzuwarten,
Nun, abschließend möchte ich sagen, dass es möglich ist, sogar auf einer RTX 3070 TI zu laufen. Aber das hat keinen besonderen Sinn, denn. Mit NVMe können Sie nicht schnell 150 GB Daten im Swap verarbeiten, die sich im Anhang von 96 GB RAM befinden.
Zusammenfassen
Natürlich werde ich trotzdem versuchen, die optimalen Startpfade zu finden. Bisher bin ich aber zu dem Schluss gekommen, dass YaLM 100b für meine Aufgaben zu teuer / zu langsam ist. Für das gleiche Geld schreiben die Leute viel mehr und viel besser. Aber ich denke, es ist vorübergehend, wir werden sehen. Wenn Sie Hilfe beim Starten oder Einrichten von yalm benötigen oder die Ergebnisse Ihrer Kontextbeispiele sehen möchten, schreiben Sie an die E-Mail oder das Telegramm.
Статья на Мега актуальную тему! Спасибо.
Крутая статья! Спасибо автору!
СПАСИБО !!!
три дня эту информацию искал
нет подобного о RuGPT3 и Порфириче?