Mit den Kosten einer Tasse Starbucks und zwei Stunden Ihrer Zeit können Sie Ihr eigenes trainiertes Open-Source-Großmodell besitzen. Das Modell kann anhand verschiedener Trainingsdatenrichtungen feinabgestimmt werden, um verschiedene Fähigkeiten wie Medizin, Programmierung , Aktienhandel und Liebesratschläge zu verbessern, sodass Ihr groß angelegtes Modell Sie besser „versteht“. Versuchen wir, ein Open-Source-Großmodell zu trainieren, das durch den Open-Source-DelphinScheduler unterstützt wird!
Die Geburt von ChatGPT hat uns zweifellos mit Vorfreude auf die Zukunft der KI erfüllt. Sein anspruchsvoller Ausdruck und sein starkes Sprachverständnis haben die Welt in Erstaunen versetzt. Da ChatGPT jedoch als Software as a Service (SaaS) bereitgestellt wird, sind Probleme in Bezug auf die Privatsphäre und die Sicherheit von Unternehmensdaten ein Problem für jeden Benutzer und jedes Unternehmen. Es entstehen immer mehr Open-Source-Großmodelle, die es Einzelpersonen und Unternehmen ermöglichen, über eigene Modelle zu verfügen. Der Einstieg, die Optimierung und der Einsatz von Open-Source-Großmodellen sind jedoch mit hohen Eintrittsbarrieren verbunden, so dass es für jedermann schwierig ist, sie problemlos zu nutzen. Um dieses Problem zu lösen, verwenden wir Apache DolphinScheduler, der Ein-Klick-Unterstützung für das Training, die Optimierung und die Bereitstellung von Open-Source-Großmodellen bietet. Dies ermöglicht es jedem, mit sehr geringen Kosten und mit technischem Fachwissen eigene groß angelegte Modelle mit seinen Daten zu trainieren.
Unser Ziel besteht nicht nur darin, dass professionelle KI-Ingenieure, sondern auch alle, die sich für GPT interessieren, die Freude genießen können, ein Modell zu haben, das sie besser „versteht“. Wir glauben, dass jeder das Recht und die Fähigkeit hat, seinen eigenen KI-Assistenten zu gestalten. Der intuitive Workflow von Apache DolphinScheduler macht dies möglich. Als Bonus ist Apache DolphinScheduler ein Big-Data- und KI-Planungstool mit über 10.000 Sternen auf GitHub. Es handelt sich um ein Top-Level-Projekt der Apache Software Foundation, was bedeutet, dass Sie es kostenlos nutzen und den Code ändern können, ohne sich um kommerzielle Probleme kümmern zu müssen.
Egal, ob Sie ein Branchenexperte sind, der ein Modell mit Ihren eigenen Daten trainieren möchte, oder ein KI-Enthusiast, der das Training von Deep-Learning-Modellen verstehen und erkunden möchte, unser Workflow bietet Ihnen praktische Dienste. Es löst komplexe Vorverarbeitungs-, Modelltrainings- und Optimierungsschritte und erfordert nur 1–2 Stunden einfache Vorgänge sowie 20 Stunden Laufzeit, um ein „verständlicheres“ ChatGPT-Großmodell zu erstellen.
Also lasst uns diese magische Reise beginnen! Lassen Sie uns die Zukunft der KI allen zugänglich machen.
Zunächst benötigen Sie eine 3090-Grafikkarte. Wenn Sie einen Desktop-Computer haben, können Sie diesen direkt verwenden. Wenn nicht, gibt es online viele Hosts mit GPU zu mieten. Hier verwenden wir AutoDL als Anwendungsbeispiel. Öffnen Sie https://www.autodl.com/home , registrieren Sie sich und melden Sie sich an. Anschließend können Sie gemäß den auf dem Bildschirm angezeigten Schritten 1, 2 und 3 den entsprechenden Server im Rechenleistungsmarkt auswählen.
Hier empfiehlt sich die Wahl der Grafikkarte RTX 3090, die ein hohes Preis-Leistungs-Verhältnis bietet. Nach Tests hat sich herausgestellt, dass ein bis zwei Personen die RTX 3090 für Online-Aufgaben nutzen können. Wenn Sie schnellere Trainings- und Reaktionsgeschwindigkeiten wünschen, können Sie sich für eine leistungsstärkere Grafikkarte entscheiden. Das einmalige Training dauert etwa 20 Stunden, während die Prüfung etwa 2–3 Stunden in Anspruch nimmt. Mit einem Budget von 40 Yuan können Sie es problemlos schaffen.
Klicken Sie auf den Community-Spiegel und geben Sie dann WhaleOps/dolphinscheduler-llm/dolphinscheduler-llm-0521
das rote Feld unten ein. Sie können das Bild wie unten gezeigt auswählen. Derzeit ist nur die V1-Version verfügbar. Wenn in Zukunft neue Versionen veröffentlicht werden, können Sie die neueste Version auswählen.
Wenn Sie das Modell mehrmals trainieren müssen, empfiehlt es sich, die Festplattenkapazität auf etwa 100 GB zu erweitern.
Warten Sie nach der Erstellung, bis der im folgenden Bild gezeigte Fortschrittsbalken abgeschlossen ist.
Um Ihr eigenes Open-Source-Großmodell auf der Schnittstelle bereitzustellen und zu debuggen, müssen Sie die DolphinScheduler-Software starten und die folgenden Konfigurationsarbeiten durchführen:
Es stehen zwei Methoden zur Verfügung. Sie können diejenige auswählen, die Ihren Wünschen entspricht:
Klicken Sie auf die unten gezeigte JupyterLab-Schaltfläche.
Die Seite wird zu JupyterLab weitergeleitet; Von dort aus können Sie zum Betreten auf „Terminal“ klicken.
2. Anmeldung über Terminal (für Programmierer):
Wir können den SSH-Verbindungsbefehl über die im folgenden Bild gezeigte Schaltfläche erhalten.
Anschließend stellen Sie die Verbindung über das Terminal her.
In DolphinScheduler werden alle Metadaten in der Datenbank gespeichert, einschließlich Workflow-Definitionen, Umgebungskonfigurationen, Mieterinformationen usw. Damit Benutzer diese Workflows beim Start von DolphinScheduler bequem sehen können, können wir vordefinierte Workflow-Metadaten direkt importieren, indem wir sie kopieren vom Bildschirm.
Navigieren Sie über das Terminal zum folgenden Verzeichnis:
cd apache-dolphinscheduler-3.1.5-bin
Führen Sie den Befehl vim import_ds_metadata.sh
aus, um die Datei import_ds_metadata.sh
zu öffnen. Der Inhalt der Datei ist wie folgt:
Set variables
Hostname
HOST="xxx.xxx.xxx.x"
UsernameUSERNAME="root"PasswordPASSWORD="xxxx"PortPORT=3306Database to import intoDATABASE="ds315_llm_test"SQL filenameSQL_FILE="ds315_llm.sql"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD -e "CREATE DATABASE $DATABASE;"mysql -h $HOST -P $PORT -u $USERNAME -p$PASSWORD $DATABASE < $SQL_FILE
Ersetzen Sie xxx.xxx.xxx.x und xxxx durch die relevanten Konfigurationswerte einer MySQL-Datenbank in Ihrem öffentlichen Netzwerk (Sie können eine bei Alibaba Cloud oder Tencent Cloud beantragen oder selbst eine installieren). Führen Sie dann Folgendes aus:
bash import_ds_metadata.sh
Nach der Ausführung können Sie bei Interesse die entsprechenden Metadaten in der Datenbank überprüfen (stellen Sie eine Verbindung zu MySQL her und zeigen Sie sie an. Wenn Sie mit dem Code nicht vertraut sind, können Sie diesen Schritt überspringen).
Öffnen Sie in der Server-Befehlszeile die folgende Datei und ändern Sie die Konfiguration, um DolphinScheduler mit der zuvor importierten Datenbank zu verbinden:
/root/apache-dolphinscheduler-3.1.5-bin/bin/env/dolphinscheduler_env.sh
Ändern Sie die entsprechende Konfiguration im Datenbankabschnitt und lassen Sie andere Abschnitte unverändert. Ändern Sie die Werte von „HOST“ und „PASSWORD“ in die Konfigurationswerte der importierten Datenbank, d. h. xxx.xxx.xxx.x und xxxx:
export DATABASE=mysqlexport SPRING_PROFILES_ACTIVE=${DATABASE}export SPRING_DATASOURCE_URL="jdbc:mysql://HOST:3306/ds315_llm_test?useUnicode=true&characterEncoding=UTF-8&useSSL=false"export SPRING_DATASOURCE_USERNAME="root"export SPRING_DATASOURCE_PASSWORD="xxxxxx"......
Führen Sie nach der Konfiguration Folgendes aus (auch in diesem Verzeichnis /root/apache-dolphinscheduler-3.1.5-bin):
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
Nach der Ausführung können wir die Protokolle überprüfen, indem wir tail -200f standalone-server/logs/dolphinscheduler-standalone.log
verwenden. Zu diesem Zeitpunkt wird DolphinScheduler offiziell gestartet!
Nach dem Start des Dienstes können wir in der AutoDL-Konsole auf „Custom Services“ klicken (rot hervorgehoben), um zu einer URL weitergeleitet zu werden:
Wenn beim Öffnen der URL ein 404-Fehler angezeigt wird, ist das kein Grund zur Sorge. Hängen Sie einfach das Suffix /dolphinscheduler/ui an die URL an:
Das AutoDL-Modul öffnet Port 6006. Nachdem Sie den Port von DolphinScheduler auf 6006 konfiguriert haben, können Sie über den bereitgestellten Einstiegspunkt darauf zugreifen. Aufgrund der URL-Umleitung kann es jedoch zu einem 404-Fehler kommen. In solchen Fällen müssen Sie die URL manuell vervollständigen.
Benutzername: admin
Passwort: dolphinscheduler123
Klicken Sie nach der Anmeldung auf „Projektmanagement“, um das vordefinierte Projekt mit dem Namen „vicuna“ anzuzeigen. Klicken Sie auf „Vicuna“, um zum Projekt zu gelangen.
Beim Betreten des Vicuna-Projekts sehen Sie drei Arbeitsabläufe: Training, Deploy und Kill_Service. Lassen Sie uns ihre Verwendungsmöglichkeiten erkunden und erfahren, wie Sie große Modelle konfigurieren und Ihre Daten trainieren.
Sie können unten auf die Schaltfläche „Ausführen“ klicken, um entsprechende Workflows auszuführen.
Wenn Sie auf den Trainingsworkflow klicken, werden Ihnen zwei Definitionen angezeigt. Eine dient der Feinabstimmung des Modells durch Lora (hauptsächlich unter Verwendung von Alpaca-lora, https://github.com/tloen/alpaca-lora ), und die andere dient der Zusammenführung des trainierten Modells mit dem Basismodell, um das endgültige Modell zu erhalten .
Der Workflow für die Bereitstellung großer Modelle (hauptsächlich mit FastChat, https://github.com/lm-sys/FastChat ). Zuerst wird kill_service aufgerufen, um das bereitgestellte Modell zu beenden, dann wird nacheinander der Controller gestartet, das Modell hinzugefügt und dann der Gradio-Webdienst geöffnet.
Die Startparameter lauten wie folgt:
Dieser Workflow wird verwendet, um das bereitgestellte Modell zu beenden und GPU-Speicher freizugeben. Dieser Workflow hat keine Parameter und Sie können ihn direkt ausführen. Wenn Sie den bereitgestellten Dienst stoppen müssen (z. B. wenn Sie das Modell neu trainieren müssen oder wenn nicht genügend GPU-Speicher vorhanden ist), können Sie den Workflow kill_service direkt ausführen, um den bereitgestellten Dienst zu beenden.
Nachdem Sie einige Beispiele durchgegangen sind, ist Ihre Bereitstellung abgeschlossen. Schauen wir uns nun die praktische Bedienung an:
Starten Sie den Workflow direkt, indem Sie den Trainingsworkflow ausführen und die Standardparameter auswählen.
Klicken Sie mit der rechten Maustaste auf die entsprechende Aufgabe, um die Protokolle anzuzeigen, wie unten gezeigt:
Sie können den Aufgabenstatus und die Protokolle auch im Aufgabeninstanzfenster unten links in der Seitenleiste anzeigen. Während des Trainingsprozesses können Sie den Fortschritt überwachen, indem Sie die Protokolle überprüfen, einschließlich der aktuellen Trainingsschritte, Verlustmetriken, verbleibender Zeit usw. Es gibt einen Fortschrittsbalken, der den aktuellen Schritt anzeigt, wobei Schritt = (Datengröße * Epoche) / Stapel Größe.
Unsere Standarddaten befinden sich in /root/demo-data/llama_data.json
. Die aktuelle Datenquelle ist Huatuo, ein medizinisches Modell, das anhand chinesischer medizinischer Daten verfeinert wurde. Ja, unser Beispiel ist die Ausbildung eines Hausarztes:
Wenn Sie Daten in einem bestimmten Feld haben, können Sie auf Ihre eigenen Daten verweisen. Das Datenformat ist wie folgt:
Zum Beispiel:
{"instruction": "calculation", "input": "1+1 equals?", "output": "2"}
Bitte beachten Sie, dass Sie die Anweisungs- und Eingabefelder in einem einzigen Anweisungsfeld zusammenführen können. Das Eingabefeld kann auch leer gelassen werden.
Ändern Sie beim Training den Parameter data_path, um Ihre eigenen Daten auszuführen.
Notiz:
Während der ersten Trainingsausführung wird das Basismodell vom angegebenen Speicherort abgerufen, z. B. TheBloke/vicuna-7B-1.1-HF. Es wird ein Downloadvorgang stattfinden. Warten Sie daher bitte, bis der Download abgeschlossen ist. Die Wahl dieses Modells wird vom Benutzer bestimmt, und Sie können auch andere große Open-Source-Modelle herunterladen (befolgen Sie bei der Verwendung bitte die entsprechenden Lizenzen).
Aufgrund von Netzwerkproblemen kann es sein, dass der Download des Basismodells mitten in der ersten Trainingsausführung fehlschlägt. In solchen Fällen können Sie auf die fehlgeschlagene Aufgabe klicken und sie erneut ausführen, um das Training fortzusetzen. Der Vorgang ist unten dargestellt:
Um das Training zu stoppen, können Sie auf die Stopp-Schaltfläche klicken, wodurch der für das Training verwendete GPU-Speicher freigegeben wird.
Klicken Sie auf der Seite mit der Workflow-Definition auf den Bereitstellungs-Workflow, um ihn auszuführen und das Modell bereitzustellen.
Wenn Sie Ihr eigenes Modell nicht trainiert haben, können Sie den Bereitstellungsworkflow mit den Standardparametern TheBloke/vicuna-7B-1.1-HF ausführen, um das vicuna-7b
Modell bereitzustellen, wie in der Abbildung unten gezeigt:
Wenn Sie im vorherigen Schritt ein Modell trainiert haben, können Sie Ihr Modell jetzt bereitstellen. Nach der Bereitstellung können Sie Ihr eigenes großes Modell erleben. Die Startparameter lauten wie folgt, wobei Sie den output_path
des Modells aus dem vorherigen Schritt eingeben müssen:
Als nächstes geben wir die bereitgestellte Workflow-Instanz ein. Klicken Sie auf die Workflow-Instanz und dann auf die Workflow-Instanz mit dem Präfix „Bereitstellen“.
Klicken Sie mit der rechten Maustaste und wählen Sie „refresh_gradio_web_service“, um die Aufgabenprotokolle anzuzeigen und den Speicherort unseres großen Modelllinks zu finden.
Der Vorgang ist unten dargestellt:
In den Protokollen finden Sie einen öffentlich zugänglichen Link, z. B.:
Hier sind zwei Links. Auf den Link 0.0.0.0:7860
kann nicht zugegriffen werden, da AutoDL nur Port 6006 öffnet, der bereits für Dolphinscheduler verwendet wird. Sie können direkt auf den Link darunter zugreifen, z. B. [https://81c9f6ce11eb3c37a4.gradio.live.](https://81c9f6ce11eb3c37a4.gradio.live.)
Bitte beachten Sie, dass sich dieser Link bei jeder Bereitstellung ändern kann. Sie müssen ihn daher in den Protokollen erneut finden.
Sobald Sie den Link eingeben, sehen Sie die Konversationsseite Ihres eigenen ChatGPT!
Ja! Jetzt haben Sie Ihr eigenes ChatGPT und seine Daten dienen nur Ihnen!
Und Sie haben nur weniger ausgegeben, als eine Tasse Kaffee kostet~~
Machen Sie weiter und erleben Sie Ihr eigenes privates ChatGPT!
In dieser datengesteuerten und technologieorientierten Welt ist ein dediziertes ChatGPT-Modell von unschätzbarem Wert. Mit der Weiterentwicklung der künstlichen Intelligenz und des Deep Learning befinden wir uns in einer Ära, in der personalisierte KI-Assistenten gestaltet werden können. Die Schulung und Bereitstellung Ihres eigenen ChatGPT-Modells kann uns helfen, KI besser zu verstehen und zu verstehen, wie sie unsere Welt verändert.
Zusammenfassend lässt sich sagen, dass die Schulung und Bereitstellung eines ChatGPT-Modells Ihnen dabei helfen kann, die Datensicherheit und den Datenschutz zu schützen, bestimmte Geschäftsanforderungen zu erfüllen, Technologiekosten zu sparen und den Schulungsprozess mithilfe von Workflow-Tools wie DolphinScheduler zu automatisieren. Außerdem können Sie so die örtlichen Gesetze und Vorschriften einhalten. Daher ist es eine lohnenswerte Option, selbst ein ChatGPT-Modell zu trainieren und bereitzustellen.
Auch hier veröffentlicht.