Jouez vite à Llama2 ! Alibaba Cloud Machine Learning PAI lance les meilleures pratiques

avant-propos

Récemment, Meta a annoncé que le grand modèle de langage Llama2 est open source, comprenant différentes tailles de 7B, 13B et 70B, correspondant à 7 milliards, 13 milliards et 70 milliards de paramètres, et chaque spécification a un modèle optimisé Llama-2-Chat . Llama2 est gratuit pour les scénarios de recherche et à des fins commerciales (mais les entreprises comptant plus de 700 millions d'utilisateurs actifs par mois doivent postuler), et pour les entreprises et les développeurs, il fournit le dernier outil pour la recherche de modèles à grande échelle.

À l'heure actuelle, Llama-2-Chat surpasse les autres modèles de dialogue open source sur la plupart des indicateurs d'évaluation, et n'est pas loin derrière certains modèles de source fermée populaires (ChatGPT, PaLM). La plate-forme d'apprentissage automatique PAI d'Alibaba Cloud adapte en premier lieu les modèles de la série Llama2 et introduit les meilleures pratiques dans des scénarios tels que le réglage fin complet, le réglage fin de Lora et les services d'inférence , aidant les développeurs d'IA à décompresser rapidement. Ci-dessous, nous montrerons respectivement les étapes d'utilisation spécifiques.

Meilleure pratique 1 : ajustement et déploiement de Lora low-code Llama 2

  • Cette pratique sera développée pour Llama-2-7b-chat à l'aide du module de démarrage rapide PAI de la plate-forme d'apprentissage automatique Alibaba Cloud . PAI-Quick Start prend en charge l'ensemble du processus de formation, de déploiement et d'inférence low-code basé sur des modèles open source, et convient aux développeurs qui souhaitent découvrir rapidement des modèles pré-formés prêts à l'emploi.

1. Préparation

1. Accédez à la page de démarrage rapide PAI

a. Connectez-vous à la console PAI  https://pai.console.aliyun.com/

b. Entrez dans l'espace de travail PAI et recherchez "Démarrage rapide" dans la barre de navigation de gauche.

2. Sélectionnez le modèle Llama2

PAI-Quickstart contient de nombreux modèles open source populaires provenant de différentes sources pour prendre en charge différents domaines et tâches d'intelligence artificielle. Dans cet exemple, veuillez sélectionner "Generative AI-Large Language Model (large-language-model)" pour accéder à la page de liste de modèles.

Sur la page de la liste des modèles, vous pouvez voir plusieurs modèles grand public de différentes communautés open source. Dans cette démonstration, nous utiliserons llama-2-7b-chat-hfdes modèles ( llama-2-7b-hfil en va de même pour les modèles). Vous êtes également libre de choisir d'autres modèles qui répondent aux besoins actuels de votre entreprise.

Conseils:

  • De manière générale, un modèle avec un plus grand nombre de paramètres aura un meilleur effet, mais le coût d'exécution du modèle correspondant et la quantité de données nécessaires pour affiner la formation seront plus importants.
  • Des versions de Llama-2-13B et 70B, ainsi que d'autres grands modèles de langage open source seront également lancés sur PAI-Quick Start, alors restez à l'écoute.

2. Modéliser le raisonnement en ligne

Le modèle Llama-2-7b-chat fourni par Quick Start llama-2-7b-chat-hfest dérivé de HuggingFace . Il s'agit également d'un grand modèle de langage principalement basé sur l' architecture Transformer. Il utilise une variété d'ensembles de données open source mixtes pour la formation, il convient donc pour la plupart des scènes professionnelles non anglophones. Nous pouvons rapidement commencer à déployer ce modèle directement sur PAI-EAS via PAI, en créant un service d'inférence.

1. Modèle de déploiement

Grâce à l'entrée de déploiement sur la page des détails du modèle, vous pouvez créer un service d'inférence en ligne basé sur ce modèle en un clic, et tous les paramètres ont été configurés pour vous par défaut. Bien sûr, vous pouvez également choisir librement les ressources informatiques et autres paramètres utilisés, et nous pouvons directement déployer le modèle sur PAI-EAS pour créer un service d'inférence.

Veuillez noter que le modèle nécessite au moins 64 Go de mémoire et au moins 24 Go de mémoire vidéo. Assurez-vous que les ressources informatiques que vous choisissez répondent aux exigences ci-dessus, sinon le déploiement risque d'échouer.

Sur la page des détails du service, vous pouvez afficher l'état de déploiement du service d'inférence. Lorsque l'état du service est "En cours d'exécution", cela signifie que le service d'inférence a été déployé avec succès.

Conseils:

  • À l'avenir, vous pourrez cliquer sur le bouton "Gérer les tâches et le déploiement" dans le PAI-Quick Start pour revenir au service d'inférence actuel.

2. Appelez le service d'inférence

Une fois le déploiement réussi, vous pouvez WebUIdéboguer votre service le plus rapidement possible et envoyer une requête de prédiction.

La capacité d'appel API est également prise en charge dans l'interface Web, et les documents associés peuvent être consultés en cliquant sur "Utiliser via l'API" au bas de la page WebUI.

3. Formation à la mise au point du modèle

llama-2-7b-chat-hfLes modèles conviennent à la plupart des scénarios non professionnels. Lorsque vous avez besoin d'appliquer une expertise spécifique à un domaine, vous pouvez choisir d'utiliser la formation de réglage fin du modèle pour aider la capacité du modèle dans le domaine personnalisé.

Conseils:

  • Le grand modèle de langage peut également apprendre directement des connaissances relativement simples pendant le processus de dialogue, veuillez choisir de vous entraîner en fonction de vos propres besoins.
  • La méthode de formation actuelle prise en charge par Quick Start est basée sur LoRA . Par rapport à d'autres méthodes de formation (telles que SFT, etc.), la formation LoRA réduira considérablement les coûts et le temps de formation, mais l'effet de formation LoRA des grands modèles de langue peut être instable.

1. Préparer les données

Conseils :

  • Afin de faciliter votre expérience d'essai du modèle Llama 2, nous  llama-2-7b-chat-hfavons également préparé un ensemble de données par défaut pour le réglage des instructions dans la carte de modèle pour que vous puissiez effectuer directement une formation de réglage fin.

Le modèle prend en charge la formation à l'aide de données sur les logiciels libres. Les données de formation acceptent les entrées au format Json, et chaque élément de données se compose de questions, de réponses et d'identifiants, qui sont représentés par des champs "instruction", "sortie" et "id", par exemple :

[
    {
        "instruction": "以下文本是否属于世界主题?为什么美国人很少举行阅兵?",
        "output": "是",
        "id": 0
    },
    {
        "instruction": "以下文本是否属于世界主题?重磅!事业单位车改时间表已出!",
        "output": "不是",
        "id": 1
    }
]

Le format spécifique des données d'entraînement peut également être trouvé dans la page d'introduction du modèle spécifique de PAI-Quick Start.

Pour savoir comment télécharger des données sur OSS et afficher les données correspondantes, veuillez vous référer à la documentation d'aide d'OSS : https://help.aliyun.com/document_detail/31883.html?spm=a2c4g.31848.0.0.71102cb7dsCgz2

Afin de mieux vérifier l'effet de l'entraînement du modèle, en plus de fournir l'ensemble de données d'entraînement, il est également recommandé de préparer un ensemble de données de vérification : il sera utilisé pour évaluer l'effet de l'entraînement du modèle pendant l'entraînement et optimiser l'ajustement de paramètres d'entraînement.

2. Soumettre les devoirs de formation

Après avoir préparé l'ensemble de données à utiliser, vous pouvez configurer l'ensemble de données pour la formation et soumettre la tâche de formation sur la page de modèle du démarrage rapide. Nous avons configuré par défaut des hyperparamètres optimisés et des configurations de ressources de calcul utilisées par les tâches de formation, et vous pouvez également les modifier en fonction de votre activité réelle.

Sur la page des détails de la tâche de formation, vous pouvez afficher la progression de l'exécution de la tâche de formation, les journaux des tâches et les informations d'évaluation du modèle. Lorsque le statut de la tâche d'entraînement est "Succès", le modèle produit par la tâche d'entraînement est enregistré dans OSS (voir "Chemin de sortie du modèle" sur la page des détails de la tâche).

Conseils:

  • En utilisant l'ensemble de données par défaut et les hyperparamètres par défaut, le temps d'achèvement estimé de la formation des ressources informatiques est d'environ 1 heure et 30 minutes. Si vous utilisez des données de formation personnalisées et des éléments de configuration, les temps de formation estimés peuvent varier, mais doivent généralement être de quelques heures.
  • Si vous fermez la page à mi-chemin, vous pouvez cliquer sur le bouton "Gérer les tâches et le déploiement" dans le PAI-Quick Start pour revenir à tout moment à la tâche de formation en cours. La capacité d'appel API est également prise en charge dans l'interface Web, et les documents associés peuvent être consultés en cliquant sur "Utiliser via l'API" au bas de la page WebUI.

3. Déployer le modèle de réglage fin

Une fois la formation de réglage fin réussie, l'utilisateur peut déployer directement le modèle obtenu en tant que service d'inférence sur la page des détails de la tâche. Pour le processus spécifique de déploiement de modèle et d'appel de service, veuillez vous reporter au document « Modèle de déploiement direct » ci-dessus.

Meilleure pratique 2 : formation à l'ajustement complet des paramètres de Llama2

  • Cette pratique utilisera le module PAI-DSW de la plate-forme d'apprentissage automatique Alibaba Cloud pour affiner tous les paramètres de Llama-2-7B-Chat. PAI-DSW est une plate-forme de modélisation interactive. Cette pratique convient aux développeurs qui ont besoin de personnaliser des modèles de réglage fin et de rechercher des effets de réglage de modèle.

1. Exigences relatives à l'environnement d'exploitation

L'environnement Python est 3.9 ou supérieur, et A100 (80 Go) est recommandé pour le GPU. Cette ressource est relativement restreinte, et il est recommandé de la rafraîchir plusieurs fois.

2. Préparation

1. Connectez-vous à PAI et téléchargez Llama-2-7B-Chat

a. Connectez-vous à la console PAI  https://pai.console.aliyun.com/

b. Entrez PAI-DSW pour créer une instance et télécharger le fichier de modèle.

Modèle de téléchargement ModelScope, veuillez cliquer sur le lien : https://modelscope.cn/models/modelscope/Llama-2-7b-chat-ms/summary

2. Environnement de téléchargement et d'installation

Ensuite, téléchargez et installez l'environnement requis.

  • ColossalAI est un système de formation d'IA massivement parallèle, et nous utilisons ce cadre pour affiner le modèle dans cet exemple.
  • Transformers est une bibliothèque de langage pré-entraîné basée sur la structure du modèle Transformers.
  • Gradio est une bibliothèque open source permettant de créer rapidement des pages de présentation Web d'apprentissage automatique.
! wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/llama2/ColossalAI.tar.gz
! tar -zxvf ColossalAI.tar.gz
! pip install ColossalAI/.
! pip install ColossalAI/applications/Chat/.
! pip install transformers==4.30.0
! pip install gradio==3.11

3. Téléchargez des exemples de données d'entraînement

Téléchargez les données nécessaires à la formation. Ici, nous fournissons des données de génération créative, y compris la génération de la parole et d'autres contenus.

Vous pouvez également vous référer à ce format et préparer vous-même les données requises.

! wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/llama2/llama_data.json
! wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/tutorials/llama2/llama_test.json

3. Affiner le modèle

Vous pouvez utiliser les scripts de formation déjà écrits pour la formation du modèle.

! sh ColossalAI/applications/Chat/examples/train_sft.sh

4. Modèle d'essai

Une fois la formation du modèle terminée, téléchargez la démo WebUI que nous fournissons et essayez le modèle affiné (notez que l'adresse du modèle est remplacée par l'adresse du modèle que vous avez formé).

import gradio as gr
import requests
import json
from transformers import AutoTokenizer, AutoModelForCausalLM
#模型地址替换为自己训练好的模型地址
tokenizer = AutoTokenizer.from_pretrained("/mnt/workspace/sft_llama2-7b",trust_remote_code=True)
#模型地址替换为自己训练好的模型地址
model = AutoModelForCausalLM.from_pretrained("/mnt/workspace/sft_llama2-7b",trust_remote_code=True).eval().half().cuda()
def inference(text):
    from transformers import pipeline
    pipe = pipeline("text-generation", model=model, tokenizer=tokenizer,device='cuda:0', max_new_tokens=400)
    res=pipe(text)
    return res[0]['generated_text'][len(text):]
    
demo = gr.Blocks()
with demo:
    input_prompt = gr.Textbox(label="请输入需求", value="请以软件工程师的身份,写一篇入职的发言稿。", lines=6)
    generated_txt = gr.Textbox(lines=6)
    b1 = gr.Button("发送")
    b1.click(inference, inputs=[input_prompt], outputs=generated_txt) 
demo.launch(enable_queue=True, share=True)

5. Téléchargez le modèle sur OSS et déployez-le en ligne

Si vous souhaitez déployer le modèle ci-dessus sur PAI-EAS, vous devez d'abord télécharger le modèle formé sur OSS.

Les paramètres suivants doivent être renseignés selon vos propres informations

# encoding=utf-8
import oss2
import os
AK='yourAccessKeyId'
SK='yourAccessKeySecret'
endpoint = 'yourEndpoint'
dir='your model output dir'
auth = oss2.Auth(AK, SK)
bucket = oss2.Bucket(auth, endpoint, 'examplebucket')
for filename in os.listdir(dir):
    current_file_path = dir+filename
    file_path = '需要上传地址'
    bucket.put_object_from_file(file_path, current_file_path)

L'étape suivante consiste à déployer, veuillez vous référer à [Best Practice 3: Llama2 Quickly Deploy WebUI]

Meilleure pratique 3 : Déploiement rapide Llama2 de WebUI

  • Cette pratique utilisera le module PAI-EAS de la plate-forme d'apprentissage automatique  Alibaba Cloud pour se déployer pour Llama-2-13B-chat. PAI-EAS est une plate-forme de services de modèles en ligne qui prend en charge le déploiement en un clic de modèles en tant que services d'inférence en ligne ou applications Web IA. Il présente les caractéristiques d'une mise à l'échelle élastique et convient aux développeurs qui ont besoin de services de modèles rentables.

1. Déploiement des services

1. Accédez à la page de service en ligne du modèle PAI-EAS.

    1. Connectez-vous à la console PAI  https://pai.console.aliyun.com/
    2. Cliquez sur la liste des espaces de travail dans la barre de navigation de gauche , puis cliquez sur le nom de l'espace de travail à utiliser sur la page de la liste des espaces de travail pour accéder à l'espace de travail correspondant.
    3. Dans la barre de navigation de gauche de la page de l'espace de travail, sélectionnez Déploiement du modèle > Model Online Service (EAS) pour accéder à la page PAI EAS Model Online Service .

2. Sur la page de service en ligne du modèle PAI EAS, cliquez sur Service de déploiement.

3. Sur la page du service de déploiement, configurez les paramètres clés suivants.

paramètre décrire
Nom du service Personnalisez le nom du service. L'exemple de valeur utilisé dans ce cas est : chatllm_llama2_13b.
Méthode de déploiement Sélectionnez l'image pour déployer l'application AI-Web.
sélection de miroir Sélectionnez chat-llm-webui dans la liste des images de la plate-forme PAI, puis sélectionnez 1.0 pour la version de l'image. En raison de l'itération rapide des versions, la version la plus élevée de la version de l'image peut être sélectionnée lors du déploiement.
exécuter la commande Commande d'exécution du service : si le modèle 13b est utilisé pour le déploiement : python webui/webui_server.py --listen --port=8000 --model-path=meta-llama/Llama-2-13b-chat-hf --precision= fp16 Si vous utilisez le modèle 7b pour le déploiement : python webui/webui_server.py --listen --port=8000 --model-path=meta-llama/Llama-2-7b-chat-hf entrée du numéro de port : 8000
type de groupe de ressources Sélectionnez un groupe de ressources public.
méthode d'allocation des ressources Choisissez Configuration générale des ressources.
Sélection de la configuration des ressources Le type de GPU doit être sélectionné et ecs.gn6e-c12g1.3xlarge est recommandé pour les spécifications d'instance. Le modèle 13b doit fonctionner sur les modèles gn6e et supérieurs. Le modèle 7b peut fonctionner sur le modèle A10/GU30.
disque système supplémentaire Choisissez 50 Go

4. Cliquez sur Déployer et attendez un moment pour terminer le déploiement du modèle.

2. Démarrez l'interface utilisateur Web pour l'inférence de modèle

1. Cliquez sur Afficher l'application Web sous la colonne Mode de service du service cible.

2. Sur la page WebUI, effectuez la vérification du raisonnement du modèle.

Entrez le contenu de la conversation dans l'interface de saisie au bas de la boîte de dialogue, par exemple, "Veuillez fournir un plan d'apprentissage en gestion financière", cliquez sur envoyer et la conversation peut commencer.

Quoi de plus

  1. Cet article démontre principalement la pratique consistant à affiner et à déployer rapidement Llama2 sur la base de la plate-forme d'apprentissage automatique Alibaba Cloud PAI, principalement pour les tailles 7B et 13B. À l'avenir, nous montrerons comment affiner et déployer le Llama-2-70B de taille 70B basé sur PAI, alors restez à l'écoute.
  2. Dans l'expérience ci-dessus, [Best Practice 3: Llama2 Rapid Deployment WebUI] prend en charge les modèles d'essai gratuits. Veuillez cliquer sur [Lire le texte original] pour accéder au Alibaba Cloud User Center afin d'obtenir un essai gratuit de "PAI-EAS", puis allez à la console PAI pour en faire l'expérience.

Les références:

  1. Llama2 : À l'intérieur du modèle  https://ai.meta.com/llama/#inside-the-model
  2. Contrat de licence communautaire Llama 2  https://ai.meta.com/resources/models-and-libraries/llama-downloads/
  3. HuggingFace Open LLM Classement  https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard
  4. Plate-forme d'apprentissage automatique Alibaba Cloud PAI : https://www.aliyun.com/product/bigdata/learn
※ Rappel spécial que Llama2 est un modèle open source restreint développé par des sociétés étrangères. Veuillez lire et respecter attentivement le contrat de licence de Llama2 avant de l'utiliser, en particulier ses conditions de licence restrictives (par exemple, les entreprises comptant plus de 700 millions d'utilisateurs actifs par mois ont besoin pour demander des licences supplémentaires) et des clauses de non-responsabilité, etc.
De plus, je vous rappelle de respecter les lois et réglementations du pays concerné. Si vous utilisez Llama2 pour fournir des services au public en Chine, veuillez respecter les lois et réglementations du pays, en particulier pour ne pas adopter ou générer des comportements et des contenus qui mettent en danger les droits et les intérêts du pays, de la société et d'autrui.

Cliquez pour essayer gratuitement les produits cloud dès maintenant pour commencer le voyage pratique sur le cloud !

Lien d'origine

Cet article est le contenu original d'Alibaba Cloud et ne peut être reproduit sans autorisation.

Je suppose que tu aimes

Origine blog.csdn.net/yunqiinsight/article/details/131941054
conseillé
Classement