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
 

Videos

Abrir menú Cerrar menú
  • Colecciones
  • Todos los videos
  • Información

Más videos

  • Información
  • Resumen
  • Código
  • Comienza a usar MLX para el chip de Apple

    MLX es una estructura de matriz flexible y eficiente para computación numérica y aprendizaje automático en el chip de Apple. Exploraremos funcionalidades principales que incluyen memoria unificada, evaluación perezosa y transformaciones de funciones. Analizaremos técnicas más avanzadas para crear y acelerar modelos de aprendizaje automático en las plataformas de Apple con las API Swift y Python.

    Capítulos

    • 0:00 - Introducción
    • 1:15 - Descripción de MLX
    • 4:21 - Funcionalidades principales
    • 10:15 - Acelerar MLX
    • 17:30 - MLX Swift

    Recursos

    • MLX Swift Examples
    • MLX Examples
    • MLX Swift
    • MLX LM - Python API
    • MLX Explore - Python API
    • MLX Framework
    • MLX Llama Inference
    • MLX
      • Video HD
      • Video SD

    Videos relacionados

    WWDC25

    • Explora grandes modelos de lenguaje en el chip de Apple con MLX
  • Buscar este video…
    • 3:48 - Basics

      import mlx.core as mx
      
      # Make an array
      a = mx.array([1, 2, 3])
      
      # Make another array
      b = mx.array([4, 5, 6])
      
      # Do an operation
      c = a + b
      
      # Access information about the array
      shape = c.shape
      dtype = c.dtype
      
      print(f"Result c: {c}")
      print(f"Shape: {shape}")
      print(f"Data type: {dtype}")
    • 5:31 - Unified memory

      import mlx.core as mx
      
      a = mx.array([1, 2, 3])
      b = mx.array([4, 5, 6])
      
      c = mx.add(a, b, stream=mx.gpu)
      d = mx.multiply(a, b, stream=mx.cpu)
      
      print(f"c computed on the GPU: {c}")
      print(f"d computed on the CPU: {d}")
    • 6:20 - Lazy computation

      import mlx.core as mx
      
      # Make an array
      a = mx.array([1, 2, 3])
      
      # Make another array
      b = mx.array([4, 5, 6])
      
      # Do an operation
      c = a + b
      
      # Evaluates c before printing it
      print(c)
      
      # Also evaluates c
      c_list = c.tolist()
      
      # Also evaluates c
      mx.eval(c)
      
      print(f"Evaluate c by converting to list: {c_list}")
      print(f"Evaluate c using print: {c}")
      print(f"Evaluate c using mx.eval(): {c}")
    • 7:32 - Function transformation

      import mlx.core as mx
      
      def sin(x):
          return mx.sin(x)
      
      dfdx = mx.grad(sin)
      
      def sin(x):
          return mx.sin(x)
      
      d2fdx2 = mx.grad(mx.grad(mx.sin))
      
      # Computes the second derivative of sine at 1.0
      d2fdx2(mx.array(1.0))
    • 9:16 - Neural Networks in MLX

      import mlx.core as mx
      import mlx.nn as nn
      import mlx.optimizers as optim
      
      class MLP(nn.Module):
          """A simple MLP."""
      
          def __init__(self, dim, h_dim):
              super().__init__()
              self.linear1 = nn.Linear(dim, h_dim)
              self.linear2 = nn.Linear(h_dim, dim)
      
          def __call__(self, x):
              x = self.linear1(x)
              x = nn.relu(x)
              x = self.linear2(x)
              return x
    • 9:57 - MLX and PyTorch

      # MLX version
      import mlx.core as mx
      import mlx.nn as nn
      import mlx.optimizers as optim
      
      class MLP(nn.Module):
          """A simple MLP."""
      
          def __init__(self, dim, h_dim):
              super().__init__()
              self.linear1 = nn.Linear(dim, h_dim)
              self.linear2 = nn.Linear(h_dim, dim)
      
          def __call__(self, x):
              x = self.linear1(x)
              x = nn.relu(x)
              x = self.linear2(x)
              return x
      
      # PyTorch version
      import torch
      import torch.nn as nn
      import torch.optim as optim
      
      class MLP(nn.Module):
          """A simple MLP."""
      
          def __init__(self, dim, h_dim):
              super().__init__()
              self.linear1 = nn.Linear(dim, h_dim)
              self.linear2 = nn.Linear(h_dim, dim)
      
          def forward(self, x):
              x = self.linear1(x)
              x = x.relu()
              x = self.linear2(x)
              return x
    • 11:35 - Compiling MLX functions

      import mlx.core as mx
      import math
      
      def gelu(x):
          return x * (1 + mx.erf(x / math.sqrt(2))) / 2
      
      @mx.compile
      def compiled_gelu(x):
          return x * (1 + mx.erf(x / math.sqrt(2))) / 2
      
      x = mx.random.normal(shape=(4,))
      
      out = gelu(x)
      compiled_out = compiled_gelu(x)
      print(f"gelu:          {out}")
      print(f"compiled gelu: {compiled_out}")
    • 12:32 - MLX Fast package

      import mlx.core as mx
      import time
      
      def rms_norm(x, weight, eps=1e-5):
          y = x.astype(mx.float32)
          y = y * mx.rsqrt(mx.mean(
              mx.square(y), 
              axis=-1, 
              keepdims=True,
          ) + eps)
          return (weight * y).astype(x.dtype)
      
      batch_size = 8192
      feature_dim = 4096
      iterations = 1000
      
      x = mx.random.normal([batch_size, feature_dim])
      weight = mx.ones(feature_dim)
      bias = mx.zeros(feature_dim)
      
      start_time = time.perf_counter()
      for _ in range(iterations):
          y = rms_norm(x, weight, eps=1e-5)
          mx.eval(y)
      rms_norm_time = time.perf_counter() - start_time
      print(f"rms_norm execution: {gelu_time:0.4f} sec")
      
      start_time = time.perf_counter()
      for _ in range(iterations):
          mx.eval(mx.fast.rms_norm(x, weight, eps=1e-5))
      fast_rms_norm_time = time.perf_counter() - start_time
      print(f"mx.fast.rms_norm execution: {compiled_gelu_time:0.4f} sec")
      
      print(f"mx.fast.rms_norm speedup: {rms_norm_time/fast_rms_norm_time:0.2f}x")
    • 13:30 - Custom Metal kernel

      import mlx.core as mx
      
      # Build the kernel
      source = """
          uint elem = thread_position_in_grid.x;
          out[elem] = metal::exp(inp[elem]);
      """
      kernel = mx.fast.metal_kernel(
          name="myexp",
          input_names=["inp"],
          output_names=["out"],
          source=source,
      )
      
      # Call the kernel on a sample input
      x = mx.array([1.0, 2.0, 3.0])
      out = kernel(
          inputs=[x],
          grid=(x.size, 1, 1),
          threadgroup=(256, 1, 1),
          output_shapes=[x.shape],
          output_dtypes=[x.dtype],
      )[0]
      print(out)
    • 14:41 - Quantization

      import mlx.core as mx
      
      x = mx.random.normal([1024])
      weight = mx.random.normal([1024, 1024])
      
      quantized_weight, scales, biases = mx.quantize(
              weight, bits=4, group_size=32,
      )
      
      y = mx.quantized_matmul(
          x,
          quantized_weight,
          scales=scales,
          biases=biases,
          bits=4,
          group_size=32,
      )
      
      w_orig = mx.dequantize(
          quantized_weight,
          scales=scales,
          biases=biases,
          bits=4,
          group_size=32,
      )
    • 15:23 - Quantized models

      import mlx.nn as nn
      
      model = nn.Sequential(
          nn.Embedding(100, 32),
          nn.Linear(32, 32),
          nn.Linear(32, 32),
          nn.Linear(32, 1),
      )
      
      print(model)
      
      nn.quantize(
          model,
          bits=4,
          group_size=32,
      )
      
      print(model)
    • 16:50 - Distributed

      import mlx.core as mx
      
      group = mx.distributed.init()
      
      world_size = group.size()
      rank = group.rank()
      
      x = mx.array([1.0])
      
      x_sum = mx.distributed.all_sum(x)
      
      print(x_sum)
    • 17:20 - Distributed launcher

      mlx.launch --hosts ip1, ip2, ip3, ip4 my_script.py
    • 18:20 - MLX Swift

      // Swift
      import MLX
      
      // Make an array
      let a = MLXArray([1, 2, 3])
      
      // Make another array
      let b = MLXArray([1, 2, 3])
      
      // Do an operation
      let c = a + b
      
      // Access information about the array
      let shape = c.shape
      let dtype = c.dtype
      
      // Print results
      print("a: \(a)")
      print("b: \(b)")
      print("c = a + b: \(c)")
      print("shape: \(shape)")
      print("dtype: \(dtype)")
    • 0:00 - Introducción
    • MLX es una estructura matriz de código abierto diseñada específicamente para Apple Chip. Permite realizar tareas de aprendizaje automático eficientes y ejecutar grandes modelos de lenguaje en el dispositivo usando Python y Swift.

    • 1:15 - Descripción de MLX
    • Esta estructura de aprendizaje automático de alto rendimiento está optimizado para Apple Chip, lo que permite realizar cálculos numéricos rápidos y tareas de aprendizaje automático en CPU y GPU. Tiene una API central NumPy-like y la API superior es similar a PyTorch y JAX. Úsalo en apps como LM Studio para la generación de texto en el dispositivo con grandes modelos de lenguaje. MLX también tiene API en Python, Swift, C++ y C. MLX es de código abierto bajo licencia MIT y tiene una comunidad activa en Hugging Face.

    • 4:21 - Funcionalidades principales
    • MLX es increíblemente eficiente porque está diseñado para Apple Chip y aprovecha su arquitectura de memoria unificada. Compartir memoria entre la CPU y la GPU elimina la necesidad de copiar datos, las operaciones simplemente especifican el dispositivo deseado. En lugar de ejecutar inmediatamente un cálculo, MLX crea gráficos de cálculo que se ejecutan solo cuando se necesita un resultado. Con las transformaciones de funciones, MLX puede tomar funciones como entrada y devolver nuevas funciones, lo que facilita la diferenciación automática y otras optimizaciones. MLX incluye paquetes de nivel superior para construir y entrenar redes neuronales, así como operaciones comunes de aprendizaje automático. Estos paquetes son modulares y están diseñados para ser similares a estructuras populares como PyTorch, lo que le facilita a los desarrolladores cambiarlos.

    • 10:15 - Acelerar MLX
    • Las compilaciones de funciones con 'mx.compile' fusionan múltiples lanzamientos de kernel de GPU en uno solo, esto reduce el ancho de banda de memoria y la sobrecarga de ejecución. Para operaciones más complejas, el subpaquete 'mx.fast' proporciona implementaciones especializadas y altamente ajustadas de operaciones comunes de aprendizaje automático, como mecanismos de atención y normas RMS. MLX permite la cuantificación para una inferencia más rápida y eficiente con menos sobrecarga de memoria, esto reduce la precisión sin afectar excesivamente la calidad. Los cálculos a gran escala pueden utilizar el subpaquete 'mx.distributed' para distribuir el trabajo entre varias máquinas.

    • 17:30 - MLX Swift
    • Para un desarrollo perfecto en las plataformas de Apple en Xcode, MLX también ofrece una API Swift con las mismas mejoras en eficiencia. Visita el sitio web de MLX o descarga los repositorios de muestra para comenzar y obtener más información.

Developer Footer

  • Videos
  • WWDC25
  • Comienza a usar MLX para el chip de Apple
  • 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