Avec le coût d'une tasse de Starbucks et de deux heures de votre temps, vous pouvez posséder votre propre modèle à grande échelle open source formé. Le modèle peut être affiné selon différentes directions de données de formation pour améliorer diverses compétences, telles que la médecine, la programmation , la négociation d'actions et les conseils amoureux, ce qui rend votre modèle à grande échelle plus "compréhensif" de vous. Essayons de former un modèle open source à grande échelle renforcé par l'open source DolphinScheduler !
La naissance de ChatGPT nous a sans aucun doute remplis d'anticipation pour l'avenir de l'IA. Son expression sophistiquée et sa puissante capacité de compréhension du langage ont émerveillé le monde. Cependant, étant donné que ChatGPT est fourni en tant que logiciel en tant que service (SaaS), les problèmes de fuites de données personnelles et de sécurité des données d'entreprise sont des préoccupations pour chaque utilisateur et entreprise. De plus en plus de modèles open source à grande échelle émergent, permettant aux particuliers et aux entreprises d'avoir leurs propres modèles. Cependant, la mise en route, l'optimisation et l'utilisation de modèles open source à grande échelle présentent des barrières élevées à l'entrée, ce qui rend difficile pour tout le monde de les utiliser facilement. Pour résoudre ce problème, nous utilisons Apache DolphinScheduler, qui fournit une assistance en un clic pour la formation, le réglage et le déploiement de modèles open source à grande échelle. Cela permet à chacun de former ses propres modèles à grande échelle à partir de ses données à très faible coût et avec une expertise technique.
Notre objectif n'est pas seulement pour les ingénieurs professionnels de l'IA, mais pour toute personne intéressée par GPT de profiter de la joie d'avoir un modèle qui les "comprend" mieux. Nous pensons que chacun a le droit et la capacité de façonner son propre assistant IA. Le flux de travail intuitif d'Apache DolphinScheduler rend cela possible. En prime, Apache DolphinScheduler est un outil de planification de Big Data et d'IA avec plus de 10 000 étoiles sur GitHub. Il s'agit d'un projet de haut niveau sous Apache Software Foundation, ce qui signifie que vous pouvez l'utiliser gratuitement et modifier le code sans vous soucier des problèmes commerciaux.
Que vous soyez un expert du secteur cherchant à former un modèle avec vos propres données ou un passionné d'IA souhaitant comprendre et explorer la formation de modèles d'apprentissage en profondeur, notre flux de travail vous fournira des services pratiques. Il résout les étapes complexes de prétraitement, de formation de modèle et d'optimisation, et ne nécessite que 1 à 2 heures d'opérations simples, plus 20 heures de temps d'exécution pour créer un modèle à grande échelle ChatGPT plus « compréhensif ».
Alors commençons ce voyage magique ! Apportons l'avenir de l'IA à tous.
Tout d'abord, vous avez besoin d'une carte graphique 3090. Si vous avez un ordinateur de bureau, vous pouvez l'utiliser directement. Sinon, il existe de nombreux hôtes à louer avec GPU en ligne. Ici, nous utilisons AutoDL comme exemple à appliquer. Ouvrez https://www.autodl.com/home , enregistrez-vous et connectez-vous. Après cela, vous pouvez choisir le serveur correspondant sur le marché de la puissance de calcul en suivant les étapes 1, 2 et 3 affichées à l'écran.
Ici, il est recommandé de choisir la carte graphique RTX 3090, qui offre un rapport qualité-prix élevé. Après des tests, il a été constaté qu'une à deux personnes peuvent utiliser le RTX 3090 pour des tâches en ligne. Si vous souhaitez un entraînement et des vitesses de réponse plus rapides, vous pouvez opter pour une carte graphique plus puissante. Une fois, la formation prend environ 20 heures, tandis que les tests nécessitent environ 2 à 3 heures. Avec un budget de 40 yuans, vous pouvez facilement le faire.
Cliquez sur le miroir de la communauté, puis entrez WhaleOps/dolphinscheduler-llm/dolphinscheduler-llm-0521
la case rouge ci-dessous. Vous pouvez sélectionner l'image comme indiqué ci-dessous. Actuellement, seule la version V1 est disponible. À l'avenir, à mesure que de nouvelles versions seront publiées, vous pourrez choisir la dernière.
Si vous devez former le modèle plusieurs fois, il est recommandé d'étendre la capacité du disque dur à environ 100 Go.
Après l'avoir créé, attendez que la barre de progression affichée dans l'image suivante se termine.
Afin de déployer et de déboguer votre propre modèle open source à grande échelle sur l'interface, vous devez démarrer le logiciel DolphinScheduler, et nous devons effectuer le travail de configuration suivant :
Deux méthodes sont disponibles. Vous pouvez choisir celui qui vous convient :
Cliquez sur le bouton JupyterLab ci-dessous.
La page redirigera vers JupyterLab ; à partir de là, vous pouvez cliquer sur "Terminal" pour entrer.
2. Connexion via Terminal (pour les codeurs) :
Nous pouvons obtenir la commande de connexion SSH à partir du bouton illustré dans l'image suivante.
Ensuite, établissez la connexion via le terminal.
Dans DolphinScheduler, toutes les métadonnées sont stockées dans la base de données, y compris les définitions de flux de travail, les configurations d'environnement, les informations sur les locataires, etc. depuis l'écran.
À l'aide du terminal, accédez au répertoire suivant :
cd apache-dolphinscheduler-3.1.5-bin
Exécutez la commande : vim import_ds_metadata.sh
pour ouvrir le fichier import_ds_metadata.sh
. Le contenu du fichier est le suivant :
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
Remplacez xxx.xxx.xxx.x et xxxx par les valeurs de configuration pertinentes d'une base de données MySQL sur votre réseau public (vous pouvez en demander une sur Alibaba Cloud, Tencent Cloud ou en installer une vous-même). Exécutez ensuite :
bash import_ds_metadata.sh
Après l'exécution, si vous êtes intéressé, vous pouvez vérifier les métadonnées correspondantes dans la base de données (connectez-vous à MySQL et visualisez, en sautant cette étape si vous n'êtes pas familier avec le code).
Dans la ligne de commande du serveur, ouvrez le fichier suivant et modifiez la configuration pour connecter DolphinScheduler à la base de données précédemment importée :
/root/apache-dolphinscheduler-3.1.5-bin/bin/env/dolphinscheduler_env.sh
Modifiez la configuration appropriée dans la section de la base de données et laissez les autres sections inchangées. Remplacez les valeurs de 'HOST' et 'PASSWORD' par les valeurs de configuration de la base de données importée, c'est-à-dire xxx.xxx.xxx.x et 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"......
Après la configuration, exécutez (également dans ce répertoire /root/apache-dolphinscheduler-3.1.5-bin) :
bash ./bin/dolphinscheduler-daemon.sh start standalone-server
Une fois exécuté, nous pouvons vérifier les journaux en utilisant tail -200f standalone-server/logs/dolphinscheduler-standalone.log
. À ce stade, DolphinScheduler est officiellement lancé !
Après avoir démarré le service, nous pouvons cliquer sur "Services personnalisés" dans la console AutoDL (surligné en rouge) pour être redirigé vers une URL :
Lors de l'ouverture de l'URL, si elle affiche une erreur 404, ne vous inquiétez pas. Ajoutez simplement le suffixe /dolphinscheduler/ui à l'URL :
Le module AutoDL ouvre le port 6006. Après avoir configuré le port de DolphinScheduler sur 6006, vous pouvez y accéder via le point d'entrée fourni. Cependant, en raison de la redirection d'URL, vous pouvez rencontrer une erreur 404. Dans de tels cas, vous devez compléter l'URL manuellement.
Nom d'utilisateur : admin
Mot de passe : dolphinscheduler123
Une fois connecté, cliquez sur « Gestion de projet » pour voir le projet prédéfini nommé « vigogne ». Cliquez sur « vigogne » pour entrer dans le projet.
En entrant dans le projet Vicuna, vous verrez trois workflows : Formation, Déploiement et Kill_Service. Explorons leurs utilisations et comment configurer de grands modèles et former vos données.
Vous pouvez cliquer sur le bouton Exécuter ci-dessous pour exécuter les workflows correspondants.
En cliquant sur le workflow de formation, vous verrez deux définitions. L'une consiste à affiner le modèle via Lora (principalement en utilisant alpaca-lora, https://github.com/tloen/alpaca-lora ), et l'autre consiste à fusionner le modèle formé avec le modèle de base pour obtenir le modèle final .
Le flux de travail pour déployer de grands modèles (principalement à l'aide de FastChat, https://github.com/lm-sys/FastChat ). Il appellera d'abord kill_service pour tuer le modèle déployé, puis démarrera séquentiellement le contrôleur, ajoutera le modèle, puis ouvrira le service Web Gradio.
Les paramètres de démarrage sont les suivants :
Ce workflow est utilisé pour tuer le modèle déployé et libérer de la mémoire GPU. Ce workflow n'a pas de paramètres et vous pouvez l'exécuter directement. Si vous devez arrêter le service déployé (par exemple, lorsque vous devez recycler le modèle ou lorsque la mémoire GPU est insuffisante), vous pouvez exécuter directement le workflow kill_service pour arrêter le service déployé.
Après avoir parcouru quelques exemples, votre déploiement sera terminé. Voyons maintenant le fonctionnement pratique :
Démarrez le flux de travail directement en exécutant le flux de travail de formation et en sélectionnant les paramètres par défaut.
Cliquez avec le bouton droit sur la tâche correspondante pour afficher les journaux, comme indiqué ci-dessous :
Vous pouvez également afficher l'état de la tâche et les journaux dans le panneau d'instance de tâche en bas à gauche de la barre latérale. Pendant le processus de formation, vous pouvez surveiller la progression en consultant les journaux, y compris les étapes de formation actuelles, les mesures de perte, le temps restant, etc. Il y a une barre de progression indiquant l'étape actuelle, où étape = (taille des données * époque) / lot taille.
Nos données par défaut sont dans /root/demo-data/llama_data.json
. La source de données actuelle est Huatuo, un modèle médical affiné à l'aide de données médicales chinoises. Oui, notre exemple est la formation d'un médecin de famille :
Si vous avez des données dans un champ spécifique, vous pouvez pointer vers vos propres données, le format des données est le suivant :
Par exemple:
{"instruction": "calculation", "input": "1+1 equals?", "output": "2"}
Veuillez noter que vous pouvez fusionner les champs d'instruction et de saisie en un seul champ d'instruction. Le champ de saisie peut également être laissé vide.
Lors de la formation, modifiez le paramètre data_path pour exécuter vos propres données.
Note:
Lors de la première exécution de la formation, le modèle de base sera récupéré à partir de l'emplacement spécifié, tel que TheBloke/vicuna-7B-1.1-HF. Il y aura un processus de téléchargement, veuillez donc attendre la fin du téléchargement. Le choix de ce modèle est déterminé par l'utilisateur, et vous pouvez également choisir de télécharger d'autres grands modèles open source (veuillez suivre les licences pertinentes lors de leur utilisation).
En raison de problèmes de réseau, le téléchargement du modèle de base peut échouer à mi-chemin de la première exécution de la formation. Dans de tels cas, vous pouvez cliquer sur la tâche qui a échoué et choisir de la réexécuter pour continuer la formation. Le fonctionnement est illustré ci-dessous :
Pour arrêter l'entraînement, vous pouvez cliquer sur le bouton d'arrêt, ce qui libérera la mémoire GPU utilisée pour l'entraînement.
Sur la page de définition du workflow, cliquez sur le workflow de déploiement pour l'exécuter et déployer le modèle.
Si vous n'avez pas entraîné votre propre modèle, vous pouvez exécuter le workflow de déploiement avec les paramètres par défaut TheBloke/vicuna-7B-1.1-HF pour déployer le modèle vicuna-7b
, comme illustré dans l'image ci-dessous :
Si vous avez formé un modèle à l'étape précédente, vous pouvez maintenant déployer votre modèle. Après le déploiement, vous pouvez tester votre propre grand modèle. Les paramètres de démarrage sont les suivants, où vous devez renseigner le output_path
du modèle de l'étape précédente :
Entrons ensuite dans l'instance de workflow déployée. Cliquez sur l'instance de workflow, puis cliquez sur l'instance de workflow avec le préfixe "deploy".
Faites un clic droit et sélectionnez "refresh_gradio_web_service" pour afficher les journaux de tâches et trouver l'emplacement de notre grand lien de modèle.
Le fonctionnement est illustré ci-dessous :
Dans les logs, vous trouverez un lien accessible publiquement, tel que :
Voici deux liens. Le lien 0.0.0.0:7860
n'est pas accessible car AutoDL n'ouvre que le port 6006, qui est déjà utilisé pour dolphinscheduler. Vous pouvez accéder directement au lien en dessous, tel que [https://81c9f6ce11eb3c37a4.gradio.live.](https://81c9f6ce11eb3c37a4.gradio.live.)
Veuillez noter que ce lien peut changer à chaque déploiement, vous devez donc le retrouver à partir des journaux.
Une fois que vous avez entré le lien, vous verrez la page de conversation de votre propre ChatGPT !
Oui! Vous avez maintenant votre propre ChatGPT, et ses données ne servent qu'à vous !
Et vous avez seulement dépensé moins que le coût d'une tasse de café ~~
Allez-y et découvrez votre propre ChatGPT privé !
Dans ce monde axé sur les données et la technologie, disposer d'un modèle ChatGPT dédié a une valeur incommensurable. Avec les progrès de l'intelligence artificielle et de l'apprentissage en profondeur, nous sommes à une époque où des assistants IA personnalisés peuvent être façonnés. La formation et le déploiement de votre propre modèle ChatGPT peuvent nous aider à mieux comprendre l'IA et comment elle transforme notre monde.
En résumé, la formation et le déploiement d'un modèle ChatGPT par vous-même peuvent vous aider à protéger la sécurité et la confidentialité des données, à répondre aux exigences commerciales spécifiques, à économiser sur les coûts technologiques et à automatiser le processus de formation à l'aide d'outils de workflow tels que DolphinScheduler. Cela vous permet également de vous conformer aux lois et réglementations locales. Par conséquent, la formation et le déploiement d'un modèle ChatGPT par vous-même est une option intéressante à considérer.
Également publié ici .