View in English

  • Apple Developer
    • Get Started

    Explore Get Started

    • Overview
    • Learn
    • Apple Developer Program

    Stay Updated

    • Latest News
    • Hello Developer
    • Platforms

    Explore Platforms

    • Apple Platforms
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store

    Featured

    • Design
    • Distribution
    • Games
    • Accessories
    • Web
    • Home
    • CarPlay
    • Technologies

    Explore Technologies

    • Overview
    • Xcode
    • Swift
    • SwiftUI

    Featured

    • Accessibility
    • App Intents
    • Apple Intelligence
    • Games
    • Machine Learning & AI
    • Security
    • Xcode Cloud
    • Community

    Explore Community

    • Overview
    • Meet with Apple events
    • Community-driven events
    • Developer Forums
    • Open Source

    Featured

    • WWDC
    • Swift Student Challenge
    • Developer Stories
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Centers
    • Documentation

    Explore Documentation

    • Documentation Library
    • Technology Overviews
    • Sample Code
    • Human Interface Guidelines
    • Videos

    Release Notes

    • Featured Updates
    • iOS
    • iPadOS
    • macOS
    • watchOS
    • visionOS
    • tvOS
    • Xcode
    • Downloads

    Explore Downloads

    • All Downloads
    • Operating Systems
    • Applications
    • Design Resources

    Featured

    • Xcode
    • TestFlight
    • Fonts
    • SF Symbols
    • Icon Composer
    • Support

    Explore Support

    • Overview
    • Help Guides
    • Developer Forums
    • Feedback Assistant
    • Contact Us

    Featured

    • Account Help
    • App Review Guidelines
    • App Store Connect Help
    • Upcoming Requirements
    • Agreements and Guidelines
    • System Status
  • Quick Links

    • Events
    • News
    • Forums
    • Sample Code
    • Videos
 

Vidéos

Ouvrir le menu Fermer le menu
  • Collections
  • Toutes les vidéos
  • À propos

Plus de vidéos

  • À propos
  • Résumé
  • Code
  • Explorer de grands modèles de langage sur une puce Apple avec MLX

    Découvrez MLX LM, conçu spécialement pour simplifier et optimiser l'utilisation des grands modèles de langage sur la puce Apple. Nous verrons comment ajuster et exécuter l'inférence sur de grands modèles de langage avancés sur votre Mac, et comment les intégrer de manière transparente dans des applications et des projets basés sur Swift.

    Chapitres

    • 0:00 - Introduction
    • 3:07 - Introduction de MLX LM
    • 3:51 - Génération de texte
    • 8:42 - Quantification
    • 11:39 - Mise au point
    • 17:02 - LLM dans MLXSwift

    Ressources

    • MLX Swift Examples
    • MLX Examples
    • MLX Swift
    • MLX LM - Python API
    • MLX Explore - Python API
    • MLX Framework
    • MLX Llama Inference
    • MLX
      • Vidéo HD
      • Vidéo SD

    Vidéos connexes

    WWDC25

    • Premiers pas avec MLX pour les puces Apple
  • Rechercher dans cette vidéo…
    • 1:12 - Running DeepSeek AI's model with MLX LM

      mlx_lm.chat --model mlx-community/DeepSeek-V3-0324-4bit
    • 3:51 - Text generation with MLX LM

      mlx_lm.generate --model "mlx-community/Mistral-7B-Instruct-v0.3-4bit" \
                      --prompt "Write a quick sort in Swift"
    • 4:35 - Changing the model's behavior with flags

      mlx_lm.generate --model "mlx-community/Mistral-7B-Instruct-v0.3-4bit" \
                      --prompt "Write a quick sort in Swift" \
                      --top-p 0.5 \
                      --temp 0.2 \
                      --max-tokens 1024
    • 4:48 - Getting help for MLX LM

      mlx_lm.generate --help
    • 5:26 - MLX LM Python API

      # Using MLX LM from Python
      
      from mlx_lm import load, generate
      
      # Load the model and tokenizer directly from HF
      model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit")
      
      # Prepare the prompt for the model
      prompt = "Write a quick sort in Swift"
      messages = [{"role": "user", "content": prompt}]
      prompt = tokenizer.apply_chat_template(
          messages, add_generation_prompt=True
      )
      
      # Generate the text
      text = generate(model, tokenizer, prompt=prompt, verbose=True)
    • 6:24 - Inspecting model architecture

      from mlx_lm import load, generate
      
      model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit")
      
      print(model)
      print(model.parameters())
      print(model.layers[0].self_attn)
    • 8:01 - Generation with KV cache

      from mlx_lm import load, generate
      from mlx_lm.models.cache import make_prompt_cache
      
      # Load the model and tokenizer directly from HF
      model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit")
      
      # Prepare the prompt for the model
      prompt = "Write a quick sort in Swift"
      messages = [{"role": "user", "content": prompt}]
      prompt = tokenizer.apply_chat_template(
          messages, add_generation_prompt=True
      )
      
      cache = make_prompt_cache(model)
      
      # Generate the text
      text = generate(model, tokenizer, prompt=prompt, prompt_cache=cache, verbose=True)
    • 9:37 - Quantization

      mlx_lm.convert --hf-path "mistralai/Mistral-7B-Instruct-v0.3" \
                     --mlx-path "./mistral-7b-v0.3-4bit" \
                     --dtype float16 \
                     --quantize --q-bits 4 --q-group-size 64
    • 10:33 - Model quantization with MLX LM in Python

      from mlx_lm.convert import convert
      
      # We can choose a different quantization per layer
      def mixed_quantization(layer_path, layer, model_config):
          if "lm_head" in layer_path or "embed_tokens" in layer_path:
              return {"bits": 6, "group_size": 64}
          elif hasattr(layer, "to_quantized"):
              return {"bits": 4, "group_size": 64}
          else:
              return False
      
      # Convert can be used to change precision, quantize and upload models to HF
      convert(
          hf_path="mistralai/Mistral-7B-Instruct-v0.3",
          mlx_path="./mistral-7b-v0.3-mixed-4-6-bit",
          quantize=True,
          quant_predicate=mixed_quantization
      )
    • 13:37 - Model fine-tuning

      mlx_lm.lora --model "mlx-community/Mistral-7B-Instruct-v0.3-4bit" 
      						--train 
                  --data /path/to/our/data/folder
                  --iters 300 
                  --batch-size 16
    • 15:06 - Prompting before fine-tuning

      mlx_lm.generate --model "./mistral-7b-v0.3-4bit" \
          --prompt "Who won the latest super bowl?"
    • 15:34 - Fine-tuning to learn new knowledge

      mlx_lm.lora --model "./mistral-7b-v0.3-4bit" 
      						--train 
                  --data ./data 
                  --iters 300 
                  --batch-size 8 
                  --mask-prompt 
                  --learning-rate 1e-5
    • 15:48 - Prompting after fine-tuning

      mlx_lm.generate --model "mlx-community/Mistral-7B-Instruct-v0.3-4bit" \
                      --prompt "Who won the latest super bowl?" \
                      --adapter "adapters"
    • 16:29 - Fusing models

      mlx_lm.fuse --model "mlx-community/Mistral-7B-Instruct-v0.3-4bit"
                  --adapter-path "path/to/trained/adapters" \
                  --save-path "fused-mistral-7b-v0.3-4bit" \
                  --upload-repo "my-name/fused-mistral-7b-v0.3-4bit"
                  
      # Fusing our fine-tuned model adapters
      mlx_lm.fuse --model "./mistral-7b-v0.3-4bit" \
                  --adapter-path "adapters" \
                  --save-path "fused-mistral-7b-v0.3-4bit"
    • 17:14 - LLMs in MLX Swift

      import Foundation
      import MLX
      import MLXLMCommon
      import MLXLLM
      
      @main
      struct LLM {
          static func main() async throws {
              // Load the model and tokenizer directly from HF
              let modelId = "mlx-community/Mistral-7B-Instruct-v0.3-4bit"
              let modelFactory = LLMModelFactory.shared
              let configuration = ModelConfiguration(id: modelId)
              let model = try await modelFactory.loadContainer(configuration: configuration)
              
              try await model.perform({context in
                  // Prepare the prompt for the model
                  let prompt = "Write a quicksort in Swift"
                  let input = try await context.processor.prepare(input: UserInput(prompt: prompt))
                  
                  // Generate the text
                  let params = GenerateParameters(temperature: 0.0)
                  let tokenStream = try generate(input: input, parameters: params, context: context)
                  for await part in tokenStream {
                      print(part.chunk ?? "", terminator: "")
                  }
              })
          }
      }
    • 18:00 - Generation with KV cache in MLX Swift

      import Foundation
      import MLX
      import MLXLMCommon
      import MLXLLM
      
      @main
      struct LLM {
          static func main() async throws {
              // Load the model and tokenizer directly from HF
              let modelId = "mlx-community/Mistral-7B-Instruct-v0.3-4bit"
              let modelFactory = LLMModelFactory.shared
              let configuration = ModelConfiguration(id: modelId)
              let model = try await modelFactory.loadContainer(configuration: configuration)
              
              try await model.perform({context in
                  // Prepare the prompt for the model
                  let prompt = "Write a quicksort in Swift"
                  let input = try await context.processor.prepare(input: UserInput(prompt: prompt))
      
                  // Create the key-value cache
                  let generateParameters = GenerateParameters()
                  let cache = context.model.newCache(parameters: generateParameters)
      
                  // Low level token iterator
                  let tokenIter = try TokenIterator(input: input,
                                                    model: context.model,
                                                    cache: cache,
                                                    parameters: generateParameters)
                  let tokenStream = generate(input: input, context: context, iterator: tokenIter)
                  for await part in tokenStream {
                      print(part.chunk ?? "", terminator: "")
                  }
              })
          }
      }
    • 0:00 - Introduction
    • MLX est une bibliothèque open source optimisée pour la puce Apple, permettant un apprentissage automatique efficace sur Mac. Elle utilise Metal pour l’accélération GPU et la mémoire unifiée pour une collaboration fluide entre le CPU et le GPU. MLX prend en charge Python, Swift, C++ et C. MLX LM, une bibliothèque Python accompagnée d’outils en ligne de commande, simplifie l’exécution, le réglage fin et l’intégration de grands modèles de langage sur la puce Apple. Vous pouvez charger, utiliser et générer du texte à partir de modèles de pointe, tels que le modèle à 670 milliards de paramètres de DeepSeek AI, directement sur votre Mac, avec une vitesse et des performances impressionnantes.

    • 3:07 - Introduction de MLX LM
    • MLX LM est un package Python basé sur MLX, conçu pour exécuter et expérimenter de grands modèles de langage. Il propose des outils en ligne de commande ainsi qu’une API Python pour la génération de texte et le réglage fin, avec une intégration à Hugging Face pour le téléchargement et le partage de modèles. Vous pouvez l’installer avec la commande : pip install mlx-lm.

    • 3:51 - Génération de texte
    • MLX LM est un outil qui permet de générer du texte à l’aide de modèles de langage provenant de Hugging Face ou stockés localement. Il propose deux interfaces principales : un outil en ligne de commande et une API Python. L’outil en ligne de commande vous permet de générer du texte à partir d’invites simples, avec des options de personnalisation de base. L’API Python offre un contrôle plus avancé, vous permettant de charger des modèles, de générer du texte et d’inspecter et de modifier l’architecture du modèle. L’API Python prend également en charge les conversations multi-tours grâce à un cache clé-valeur, qui stocke efficacement les résultats intermédiaires, ce qui permet de gagner du temps et de réduire la charge de calcul. Cela rend MLX LM particulièrement adapté à la création de chatbots, d’assistants virtuels et d’autres applications interactives nécessitant la conservation du contexte sur plusieurs échanges.

    • 8:42 - Quantification
    • La quantification de modèles est une technique utilisée pour réduire la précision des modèles d’apprentissage automatique, afin de les rendre plus compacts et plus rapides, en particulier pour les déploiements sur des appareils plus petits. MLX simplifie ce processus grâce à son API de quantification. Vous pouvez utiliser la commande mlx_lm.convert pour télécharger, convertir et enregistrer des modèles en une seule étape. Cette commande offre un contrôle précis, vous permettant d’appliquer différents réglages de quantification à diverses parties du modèle, afin de trouver le juste équilibre entre qualité et performance. Les modèles quantifiés peuvent ensuite être utilisés immédiatement pour l’inférence ou l’entraînement dans MLX, ou être partagés avec d’autres via Hugging Face.

    • 11:39 - Mise au point
    • MLX LM vous permet d’affiner des grands modèles de langage localement sur un Mac, sans écrire de code ni envoyer de données dans le cloud. Ce processus permet d’adapter des modèles généralistes à des domaines ou à des tâches spécifiques en utilisant des jeux de données plus petits et spécialisés. MLX LM prend en charge deux principales méthodes de réglage fin : réglage fin complet du modèle et entraînement sur des adaptateurs de bas rang. L’entraînement d’adaptateurs est plus rapide, plus léger et plus économe en mémoire, ce qui le rend idéal pour un usage sur du matériel local. Vous pouvez lancer le réglage fin à l’aide d’une seule commande, en spécifiant le modèle, le jeu de données et la durée de l’entraînement. Pour un contrôle plus avancé, des fichiers de configuration d’entraînement sont disponibles. Après le réglage fin, les adaptateurs peuvent être fusionnés avec le modèle de base, créant ainsi un modèle autonome et mis à jour, facile à distribuer et à utiliser, et pouvant même être publié dans des référentiels Hugging Face pour le partage.

    • 17:02 - LLM dans MLXSwift
    • MLX apporte simplicité et flexibilité à Swift pour l’utilisation de grands modèles de langage. Il permet de charger, de tokeniser et de générer du texte avec des modèles quantifiés en utilisant seulement quelques lignes de code. La gestion des conversations multi-tours ne nécessite que quelques lignes supplémentaires pour créer un cache clé-valeur. MLX propose des opérations de base open source en C, C++, Python et Swift, ainsi que des API de haut niveau en Python et en Swift, permettant des processus d’apprentissage automatique efficaces sur le matériel Apple.

Developer Footer

  • Vidéos
  • WWDC25
  • Explorer de grands modèles de langage sur une puce Apple avec MLX
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    • App Store
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • Apple Intelligence
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Downloads
    • Sample Code
    • Videos
    Open Menu Close Menu
    • Help Guides & Articles
    • Contact Us
    • Forums
    • Feedback & Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • Mini Apps Partner Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Read the latest news.
    Get the Apple Developer app.
    Copyright © 2026 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines