class: center, middle ![img50r](laborpinguin1.webp) ## LLaMA-Sprachmodelle mischen ### Hauke Goos-Habermann #### https://goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - Community-Video-Serie *"Nicht der Weisheit letzter Schluß"* auf
tube.tchncs.de
und
YouTube
mit **beruflichen** oder **privaten Projekten** - Testet gerade Modifikationsmöglichkeiten für Sprachmodelle. --- ### Vorbereitung ![img33r](laborpinguin2.webp) ```bash # git (mit Unterstützung für große Dateien) # und Python-Venv installieren sudo apt install -y git git-lfs python3.11-venv # Pakete zum Kompilieren von C++ installieren sudo apt-get install -y build-essential ``` #### Optional Swapdatei einrichten (wenn zuwenig RAM oder kein Swap vorhanden) ```bash sudo fallocate -l 64G /swap sudo chmod 600 /swap sudo mkswap /swap sudo swapon /swap ``` --- ### Modelle herunterladen ![img33r](laborpinguin3.webp) #### Methode 1: git Die http-git-Links findet Ihr auf der jeweiligen Modellseite von https://huggingface.co . Dort klickt Ihr den *Dreipunkt* an und anschließend auf *Clone repository*. ```bash # LFS starten git lfs install # Repo klonen git clone https://huggingface.co/... # git-Historie entfernen (um Speicher zu sparen) find -name .git -type d | xargs rm -r ``` #### Methode 2: Direktdownload Ihr müßt alles aus dem Repo herunterladen! ```bash mkdir ModellX; cd ModellX wget https://huggingface.co/... ``` --- ### Modelle Kombinieren ![img20r](laborpinguin4.webp) ```bash # Software zum Kombinieren holen git clone https://github.com/Gryphe/BlockMerge_Gradient.git # Virtuelle Python-Umgebung "merge" erstellen python3 -m venv merge # Python virtuelle Umgebung aktivieren source merge/bin/activate # Benötigte Python-Module installieren pip3 install numpy psutil torch transformers accelerate # Modelle zusammenführen python BlockMerge_Gradient/BlockMerge_Gradient_Tensors.py\ --model_path1 "ModellX" --model_path2 "ModellY"\ --layer_only --output_model_path "mix"\ --gradient_values "[0.9,0.0,0.0,0.0]" ``` Parametererklärung in: https://github.com/Gryphe/BlockMerge_Gradient/tree/main --- ### .safetensors ⇒ .gguf ![img20r](laborpinguin5.webp) Das kombinierte Modell liegt im safetensors-Format vor, das für die Verwendung (z.B. in
koboldcpp
) noch in das gguf-Format konvertiert werden muß. ```bash # llama.cpp-Quelltext holen und kompilieren git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp # Benötigte Python-Module installieren pip install -r requirements.txt # Software kompilieren make -j; cd .. # *.safetensors in .gguf (16-Bit float) umwandeln python3 llama.cpp/convert.py mix --outtype f16\ --outfile mix_f16.gguf # *.safetensors in .gguf (8-Bit) umwandeln python3 llama.cpp/convert.py mix --outtype q8_0\ --outfile mix_8.gguf # 16-Bit-Fließkommaversion in 5-Bit-Version wandeln ./llama.cpp/quantize mix_f16.gguf mix_q5_k_m.gguf q5_k_m ``` --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de