Můj další příspěvek na blogu vychází tento týden a je to mnohem hlubší ponor než obvykle.
Projdu se tím, jak jsem vyladil Microsoft Phi-3-mini-4k-instruct (3.8B) s LoRA na mém Macu pomocí MLX.
Experiment: zkoumání, zda lze model 3.8B, který běží lokálně, vyladit tak, aby "mluvil jako já", tím, že jej naučím na svých vlastních příspěvcích na blogu.
Závaží adaptéru LoRA jsem již posunul na Hugging Face.
Ale co je důležitější, příspěvek bude sdílet celý proces, aby se více technických lidí mohlo naučit, jak začít s dolaďováním:
- Příprava tréninkových dat
- Trénování modelu a hyperparametrů
- Vyhodnocení výsledků
- Publikování do Hugging Face
A já se s vámi podělím o veškerý kód potřebný k tomu, abyste to udělali sami.
GPT-OSS používá kvantizaci MXFP4 (kterou MLX nyní podporuje).
V současné době jsou v oběhu dva formáty FP4: MXFP4 a NVFP4 (NV pro Nvidii).
Z pohledu na to, jak GPT-OSS využívá MXFP4, je poněkud suboptimální. Myslím, že NVFP4 bude v budoucnu běžněji používaným formátem.
Více podrobností níže:
Oba formáty kvantifikují váhy na 4bitovou plovoucí desetinnou čárku (e2 m1) s jedinečným měřítkem pro každou skupinu.
Rozdíl je ve velikosti skupiny a v tom, jak je zakódováno měřítko pro každou skupinu.
- MXFP4 používá stupnici e8m0 (s pevnou řádovou čárkou, 8 bitů) s velikostí skupiny 32. Zvýší se na mocninu 2 před vynásobením váhy.
- NVFP4 používá stupnici e4m3 (fp8) s velikostí skupiny 16. Násobí se přímo hmotností
Kódování měřítka v MXFP4 není optimální, protože nemá reprezentace pro mnoho hodnot v rozsahu, který potřebujeme.
Ve skutečnosti, pokud se podíváte na rozložení stupnic pro GPT-OSS, je extrémně soustředěno jen kolem několika hodnot. Například u druhé vrstvy MoE se dívám jen na 8/256 možných hodnot, které jsou dokonce použity. (Viz zápletka).
Vskutku. MLX je mnohem víc než LLM inference.
MLX poskytuje ~8,8 × propustnosti NumPy pro tuto úlohu DTM (≈89 % nižší latence)
Metoda diferenciální transformace (DTM) pro analýzu průhybu paprsku.