Große Sprachmodelle (LLMs) leicht gemacht: EasyLM ist eine Komplettlösung für das Vortraining, die Feinabstimmung, die Bewertung und die Bereitstellung von LLMs in JAX/Flax. EasyLM kann das LLM-Training auf Hunderte von TPU/GPU-Beschleunigern ausweiten, indem es die Pjit-Funktionalität von JAX nutzt.
Aufbauend auf den Transformatoren und Datensätzen von Hugginface bietet dieses Repo eine benutzerfreundliche und leicht anzupassende Codebasis zum Trainieren großer Sprachmodelle ohne die Komplexität vieler anderer Frameworks.
EasyLM ist mit JAX/Flax erstellt. Durch die Nutzung des pjit-Dienstprogramms von JAX ist EasyLM in der Lage, große Modelle zu trainieren, die nicht auf einen einzelnen Beschleuniger passen, indem die Modellgewichte und Trainingsdaten auf mehrere Beschleuniger aufgeteilt werden. Derzeit unterstützt EasyLM mehrere TPU/GPU-Schulungen auf einem einzigen Host sowie Multi-Host-Schulungen auf Google Cloud TPU Pods.
Derzeit werden folgende Modelle unterstützt:
Wir betreiben eine inoffizielle Discord-Community (ohne Verbindung zu Google) für Diskussionen im Zusammenhang mit der Schulung von LLMs in JAX. Folgen Sie diesem Link, um dem Discord-Server beizutreten. Wir verfügen über dedizierte Kanäle für mehrere JAX-basierte LLM-Frameworks, darunter EasyLM, JaxSeq, Alpa und Levanter.
OpenLLaMA ist unsere freizügig lizenzierte Reproduktion von LLaMA, die für kommerzielle Zwecke verwendet werden kann. Schauen Sie sich hier die Hauptseite des Projekts an. Das OpenLLaMA kann als Ersatz für die LLaMA-Gewichte in EasyLM dienen. Weitere Informationen finden Sie in der LLaMA-Dokumentation.
Koala ist unser neuer Chatbot, der auf LLaMA abgestimmt ist. Wenn Sie an unserem Koala-Chatbot interessiert sind, können Sie sich den Blogpost und die Dokumentation zur lokalen Ausführung ansehen.
Die Installationsmethode unterscheidet sich zwischen GPU-Hosts und Cloud TPU-Hosts. Der erste Schritt besteht darin, von GitHub abzurufen.
git clone https://github.com/young-geng/EasyLM.git
cd EasyLM
export PYTHONPATH= " ${PWD} : $PYTHONPATH "
Die GPU-Umgebung kann über Anaconda installiert werden.
conda env create -f scripts/gpu_environment.yml
conda activate EasyLM
Auf der TPU-Host-VM sind Python und PIP vorinstalliert. Führen Sie einfach das folgende Skript aus, um den TPU-Host einzurichten.
./scripts/tpu_vm_setup.sh
Die EasyLM-Dokumentationen finden Sie im Verzeichnis docs.
Wenn Sie EasyLM für Ihre Forschung oder Anwendungen nützlich fanden, zitieren Sie bitte mit dem folgenden BibTeX:
@software{geng2023easylm,
author = {Geng, Xinyang},
title = {EasyLM: A Simple And Scalable Training Framework for Large Language Models},
month = March,
year = 2023,
url = {https://github.com/young-geng/EasyLM}
}