Home
Login

Ein von Zhipu AI und dem KEG-Labor der Tsinghua-Universität gemeinsam veröffentlichtes Open-Source-Dialog-Sprachmodell, das Tool-Aufrufe, Code-Ausführung und andere Funktionen unterstützt.

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

Detaillierte Vorstellung des ChatGLM3-Projekts

Projektübersicht

ChatGLM3 ist ein dialogorientiertes vortrainiertes Modell, das gemeinsam von Zhipu AI und dem KEG-Labor der Tsinghua-Universität veröffentlicht wurde. ChatGLM3-6B ist das Open-Source-Modell der ChatGLM3-Serie, das neben den vielen hervorragenden Eigenschaften der vorherigen zwei Generationen, wie z. B. flüssige Dialoge und niedrige Bereitstellungsschwellen, eine Reihe wichtiger neuer Funktionen und Verbesserungen einführt.

Projektadresse: https://github.com/THUDM/ChatGLM3

Kernfunktionen

1. Leistungsstärkeres Basismodell

Das Basismodell ChatGLM3-6B von ChatGLM3-6B-Base verwendet vielfältigere Trainingsdaten, ausreichendere Trainingsschritte und eine angemessenere Trainingsstrategie. Die Bewertung auf Datensätzen aus verschiedenen Perspektiven wie Semantik, Mathematik, Schlussfolgerungen, Code und Wissen zeigt, dass ChatGLM3-6B-Base die stärkste Leistung unter den Basismodellen unter 10B aufweist.

2. Umfassendere Funktionsunterstützung

  • Neue Prompt-Format: Nimmt ein neu gestaltetes Prompt-Format an, das flexiblere Dialoginteraktionen unterstützt.
  • Werkzeugaufruf (Function Call): Unterstützt nativ die Werkzeugaufruffunktion, sodass das Modell aktiv externe Werkzeuge aufrufen kann.
  • Codeausführung (Code Interpreter): Unterstützt die Ausführung von Code in einer Jupyter-Umgebung und das Abrufen von Ergebnissen.
  • Agent-Aufgaben: Unterstützt komplexe Agent-Aufgabenszenarien.

3. Umfassendere Open-Source-Sequenz

Bietet mehrere Versionen, um unterschiedliche Anforderungen zu erfüllen:

  • ChatGLM3-6B: Standard-Dialogmodell, unterstützt 8K Kontextlänge.
  • ChatGLM3-6B-Base: Basis-Vortrainiertes Modell.
  • ChatGLM3-6B-32K: Langtext-Dialogmodell, unterstützt 32K Kontext.
  • ChatGLM3-6B-128K: Ultralanges Textverständnismodell, unterstützt 128K Kontext.

Leistungsdarstellung

Bewertung der grundlegenden Fähigkeiten

Testergebnisse auf 8 typischen chinesischen und englischen Datensätzen:

Modell 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

Langtextverarbeitungsfähigkeit

ChatGLM3-6B-32K wurde in mehreren Langtextanwendungsszenarien manuell bewertet. Im Vergleich zum Modell der zweiten Generation wurde die Wirkung im Durchschnitt um mehr als 50 % verbessert. Die Verbesserung ist besonders deutlich bei Anwendungen wie dem Lesen von Artikeln, der Zusammenfassung von Dokumenten und der Analyse von Finanzberichten.

Installation und Verwendung

Umgebungsvorbereitung

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

Grundlegendes Verwendungsbeispiel

from transformers import AutoTokenizer, AutoModel

# Modell laden
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()

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

Hardwareanforderungen

  • Standardladen: Benötigt ca. 13 GB GPU-Speicher (FP16-Genauigkeit).
  • Quantisiertes Laden: Der GPU-Speicherbedarf wird nach der 4-Bit-Quantisierung erheblich reduziert.
  • CPU-Inferenz: Benötigt ca. 32 GB Speicher.
  • Multi-GPU-Unterstützung: Das Modell kann auf mehrere GPUs verteilt werden.

Bereitstellungsmethoden

1. Web-Oberflächenbereitstellung

# Gradio-Version
python web_demo_gradio.py

# Streamlit-Version
streamlit run web_demo_streamlit.py

2. Befehlszeileninteraktion

python cli_demo.py

3. API-Dienstbereitstellung

cd openai_api_demo
python api_server.py

Bietet eine OpenAI-kompatible API-Schnittstelle, die Folgendes unterstützt:

  • Standard-Dialogschnittstelle
  • Werkzeugaufrufschnittstelle
  • Streaming-Antwort
  • Temperatur- und Top_p-Parametersteuerung

Feinabstimmung und Erweiterung

Feinabstimmungsunterstützung

Das Projekt bietet ein komplettes Feinabstimmungspaket, das Folgendes unterstützt:

  • Befehlsfeinabstimmung
  • Dialogfeinabstimmung
  • Aufgabenspezifische Feinabstimmung

Community-Ökosystem

Unterstützt mehrere hervorragende Open-Source-Projekte:

Inferenzbeschleunigung:

  • chatglm.cpp: Ähnlich wie llama.cpp, ein Quantisierungsbeschleunigungsschema.
  • ChatGLM3-TPU: TPU-beschleunigte Inferenz.
  • TensorRT-LLM: Hochleistungsfähige NVIDIA GPU-Inferenz.
  • OpenVINO: Intel-Gerätebeschleunigte Inferenz.

Feinabstimmungsframework:

  • LLaMA-Factory: Effizientes Feinabstimmungsframework.

Anwendungsframework:

  • LangChain-Chatchat: RAG-Wissensdatenbankprojekt.
  • BISHENG: Entwicklungsplattform für große Modellanwendungen.
  • RAGFlow: RAG-Engine für tiefes Dokumentenverständnis.

Umfassende Demo-Funktion

Das Projekt bietet eine umfassende Demo, die drei Modi integriert:

  1. Chat-Modus: Standard-Dialoginteraktion.
  2. Tool-Modus: Werkzeugaufrufdemonstration.
  3. Code Interpreter-Modus: Codeausführungsumgebung.

Lizenz und Nutzungsbedingungen

  • Akademische Forschung: Völlig offene Nutzung.
  • Kommerzielle Nutzung: Kostenlose kommerzielle Nutzung nach Ausfüllen eines Fragebogens.
  • Nutzungsbeschränkungen: Darf nicht für Zwecke verwendet werden, die dem Staat und der Gesellschaft schaden könnten.
  • Sicherheitsanforderungen: Dienste müssen eine Sicherheitsbewertung und -registrierung durchlaufen.

Technische Architekturmerkmale

Modellarchitektur

  • Verbesserte Version basierend auf der GLM-Architektur.
  • Optimierter Aufmerksamkeitsmechanismus.
  • Bessere Mehrsprachigkeitsunterstützung.
  • Native Unterstützung für Werkzeugaufrufe.

Trainingsoptimierung

  • Vielfältigere Trainingsdaten.
  • Ausreichendere Trainingsschritte.
  • Angemessenere Trainingsstrategie.
  • Optimierung für Chinesisch.

Community-Beitrag

Das Projekt begrüßt aktiv die Open-Source-Community, arbeitet eng mit mehreren hervorragenden Projekten zusammen und hat ein vollständiges Ökosystem geschaffen. Entwickler können auf der Grundlage von ChatGLM3 verschiedene innovative Anwendungen entwickeln.