Anglais | Chine
? Faire des câlins au visage • ? ModèlePortée • ? modèle sage
? Posez des questions ou discutez d'idées sur GitHub
Rejoignez-nous sur ? Discorde ou WeChat
Consultez le rapport Yi Tech
Développez-vous au Yi Learning Hub
? Apprenez sur le blog Yi Tech
? Les modèles de la série Yi constituent la prochaine génération de grands modèles de langage open source formés à partir de zéro par 01.AI.
? Ciblés comme modèle de langage bilingue et formés sur un corpus multilingue 3T, les modèles de la série Yi deviennent l'un des LLM les plus puissants au monde, se montrant prometteurs en matière de compréhension du langage, de raisonnement de bon sens, de compréhension écrite, et bien plus encore. Par exemple,
Le modèle Yi-34B-Chat a atterri à la deuxième place (après GPT-4 Turbo) , surpassant les autres LLM (tels que GPT-4, Mixtral, Claude) dans le classement AlpacaEval (sur la base des données disponibles jusqu'en janvier 2024).
Le modèle Yi-34B s'est classé premier parmi tous les modèles open source existants (tels que Falcon-180B, Llama-70B, Claude) en anglais et en chinois sur divers critères, notamment Hugging Face Open LLM Leaderboard (pré-entraîné) et C-Eval. (sur la base des données disponibles jusqu’en novembre 2023).
(Crédits à Llama) Merci aux communautés open source Transformer et Llama, car elles réduisent les efforts nécessaires pour construire à partir de zéro et permettent l'utilisation des mêmes outils au sein de l'écosystème d'IA.
TL;DR
Les modèles de la série Yi adoptent la même architecture de modèle que Llama mais ne sont PAS des dérivés de Llama.
Yi et Llama sont tous deux basés sur la structure Transformer, qui est l'architecture standard pour les grands modèles de langage depuis 2018.
Fondé sur l'architecture Transformer, Llama est devenu une nouvelle pierre angulaire pour la majorité des modèles open source de pointe en raison de son excellente stabilité, de sa convergence fiable et de sa compatibilité robuste. Cela positionne Llama comme le cadre fondateur reconnu pour les modèles incluant Yi.
Grâce aux architectures Transformer et Llama, d'autres modèles peuvent exploiter leur puissance, réduisant ainsi l'effort requis pour construire à partir de zéro et permettant l'utilisation des mêmes outils au sein de leurs écosystèmes.
Cependant, les modèles de la série Yi ne sont PAS des dérivés de Llama, car ils n'utilisent pas les poids de Llama.
Étant donné que la structure de Llama est utilisée par la majorité des modèles open source, les facteurs clés pour déterminer les performances du modèle sont les ensembles de données de formation, les pipelines de formation et l'infrastructure de formation.
En se développant de manière unique et exclusive, Yi a créé de manière indépendante ses propres ensembles de données de formation de haute qualité, des pipelines de formation efficaces et une infrastructure de formation robuste, entièrement à partir de zéro. Cet effort a conduit à d'excellentes performances avec les modèles de la série Yi se classant juste derrière GPT4 et surpassant Llama dans le classement Alpaca en décembre 2023.
[ Retour en haut ⬆️ ]
Yi-9B-200K
est open source et accessible au public.Yi-9B
est open source et accessible au public.Yi-9B
se distingue comme le plus performant parmi une gamme de modèles open source de taille similaire (notamment Mistral-7B, SOLAR-10.7B, Gemma-7B, DeepSeek-Coder-7B-Base-v1.5 et plus), excellant particulièrement en code, en mathématiques, en raisonnement de bon sens et en compréhension écrite.Yi-VL-34B
et Yi-VL-6B
, sont open source et disponibles au public.Yi-VL-34B
s'est classé premier parmi tous les modèles open source existants dans les derniers benchmarks, notamment MMMU et CMMMU (sur la base des données disponibles jusqu'en janvier 2024).Yi-34B-Chat
Yi-34B-Chat-4bits
Yi-34B-Chat-8bits
Yi-6B-Chat
Yi-6B-Chat-4bits
Yi-6B-Chat-8bits
Vous pouvez en essayer quelques-uns de manière interactive sur :
Yi-6B-200K
et Yi-34B-200K
, sont open source et disponibles au public.Yi-6B
et Yi-34B
, sont open source et disponibles au public.[ Retour en haut ⬆️ ]
Les modèles Yi sont disponibles en plusieurs tailles et répondent à différents cas d'utilisation. Vous pouvez également affiner les modèles Yi pour répondre à vos besoins spécifiques.
Si vous souhaitez déployer des modèles Yi, assurez-vous de respecter la configuration logicielle et matérielle requise.
Modèle | Télécharger |
---|---|
Yi-34B-Chat | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-34B-Chat-4bits | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-34B-Chat-8bits | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-6B-Chat | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-6B-Chat-4bits | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-6B-Chat-8bits | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
- Les modèles de la série 4 bits sont quantifiés par AWQ.
- Les modèles de la série 8 bits sont quantifiés par GPTQ
- Tous les modèles quantifiés ont une faible barrière à utiliser puisqu'ils peuvent être déployés sur des GPU grand public (par exemple, 3090, 4090).
Modèle | Télécharger |
---|---|
Yi-34B | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-34B-200K | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-9B | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-9B-200K | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-6B | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
Yi-6B-200K | • ? Faire des câlins au visage • ? ModèlePortée • ? modèle sage |
- 200 000 équivaut à peu près à 400 000 caractères chinois.
- Si vous souhaitez utiliser la version précédente du Yi-34B-200K (sortie le 5 novembre 2023), exécutez git checkout 069cd341d60f4ce4b07ec394e82b79e94f656cf
pour télécharger le poids.
Modèle | Introduction | Fenêtre contextuelle par défaut | Jetons pré-entraînés | Date des données de formation |
---|---|---|---|---|
Modèles de la série 6B | Ils conviennent à un usage personnel et académique. | 4K | 3T | Jusqu'en juin 2023 |
Modèles de la série 9B | C'est le meilleur en matière de codage et de mathématiques dans les modèles de la série Yi. | Yi-9B est formé en continu sur la base de Yi-6B, en utilisant des jetons 0,8T. | ||
Modèles de la série 34B | Ils conviennent à des fins personnelles, académiques et commerciales (en particulier pour les petites et moyennes entreprises). Il s'agit d'une solution rentable, abordable et dotée de capacités émergentes. | 3T |
Pour les modèles de chat
Cependant, cette plus grande diversité pourrait amplifier certains problèmes existants, notamment :
[ Retour en haut ⬆️ ]
Astuce : Si vous souhaitez démarrer avec le modèle Yi et explorer différentes méthodes d'inférence, consultez le Yi Cookbook.
Sélectionnez l'un des chemins suivants pour commencer votre voyage avec Yi !
Si vous préférez déployer des modèles Yi localement,
?♀️ et vous disposez de ressources suffisantes (par exemple, NVIDIA A800 80 Go), vous pouvez choisir l'une des méthodes suivantes :
?♀️ et vous disposez de ressources limitées (par exemple, un MacBook Pro), vous pouvez utiliser lama.cpp.
Si vous préférez ne pas déployer de modèles Yi localement, vous pouvez explorer les fonctionnalités de Yi à l'aide de l'une des options suivantes.
Si vous souhaitez explorer plus de fonctionnalités de Yi, vous pouvez adopter l'une de ces méthodes :
API Yi (officiel Yi)
API Yi (réplication)
Si vous souhaitez discuter avec Yi avec des options plus personnalisables (par exemple, invite du système, température, pénalité de répétition, etc.), vous pouvez essayer l'une des options suivantes :
Yi-34B-Chat-Playground (officiel Yi)
Yi-34B-Chat-Playground (réplique)
Si vous souhaitez discuter avec Yi, vous pouvez utiliser l'un de ces services en ligne, qui offrent une expérience utilisateur similaire :
Yi-34B-Chat (officiel Yi sur Hugging Face)
Yi-34B-Chat (bêta officielle de Yi)
[ Retour en haut ⬆️ ]
Ce didacticiel vous guide à travers chaque étape de l'exécution locale de Yi-34B-Chat sur un A800 (80G) , puis de l'inférence.
Assurez-vous que Python 3.10 ou une version ultérieure est installé.
Si vous souhaitez exécuter d'autres modèles Yi, consultez la configuration logicielle et matérielle requise.
Pour configurer l'environnement et installer les packages requis, exécutez la commande suivante.
git clone https://github.com/01-ai/Yi.git
cd yi
pip install -r requirements.txt
Vous pouvez télécharger les poids et le tokenizer des modèles Yi à partir des sources suivantes :
Vous pouvez effectuer une inférence avec le chat Yi ou des modèles de base comme ci-dessous.
Créez un fichier nommé quick_start.py
et copiez-y le contenu suivant.
from transformers import AutoModelForCausalLM , AutoTokenizer
model_path = '<your-model-path>'
tokenizer = AutoTokenizer . from_pretrained ( model_path , use_fast = False )
# Since transformers 4.35.0, the GPT-Q/AWQ model can be loaded using AutoModelForCausalLM.
model = AutoModelForCausalLM . from_pretrained (
model_path ,
device_map = "auto" ,
torch_dtype = 'auto'
). eval ()
# Prompt content: "hi"
messages = [
{ "role" : "user" , "content" : "hi" }
]
input_ids = tokenizer . apply_chat_template ( conversation = messages , tokenize = True , add_generation_prompt = True , return_tensors = 'pt' )
output_ids = model . generate ( input_ids . to ( 'cuda' ))
response = tokenizer . decode ( output_ids [ 0 ][ input_ids . shape [ 1 ]:], skip_special_tokens = True )
# Model response: "Hello! How can I assist you today?"
print ( response )
Exécutez quick_start.py
.
python quick_start.py
Ensuite, vous pouvez voir une sortie similaire à celle ci-dessous. ?
Hello ! How can I assist you today ?
Yi-34B
Les étapes sont similaires à pip - Effectuer une inférence avec le modèle de chat Yi.
Vous pouvez utiliser le fichier existant text_generation.py
.
python demo/text_generation.py --model < your-model-path >
Ensuite, vous pouvez voir une sortie similaire à celle ci-dessous. ?
Invite : Laissez-moi vous raconter une histoire intéressante sur le chat Tom et la souris Jerry,
Génération : Laissez-moi vous raconter une histoire intéressante sur le chat Tom et la souris Jerry, qui s'est produite dans mon enfance. Mon père avait une grande maison avec deux chats qui vivaient à l'intérieur pour tuer les souris. Un jour, alors que je jouais seul à la maison, j'ai trouvé un des matous allongé sur le dos près de la porte de notre cuisine, il avait vraiment l'air de vouloir quelque chose de nous mais il ne pouvait pas se lever parce qu'il y avait trop de monde autour de lui ! Il a continué à essayer pendant plusieurs minutes avant de finalement abandonner...
Yi-9B
Saisir
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL_DIR = " 01-ai/Yi-9B "
model = AutoModelForCausalLM.from_pretrained(MODEL_DIR, torch_dtype= " auto " )
tokenizer = AutoTokenizer.from_pretrained(MODEL_DIR, use_fast=False)
input_text = " # write the quick sort algorithm "
inputs = tokenizer(input_text, return_tensors= " pt " ).to(model.device)
outputs = model.generate( ** inputs, max_length=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Sortir
# write the quick sort algorithm
def quick_sort(arr):
if len(arr) < = 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
# test the quick sort algorithm
print(quick_sort([3, 6, 8, 10, 1, 2, 1]))
[ Retour en haut ⬆️ ]
Assurez-vous d'avoir installé Docker et nvidia-container-toolkit.
docker run -it --gpus all
-v <your-model-path>: /models
ghcr.io/01-ai/yi:latest
Vous pouvez également extraire l'image Yi Docker de registry.lingyiwanwu.com/ci/01-ai/yi:latest
.
Vous pouvez effectuer une inférence avec le chat Yi ou des modèles de base comme ci-dessous.
Les étapes sont similaires à pip - Effectuer une inférence avec le modèle de chat Yi.
Notez que la seule différence est de définir model_path = '<your-model-mount-path>'
au lieu de model_path = '<your-model-path>'
.
Les étapes sont similaires à pip - Effectuer une inférence avec le modèle de base Yi.
Notez que la seule différence est de définir --model <your-model-mount-path>'
au lieu de model <your-model-path>
.
conda-lock
pour générer des fichiers de verrouillage entièrement reproductibles pour les environnements conda.micromamba
pour installer ces dépendances.Installez micromamba en suivant les instructions disponibles ici.
Exécutez micromamba install -y -n yi -f conda-lock.yml
pour créer un environnement conda nommé yi
et installez les dépendances nécessaires.
Le didacticiel suivant vous guidera à travers chaque étape de l'exécution locale d'un modèle quantifié (Yi-chat-6B-2bits), puis de l'inférence.
Ce didacticiel suppose que vous utilisez un MacBook Pro avec 16 Go de mémoire et une puce Apple M2 Pro.
Assurez-vous git-lfs
est installé sur votre machine.
llama.cpp
Pour cloner le référentiel llama.cpp
, exécutez la commande suivante.
git clone [email protected]:ggerganov/llama.cpp.git
2.1 Pour cloner XeIaso/yi-chat-6B-GGUF avec uniquement des pointeurs, exécutez la commande suivante.
GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/XeIaso/yi-chat-6B-GGUF
2.2 Pour télécharger un modèle Yi quantifié (yi-chat-6b.Q2_K.gguf), exécutez la commande suivante.
git-lfs pull --include yi-chat-6b.Q2_K.gguf
Pour effectuer une inférence avec le modèle Yi, vous pouvez utiliser l'une des méthodes suivantes.
Méthode 1 : effectuer une inférence dans le terminal
Méthode 2 : effectuer une inférence sur le Web
Pour compiler llama.cpp
à l'aide de 4 threads, puis effectuer une inférence, accédez au répertoire llama.cpp
et exécutez la commande suivante.
Conseils
Remplacez
/Users/yu/yi-chat-6B-GGUF/yi-chat-6b.Q2_K.gguf
par le chemin réel de votre modèle.Par défaut, le modèle fonctionne en mode complétion.
Pour des options de personnalisation de sortie supplémentaires (par exemple, invite système, température, pénalité de répétition, etc.), exécutez
./main -h
pour vérifier les descriptions détaillées et l'utilisation.
make -j4 && ./main -m /Users/yu/yi-chat-6B-GGUF/yi-chat-6b.Q2_K.gguf -p " How do you feed your pet fox? Please answer this question in 6 simple steps:nStep 1: " -n 384 -e
...
How do you feed your pet fox ? Please answer this question in 6 simple steps:
Step 1: Select the appropriate food for your pet fox. You should choose high-quality, balanced prey items that are suitable for their unique dietary needs. These could include live or frozen mice, rats, pigeons, or other small mammals, as well as fresh fruits and vegetables.
Step 2: Feed your pet fox once or twice a day, depending on the species and its individual preferences. Always ensure that they have access to fresh water throughout the day.
Step 3: Provide an appropriate environment for your pet fox. Ensure it has a comfortable place to rest, plenty of space to move around, and opportunities to play and exercise.
Step 4: Socialize your pet with other animals if possible. Interactions with other creatures can help them develop social skills and prevent boredom or stress.
Step 5: Regularly check for signs of illness or discomfort in your fox. Be prepared to provide veterinary care as needed, especially for common issues such as parasites, dental health problems, or infections.
Step 6: Educate yourself about the needs of your pet fox and be aware of any potential risks or concerns that could affect their well-being. Regularly consult with a veterinarian to ensure you are providing the best care.
...
Vous avez maintenant posé avec succès une question au modèle Yi et obtenu une réponse ! ?
Pour initialiser un chatbot léger et rapide, exécutez la commande suivante.
cd llama.cpp
./server --ctx-size 2048 --host 0.0.0.0 --n-gpu-layers 64 --model /Users/yu/yi-chat-6B-GGUF/yi-chat-6b.Q2_K.gguf
Ensuite, vous pouvez obtenir un résultat comme celui-ci :
...
llama_new_context_with_model: n_ctx = 2048
llama_new_context_with_model: freq_base = 5000000.0
llama_new_context_with_model: freq_scale = 1
ggml_metal_init: allocating
ggml_metal_init: found device: Apple M2 Pro
ggml_metal_init: picking default device: Apple M2 Pro
ggml_metal_init: ggml.metallib not found, loading from source
ggml_metal_init: GGML_METAL_PATH_RESOURCES = nil
ggml_metal_init: loading ' /Users/yu/llama.cpp/ggml-metal.metal '
ggml_metal_init: GPU name: Apple M2 Pro
ggml_metal_init: GPU family: MTLGPUFamilyApple8 (1008)
ggml_metal_init: hasUnifiedMemory = true
ggml_metal_init: recommendedMaxWorkingSetSize = 11453.25 MB
ggml_metal_init: maxTransferRate = built-in GPU
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size = 128.00 MiB, ( 2629.44 / 10922.67)
llama_new_context_with_model: KV self size = 128.00 MiB, K (f16): 64.00 MiB, V (f16): 64.00 MiB
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size = 0.02 MiB, ( 2629.45 / 10922.67)
llama_build_graph: non-view tensors processed: 676/676
llama_new_context_with_model: compute buffer total size = 159.19 MiB
ggml_backend_metal_buffer_type_alloc_buffer: allocated buffer, size = 156.02 MiB, ( 2785.45 / 10922.67)
Available slots:
- > Slot 0 - max context: 2048
llama server listening at http://0.0.0.0:8080
Pour accéder à l'interface du chatbot, ouvrez votre navigateur Web et saisissez http://0.0.0.0:8080
dans la barre d'adresse.
Entrez une question, telle que « Comment nourrir votre renard de compagnie ? Veuillez répondre à cette question en 6 étapes simples » dans la fenêtre d'invite, et vous recevrez une réponse correspondante.
[ Retour en haut ⬆️ ]
Vous pouvez créer une démo d'interface utilisateur Web pour les modèles de chat Yi (notez que les modèles de base Yi ne sont pas pris en charge dans ce scénario).
Étape 1 : Préparez votre environnement.
Étape 2 : Téléchargez le modèle Yi.
Étape 3. Pour démarrer un service Web localement, exécutez la commande suivante.
python demo/web_demo.py -c < your-model-path >
Vous pouvez accéder à l'interface utilisateur Web en saisissant l'adresse fournie dans la console dans votre navigateur.
[ Retour en haut ⬆️ ]
bash finetune/scripts/run_sft_Yi_6b.sh
Une fois terminé, vous pouvez comparer le modèle affiné et le modèle de base avec la commande suivante :
bash finetune/scripts/run_eval.sh
Par défaut, nous utilisons un petit ensemble de données de BAAI/COIG pour affiner le modèle de base. Vous pouvez également préparer votre ensemble de données personnalisé au format jsonl
suivant :
{ "prompt" : " Human: Who are you? Assistant: " , "chosen" : " I'm Yi. " }
Et puis montez-les dans le conteneur pour remplacer ceux par défaut :
docker run -it
-v /path/to/save/finetuned/model/:/finetuned-model
-v /path/to/train.jsonl:/yi/finetune/data/train.json
-v /path/to/eval.jsonl:/yi/finetune/data/eval.json
ghcr.io/01-ai/yi:latest
bash finetune/scripts/run_sft_Yi_6b.sh
Assurez-vous d'avoir conda. Sinon, utilisez
mkdir -p ~ /miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~ /miniconda3/miniconda.sh
bash ~ /miniconda3/miniconda.sh -b -u -p ~ /miniconda3
rm -rf ~ /miniconda3/miniconda.sh
~ /miniconda3/bin/conda init bash
source ~ /.bashrc
Ensuite, créez un environnement conda :
conda create -n dev_env python=3.10 -y
conda activate dev_env
pip install torch==2.0.1 deepspeed==0.10 tensorboard transformers datasets sentencepiece accelerate ray==2.7
Pour le modèle Yi-6B, un nœud avec 4 GPU, chacun avec une mémoire GPU supérieure à 60 Go, est recommandé.
Pour le modèle Yi-34B, étant donné que l'utilisation de la technique du zéro déchargement consomme beaucoup de mémoire CPU, veillez à limiter le nombre de GPU dans l'entraînement de réglage fin du 34B. Veuillez utiliser CUDA_VISIBLE_DEVICES pour limiter le nombre de GPU (comme indiqué dans scripts/run_sft_Yi_34b.sh).
Une configuration matérielle typique pour affiner le modèle 34B est un nœud avec 8 GPU (limités à 4 en cours d'exécution par CUDA_VISIBLE_DEVICES=0,1,2,3), chacun avec une mémoire GPU supérieure à 80 Go et une mémoire CPU totale supérieure à 900 Go.
Téléchargez un modèle de base LLM sur MODEL_PATH (6B et 34B). Un dossier typique de modèles ressemble à :
| -- $MODEL_PATH
| | -- config.json
| | -- pytorch_model-00001-of-00002.bin
| | -- pytorch_model-00002-of-00002.bin
| | -- pytorch_model.bin.index.json
| | -- tokenizer_config.json
| | -- tokenizer.model
| | -- ...
Téléchargez un ensemble de données de huggingface vers le stockage local DATA_PATH, par exemple Dahoas/rm-static.
| -- $DATA_PATH
| | -- data
| | | -- train-00000-of-00001-2a1df75c6bce91ab.parquet
| | | -- test-00000-of-00001-8c7c51afc6d45980.parquet
| | -- dataset_infos.json
| | -- README.md
finetune/yi_example_dataset
contient des exemples d'ensembles de données, qui sont modifiés à partir de BAAI/COIG
| -- $DATA_PATH
| --data
| -- train.jsonl
| -- eval.jsonl
cd
dans le dossier scripts, copiez et collez le script et exécutez. Par exemple:
cd finetune/scripts
bash run_sft_Yi_6b.sh
Pour le modèle de base Yi-6B, définir training_debug_steps=20 et num_train_epochs=4 peut générer un modèle de discussion, ce qui prend environ 20 minutes.
Pour le modèle de base Yi-34B, l'initialisation prend un temps relativement long. S'il vous plaît soyez patient.
cd finetune/scripts
bash run_eval.sh
Ensuite, vous verrez la réponse du modèle de base et du modèle affiné.
[ Retour en haut ⬆️ ]
python quantization/gptq/quant_autogptq.py
--model /base_model
--output_dir /quantized_model
--trust_remote_code
Une fois terminé, vous pouvez ensuite évaluer le modèle résultant comme suit :
python quantization/gptq/eval_quantized_model.py
--model /quantized_model
--trust_remote_code
GPT-Q est une méthode PTQ (Post-Training Quantization). Il économise de la mémoire et offre des accélérations potentielles tout en conservant la précision du modèle.
Les modèles Yi peuvent être quantifiés GPT-Q sans trop d'efforts. Nous proposons un didacticiel étape par étape ci-dessous.
Pour exécuter GPT-Q, nous utiliserons AutoGPTQ et exllama. Et les transformateurs Huggingface ont intégré Optima et Auto-Gptq pour effectuer la quantification GPTQ sur les modèles de langage.
Le script quant_autogptq.py
vous est fourni pour effectuer la quantification GPT-Q :
python quant_autogptq.py --model /base_model
--output_dir /quantized_model --bits 4 --group_size 128 --trust_remote_code
Vous pouvez exécuter un modèle quantifié à l'aide de eval_quantized_model.py
:
python eval_quantized_model.py --model /quantized_model --trust_remote_code
python quantization/awq/quant_autoawq.py
--model /base_model
--output_dir /quantized_model
--trust_remote_code
Une fois terminé, vous pouvez ensuite évaluer le modèle résultant comme suit :
python quantization/awq/eval_quantized_model.py
--model /quantized_model
--trust_remote_code
AWQ est une méthode PTQ (Post-Training Quantization). Il s'agit d'une quantification efficace et précise à faible poids (INT3/4) pour les LLM.
Les modèles Yi peuvent être quantifiés AWQ sans trop d'efforts. Nous proposons un didacticiel étape par étape ci-dessous.
Pour exécuter AWQ, nous utiliserons AutoAWQ.
Le script quant_autoawq.py
vous est fourni pour effectuer la quantification AWQ :
python quant_autoawq.py --model /base_model
--output_dir /quantized_model --bits 4 --group_size 128 --trust_remote_code
Vous pouvez exécuter un modèle quantifié à l'aide de eval_quantized_model.py
:
python eval_quantized_model.py --model /quantized_model --trust_remote_code
[ Retour en haut ⬆️ ]
Si vous souhaitez déployer des modèles Yi, assurez-vous de respecter la configuration logicielle et matérielle requise.
Avant d'utiliser les modèles quantifiés Yi, assurez-vous d'avoir installé le logiciel approprié répertorié ci-dessous.
Modèle | Logiciel |
---|---|
Modèles quantifiés Yi 4 bits | AWQ et CUDA |
Modèles quantifiés Yi 8 bits | GPTQ et CUDA |
Avant de déployer Yi dans votre environnement, assurez-vous que votre matériel répond aux exigences suivantes.
Modèle | VRAM minimale | Exemple de GPU recommandé |
---|---|---|
Yi-6B-Chat | 15 Go | 1 x RTX 3090 (24 Go) 1 RTX 4090 (24 Go) 1 x A10 (24 Go) 1 x A30 (24 Go) |
Yi-6B-Chat-4bits | 4 Go | 1 RTX 3060 (12 Go) 1 x RTX 4060 (8 Go) |
Yi-6B-Chat-8bits | 8 Go | 1 RTX 3070 (8 Go) 1 x RTX 4060 (8 Go) |
Yi-34B-Chat | 72 Go | 4 RTX 4090 (24 Go) 1 x A800 (80 Go) |
Yi-34B-Chat-4bits | 20 Go | 1 x RTX 3090 (24 Go) 1 x RTX 4090 (24 Go) 1 x A10 (24 Go) 1 x A30 (24 Go) 1 x A100 (40 Go) |
Yi-34B-Chat-8bits | 38 Go | 2 RTX 3090 (24 Go) 2 RTX 4090 (24 Go) 1 x A800 (40 Go) |
Vous trouverez ci-dessous les exigences minimales détaillées en matière de VRAM pour différents cas d'utilisation par lots.
Modèle | lot = 1 | lot = 4 | lot = 16 | lot = 32 |
---|---|---|---|---|
Yi-6B-Chat | 12 Go | 13 Go | 15 Go | 18 Go |
Yi-6B-Chat-4bits | 4 Go | 5 Go | 7 Go | 10 Go |
Yi-6B-Chat-8bits | 7 Go | 8 Go | 10 Go | 14 Go |
Yi-34B-Chat | 65 Go | 68 Go | 76 Go | > 80 Go |
Yi-34B-Chat-4bits | 19 Go | 20 Go | 30 Go | 40 Go |
Yi-34B-Chat-8bits | 35 Go | 37 Go | 46 Go | 58 Go |
Modèle | VRAM minimale | Exemple de GPU recommandé |
---|---|---|
Yi-6B | 15 Go | 1 x RTX 3090 (24 Go) 1 RTX 4090 (24 Go) 1 x A10 (24 Go) 1 x A30 (24 Go) |
Yi-6B-200K | 50 Go | 1 x A800 (80 Go) |
Yi-9B | 20 Go | 1 x RTX 4090 (24 Go) |
Yi-34B | 72 Go | 4 RTX 4090 (24 Go) 1 x A800 (80 Go) |
Yi-34B-200K | 200 Go | 4 x A800 (80 Go) |
[ Retour en haut ⬆️ ]
Yi-34B
et Yi-34B-Chat
se résume à l'approche et aux résultats du réglage fin.Yi-34B
pourrait être votre solution.Yi-34B-Chat
pourrait être votre meilleur choix.