1 of 48

Hrátky se self-hosted modely

Matěj Račinský

2 of 48

Kdo jsem

3 of 48

Odkazy a Zdroje

Zdroje

Prezentace

4 of 48

Co nás čeká

  • LLMs
    • Repa modelů, formáty
    • Kvantizace
    • Frontendy, backendy
    • Persony a roleplay
    • Trénink
  • Difuze
    • Druhy UI
    • Repa modelů
    • Merging modelů
    • Trénink
    • Img2img
    • controlnet

5 of 48

LLMs

6 of 48

7 of 48

Velké jazykové modely

  • Každá NN má trénovatelné parametry
  • Float32=4 bajty, float64=8 bajtů
  • Float32*70B =280GB
  • Paměť v GB na GPU
    • cca B/2 = GB pro optimalizované modely (4bit), inference
    • Cca B*(6 až 18) = GB na trénink
  • Nový moorův zákon?
  • Megatron-turing NLG natrénováno na 4480 A100GPU, každá 80GB VRAM
  • GPT-3 chce asi 350GB VRAM na inferenci
  • GPT-4 má údajně 1.7 bilionu parametrů

8 of 48

9 of 48

10 of 48

Huggingface

11 of 48

12 of 48

13 of 48

Frameworky

  • Pro účely této přednášky zanedbáme existenci TensorFlow

14 of 48

Formáty modelů/binárek

  • Všichni stahujeme a pouštíme cizí kód na svém HW
  • Ckpt – we don‘t talk about Bruno
  • PT a bin – staré, pytorch
  • Safetensors – novější, bezpečnější, rychlejší – řádově
  • GGML – formát a knihovna
    • Georgi Greganov ML
    • GPT-Generated Model Language
  • GGUF – novější GGML, rozšiřitelnější
    • GPT-Generated Model Unified Format

15 of 48

Kvantizace modelů

  • Moc velké na běžné použití
  • Zmenšování modelů pomocí kvantizace = zaokrouhlení na kratší čísla
  • Na 16bit, 8bit 4bit i 2bit
  • Klesá kvalita, ale ne tak výrazně
  • 4bit model mnohem lepší než 32bit model, s 8x méně váhami
  • Mnoho druhů

16 of 48

Velikost GPU pro llamy

17 of 48

Hodně technik

  • Perplexita: menší=lepší
  • GGUF, k-quants spíš na CPU
  • GPTQ, AWQ spíš na GPU
  • AWQ spíš na GPU

18 of 48

19 of 48

GGUF models

20 of 48

Názvy se komplikují

  • Neko-Institute-of-Science/metharme-7b
  • elinas/llama-30b-hf-transformers-4.29
  • dvruette/llama-13b-pretrained-sft-epoch-2
  • TheBloke/Wizard-Vicuna-13B-Uncensored-HF
  • GeorgiaTechResearchInstitute/galactica-6.7b-evol-instruct-70k

21 of 48

Backendy a frontendy

  • Backend=inference engine=(inference )server
  • Jupyter notebook s pytorch a huggingface tokenizery
  • Llama.cpp
  • Ollama
  • Llamafile
  • Vllm
  • HF-tgi
  • Koboldcpp, KoboldAI
  • PrivateGPT
  • Aphrodite engine

22 of 48

Pytorch

  • ML knihovna
  • Obecný framework, inference i trénink
  • Python, C++, CUDA, ROCm, Apple Silicon

23 of 48

Llama.cpp

  • Pouze inference
  • C++ implementace, knihovna
  • Podpora CUDA, ROCm, Vulkan, Apple silicon
  • Bindingy do spousty jazyků
  • Demokratizace inference

24 of 48

Ollama

  • Golang
  • Stojí na llama.cpp
  • „go-to“ engine pro Mac

25 of 48

Llamafile

  • Zabalí model i inference engine do executable
  • Od Mozilly
  • Nejsnadnější způsob distribuce pro laiky

26 of 48

HuggingFace Text Generation inference

  • Jistota
  • Spousta materiálů
  • Podpora spousty modelů

27 of 48

vLLM

  • Lepší throughput, rychlejší

28 of 48

Co použít?

  • Magie
  • Spousta benchmarků, nějaké ve zdrojích
  • Rychle zastarávají, optimalizace jednoho engine portované do ostatních

29 of 48

Co s tím? Roleplaying!

  • Silly Tavern
  • Pouze frontend

30 of 48

31 of 48

32 of 48

+ TTS, STT, atd.

  • OpenAI whisper
  • + rychlejší forky
  • Detekce emocí
  • Talking head
  • Live2D

33 of 48

Prompty a persony

  • Prompty v metadatech PNG
  • Několik databází, viz zdroje

34 of 48

Trénink

  • Finetuning – 2x VRAM/RAM
  • LoRA
  • Soft prompt
    • Gradient descent přes prompt/část promptu

35 of 48

Stable diffusion

36 of 48

37 of 48

Popisy a stahování modelů

  • Modely mizí ☹
  • Hledat jinde, kontrolovat hashe, pokud jsou
  • Proklikat
  • Replikovatelnost obrázků na civitai

38 of 48

Prompting

  • (), (:1.45), [], (0.8)
  • Gridy a skripty
  • Ukládání stylů
  • Xyz plot
    • syntax pro číselné rozsahy je od-do (+inkrement) a nebo od-do [počet samplů], takže 1-2 (+0.5) udělá 1,1.5,2 a 1-2 [4] udělá 1,1.333,1.666,2

39 of 48

CivitAI.com

40 of 48

Prompty

  • Možnost embeddovat prompty
  • Možnost posilovat jednotlivé části
  • Sdílení promptů
  • Schizo negative
  • Supreme schizo negative

41 of 48

Další funkce

  • Textual inversion
    • Umožní vytvořit nové „slovo“ z malého množství obrázků
    • Few-shot learning bez dotrénování
  • Img2img
    • Úprava obrázku pomocí textu
  • Model merging
    • Můžete odčítat, sčítat, průměrovat modely
    • Nové výsledky bez trénování
  • HyperNetworks a Drambooth ve zdrojích

42 of 48

43 of 48

Další funkce

  • Lze instalovat nebo si �programovat vlastní �extensions
  • Regional Prompter
    • Promptování na část obrázku
  • ControlNet
    • Kontrola pomocí pózy nebo hloubkové mapy

44 of 48

Další funkce - LoRA

  • Low Rank adaptation
  • Rychlé dotrénování
  • Stačí 5-100 obrázků
  • Výsledný rozdíl 3-30MB (100-1000x menší)
  • Je třeba mít původní síť
  • Lze dotrénovat na
    • Styl
    • Postavu
    • Koncept
    • Póza
    • Druh oblečení

45 of 48

46 of 48

Dotazy?

47 of 48

Odkazy a Zdroje

Zdroje

Prezentace

48 of 48

Děkuji za pozornost