Les applications d'IA et les grands modèles représentés par ChatGPT et GPT4 sont populaires partout dans le monde et sont considérés comme ouvrant une nouvelle révolution industrielle technologique et un nouveau point de départ pour l'AGI (Artificial General Intelligence). Non seulement les géants de la technologie se poursuivent et rivalisent pour lancer de nouveaux produits, mais de nombreux magnats de l’IA dans le monde universitaire et industriel investissent également dans des vagues entrepreneuriales connexes. L'IA générative se multiplie rapidement en « jours » et continue de croître !
Cependant, OpenAI ne l'a pas rendu open source. Quels sont les détails techniques derrière eux ? Comment suivre, rattraper et participer rapidement à cette vague technologique ? Comment réduire le coût élevé de la création et de l’application de grands modèles d’IA ? Comment protéger les données de base et la propriété intellectuelle contre les fuites dues à l’utilisation d’API tierces de grands modèles ?
En tant que solution de grands modèles d'IA open source la plus populaire, Colossal-AI a pris les devants dans l'établissement d'un processus RLHF complet qui comprend collecte supervisée d'ensembles de données -> réglage fin supervisé -> formation du modèle de récompense -> renforcement apprentissage du réglage fin , basé sur le modèle de pré-formation LLaMA, lancé ColossalChat, est actuellement le projet open source pratique le plus proche de la solution technique originale de ChatGPT !
Adresse Open source : https://github.com/hpcaitech/ColossalAI
Contient le contenu suivant :
1. Démo : Vous pouvez directement expérience l'effet modèle en ligne, aucune inscription ni liste d'attente requise
2. Code de formation : Code de formation RLHF complet open source, qui a été open source pour inclure les modèles 7B et 13B
3. ensemble : Open source 104K Medium, ensemble de données bilingue anglais
4.Déploiement d'inférence : Le modèle d'inférence quantitative 4 bits ne nécessite que 4 Go de mémoire vidéo
5.Seulement une petite quantité de puissance de calcul sur un seul serveur. Il peut être reproduit rapidement6 Des modèles à plus grande échelle, des ensembles de données, d'autres optimisations, etc. seront ajoutés à grande vitesse et de manière itérative
Abordable. modèles et capacités puissantes
ColossalChat n'a besoin que de moins de 10 milliards de paramètres, et dans les grandes langues. En affinant RLHF sur la base du modèle, vous pouvez maîtriser les compétences bilingues chinois et anglais et obtenir des effets similaires à ChatGPT et GPT-3.5 .Par exemple, question et réponse de bon sens :
Réponse en chinois :
Écrivez un e-mail :
W rite un algorithme :
Solution complète de clonage ChatGPTBien que les modèles de la série GPT tels que ChatGPT et GPT-4 soient très puissants, il est peu probable qu'ils soient entièrement open source. Heureusement, la communauté open source continue de travailler dur.
Par exemple, Meta a open source le modèle LLaMA. Le nombre de paramètres de ce modèle varie de 7 milliards à 65 milliards de paramètres peuvent surpasser les 175 milliards de modèles GPT-3 dans la plupart des tests de référence. Cependant, comme il n’était pas demandé d’effectuer un réglage fin (instruction de réglage), l’effet de génération réel n’était pas idéal.
Alpaca de Stanford génère des données d'entraînement de manière auto-instructive en appelant l'API OpenAI, de sorte qu'un modèle léger avec seulement 7 milliards de paramètres puisse être affiné à un coût très faible pour obtenir des centaines de milliards de paramètres comparables à GPT-3.5 Effets de dialogue de modèles de langage à très grande échelle.
Maisles solutions open source existantes peuvent être considérées comme n'obtenant que la première étape du modèle de réglage fin supervisé dans l'apprentissage par renforcement par feedback humain (RLHF), sans travail d'alignement et de réglage ultérieur. Dans le même temps, l’ensemble de données de formation d’Alpaca est trop petit et le corpus est uniquement en anglais, ce qui limite également dans une certaine mesure les performances du modèle.
Et l'effet étonnant de ChatGPT et GPT-4 réside dans l'introduction du RLHF dans le processus de formation, rendant le contenu généré plus cohérent avec les valeurs humaines.
Trois étapes de RLHF
Basée sur le modèle LLaMA, Colossal-AI est la première solution open source de reproduction de modèle de type Chat qui contient un processus RLHF complet. actuellement Le projet open source pratique le plus proche du parcours technique original de ChatGPT !
ColossalChat a open source un ensemble de données bilingues chinois et anglais contenant environ 100 000 questions et réponses. Cet ensemble de données collecte et nettoie les véritables scènes de questionnement des gens sur les plateformes sociales en tant qu'ensemble de données de départ, utilise une technologie d'auto-instruction pour étendre les données et coûte environ 900 $ pour l'annotation. Par rapport aux ensembles de données générés par d'autres méthodes d'auto-instruction, les données de départ de cet ensemble de données sont plus réelles et plus riches, et l'ensemble de données généré couvre plus de sujets. Ces données peuvent être utilisées à la fois pour le réglage fin et pour la formation RLHF. Grâce à des données de haute qualité, ColossalChat peut mener de meilleures interactions conversationnelles et prendre en charge le chinois.
Processus de collecte de données ColossalChat
Reproduction de l'algorithme RLHF
RLHF-Stage1 est un réglage supervisé, c'est-à-dire en utilisant l'ensemble de données mentionné ci-dessus Affiner le modèle .
RLHF-Stage2 entraîne le modèle de récompense. Il trie manuellement différentes sorties de la même invite pour obtenir les scores correspondants et supervise l'entraînement du modèle de récompense.
RLHF-Stage3 utilise un algorithme d'apprentissage par renforcement, qui est la partie la plus complexe du processus de formation :
Organigramme de l'algorithme RLHF-Stage3
Dans la partie PPO, ColossalChat est divisé en deux étapes : la première est la partie Make Experience, qui utilise les modèles SFT, Actor, RM et Critic pour calculer et générer l'expérience et la stocke dans le tampon, puis la partie mise à jour des paramètres, qui ; utilise l'expérience pour calculer la perte de stratégie et la perte de valeur.
Dans la partie PTX, ColossalChat calcule la fonction de perte d'entropie croisée de la réponse de sortie de l'acteur et la partie réponse du corpus d'entrée, qui est utilisée pour ajouter le gradient de pré-entraînement au gradient PPO pour maintenir les performances d'origine. du modèle de langage et éviter les oublis. Enfin, la perte de stratégie, la perte de valeur et la perte PTX sont additionnées pour la rétro-propagation et la mise à jour des paramètres.
Démarrez vite
ColossalChat a open source le code complet permettant de reproduire les trois étapes de formation ChatGPT basé sur le modèle LLaMA.
La première étape, entraînez le modèle SFT :
# Training with a 4-GPU servers colossalai run --nproc_per_node=4 train_sft.py --pretrain "/path/to/LLaMa-7B/" --model 'llama' --strategy colossalai_zero2 --log_interval 10 --save_path/path/to/Coati-7B --dataset /path/to/data.json --batch_size 4 --accimulation_steps 8 --lr 2e-5
La deuxième étape, entraînez le modèle de récompense :
# Training with a 4-GPU servers colossalai run --nproc_per_node=4 train_reward_model.py --pretrain "/path/to/LLaMa-7B/" --model 'llama' --strategy colossalai_zero2 --dataset /path/to/datasets
La troisième étape, utilisez l'entraînement RL :
# Training with a 8-GPU servers colossalai run --nproc_per_node=8 train_prompts.py prompts.csv --strategy colossalai_zero2 --pretrain "/path/to/Coati-7B" --model 'llama' --pretrain_dataset /path/to/dataset
Après avoir obtenu le modèle final pondérations, les coûts du matériel d'inférence peuvent également être réduits grâce à la quantification et des services d'inférence en ligne peuvent être lancés. Seul un seul GPU d'environ 4 Go de mémoire vidéo peut achever le déploiement de 7 milliards de services d'inférence de modèles de paramètres.
python server.py/path/to/pretrained --quant 4bit --gptq_checkpoint /path/to/coati-7b-4bit-128g.pt --gptq_group_size 128
ColossalChat 能够快速跟进 ChatGPT 完整 RLHF 流程复现,离不开 AI 大模型基础设施 Colossal-AI 及相关优化技术的底座支持,相同条件下训练速度相比 Alpaca 采用的 FSDP (Fully Sharded Data Parallel) 可提升三倍左右。
系统基础设施 Colossal-AI
AI 大模型开发系统 Colossal-AI 为该方案提供了基础支持,它可基于 PyTorch 高效快速部署 AI 大模型训练和推理,从而降低 AI 大模型应用的成本。Colossal-AI 由加州伯克利大学杰出教授 James Demmel 和新加坡国立大学校长青年教授尤洋领导开发。自从它开源以来,Colossal-AI 已经多次在 GitHub 热榜位列世界第一,获得 GitHub Star 约两万颗,并成功入选 SC、AAAI、PPoPP、CVPR、ISC 等国际 AI 与 HPC 顶级会议的官方教程。
减少内存冗余的 ZeRO + Gemini
Colossal-AI 支持使用无冗余优化器 (ZeRO) 提高内存使用效率,低成本容纳更大模型,同时不影响计算粒度和通信效率。自动 Chunk 机制可以进一步提升 ZeRO 的性能,提高内存使用效率,减少通信次数并避免内存碎片。异构内存空间管理器 Gemini 支持将优化器状态从 GPU 显存卸载到 CPU 内存或硬盘空间,以突破 GPU 显存容量限制,扩展可训练模型的规模,降低 AI 大模型应用成本。
使用 LoRA 低成本微调
Colossal-AI 支持使用低秩矩阵微调(LoRA)方法,对 AI 大模型进行低成本微调。LoRA 方法认为大语言模型是过参数化的,而在微调时,参数改变量是一个低秩矩阵。因此,可以将这个矩阵分解为两个更小的矩阵的乘积。在微调过程中,大模型的参数被固定,只有低秩矩阵参数被调整,从而显著减小了训练所需的参数量,并降低成本。
低成本量化推理
GPTQ 量化
为降低推理部署成本,Colossal-AI 使用 GPTQ 4bit 量化推理。在 GPT/OPT/BLOOM 类模型上,它比传统的 RTN (rount-to-nearest) 量化技术能够获得更好的 Perplexity 效果。相比常见的 FP16 推理,它可将显存消耗降低 75%,只损失极少量的吞吐速度与 Perplexity 性能。
以 ColossalChat-7B 为例,在使用 4bit 量化推理时,70 亿参数模型仅需大约 4GB 显存即可完成短序列(生成长度为 128 )推理,在普通消费级显卡上即可完成(例如 RTX 3060 Laptop),仅需一行代码即可使用。
if args.quant == '4bit': model = load_quant (args.pretrained, args.gptq_checkpoint, 4, args.gptq_group_size)
如果采用高效的异步卸载技术 (offload),还可以进一步降低显存要求,使用更低成本的硬件推理更大的模型。
1. ColossalChat 开源了第一个完整的RLHF pipeline,斯坦福Alpaca没有做 RLHF,也就是没有做 Stage 2 和 Stage 3。
2. ColossalChat 采用了更多的指令数据,质量更好,范围更大,并使用强化学习做alignment 使回答更接近人类。
3. Le processus de formation ColossalChat intègre de nombreuses optimisations du système de Colossal-AI. La vitesse de formation du même ensemble de données et de la même taille de modèle peut être environ 3 fois plus rapide que celle d'Alpaca, permettant aux chercheurs scientifiques et les petites et moyennes entreprises peuvent également former et déployer indépendamment leur propre système de session.
4. L'équipe ColossalChat a collecté elle-même davantage d'ensembles de données : un total de 24 millions de jetons en anglais pour la formation, environ 30 millions de jetons en chinois et un total d'environ 54 millions de jetons. Parmi eux, l'ensemble de données collectées par ColossalChat lui-même représente 6 millions de jetons en anglais et 18 millions de jetons en chinois.
Voici quelques performances de ColossalChat et Alpaca dans le dialogue linguistique (ce qui précède est ColossalChat, le bas est Alpaca).
Écrire un tri rapide en Python :
Écrire un e-mail au professeur pour demander une lettre de recommandation :
Heureusement, contrairement au passé, les grands modèles d'IA et les technologies de pointe n'étaient monopolisés que par quelques géants de la technologie et des start-ups open source telles que PyTorch, Hugging Face et OpenAI ont également joué un rôle clé. rôle dans cette vague. S'appuyant sur l'expérience réussie de la communauté open source, Colossal-AI invite toutes les parties à participer à la co-construction et à entrer dans l'ère des grands modèles !
Vous pouvez contacter ou participer via les méthodes suivantes :
1. Publiez un problème sur GitHub ou soumettez une demande de tirage (PR)
2. Rejoignez le groupe WeChat ou Slack de l'utilisateur Colossal-AI. communication
3 . Envoyez une proposition formelle de coopération à l'e-mail youy@comp.nus.edu.sg
Adresse open source :
https://github.com/hpcaitech/ColossalAI
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!