Si vous souhaitez créer votre propre clone de ChatGPT mais préférez des alternatives gratuites et open source, vous êtes au bon endroit. Dans cet article, nous allons explorer 12 alternatives à ChatGPT que vous pouvez utiliser pour créer votre propre modèle de chatbot sans avoir à dépenser d’argent.
Les avantages des alternatives gratuites et open source à ChatGPT
Avant de nous plonger dans les alternatives spécifiques, il est important de comprendre les avantages de l’utilisation de modèles de langage open source par rapport à ChatGPT.
- Confidentialité des données. De nombreuses entreprises souhaitent garder le contrôle de leurs données et ne veulent pas accorder l’accès à des tiers.
- Personnalisation. Les alternatives open source permettent aux développeurs d’entraîner des modèles de langage personnalisés en utilisant leurs propres données et d’appliquer des filtres sur des sujets spécifiques, si nécessaire.
- Accessibilité économique. Les modèles GPT open source vous permettent d’entraîner des modèles de langage sophistiqués sans vous soucier des coûts de matériel onéreux.
- Démocratisation de l’IA. L’utilisation de modèles open source ouvre la voie à de nouvelles recherches qui peuvent être utilisées pour résoudre des problèmes du monde réel.
Maintenant que nous avons clarifié les avantages, passons en revue les alternatives gratuites et open source à ChatGPT.
1. Llama
Introduction à Llama
Llama signifie Large Language Model Meta AI. C’est un modèle qui comprend une série de tailles allant de 7 milliards à 65 milliards de paramètres. Les chercheurs de Meta AI se sont concentrés sur l’amélioration des performances du modèle en augmentant le volume des données d’entraînement, plutôt que le nombre de paramètres. Ils ont affirmé que le modèle de 13 milliards de paramètres surpassait en performances les 175 milliards de paramètres du modèle GPT-3. Llama utilise l’architecture du transformeur et a été entraîné sur 1,4 trillion de tokens extraits du web scraping de Wikipédia, GitHub, Stack Exchange, des livres du Projet Gutenberg et des articles scientifiques sur ArXiv.
Code Python pour Llama
# Installa il pacchetto
pip install llama-cpp-python
from llama_cpp import Llama
llm = Llama(model_path="./models/7B/ggml-model.bin")
output = llm("Q: Elenco dei pianeti del sistema solare? A: ", max_tokens=128, stop=["Q:", "\n"], echo=True)
print(output)
2. Llama 2
Quoi de neuf dans Llama 2
Il existe quelques différences clés entre Llama 2 et Llama :
Données d'entraînement: Llama 2 a été entraîné sur un nombre de tokens supérieur de 40 % à celui de Llama, pour un total de 2 billions de tokens. Cela lui confère une base de connaissances plus large et lui permet de générer des réponses plus précises.Taille du modèle: Llama 2 est disponible en trois tailles : 7 milliards de paramètres, 13 milliards de paramètres et 70 milliards de paramètres. Alors que la taille maximale de Llama est de 65 milliards de paramètres.Optimisation du chat: Llama 2-Chat est une version spécialisée de Llama 2 optimisée pour les conversations bidirectionnelles. Il a été entraîné sur un ensemble de données de conversations humaines, ce qui lui permet de générer des réponses plus naturelles et engageantes.Sécurité et atténuation des biais: Llama 2 a été entraîné avec une attention particulière à la sécurité et à l’atténuation des biais. Cela signifie qu’il est moins susceptible de générer du contenu toxique ou nuisible.Open source: Llama 2 est open source, ce qui signifie que tout le monde peut l’utiliser à des fins de recherche ou commerciales, contrairement à Llama qui ne peut pas être utilisé à des fins commerciales.
Code Python pour Llama 2
Pour exécuter le modèle Llama2 de 7 milliards de paramètres, voici le code de référence :
%cd /content !apt-get -y install -qq aria2 !git clone -b v1.3 https://github.com/camenduru/text-generation-webui %cd /content/text-generation-webui !pip install -r requirements.txt !pip install -U gradio==3.28.3 !mkdir /content/text-generation-webui/repositories %cd /content/text-generation-webui/repositories !git clone -b v1.2 https://github.com/camenduru/GPTQ-for-LLaMa.git %cd GPTQ-for-LLaMa !python setup_cuda.py install !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/config.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/generation_config.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o generation_config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/special_tokens_map.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o special_tokens_map.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/resolve/main/tokenizer.model -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o tokenizer.model !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/raw/main/tokenizer_config.json -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o tokenizer_config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-7b-Chat-GPTQ/resolve/main/gptq_model-4bit-128g.safetensors -d /content/text-generation-webui/models/Llama-2-7b-Chat-GPTQ -o gptq_model-4bit-128g.safetensors %cd /content/text-generation-webui !python server.py --share --chat --wbits 4 --groupsize 128 --model_type llama
Pour le modèle Llama2 de 13 milliards de paramètres, vous pouvez vous référer au code suivant :
%cd /content !apt-get -y install -qq aria2 !git clone -b v1.8 https://github.com/camenduru/text-generation-webui %cd /content/text-generation-webui !pip install -r requirements.txt !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/model-00001-of-00003.safetensors -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model-00001-of-00003.safetensors !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/model-00002-of-00003.safetensors -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model-00002-of-00003.safetensors !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/model-00003-of-00003.safetensors -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model-00003-of-00003.safetensors !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/model.safetensors.index.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o model.safetensors.index.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/special_tokens_map.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o special_tokens_map.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/resolve/main/tokenizer.model -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o tokenizer.model !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/tokenizer_config.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o tokenizer_config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/config.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o config.json !aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/4bit/Llama-2-13b-chat-hf/raw/main/generation_config.json -d /content/text-generation-webui/models/Llama-2-13b-chat-hf -o generation_config.json %cd /content/text-generation-webui !python server.py --share --chat --load-in-8bit --model /content/text-generation-webui/models/Llama-2-13b-chat-hf
3. Alpaca
Introduction à Alpaca
Une équipe de chercheurs de l’Université de Stanford a développé un modèle de langage open source appelé Alpaca. Il est basé sur le grand modèle de langage de Meta appelé Llama. L’équipe a utilisé l’API GPT d’OpenAI (text-davinci-003) pour améliorer le modèle Llama de 7 milliards de paramètres. L’objectif de l’équipe est de rendre l’IA disponible gratuitement pour permettre aux universitaires de faire davantage de recherches sans avoir à se soucier du matériel coûteux nécessaire pour exécuter ces algorithmes gourmands en mémoire. Bien que ces modèles open source ne soient pas disponibles pour un usage commercial, les petites entreprises peuvent toujours les utiliser pour créer leurs propres chatbots.
Comment fonctionne Alpaca
L’équipe de Stanford a commencé ses recherches avec le plus petit des modèles de langage de Llama, à savoir le modèle Llama de 7 milliards de paramètres, et l’a pré-entraîné avec 1 trillion de tokens. Ils ont commencé avec 175 paires d’instructions-réponses écrites par des humains provenant de l’ensemble d’amorçage d’auto-instruction. Ils ont ensuite utilisé l’API de ChatGPT pour demander à ChatGPT de générer des instructions supplémentaires en utilisant l’ensemble d’amorçage. Ils ont ainsi obtenu environ 52 000 conversations échantillon, qu’ils ont utilisées pour affiner davantage le modèle Llama à l’aide du cadre d’entraînement de Hugging Face.
Llama est disponible en différentes tailles : 7B, 13B, 30B et 65B de paramètres. Alpaca a également été étendu aux modèles 13B, 30B et 65B.
Performances d’Alpaca
Le modèle Alpaca a été testé par rapport à ChatGPT dans des tâches telles que la création d’e-mails, les médias sociaux et les outils de productivité, et Alpaca a gagné 90 fois tandis que ChatGPT a gagné 89 fois. Le modèle peut être utilisé dans le monde réel à diverses fins. Il sera d’une grande aide pour les chercheurs dans le domaine de l’éthique de l’IA et de la cybersécurité, comme dans la détection des escroqueries et du phishing.
Limitations d’Alpaca
Comme la version commerciale de ChatGPT, Alpaca présente également des limitations similaires, telles que l’hallucination, la toxicité et les stéréotypes. En d’autres termes, il peut être utilisé pour générer du texte qui diffuse de la désinformation, du racisme et de la haine envers des sections vulnérables de la société.
Exigences de mémoire d’Alpaca
Alpaca ne peut pas être exécuté sur un processeur, il nécessite un GPU. Pour les modèles 7B et 13B, une seule GPU avec 12 Go de RAM est suffisante. Pour le modèle 30B, des ressources système supplémentaires sont nécessaires.
Code Python pour Alpaca
Voici un code de référence pour Alpaca. Il s’agit d’une application de chat qui utilise le modèle Alpaca 7B :
import sys
sys.path.append("/usr/local/lib/python3.9/site-packages")
!nvidia-smi
!git clone https://github.com/deepanshu88/Alpaca-LoRA-Serve.git
%cd Alpaca-LoRA-Serve
!python3.9 -m pip install -r requirements.txt
base_model = 'decapoda-research/llama-7b-hf'
finetuned_model = 'tloen/alpaca-lora-7b'
!python3.9 app.py --base_url $base_model --ft_ckpt_url $finetuned_model --share
N’oubliez pas que ce n’est qu’un code de référence pour Alpaca 7B. Vous pouvez l’adapter pour utiliser des modèles de différentes tailles, tels qu’Alpaca 13B et Alpaca 30B.
Résultat d’Alpaca
Voici un exemple de résultat d’Alpaca en réponse à deux questions relativement simples. Une question porte sur un sujet générique et l’autre sur le codage. Alpaca répond correctement aux deux questions.
4. GPT4All
Introduction à GPT4All
L’équipe de Nomic AI s’est inspirée d’Alpaca et a utilisé l’API GPT-3.5-Turbo d’OpenAI pour collecter environ 800 000 paires de questions-réponses afin de créer 430 000 invites et générations de style assistant, y compris du code, des dialogues et des récits. Les 800 000 paires sont environ 16 fois plus grandes qu’Alpaca. Ce qui est intéressant avec ce modèle, c’est qu’il peut être exécuté sur un processeur, il ne nécessite pas de GPU. Comme Alpaca, il est également open source, ce qui signifie que vous pouvez l’utiliser à des fins commerciales et que vous pouvez l’exécuter facilement sur votre ordinateur.
Comment fonctionne GPT4All
Il fonctionne de manière similaire à Alpaca et est basé sur le modèle Llama de 7 milliards de paramètres. L’équipe a entraîné des modèles Llama 7B et le modèle final a été entraîné sur les 437 605 invites de style assistant post-traitées.
Performances de GPT4All
En traitement du langage naturel, la perplexité est utilisée pour évaluer la qualité des modèles de langage. Elle mesure à quel point un modèle de langage serait surpris de voir une nouvelle séquence de mots qu’il n’a jamais rencontrée auparavant, en se basant sur ses données d’entraînement. Une valeur de perplexité plus faible indique que le modèle de langage est meilleur pour prédire le mot suivant dans une séquence et est donc plus précis. L’équipe de Nomic AI affirme que leurs modèles ont une perplexité inférieure à celle d’Alpaca. Cependant, la précision réelle dépend du type d’invite que vous utilisez. Alpaca pourrait avoir une meilleure précision dans certains cas.
Exigences de mémoire de GPT4All
Il peut être exécuté sur un processeur avec 8 Go de RAM. Si vous avez un ordinateur portable avec 4 Go de RAM, il est peut-être temps de passer à au moins 8 Go.
Code Python pour GPT4All
Voici un code de référence pour GPT4All. Vous pouvez l’utiliser comme référence, le modifier selon vos besoins ou l’exécuter tel quel. Il est entièrement à votre discrétion de décider comment utiliser le code pour mieux l’adapter à vos besoins.
# Clone il repository Git !git clone --recurse-submodules https://github.com/nomic-ai/gpt4all.git # Installa i pacchetti richiesti cd /content/gpt4all !python -m pip install -r requirements.txt cd transformers !pip install -e . cd ../peft !pip install -e . # Avvia l'addestramento !accelerate launch --dynamo_backend=inductor --num_processes=8 --num_machines=1 --machine_rank=0 --deepspeed_multinode_launcher standard --mixed_precision=bf16 --use_deepspeed --deepspeed_config_file=configs/deepspeed/ds_config.json train.py --config configs/train/finetune.yaml # Scarica il checkpoint del modello GPT4All cd /content/gpt4all/chat !wget https://the-eye.eu/public/AI/models/nomic-ai/gpt4all/gpt4all-lora-quantized.bin # Esegui il sistema di conversazione !./gpt4all-lora-quantized-linux-x86
Si vous exécutez le code sur une machine locale utilisant un système d’exploitation autre que Linux, utilisez plutôt les commandes suivantes :
Windows (PowerShell) : ./gpt4all-lora-quantized-win64.exe Mac (M1) : ./gpt4all-lora-quantized-OSX-m1 Mac (Intel) : ./gpt4all-lora-quantized-OSX-intel
Résultat de GPT4All
GPT4All n’a pas été en mesure de répondre correctement à une question liée au codage. Ce n’est qu’un exemple et nous ne pouvons pas évaluer la précision du modèle sur la base d’un seul cas. Il peut bien fonctionner avec d’autres invites, de sorte que la précision du modèle dépend de l’utilisation que vous en faites. De plus, lorsque je l’ai réexécuté 2 jours plus tard, il a bien fonctionné pour les questions liées au codage. Il semble qu’ils aient perfectionné le modèle.
Dépannage de GPT4All
Si vous rencontrez des problèmes avec la version distribuée qui n’a pas NCCL, cela peut être dû au fait que CUDA n’est pas installé sur votre ordinateur.
Certains utilisateurs ont signalé des erreurs étranges sur la plateforme Windows 10/11. En dernier recours, vous pouvez installer le sous-système Windows pour Linux, qui vous permet d’installer une distribution Linux sur votre ordinateur Windows et de suivre le code ci-dessus.
5. GPT4All-J
Ce modèle a un nom similaire au précédent, mais la différence est que les deux modèles proviennent de la même équipe de Nomic AI. Le seul changement est qu’il a maintenant été entraîné sur GPT-J au lieu de Llama. L’avantage de l’entraîner sur GPT-J est que GPT4All-J est désormais sous licence Apache-2, ce qui signifie que vous pouvez l’utiliser à des fins commerciales et que vous pouvez l’exécuter facilement sur votre ordinateur.
6. Dolly 2
L’équipe de Databricks a créé un modèle de langage basé sur le modèle Pythia d’EleutherAI, ensuite affiné sur environ 15 000 instructions tirées d’un corpus. Il est disponible en trois tailles : 12B, 7B et 3B de paramètres.
Exigences de mémoire de Dolly 2
Il nécessite un GPU avec environ 10 Go de RAM pour le modèle 7B avec quantification 8 bits. Pour le modèle 12B, au moins 18 Go de VRAM GPU sont requis.
Code Python pour Dolly 2
Voici un code de référence pour Dolly 2. Vous pouvez l’utiliser comme référence pour accéder au code Python et à une description détaillée du modèle Dolly.
7. Vicuna
Introduction à Vicuna
Une équipe de chercheurs de l’UC Berkeley, de la CMU, de Stanford et de l’UC San Diego a développé ce modèle. Il a été affiné sur Llama en utilisant un ensemble de données de chat extrait du site Web ShareGPT. Les chercheurs affirment que le modèle a obtenu une qualité supérieure à 90 % par rapport à OpenAI ChatGPT-4. Il convient de noter que ses performances sont presque égales à celles de Bard. Ils ont utilisé le programme d’entraînement d’Alpaca et ont amélioré deux aspects : les conversations à plusieurs tours et les séquences longues.
Code Python pour Vicuna
Vous pouvez vous référer à cet article – Guide détaillé de Vicuna pour accéder au code Python et à une description détaillée du modèle Vicuna.
8. StableVicuna
Introduction à StableVicuna
Stability AI a publié StableVicuna, une version affinée du modèle Vicuna 13B. Pour améliorer le modèle Vicuna, ils l’ont entraîné davantage en utilisant le fine-tuning supervisé (SFT). Ils ont utilisé trois ensembles de données différents pour l’entraîner :
- OpenAssistant Conversations Dataset, qui contient 161 443 messages de conversation humaine dans 35 langues différentes.
- GPT4All Prompt Generations, qui est un ensemble de données de 437 605 invites et réponses générées par GPT-3.5.
- Alpaca, qui est un ensemble de données de 52 000 invites et réponses générées par le modèle text-davinci-003.
Ils ont utilisé trlx pour entraîner un modèle de récompense. Ce modèle a été configuré en utilisant leur modèle SFT supplémentaire. Le modèle de récompense a été entraîné en utilisant trois ensembles de données avec des préférences humaines :
- OpenAssistant Conversations Dataset avec 7213 échantillons de préférence.
- Anthropic HH-RLHF avec 160 800 étiquettes de personnes exprimant ce qu’elles pensent de l’utilité ou de l’innocuité des assistants IA.
- Stanford Human Preferences avec 348 718 préférences humaines sur des réponses à des questions ou des instructions dans différents domaines, comme la cuisine ou la philosophie.
Enfin, le modèle SFT a été entraîné en utilisant RLHF avec trlX par un processus appelé Proximal Policy Optimization. Voici comment StableVicuna a été créé.
Exigences de mémoire de StableVicuna
Pour exécuter le modèle GPTQ StableVicuna 4 bits, environ 10 Go de VRAM GPU sont nécessaires.
Problèmes de performance de StableVicuna
Stability AI affirme que ce modèle est une amélioration par rapport au modèle Vicuna original, mais de nombreuses personnes ont signalé le contraire. Ce modèle « hallucine » plus que le modèle original, produisant de moins bonnes réponses. En d’autres termes, le modèle génère des résultats inexacts qui ne correspondent pas à la question. Comme ces modèles viennent d’être publiés, une évaluation rigoureuse est encore nécessaire. Il est possible que ce modèle fonctionne mieux dans certaines tâches, mais beaucoup moins bien dans d’autres.
Code Python pour StableVicuna
Nous pouvons exécuter le modèle en utilisant Text Generation WebUI, ce qui facilite l’exécution du modèle LLM open source. Le code suivant effectue une quantification 4 bits qui réduit les exigences de mémoire du modèle et permet une exécution avec moins de VRAM.
%cd /content !apt-get -y install -qq aria2 !git clone -b v1
9. Modèle Alpaca GPT-4
Présentation d’Alpaca GPT-4
Alpaca GPT-4 est un modèle linguistique développé par OpenAI. C’est une version améliorée du modèle Alpaca qui utilise 10 billions de tokens pour l’entraînement. Alpaca GPT-4 est connu pour sa capacité à générer des textes de haute qualité et des réponses cohérentes.
Code Python pour Alpaca GPT-4
Actuellement, OpenAI n’a pas publié le code ni le modèle pré-entraîné pour Alpaca GPT-4. Cependant, vous pouvez utiliser d’autres alternatives gratuites et open source listées dans cet article pour créer votre chatbot.
10. Cerebras-GPT
Présentation de Cerebras-GPT
Cerebras-GPT est un modèle linguistique développé par la société d’intelligence artificielle Cerebras. Il utilise la technologie de traitement parallèle de la puce Cerebras pour entraîner de grands modèles linguistiques. Cerebras-GPT est connu pour ses performances de haut niveau et sa capacité à traiter de grandes quantités de données de manière efficace.
Exigences de mémoire de Cerebras-GPT
Cerebras-GPT nécessite un GPU avec une grande quantité de mémoire VRAM, de préférence 32 Go ou plus, pour exécuter de grands modèles de langage.
Code Python pour Cerebras-GPT
Actuellement, Cerebras n’a pas publié le code ou le modèle pré-entraîné pour Cerebras-GPT. Cependant, vous pouvez utiliser les alternatives gratuites et open source listées dans cet article pour créer votre chatbot.
11. GPT-J 6B
Présentation de GPT-J 6B
GPT-J 6B est un grand modèle linguistique développé par EleutherAI. Il a été entraîné sur 6 milliards de paramètres en utilisant des techniques d’apprentissage automatique avancées. GPT-J 6B est connu pour sa capacité à générer des textes cohérents et de haute qualité sur un large éventail de sujets.
Code Python pour GPT-J 6B
Actuellement, EleutherAI n’a pas publié le code ni le modèle pré-entraîné pour GPT-J 6B. Cependant, vous pouvez utiliser d’autres alternatives gratuites et open source listées dans cet article pour créer votre chatbot.
12. Modèle OpenChatKit
Présentation du modèle OpenChatKit
OpenChatKit Model est un modèle de chatbot open source développé par OpenAI. Il est basé sur l’architecture du transformeur et peut être utilisé pour créer des chatbots avec des réponses cohérentes et de haute qualité.
Code Python pour le modèle OpenChatKit
Actuellement, OpenAI n’a pas publié le code ni le modèle pré-entraîné pour OpenChatKit Model. Cependant, vous pouvez utiliser d’autres alternatives gratuites et open source listées dans cet article pour créer votre chatbot.
Pubblicato in Développement & code, Intelligence Artificielle
Soyez le premier à commenter