Home
Login

Modèle de langage conversationnel bilingue open source publié conjointement par Zhipu AI et le laboratoire KEG de l'université Tsinghua, prenant en charge l'appel d'outils, l'exécution de code, etc.

Apache-2.0Python 13.7kTHUDM Last Updated: 2025-01-13

Présentation détaillée du projet ChatGLM3

Aperçu du projet

ChatGLM3 est un modèle de pré-entraînement conversationnel publié conjointement par Zhipu AI et le laboratoire KEG de l'université Tsinghua. ChatGLM3-6B est le modèle open source de la série ChatGLM3. Tout en conservant les nombreuses excellentes caractéristiques des deux générations précédentes de modèles, telles que la fluidité de la conversation et le faible seuil de déploiement, ChatGLM3-6B introduit plusieurs nouvelles fonctionnalités et améliorations importantes.

Adresse du projet: https://github.com/THUDM/ChatGLM3

Caractéristiques principales

1. Modèle de base plus puissant

Le modèle de base de ChatGLM3-6B, ChatGLM3-6B-Base, utilise des données d'entraînement plus diversifiées, un nombre d'étapes d'entraînement plus important et une stratégie d'entraînement plus raisonnable. Les évaluations sur des ensembles de données de différents points de vue tels que la sémantique, les mathématiques, le raisonnement, le code et les connaissances montrent que ChatGLM3-6B-Base possède les performances les plus élevées parmi les modèles de base inférieurs à 10B.

2. Prise en charge plus complète des fonctionnalités

  • Nouvelle version du format Prompt: Adopte un format Prompt nouvellement conçu pour prendre en charge une interaction conversationnelle plus flexible.
  • Appel d'outils (Function Call): Prend en charge nativement la fonctionnalité d'appel d'outils, le modèle peut appeler activement des outils externes.
  • Exécution de code (Code Interpreter): Prend en charge l'exécution de code dans un environnement Jupyter et l'obtention des résultats.
  • Tâches d'agent: Prend en charge les scénarios de tâches d'agent complexes.

3. Séquence open source plus complète

Fournit plusieurs versions pour répondre à différents besoins :

  • ChatGLM3-6B: Modèle de conversation standard, prend en charge une longueur de contexte de 8 K.
  • ChatGLM3-6B-Base: Modèle de pré-entraînement de base.
  • ChatGLM3-6B-32K: Modèle de conversation de texte long, prend en charge un contexte de 32 K.
  • ChatGLM3-6B-128K: Modèle de compréhension de texte ultra-long, prend en charge un contexte de 128 K.

Performances

Évaluation des capacités de base

Résultats des tests sur 8 ensembles de données typiques en chinois et en anglais :

Modèle GSM8K MATH BBH MMLU C-Eval CMMLU MBPP AGIEval
ChatGLM2-6B-Base 32.4 6.5 33.7 47.9 51.7 50.0 - -
ChatGLM3-6B-Base 72.3 25.7 66.1 61.4 69.0 67.5 52.4 53.7

Capacité de traitement de texte long

ChatGLM3-6B-32K a été évalué manuellement dans plusieurs scénarios d'application de texte long. Par rapport au modèle de deuxième génération, son effet a été amélioré de plus de 50 % en moyenne. L'amélioration est particulièrement significative dans les applications telles que la lecture d'articles, le résumé de documents et l'analyse de rapports financiers.

Installation et utilisation

Préparation de l'environnement

git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
pip install -r requirements.txt

Exemple d'utilisation de base

from transformers import AutoTokenizer, AutoModel

# Charger le modèle
tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True, device='cuda')
model = model.eval()

# Interaction conversationnelle
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

Configuration matérielle requise

  • Chargement standard: Nécessite environ 13 Go de mémoire vidéo (précision FP16).
  • Chargement quantifié: La demande de mémoire vidéo est considérablement réduite après la quantification 4 bits.
  • Inférence CPU: Nécessite environ 32 Go de mémoire.
  • Prise en charge multi-GPU: Le modèle peut être distribué sur plusieurs GPU.

Méthodes de déploiement

1. Déploiement de l'interface Web

# Version Gradio
python web_demo_gradio.py

# Version Streamlit
streamlit run web_demo_streamlit.py

2. Interaction en ligne de commande

python cli_demo.py

3. Déploiement du service API

cd openai_api_demo
python api_server.py

Fournit une interface API compatible OpenAI, prenant en charge :

  • Interface de conversation standard
  • Interface d'appel d'outils
  • Réponse en flux continu
  • Contrôle des paramètres de température et top_p

Ajustement fin et extension

Prise en charge de l'ajustement fin

Le projet fournit une suite complète d'ajustement fin, prenant en charge :

  • Ajustement fin des instructions
  • Ajustement fin de la conversation
  • Ajustement fin spécifique à la tâche

Écosystème communautaire

Prend en charge plusieurs excellents projets open source :

Accélération de l'inférence:

  • chatglm.cpp : Solution d'accélération de la quantification similaire à llama.cpp.
  • ChatGLM3-TPU : Inférence d'accélération TPU.
  • TensorRT-LLM : Inférence haute performance du GPU NVIDIA.
  • OpenVINO : Inférence d'accélération des appareils Intel.

Framework d'ajustement fin:

  • LLaMA-Factory : Framework d'ajustement fin efficace.

Framework d'application:

  • LangChain-Chatchat : Projet de base de connaissances RAG.
  • BISHENG : Plateforme de développement d'applications de grands modèles.
  • RAGFlow : Moteur RAG de compréhension approfondie des documents.

Fonctionnalités de démonstration complètes

Le projet fournit une démonstration complète intégrant trois modes :

  1. Mode Chat: Interaction conversationnelle standard.
  2. Mode Tool: Démonstration d'appel d'outils.
  3. Mode Code Interpreter: Environnement d'exécution de code.

Licence et conditions d'utilisation

  • Recherche académique: Utilisation entièrement ouverte.
  • Utilisation commerciale: L'utilisation commerciale gratuite est autorisée après avoir rempli un questionnaire d'inscription.
  • Restrictions d'utilisation: Ne doit pas être utilisé à des fins susceptibles de nuire à l'État et à la société.
  • Exigences de sécurité: Les services doivent passer une évaluation de sécurité et un enregistrement.

Caractéristiques de l'architecture technique

Architecture du modèle

  • Version améliorée basée sur l'architecture GLM.
  • Mécanisme d'attention optimisé.
  • Meilleure prise en charge multilingue.
  • Prise en charge native de l'appel d'outils.

Optimisation de l'entraînement

  • Données d'entraînement plus diversifiées.
  • Nombre d'étapes d'entraînement plus important.
  • Stratégie d'entraînement plus raisonnable.
  • Optimisation pour le chinois.

Contribution de la communauté

Le projet embrasse activement la communauté open source, coopère en profondeur avec plusieurs excellents projets et a formé un écosystème complet. Les développeurs peuvent développer diverses applications innovantes basées sur ChatGLM3.