Foundation Model Stack: āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ„āļĢāļšāļ§āļ‡āļˆāļĢāļŠāļģāļŦāļĢāļąāļšāļžāļąāļ’āļ™āļēāđ‚āļĄāđ€āļ”āļĨāļ āļēāļĐāļēāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ”āđ‰āļ§āļĒ PyTorch

āļāļēāļĢāļžāļąāļ’āļ™āļēāđ‚āļĄāđ€āļ”āļĨāļ āļēāļĐāļēāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ (Foundation Models) āļŦāļĢāļ·āļ­ LLMs āđƒāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļĄāļĩāļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđāļĨāļ°āļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļ•āļąāđ‰āļ‡āđāļ•āđˆāļāļēāļĢāļžāļąāļ’āļ™āļē āļāļēāļĢāļāļķāļāļāļ™ āļāļēāļĢāļ›āļĢāļąāļšāđāļ•āđˆāļ‡ āđ„āļ›āļˆāļ™āļ–āļķāļ‡āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡ (Inference) āđ€āļžāļ·āđˆāļ­āļ•āļ­āļšāđ‚āļˆāļ—āļĒāđŒāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰ Foundation Model Stack (FMS) āđ„āļ”āđ‰āļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āđ€āļ›āđ‡āļ™āļŠāļļāļ”āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāļĢāļ§āļšāļĢāļ§āļĄāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš Foundation Models āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ° āđ‚āļ”āļĒāđƒāļŠāđ‰ PyTorch āđ€āļ›āđ‡āļ™āđāļāļ™āļŦāļĨāļąāļ

Foundation Model Stack āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

Foundation Model Stack āļ„āļ·āļ­āļŠāļļāļ”āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļ­āļģāļ™āļ§āļĒāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļē, āļāļķāļāļāļ™, āļ›āļĢāļąāļšāđāļ•āđˆāļ‡, āđāļĨāļ°āļ™āļģ Foundation Models āđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡ āđ‚āļ”āļĒāđƒāļŠāđ‰āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡ PyTorch āđ€āļ›āđ‡āļ™āļŦāļąāļ§āđƒāļˆāļŦāļĨāļąāļ FMS āļĄāļļāđˆāļ‡āđ€āļ™āđ‰āļ™āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđƒāļ™āļāļēāļĢ Inference āļ”āđ‰āļ§āļĒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāļ­āļĒāđˆāļēāļ‡ PyTorch Compile, Accelerated Transformers, āđāļĨāļ° Tensor Parallelism āļĢāļ§āļĄāļ–āļķāļ‡āļāļēāļĢāļĢāļ­āļ‡āļĢāļąāļš FSDP (Fully Sharded Data Parallel) āđāļĨāļ° Accelerated Transformers āđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļāļķāļāļāļ™

āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰ FMS āļˆāļķāļ‡āļĄāļĩāļāļēāļĢāļ™āļģāļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨāļĒāļ­āļ”āļ™āļīāļĒāļĄāļŦāļĨāļēāļĒāļ•āļąāļ§āļĄāļēāļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆāļ”āđ‰āļ§āļĒ PyTorch Native components āđ‚āļ”āļĒāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļˆāļēāļāđ‚āļĄāđ€āļ”āļĨ Llama āđāļĨāļ° GPT-BigCode

āļ—āļģāđ„āļĄāļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰ Foundation Model Stack?

FMS āļ–āļđāļāļžāļąāļ’āļ™āļēāļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āđāļāđ‰āļ›āļąāļāļŦāļēāđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđƒāļ™āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ•āđˆāļēāļ‡āđ† āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš Foundation Models āļ”āļąāļ‡āļ™āļĩāđ‰:

🚀 āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢ Inference

  • PyTorch Compile: āļŠāđˆāļ§āļĒāļ„āļ­āļĄāđ„āļžāļĨāđŒāđ‚āļ„āđ‰āļ” PyTorch āđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ Kernel āļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ” āļĨāļ” Overhead āđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ
  • Accelerated Transformers: āđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļ Scaled Dot-Product Attention (SDPA) āđ€āļžāļ·āđˆāļ­āđ€āļĢāđˆāļ‡āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ„āļģāļ™āļ§āļ“ Attention Mechanism āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡āđ‚āļĄāđ€āļ”āļĨ Transformer āļ‹āļķāđˆāļ‡āļŠāđˆāļ§āļĒāļĨāļ”āļāļēāļĢāđƒāļŠāđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļĨāļ‡āđ„āļ”āđ‰
  • Tensor Parallelism: āļˆāļģāđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļšāđ‚āļĄāđ€āļ”āļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļĢāļ°āļˆāļēāļĒāļāļēāļĢāļ„āļģāļ™āļ§āļ“āđ„āļ›āļĒāļąāļ‡ GPU āļŦāļĨāļēāļĒāļ•āļąāļ§ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ„āļ”āđ‰āļ—āļąāļ™

🛠ïļ āļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļāļēāļĢāļāļķāļāļāļ™āđāļĨāļ°āļ›āļĢāļąāļšāđāļ•āđˆāļ‡

  • FSDP Support: āļĢāļ­āļ‡āļĢāļąāļš Fully Sharded Data Parallel āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđ€āļ—āļ„āļ™āļīāļ„āļŠāļģāļ„āļąāļāđƒāļ™āļāļēāļĢāļāļķāļāļāļ™āđ‚āļĄāđ€āļ”āļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđƒāļŦāđ‰āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž
  • Accelerated Transformers: āļŠāđˆāļ§āļĒāđ€āļĢāđˆāļ‡āļāļēāļĢāļ„āļģāļ™āļ§āļ“āđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļāļķāļāļāļ™āđ€āļŠāđˆāļ™āļāļąāļ™
  • PyTorch Compile: āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļĄāļēāđƒāļŠāđ‰āđ€āļžāļ·āđˆāļ­āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđƒāļ™āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļāļēāļĢāļāļķāļāļāļ™āđ„āļ”āđ‰

ðŸ’Ą āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡

FMS āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ­āļ­āļāđāļšāļšāļĄāļēāđƒāļŦāđ‰āļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļšāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāđ€āļžāļ·āđˆāļ­āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ” āđāļ™āļ°āļ™āļģāđƒāļŦāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™āļšāļ™:

  • Python 3.11: āđ€āļžāļ·āđˆāļ­āļĨāļ” Overhead āļ‚āļ­āļ‡ CPU
  • CUDA 12.1: āđ€āļžāļ·āđˆāļ­āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ”āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļšāļ™ GPU

āđāļĨāļ°āļ•āđ‰āļ­āļ‡āļāļēāļĢ PyTorch āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ•āļąāđ‰āļ‡āđāļ•āđˆ 2.1 āļ‚āļķāđ‰āļ™āđ„āļ›

📈 āļāļēāļĢāļ§āļąāļ”āļœāļĨāđāļĨāļ°āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž

FMS āļĄāļĩāļāļēāļĢāļ§āļąāļ”āļœāļĨ Latency āđƒāļ™āļāļēāļĢ Inference āđ‚āļ”āļĒāđƒāļŠāđ‰ Prompt 1024 Token āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ­āļĩāļ 256 Token āļšāļ™ AWS P4de instance nodes āļ—āļĩāđˆāļĄāļĩ GPU A100 āļˆāļģāļ™āļ§āļ™ 8 āļ•āļąāļ§ (80GB āļ•āđˆāļ­āļ•āļąāļ§) āļœāļĨāļĨāļąāļžāļ˜āđŒāļˆāļ°āđāļŠāļ”āļ‡āđ€āļ›āđ‡āļ™ Median Latency āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļŦāđ‡āļ™āļ āļēāļžāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™

āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ āļēāļĒāđƒāļ™ Repository

Repository āļ‚āļ­āļ‡ Foundation Model Stack āļ–āļđāļāļˆāļąāļ”āļĢāļ°āđ€āļšāļĩāļĒāļšāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļĨāļ°āđƒāļŠāđ‰āļ‡āļēāļ™:

  • fms/models/: āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļŠāļģāļŦāļĢāļąāļšāļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨāļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āļ”āđ‰āļ§āļĒ PyTorch āđāļšāļš Native āđ‚āļ”āļĒāļ•āļĢāļ‡ āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļžāļķāđˆāļ‡āļžāļē Interface āđ€āļ‰āļžāļēāļ°āļ—āļēāļ‡āđƒāļ”āđ† āļ™āļ­āļāđ€āļŦāļ™āļ·āļ­āļˆāļēāļ nn.Module āđ‚āļĄāđ€āļ”āļĨāđāļ•āđˆāļĨāļ°āļ•āļąāļ§āļˆāļ°āļ–āļđāļāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āļāļąāļš fms.models.registermodel() āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļœāđˆāļēāļ™ fms.models.getmodel() āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āļĒāļąāļ‡āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āđāļŦāļĨāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļĢāļđāļ›āđāļšāļšāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļˆāļ°āđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāđ‚āļŦāļĨāļ” (āđ€āļŠāđˆāļ™ Checkpoints āļˆāļēāļ Meta, Hugging Face, āļŦāļĢāļ·āļ­āļ—āļĩāđˆāļāļķāļāļāļ™āļˆāļēāļ Repository āļ™āļĩāđ‰)
  • fms/models/hf/: āļŠāđˆāļ§āļ™āļ—āļĩāđˆāļ—āļģāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļ›āđ‡āļ™ Adapter āđ€āļžāļ·āđˆāļ­āđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨ Native āļ‚āļ­āļ‡ FMS āđ€āļ‚āđ‰āļēāļāļąāļš Interface āļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļāļąāļš Hugging Face
  • fms/datasets/: āđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ‚āļŦāļĨāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢ Pre-training āđāļĨāļ° Fine-tuning
  • fms/modules/: āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāļ‚āļĒāļēāļĒāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡ nn.Module āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨāļ‚āļ­āļ‡ FMS āđ‚āļ”āļĒāđāļ•āđˆāļĨāļ° Module āļˆāļ°āļĄāļĩāļŠāđˆāļ§āļ™āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš Tensor Parallelism (TPModule) āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ– Shard āđ‚āļĄāđ€āļ”āļĨāļ”āđ‰āļ§āļĒāļāļĨāļĒāļļāļ—āļ˜āđŒ Tensor Parallel āđ„āļ”āđ‰
  • fms/training/: āđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Pre-training āđāļĨāļ° Fine-tuning āđ‚āļĄāđ€āļ”āļĨ
  • fms/utils/: āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđāļĨāļ°āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Utility āļ•āđˆāļēāļ‡āđ† āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš LLMs āđ€āļŠāđˆāļ™ āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ generate(), āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ Checkpoint, āđāļĨāļ°āđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Tokenization
  • scripts/: āļŠāļ„āļĢāļīāļ›āļ•āđŒāļ•āđˆāļēāļ‡āđ† āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Inference, āļāļēāļĢāļ§āļąāļ”āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž (Benchmarking), āđāļĨāļ°āļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™āļœāļĨ (Evaluation) āļĢāļ§āļĄāļ–āļķāļ‡āđ€āļ›āđ‡āļ™āļˆāļļāļ”āđ€āļ‚āđ‰āļēāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Tuning/Training

āļŠāđˆāļ§āļ™āļ‚āļĒāļēāļĒāđāļĨāļ°āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡

Foundation Model Stack āļ–āļđāļāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡āđƒāļ™āļŦāļĨāļēāļĒāđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāļ‚āļ­āļ‡ IBM āđ€āļŠāđˆāļ™:

  • fms-fsdp: āđāļŠāļĢāđŒāđ‚āļ„āđ‰āļ”āļāļēāļĢāļāļķāļāļāļ™āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢ Pre-train āđ‚āļĄāđ€āļ”āļĨ Llama āļ”āđ‰āļ§āļĒ FMS āļšāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ āļēāļĒāđƒāļ™āļ‚āļ­āļ‡ IBM
  • fms-extras: āđāļŠāļĢāđŒāđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāđ‚āļĄāđ€āļ”āļĨ FMS āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ—āļĩāđˆāļāļķāļāļāļ™āđ‚āļ”āļĒ IBM āđāļĨāļ°āļ­āļēāļˆāđ€āļ›āđ‡āļ™āđāļŦāļĨāđˆāļ‡āļĢāļ§āļĄāļ‡āļēāļ™āļ§āļīāļˆāļąāļĒāļŦāļĢāļ·āļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāļ­āļ·āđˆāļ™āđ† āļ—āļĩāđˆāļĄāļĩāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāđ€āļžāļ·āđˆāļ­āļŠāđˆāļ‡āļāļĨāļąāļšāđ„āļ›āļĒāļąāļ‡ FMS āđƒāļ™āļ­āļ™āļēāļ„āļ•
  • TGIS (Text Generation Inference Server): Server āļŠāļģāļŦāļĢāļąāļš Inference āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāđ‚āļĄāđ€āļ”āļĨ FMS

āļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļē

  • PyTorch Compile Issues: āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļĄāļĩ Issue āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļš torch.compile āļ—āļĩāđˆāļ­āļēāļˆāļŠāđˆāļ‡āļœāļĨāļāļĢāļ°āļ—āļšāļ•āđˆāļ­āļāļēāļĢāļāļķāļāļāļ™/Fine-tuning (āđ€āļŠāđˆāļ™ pytorch/pytorch#107824)
  • Inference Stability: āļĄāļĩāļāļēāļĢāļ•āļīāļ”āļ•āļēāļĄ Issue āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļšāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢāđāļĨāļ°āļ›āļĢāļīāļĄāļēāļ“āļāļēāļĢāđƒāļŠāđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāđƒāļ™āļāļēāļĢ Inference

āļŠāļĢāļļāļ›

Foundation Model Stack (FMS) āđ€āļ›āđ‡āļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļ„āļĢāļšāļ§āļ‡āļˆāļĢāļŠāļģāļŦāļĢāļąāļšāļ™āļąāļāļžāļąāļ’āļ™āļēāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš Foundation Models āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļœāļđāđ‰āļ—āļĩāđˆāđƒāļŠāđ‰ PyTorch āđ€āļ›āđ‡āļ™āļŦāļĨāļąāļ āļ”āđ‰āļ§āļĒāļāļēāļĢāļĄāļļāđˆāļ‡āđ€āļ™āđ‰āļ™āļ—āļĩāđˆāļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ—āļąāđ‰āļ‡āđƒāļ™āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļāļēāļĢ Inference āđāļĨāļ°āļāļēāļĢāļāļķāļāļāļ™ āļ—āļģāđƒāļŦāđ‰ FMS āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļ›āļĢāļąāļšāđƒāļŠāđ‰āđ‚āļĄāđ€āļ”āļĨāļ āļēāļĐāļēāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđƒāļŦāđ‰āļ›āļĢāļ°āļŠāļšāļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāđ‡āļˆ

#FoundationModelStack #LLM #PyTorch #AI #MachineLearning

āļ‚āļ­āļšāļ„āļļāļ“ āđāļŦāļĨāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ
https://github.com/foundation-model-stack/foundation-model-stack

Foundation Model Stack: āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ„āļĢāļšāļ§āļ‡āļˆāļĢāļŠāļģāļŦāļĢāļąāļšāļžāļąāļ’āļ™āļēāđ‚āļĄāđ€āļ”āļĨāļ āļēāļĐāļēāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ”āđ‰āļ§āļĒ PyTorchāļāļēāļĢāļžāļąāļ’āļ™āļēāđ‚āļĄāđ€āļ”āļĨāļ āļēāļĐāļēāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆ (Foundation Models) āļŦāļĢāļ·āļ­ LLMs āđƒāļ™āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļĄāļĩāļ„āļ§āļēāļĄāļ‹āļąāļšāļ‹āđ‰āļ­āļ™āđāļĨāļ°āļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļ•āļąāđ‰āļ‡āđāļ•āđˆāļāļēāļĢāļžāļąāļ’āļ™āļē āļāļēāļĢāļāļķāļāļāļ™ āļāļēāļĢāļ›āļĢāļąāļšāđāļ•āđˆāļ‡ āđ„āļ›āļˆāļ™āļ–āļķāļ‡āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡ (Inference) āđ€āļžāļ·āđˆāļ­āļ•āļ­āļšāđ‚āļˆāļ—āļĒāđŒāļ„āļ§āļēāļĄāļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰ Foundation Model Stack (FMS) āđ„āļ”āđ‰āļ–āļđāļāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āđ€āļ›āđ‡āļ™āļŠāļļāļ”āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāļĢāļ§āļšāļĢāļ§āļĄāļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāļˆāļģāđ€āļ›āđ‡āļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš Foundation Models āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ° āđ‚āļ”āļĒāđƒāļŠāđ‰ PyTorch āđ€āļ›āđ‡āļ™āđāļāļ™āļŦāļĨāļąāļFoundation Model Stack āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?Foundation Model Stack āļ„āļ·āļ­āļŠāļļāļ”āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāļ­āļ­āļāđāļšāļšāļĄāļēāđ€āļžāļ·āđˆāļ­āļ­āļģāļ™āļ§āļĒāļ„āļ§āļēāļĄāļŠāļ°āļ”āļ§āļāđƒāļ™āļāļēāļĢāļžāļąāļ’āļ™āļē, āļāļķāļāļāļ™, āļ›āļĢāļąāļšāđāļ•āđˆāļ‡, āđāļĨāļ°āļ™āļģ Foundation Models āđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡ āđ‚āļ”āļĒāđƒāļŠāđ‰āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡ PyTorch āđ€āļ›āđ‡āļ™āļŦāļąāļ§āđƒāļˆāļŦāļĨāļąāļ FMS āļĄāļļāđˆāļ‡āđ€āļ™āđ‰āļ™āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđƒāļ™āļāļēāļĢ Inference āļ”āđ‰āļ§āļĒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩāļ­āļĒāđˆāļēāļ‡ PyTorch Compile, Accelerated Transformers, āđāļĨāļ° Tensor Parallelism āļĢāļ§āļĄāļ–āļķāļ‡āļāļēāļĢāļĢāļ­āļ‡āļĢāļąāļš FSDP (Fully Sharded Data Parallel) āđāļĨāļ° Accelerated Transformers āđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļāļķāļāļāļ™āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰ FMS āļˆāļķāļ‡āļĄāļĩāļāļēāļĢāļ™āļģāļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨāļĒāļ­āļ”āļ™āļīāļĒāļĄāļŦāļĨāļēāļĒāļ•āļąāļ§āļĄāļēāļŠāļĢāđ‰āļēāļ‡āđƒāļŦāļĄāđˆāļ”āđ‰āļ§āļĒ PyTorch Native components āđ‚āļ”āļĒāđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļˆāļēāļāđ‚āļĄāđ€āļ”āļĨ Llama āđāļĨāļ° GPT-BigCodeāļ—āļģāđ„āļĄāļ•āđ‰āļ­āļ‡āđƒāļŠāđ‰ Foundation Model Stack?FMS āļ–āļđāļāļžāļąāļ’āļ™āļēāļ‚āļķāđ‰āļ™āļĄāļēāđ€āļžāļ·āđˆāļ­āđāļāđ‰āļ›āļąāļāļŦāļēāđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđƒāļ™āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļ•āđˆāļēāļ‡āđ† āļ‚āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš Foundation Models āļ”āļąāļ‡āļ™āļĩāđ‰:🚀 āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢ InferencePyTorch Compile: āļŠāđˆāļ§āļĒāļ„āļ­āļĄāđ„āļžāļĨāđŒāđ‚āļ„āđ‰āļ” PyTorch āđƒāļŦāđ‰āđ€āļ›āđ‡āļ™ Kernel āļ—āļĩāđˆāļĄāļĩāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ” āļĨāļ” Overhead āđāļĨāļ°āđ€āļžāļīāđˆāļĄāļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨAccelerated Transformers: āđƒāļŠāđ‰āļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāļˆāļēāļ Scaled Dot-Product Attention (SDPA) āđ€āļžāļ·āđˆāļ­āđ€āļĢāđˆāļ‡āļ„āļ§āļēāļĄāđ€āļĢāđ‡āļ§āđƒāļ™āļāļēāļĢāļ„āļģāļ™āļ§āļ“ Attention Mechanism āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āđƒāļ™āļŠāđˆāļ§āļ™āļ‚āļ­āļ‡āđ‚āļĄāđ€āļ”āļĨ Transformer āļ‹āļķāđˆāļ‡āļŠāđˆāļ§āļĒāļĨāļ”āļāļēāļĢāđƒāļŠāđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāļĨāļ‡āđ„āļ”āđ‰Tensor Parallelism: āļˆāļģāđ€āļ›āđ‡āļ™āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļšāđ‚āļĄāđ€āļ”āļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļĢāļ°āļˆāļēāļĒāļāļēāļĢāļ„āļģāļ™āļ§āļ“āđ„āļ›āļĒāļąāļ‡ GPU āļŦāļĨāļēāļĒāļ•āļąāļ§ āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđ„āļ”āđ‰āļ—āļąāļ™ðŸ› ïļ āļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļāļēāļĢāļāļķāļāļāļ™āđāļĨāļ°āļ›āļĢāļąāļšāđāļ•āđˆāļ‡FSDP Support: āļĢāļ­āļ‡āļĢāļąāļš Fully Sharded Data Parallel āļ‹āļķāđˆāļ‡āđ€āļ›āđ‡āļ™āđ€āļ—āļ„āļ™āļīāļ„āļŠāļģāļ„āļąāļāđƒāļ™āļāļēāļĢāļāļķāļāļāļ™āđ‚āļĄāđ€āļ”āļĨāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđƒāļŦāđ‰āļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžAccelerated Transformers: āļŠāđˆāļ§āļĒāđ€āļĢāđˆāļ‡āļāļēāļĢāļ„āļģāļ™āļ§āļ“āđƒāļ™āļĢāļ°āļŦāļ§āđˆāļēāļ‡āļāļēāļĢāļāļķāļāļāļ™āđ€āļŠāđˆāļ™āļāļąāļ™PyTorch Compile: āļŠāļēāļĄāļēāļĢāļ–āļ™āļģāļĄāļēāđƒāļŠāđ‰āđ€āļžāļ·āđˆāļ­āļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđƒāļ™āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļāļēāļĢāļāļķāļāļāļ™āđ„āļ”āđ‰ðŸ’Ą āļāļēāļĢāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡FMS āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļ­āļ­āļāđāļšāļšāļĄāļēāđƒāļŦāđ‰āļ—āļģāļ‡āļēāļ™āļĢāđˆāļ§āļĄāļāļąāļšāļŠāļ āļēāļžāđāļ§āļ”āļĨāđ‰āļ­āļĄāļ—āļĩāđˆāđ€āļŦāļĄāļēāļ°āļŠāļĄāđ€āļžāļ·āđˆāļ­āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ” āđāļ™āļ°āļ™āļģāđƒāļŦāđ‰āđƒāļŠāđ‰āļ‡āļēāļ™āļšāļ™:Python 3.11: āđ€āļžāļ·āđˆāļ­āļĨāļ” Overhead āļ‚āļ­āļ‡ CPUCUDA 12.1: āđ€āļžāļ·āđˆāļ­āđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļŠāļđāļ‡āļŠāļļāļ”āđƒāļ™āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļšāļ™ GPUāđāļĨāļ°āļ•āđ‰āļ­āļ‡āļāļēāļĢ PyTorch āđ€āļ§āļ­āļĢāđŒāļŠāļąāļ™āļ•āļąāđ‰āļ‡āđāļ•āđˆ 2.1 āļ‚āļķāđ‰āļ™āđ„āļ›ðŸ“ˆ āļāļēāļĢāļ§āļąāļ”āļœāļĨāđāļĨāļ°āđ€āļ›āļĢāļĩāļĒāļšāđ€āļ—āļĩāļĒāļšāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžFMS āļĄāļĩāļāļēāļĢāļ§āļąāļ”āļœāļĨ Latency āđƒāļ™āļāļēāļĢ Inference āđ‚āļ”āļĒāđƒāļŠāđ‰ Prompt 1024 Token āđāļĨāļ°āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ­āļĩāļ 256 Token āļšāļ™ AWS P4de instance nodes āļ—āļĩāđˆāļĄāļĩ GPU A100 āļˆāļģāļ™āļ§āļ™ 8 āļ•āļąāļ§ (80GB āļ•āđˆāļ­āļ•āļąāļ§) āļœāļĨāļĨāļąāļžāļ˜āđŒāļˆāļ°āđāļŠāļ”āļ‡āđ€āļ›āđ‡āļ™ Median Latency āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āđ€āļŦāđ‡āļ™āļ āļēāļžāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ—āļĩāđˆāļŠāļąāļ”āđ€āļˆāļ™āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļ āļēāļĒāđƒāļ™ RepositoryRepository āļ‚āļ­āļ‡ Foundation Model Stack āļ–āļđāļāļˆāļąāļ”āļĢāļ°āđ€āļšāļĩāļĒāļšāđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļ‡āđˆāļēāļĒāļ•āđˆāļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāđāļĨāļ°āđƒāļŠāđ‰āļ‡āļēāļ™:fms/models/: āļžāļ·āđ‰āļ™āļ—āļĩāđˆāļŠāļģāļŦāļĢāļąāļšāļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨāļ—āļĩāđˆāđ€āļ‚āļĩāļĒāļ™āļ”āđ‰āļ§āļĒ PyTorch āđāļšāļš Native āđ‚āļ”āļĒāļ•āļĢāļ‡ āđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļžāļķāđˆāļ‡āļžāļē Interface āđ€āļ‰āļžāļēāļ°āļ—āļēāļ‡āđƒāļ”āđ† āļ™āļ­āļāđ€āļŦāļ™āļ·āļ­āļˆāļēāļ nn.Module āđ‚āļĄāđ€āļ”āļĨāđāļ•āđˆāļĨāļ°āļ•āļąāļ§āļˆāļ°āļ–āļđāļāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āļāļąāļš fms.models.registermodel() āļ—āļģāđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ–āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰āļ‡āļēāļ™āđ„āļ”āđ‰āļ‡āđˆāļēāļĒāļœāđˆāļēāļ™ fms.models.getmodel() āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰āļĒāļąāļ‡āļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāļĨāļ‡āļ—āļ°āđ€āļšāļĩāļĒāļ™āđāļŦāļĨāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāđāļĨāļ°āļĢāļđāļ›āđāļšāļšāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāļˆāļ°āđƒāļŠāđ‰āđƒāļ™āļāļēāļĢāđ‚āļŦāļĨāļ” (āđ€āļŠāđˆāļ™ Checkpoints āļˆāļēāļ Meta, Hugging Face, āļŦāļĢāļ·āļ­āļ—āļĩāđˆāļāļķāļāļāļ™āļˆāļēāļ Repository āļ™āļĩāđ‰)fms/models/hf/: āļŠāđˆāļ§āļ™āļ—āļĩāđˆāļ—āļģāļŦāļ™āđ‰āļēāļ—āļĩāđˆāđ€āļ›āđ‡āļ™ Adapter āđ€āļžāļ·āđˆāļ­āđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨ Native āļ‚āļ­āļ‡ FMS āđ€āļ‚āđ‰āļēāļāļąāļš Interface āļ—āļĩāđˆāđ€āļ‚āđ‰āļēāļāļąāļ™āđ„āļ”āđ‰āļāļąāļš Hugging Facefms/datasets/: āđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāđ‚āļŦāļĨāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢ Pre-training āđāļĨāļ° Fine-tuningfms/modules/: āļŠāđˆāļ§āļ™āļ›āļĢāļ°āļāļ­āļšāļ—āļĩāđˆāļ‚āļĒāļēāļĒāļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ‚āļ­āļ‡ nn.Module āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļŠāļ–āļēāļ›āļąāļ•āļĒāļāļĢāļĢāļĄāđ‚āļĄāđ€āļ”āļĨāļ‚āļ­āļ‡ FMS āđ‚āļ”āļĒāđāļ•āđˆāļĨāļ° Module āļˆāļ°āļĄāļĩāļŠāđˆāļ§āļ™āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļš Tensor Parallelism (TPModule) āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļŠāļēāļĄāļēāļĢāļ– Shard āđ‚āļĄāđ€āļ”āļĨāļ”āđ‰āļ§āļĒāļāļĨāļĒāļļāļ—āļ˜āđŒ Tensor Parallel āđ„āļ”āđ‰fms/training/: āđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Pre-training āđāļĨāļ° Fine-tuning āđ‚āļĄāđ€āļ”āļĨfms/utils/: āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āđāļĨāļ°āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ Utility āļ•āđˆāļēāļ‡āđ† āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āđ‚āļĒāļŠāļ™āđŒāđƒāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš LLMs āđ€āļŠāđˆāļ™ āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ generate(), āļāļēāļĢāļˆāļąāļ”āļāļēāļĢ Checkpoint, āđāļĨāļ°āđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Tokenizationscripts/: āļŠāļ„āļĢāļīāļ›āļ•āđŒāļ•āđˆāļēāļ‡āđ† āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Inference, āļāļēāļĢāļ§āļąāļ”āļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļž (Benchmarking), āđāļĨāļ°āļāļēāļĢāļ›āļĢāļ°āđ€āļĄāļīāļ™āļœāļĨ (Evaluation) āļĢāļ§āļĄāļ–āļķāļ‡āđ€āļ›āđ‡āļ™āļˆāļļāļ”āđ€āļ‚āđ‰āļēāđƒāļŠāđ‰āļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢ Tuning/TrainingāļŠāđˆāļ§āļ™āļ‚āļĒāļēāļĒāđāļĨāļ°āļāļēāļĢāđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡Foundation Model Stack āļ–āļđāļāļ™āļģāđ„āļ›āđƒāļŠāđ‰āļ‡āļēāļ™āļˆāļĢāļīāļ‡āđƒāļ™āļŦāļĨāļēāļĒāđ‚āļ›āļĢāđ€āļˆāļāļ•āđŒāļ‚āļ­āļ‡ IBM āđ€āļŠāđˆāļ™:fms-fsdp: āđāļŠāļĢāđŒāđ‚āļ„āđ‰āļ”āļāļēāļĢāļāļķāļāļāļ™āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āļāļēāļĢ Pre-train āđ‚āļĄāđ€āļ”āļĨ Llama āļ”āđ‰āļ§āļĒ FMS āļšāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļ āļēāļĒāđƒāļ™āļ‚āļ­āļ‡ IBMfms-extras: āđāļŠāļĢāđŒāđ‚āļ„āđ‰āļ”āļŠāļģāļŦāļĢāļąāļšāđ‚āļĄāđ€āļ”āļĨ FMS āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄāļ—āļĩāđˆāļāļķāļāļāļ™āđ‚āļ”āļĒ IBM āđāļĨāļ°āļ­āļēāļˆāđ€āļ›āđ‡āļ™āđāļŦāļĨāđˆāļ‡āļĢāļ§āļĄāļ‡āļēāļ™āļ§āļīāļˆāļąāļĒāļŦāļĢāļ·āļ­āļāļēāļĢāļžāļąāļ’āļ™āļēāļ­āļ·āđˆāļ™āđ† āļ—āļĩāđˆāļĄāļĩāđ€āļ›āđ‰āļēāļŦāļĄāļēāļĒāđ€āļžāļ·āđˆāļ­āļŠāđˆāļ‡āļāļĨāļąāļšāđ„āļ›āļĒāļąāļ‡ FMS āđƒāļ™āļ­āļ™āļēāļ„āļ•TGIS (Text Generation Inference Server): Server āļŠāļģāļŦāļĢāļąāļš Inference āļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšāļāļēāļĢāđƒāļŦāđ‰āļšāļĢāļīāļāļēāļĢāđ‚āļĄāđ€āļ”āļĨ FMSāļ‚āđ‰āļ­āļ„āļ§āļĢāļžāļīāļˆāļēāļĢāļ“āļēPyTorch Compile Issues: āļ›āļąāļˆāļˆāļļāļšāļąāļ™āļĄāļĩ Issue āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļš torch.compile āļ—āļĩāđˆāļ­āļēāļˆāļŠāđˆāļ‡āļœāļĨāļāļĢāļ°āļ—āļšāļ•āđˆāļ­āļāļēāļĢāļāļķāļāļāļ™/Fine-tuning (āđ€āļŠāđˆāļ™ pytorch/pytorch#107824)Inference Stability: āļĄāļĩāļāļēāļĢāļ•āļīāļ”āļ•āļēāļĄ Issue āļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļāļąāļšāļāļēāļĢāļ›āļĢāļąāļšāļ›āļĢāļļāļ‡āļ„āļ§āļēāļĄāđ€āļŠāļ–āļĩāļĒāļĢāđāļĨāļ°āļ›āļĢāļīāļĄāļēāļ“āļāļēāļĢāđƒāļŠāđ‰āļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģāđƒāļ™āļāļēāļĢ InferenceāļŠāļĢāļļāļ›Foundation Model Stack (FMS) āđ€āļ›āđ‡āļ™āđ€āļ„āļĢāļ·āđˆāļ­āļ‡āļĄāļ·āļ­āļ—āļĩāđˆāļĄāļĩāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāđāļĨāļ°āļ„āļĢāļšāļ§āļ‡āļˆāļĢāļŠāļģāļŦāļĢāļąāļšāļ™āļąāļāļžāļąāļ’āļ™āļēāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļāļąāļš Foundation Models āđ‚āļ”āļĒāđ€āļ‰āļžāļēāļ°āļ­āļĒāđˆāļēāļ‡āļĒāļīāđˆāļ‡āļœāļđāđ‰āļ—āļĩāđˆāđƒāļŠāđ‰ PyTorch āđ€āļ›āđ‡āļ™āļŦāļĨāļąāļ āļ”āđ‰āļ§āļĒāļāļēāļĢāļĄāļļāđˆāļ‡āđ€āļ™āđ‰āļ™āļ—āļĩāđˆāļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļ—āļąāđ‰āļ‡āđƒāļ™āļ‚āļąāđ‰āļ™āļ•āļ­āļ™āļāļēāļĢ Inference āđāļĨāļ°āļāļēāļĢāļāļķāļāļāļ™ āļ—āļģāđƒāļŦāđ‰ FMS āđ€āļ›āđ‡āļ™āļ•āļąāļ§āđ€āļĨāļ·āļ­āļāļ—āļĩāđˆāļ™āđˆāļēāļŠāļ™āđƒāļˆāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡āđāļĨāļ°āļ›āļĢāļąāļšāđƒāļŠāđ‰āđ‚āļĄāđ€āļ”āļĨāļ āļēāļĐāļēāļ‚āļ™āļēāļ”āđƒāļŦāļāđˆāđƒāļŦāđ‰āļ›āļĢāļ°āļŠāļšāļ„āļ§āļēāļĄāļŠāļģāđ€āļĢāđ‡āļˆ#FoundationModelStack #LLM #PyTorch #AI #MachineLearninghttps://github.com/foundation-model-stack/foundation-model-stack
Shared content
GITHUB.COM
GitHub - foundation-model-stack/foundation-model-stack: 🚀 Collection of components for development, training, tuning, and inference of foundation models leveraging PyTorch native components.
🚀 Collection of components for development, training, tuning, and inference of foundation models leveraging PyTorch native components. - foundation-model-stack/foundation-model-stack
3 Kommentare 0 Geteilt 1KB Ansichten 0 Bewertungen