Bỏ qua đến nội dung chính

Running LLMs on your iPhone: 40 tok/s Gemma 4 with MLX — Adrien Grondin, Locally AI

TL;DR

  • Adrien, nhà phát triển Local AI, giới thiệu cách sử dụng mô hình Gemma 4 với MLX để chạy các Mô hình Ngôn ngữ Lớn (LLM) trực tiếp trên iPhone, nhấn mạnh khả năng tương tác của chatbot này.
  • MLX là một khung làm việc mạnh mẽ, được tối ưu hóa đặc biệt cho chip Apple Silicon, cho phép triển khai nhanh chóng các mô hình AI trên Mac, iPad và iPhone với hiệu suất cao.
  • Khung này hỗ trợ nhiều loại mô hình, từ LLM đến đa phương thức, và tận dụng kỹ thuật lượng tử hóa để đạt hiệu suất ấn tượng (ví dụ: 40 mã thông báo/giây cho Gemma 4-bit trên iPhone) và khả năng chạy ngoại tuyến.

Điểm chính

  • MLX là một khung làm việc (framework) được tối ưu hóa riêng cho các thiết bị sử dụng chip Apple Silicon (Mac, iPad, iPhone), mang lại hiệu suất cao cho các tác vụ AI cục bộ.
  • Triển khai mô hình với MLX rất đơn giản, thường thông qua việc tải mô hình từ GitHub và sử dụng các công cụ "tác nhân" (agent) để tích hợp vào ứng dụng chỉ trong vài phút.
  • MLX hỗ trợ đa dạng các loại mô hình, bao gồm LLM (như Gemma), mô hình đa phương thức (multimodal models) xử lý thị giác, âm thanh, và cả các tác vụ chuyển văn bản thành giọng nói/giọng nói thành văn bản.
  • Kỹ thuật lượng tử hóa (quantization), đặc biệt là lượng tử hóa 4-bit, là chìa khóa để giảm kích thước mô hình và tối ưu hóa hiệu suất, cho phép chạy các mô hình lớn hiệu quả trên thiết bị di động.
  • Các mô hình được lượng tử hóa 4-bit (ví dụ Gemma) có thể đạt tốc độ ấn tượng lên tới 40 mã thông báo mỗi giây trên các iPhone mới nhất và hoạt động hoàn toàn ngoại tuyến.
  • Kích thước mô hình (vài gigabyte) hiện là rào cản lớn nhất khi triển khai AI trên thiết bị, mặc dù các iPhone hiện đại có khả năng xử lý tốt.
  • Local AI đã được LM Studio mua lại, cho phép người dùng không chỉ chạy mô hình cục bộ mà còn tạo máy chủ AI cục bộ với MLX để kết nối ứng dụng và tùy chỉnh các loại phản hồi.

Từ vựng

  • Gemma 4 — Gemma 4 (mô hình ngôn ngữ lớn của Google)
  • MLX — MLX (khung làm việc học máy tối ưu cho Apple Silicon)
  • Local AI — Local AI (ứng dụng chatbot chạy AI cục bộ)
  • Large Language Model (LLM) — Mô hình Ngôn ngữ Lớn (LLM)
  • On-device — Trên thiết bị (chạy trực tiếp trên phần cứng của thiết bị)
  • Framework — Khung làm việc (một cấu trúc phần mềm)
  • Apple Silicon — Chip Apple Silicon (dòng vi xử lý của Apple)
  • Quantization — Lượng tử hóa (kỹ thuật giảm độ chính xác của mô hình để tối ưu hiệu suất và kích thước)
  • Multimodal models — Mô hình đa phương thức (mô hình AI có khả năng xử lý nhiều loại dữ liệu như văn bản, hình ảnh, âm thanh)
  • Tokens per second — Mã thông báo mỗi giây (đơn vị đo tốc độ tạo phản hồi của LLM)

Nội dung chi tiết

Giới Thiệu: Adrien và Local AI

Xin chào mọi người. Hôm nay tôi sẽ trình bày cách sử dụng Gemma 4 với MLX. Tôi là Adrien. Bạn có thể tìm thấy Twitter của tôi nếu muốn tìm hiểu thêm về các thiết bị. Tôi là nhà phát triển của Local AI. Có lẽ bạn đã từng thấy ứng dụng này. Local AI là một chatbot sử dụng các Mô hình Ngôn ngữ Lớn (LLM) on-device (trên thiết bị) trên iPhone của bạn với MLX. Tôi sẽ đi sâu vào MLX trong vài giây tới. Như tôi đã nói, đây là một chatbot để tương tác. Bạn có thể trò chuyện với ứng dụng. Và các mô hình tương thích với MLX, một trong số đó là Gemma 4.

MLX: Khung Làm Việc Tối Ưu cho Apple Silicon

Hiện tại có rất nhiều mô hình khác tương thích với MLX và được phát triển rất tốt. Có lẽ bạn đã thấy tweet của tôi khi tôi bắt đầu một cuộc thảo luận về MLX. Nó thực sự rất nhanh và hoạt động rất tốt trên MLX. MLX là một framework (khung làm việc) được tối ưu hóa cho chip Apple Silicon. Vì vậy, nó có thể chạy trên MaciPad. Nó cũng hoạt động rất tốt trên các thiết bị này và macOS. Mọi thứ khó tối ưu hóa đều trở nên khả thi trên các thiết bị này.

Triển Khai Mô Hình với MLX và Gemma 4

Do đó, nếu bạn muốn có một điện thoại với các Mô hình Ngôn ngữ Lớn, chẳng hạn như Gemma, bạn cũng có thể tải nhiều mô hình khác. Các mô hình MLX mà bạn muốn, bạn cần truy cập GitHub và tìm kiếm MLX. Tôi sẽ không đi sâu vào chi tiết triển khai MLX. Tôi sẽ giới thiệu tác nhân MLX cho bạn, nhưng đây là một triển khai bạn cần cài đặt nếu bạn phát triển trên MLX, macOS, hoặc các sản phẩm của Apple. Bạn có thể sử dụng nó để đơn giản tải xuống mô hình. Sau đó, bạn có được API của nó; nó rất mạnh mẽ và cực kỳ đơn giản để triển khai. Trong vòng chưa đầy 10 phút, bạn có thể có một ứng dụng sử dụng mô hình bạn mong muốn. Nó rất dễ thực hiện, như tôi đã nói.

Khả Năng Đa Phương Thức của MLX

MLX cung cấp MLX SwiftLM, nhưng nếu bạn quan tâm nhiều hơn đến các mô hình đa phương thức (multimodal models), bạn cũng có thể sử dụng MLX VLM. Ví dụ, có thể bạn đã thấy một minh họa làm việc với âm thanh bằng MLX Audio và các mô hình thị giác bằng MLX VLM, và cả MLX VDO để tạo hình ảnh. MLX là một hệ thống rất tuyệt vời và được thiết kế tốt. Nó rất rất tốt. Bạn có thể làm nhiều thứ như các mô hình chuyển văn bản thành giọng nói (text-to-speech), chuyển giọng nói thành văn bản (speech-to-text). Có rất nhiều điều bạn có thể làm với mô hình này.

Tối Ưu Hóa và Lượng Tử Hóa Mô Hình

Và, bạn nói rằng bạn sẽ tích hợp mô hình này, bạn không thể chỉ tạo một mô hình trên đó. Bạn không cần phải tự tạo một mô hình, và có một nơi tốt để làm điều đó. Đó là một giao diện được thiết kế rất tốt mà bạn có. Và trong một giao diện, bạn không muốn tạo MLX cho MLX VLM. Đó là nơi, giống như tất cả các mô hình MLX, lượng tử hóa (quantization), thay vì kích thước đầy đủ (full size), bạn đưa nó vào MLX. Bạn có thể tạo một cộng đồng về điều đó. Bạn có thể xem các mô hình. Tôi nghĩ bạn không thể tự tạo một mô hình trên đó. Vì vậy, cộng đồng rất tích cực về điều này.

Khi mô hình được phát hành, bạn có thể tải nó cho MLX trong 30 phút, hoặc thậm chí 4-6 phút. Bạn có thể hình dung, ví dụ như với Gemma, một mô hình trên MLX. Có rất nhiều biến thể của MLX, và chỉ mất 5-6 phút để tạo một MLX (có lẽ là chuyển đổi/tối ưu hóa). Bạn không tự làm điều đó; bạn cài đặt nó với tác nhân của mình hoặc bất cứ thứ gì khác. Bạn truy cập kho lưu trữ MLX và tải mô hình. Bạn có thể dễ dàng tích hợp nó vào framework. Bạn có thể chỉ cần chạy một mô hình trên MLX bằng cách tích hợp nó vào framework. Khi bạn sử dụng MLX, bạn muốn chọn lọc vì thư viện rất lớn. Khuyến nghị là nên chọn lọc trong thư viện. Có lượng tử hóa 3-4 bit. Ví dụ, lượng tử hóa 4 bit của MLX là rất lớn. Nó nằm trong thư viện. MLX rất lớn và không sao cả. Ví dụ, có lượng tử hóa 3-5. Ví dụ, nó giống như các phiên bản. Tôi có một cấp độ cho các phiên bản và một cấp độ như lượng tử hóa 4 bit. Nó rất nhanh và rất hiệu quả cho thiết bị để xử lý văn bản và những thứ tương tự.

Hiệu Suất và Tính Năng Trên iPhone

Và trên các iPhone mới nhất, ví dụ như nếu bạn có Gemma 4-bit được lượng tử hóa thành 4 bit, nó rất nhanh. Nó có thể dễ dàng đạt 40 mã thông báo mỗi giây. Tôi sẽ chỉ cập nhật trên slide, vì tôi có một slide có video, nhưng có lẽ tôi có thể đặt nó ở nơi khác vì tôi có thêm một chút thời gian. Tôi sẽ chỉ cho bạn thấy cách 4 bit có thể dễ dàng hơn một chút. Và nó sẽ chạy offline (ngoại tuyến), và như bạn thấy, nó thực sự dễ dàng. 4 bit có thể được chấp nhận hơn cho nhiều đơn vị. Tất nhiên, streaming (truyền phát), bạn cũng có thể thực hiện streamingUI (giao diện người dùng) mà bạn có thể tạo chỉ cho 4 bit. Và đối với những gì bạn đã làm, nó rất dài (ám chỉ context window hoặc lượng mã thông báo dài). Vì vậy, đó là để tạo ra nhiều mã thông báo. Vậy thì, cùng cấp độ với MLX, chúng ta đang ở đây. Nó thực sự không quá khó, thực sự không khó để tích hợp. Như tôi đã nói, nếu bạn truy cập báo cáo MLX, chúng tôi đã dành rất nhiều sự chú ý cho nó. Ngoài ra, như tôi đã nói, cùng một mức độ thông tin là rất nghiêm trọng, nhưng nó cũng hoạt động với cùng một mức độ thông tin.

Thách Thức và Lợi Ích

Nó sẽ không mất 40 giây, điều đó rất nhanh. Nhưng ngay cả khi mất 20 giây, nó sẽ rất mạnh mẽ và hữu ích cho nhiều ứng dụng, nhiều trường hợp sử dụng mà bạn muốn thực hiện với ứng dụng của mình. Bạn có thể quét mã QR (QR code) nếu muốn, bạn có thể khám phá, nếu bạn có iPhone, ứng dụng của bạn có trên App Store, bạn nên sử dụng. Những gì bạn muốn, bạn sẽ phải xử lý mô hình, nó vẫn là một gigabyte hoặc ba gigabyte, thực sự tùy thuộc vào mô hình, nhưng đó là rào cản lớn nhất hiện nay, đó là kích thước của mô hình. Tuy nhiên, đó cũng là mô hình lớn nhất, và iPhone cũng là lớn nhất, tất cả những gì được nâng cao, thực sự là một tiện ích tốt theo những gì tôi thấy.

LM Studio và Máy Chủ AI Cục Bộ

Và hơn nữa, có lẽ hôm nay bạn đã nghe tin, tôi đã được LM Studio mua lại. Nếu bạn không biết LM Studio, thì đó là một studio AI, dành cho tất cả các mô hình local (cục bộ) của bạn. Bạn không thể tạo mô hình với một studio mô hình, trực tiếp, trên một giao diện. Bạn có thể làm điều đó, và bạn có thể tạo máy chủ với llama.cpp, mà còn với MLX. Bạn thực sự có thể tạo máy chủ của engine hoặc của trí tuệ. Như tôi đã nói, bạn có thể tạo máy chủ cục bộ và kết nối ứng dụng của bạn với máy chủ này. Bạn có thể thiết lập máy chủ cục bộ với các loại phản hồi của riêng bạn, ví dụ: ý kiến của bạn, hoặc một loại phản hồi cụ thể để cập nhật, và bạn có thể thực sự chỉ chạy mô hình với nó.

Kết Luận và Hỏi Đáp

Vì vậy, tôi muốn nói rằng đây thực sự là một giới thiệu rất ngắn gọn, để bạn có thể làm tương tự và chạy mô hình, chẳng hạn như Gemma 4, nếu bạn không muốn làm điều đó trên iPhone của mình. Nếu bạn có câu hỏi nào không? [transcript bị gián đoạn] Vâng, tôi sẽ nói rằng bạn có thể làm điều đó. Nhưng không chỉ tạo ra một cấu trúc, mà còn trên hết là sự cải tiến của MLX, đó là những gì đang diễn ra. Tôi sẽ cho bạn thấy cùng một giao diện, nhưng bạn có thể hoàn toàn thoải mái. Nhưng MLX là một cải tiến liên tục, vì vậy nó thực sự hữu ích nếu bạn muốn workflow tự động và hệ thống tự động. Và mô hình Argot cũng tốt hơn sự cải tiến của MLX, và không quá nhanh, như một tháng, và bây giờ, điều đó tốt hơn. Vâng.

Vì vậy, bạn có kho GitHub cho việc triển khai MLX, đó là quy trình bạn sẽ cài đặt trên thiết bị của mình, và sau đó bạn sẽ dễ dàng làm quen với việc triển khai MLX. Ồ, và nếu bạn muốn gửi feedback cho tôi, bạn có thể thử gửi feedback cho tôi về MLX. Bạn có lựa chọn, nhưng không phải tất cả các mô hình đều hoạt động tốt trên MLX như tôi đang làm. Cảm ơn rất nhiều.

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?