Giới thiệu AnyLanguageModel- Một API cho LLM Cục bộ và Từ xa trên Nền tảng Apple

Giới thiệu AnyLanguageModel, một giải pháp API thống nhất cho các LLM cục bộ và từ xa trên các nền tảng Apple.

  • 9 min read
Giới thiệu AnyLanguageModel- Một API cho LLM Cục bộ và Từ xa trên Nền tảng Apple
Giới thiệu AnyLanguageModel, một giải pháp API thống nhất cho các LLM cục bộ và từ xa trên các nền tảng Apple.

Giới thiệu AnyLanguageModel: Một API cho LLM cục bộ và từ xa trên nền tảng Apple

Các LLM (mô hình ngôn ngữ lớn) ngày càng trở thành công cụ thiết yếu để xây dựng phần mềm. Tuy nhiên, đối với các nhà phát triển Apple, việc tích hợp chúng vẫn còn gặp nhiều khó khăn.

Các nhà phát triển thường áp dụng cách tiếp cận kết hợp, kết hợp một số tùy chọn sau:

  • Mô hình cục bộ sử dụng Core ML hoặc MLX để đảm bảo quyền riêng tư và khả năng hoạt động ngoại tuyến.
  • Nhà cung cấp đám mây như OpenAI hoặc Anthropic cho các khả năng tiên tiến.
  • Mô hình Nền tảng của Apple làm phương án dự phòng ở cấp hệ thống.

Mỗi phương pháp đều có API, yêu cầu và mô hình tích hợp riêng biệt, gây ra nhiều công sức. Khi phỏng vấn các nhà phát triển, vấn đề về tích hợp mô hình luôn được đề cập ngay lập tức. Một nhà phát triển đã thẳng thắn chia sẻ:

Tôi tưởng rằng mình sẽ nhanh chóng sử dụng bản demo để thử nghiệm và có thể xây dựng nhanh chóng nhưng thay vào đó lại lãng phí rất nhiều thời gian. Thật sự phát điên.

Chi phí để thử nghiệm cao, điều này có thể khiến các nhà phát triển ngần ngại khám phá rằng các mô hình nguồn mở chạy cục bộ có thể hoạt động tốt cho trường hợp sử dụng của họ.

Hôm nay, chúng tôi xin giới thiệu AnyLanguageModel, một gói Swift cung cấp giải pháp thay thế “cắm và chạy” cho framework Foundation Models của Apple, hỗ trợ nhiều nhà cung cấp mô hình. Mục tiêu của chúng tôi là giảm thiểu sự phức tạp khi làm việc với LLM trên nền tảng Apple và giúp việc áp dụng các mô hình nguồn mở chạy cục bộ trở nên dễ dàng hơn.

Giải pháp

Ý tưởng cốt lõi rất đơn giản: Thay đổi câu lệnh import, giữ nguyên API.

Đây là cách thực hiện trong thực tế. Bắt đầu với mô hình tích hợp của Apple:

swift let model = SystemLanguageModel.default let session = LanguageModelSession(model: model)

let response = try await session.respond(to: “Explain quantum computing in one sentence”) print(response.content)

Bây giờ, hãy thử một mô hình nguồn mở chạy cục bộ thông qua MLX:

swift let model = MLXLanguageModel(modelId: “mlx-community/Qwen3-4B-4bit”) let session = LanguageModelSession(model: model)

let response = try await session.respond(to: “Explain quantum computing in one sentence”) print(response.content)

AnyLanguageModel hỗ trợ nhiều nhà cung cấp:

  • Mô hình Nền tảng của Apple: Tích hợp gốc với mô hình hệ thống (macOS 26+ / iOS 26+).
  • Core ML: Chạy các mô hình đã chuyển đổi với sự tăng tốc của Neural Engine.
  • MLX: Chạy các mô hình được lượng tử hóa hiệu quả trên Apple Silicon.
  • llama.cpp: Tải các mô hình GGUF thông qua backend llama.cpp.
  • Ollama: Kết nối với các mô hình được phục vụ cục bộ thông qua API HTTP của Ollama.
  • OpenAI, Anthropic, Google Gemini: Các nhà cung cấp đám mây để so sánh và dự phòng.
  • Nhà cung cấp suy luận Hugging Face: Hàng trăm mô hình đám mây được cung cấp bởi các nhà cung cấp suy luận đẳng cấp thế giới.

Trọng tâm là các mô hình cục bộ mà bạn có thể tải xuống từ Hugging Face Hub. Các nhà cung cấp đám mây được đưa vào để giảm rào cản khi bắt đầu và cung cấp lộ trình di chuyển. Hãy làm cho nó hoạt động, sau đó làm cho nó đúng.

Tại sao Mô hình Nền tảng làm API cơ sở

Khi thiết kế AnyLanguageModel, chúng tôi đã phải đưa ra lựa chọn: tạo một trừu tượng hóa mới cố gắng bao quát mọi thứ, hay xây dựng dựa trên một API hiện có. Chúng tôi đã chọn phương án thứ hai, sử dụng framework Mô hình Nền tảng của Apple làm mẫu.

Điều này có vẻ phản trực giác. Tại sao lại ràng buộc bản thân với các lựa chọn của Apple? Có một vài lý do:

  1. Mô hình Nền tảng được thiết kế thực sự tốt. Nó tận dụng các tính năng của Swift như macro để mang lại trải nghiệm nhà phát triển tiện lợi, và các trừu tượng hóa của nó về phiên, công cụ và tạo ra mô hình phù hợp với cách LLM thực sự hoạt động.
  2. Nó có giới hạn có chủ đích. Mô hình Nền tảng đại diện cho một mẫu số chung thấp cho khả năng của mô hình ngôn ngữ. Thay vì xem đây là một điểm yếu, chúng tôi coi nó như một nền tảng ổn định. Mọi nhà phát triển Swift nhắm mục tiêu nền tảng Apple sẽ gặp phải API này, vì vậy việc xây dựng trực tiếp trên đó sẽ giảm bớt gánh nặng về mặt khái niệm.
  3. Nó giữ cho chúng tôi thực tế. Mỗi lớp trừu tượng bổ sung sẽ đưa bạn ra xa hơn vấn đề bạn đang thực sự giải quyết. Trừu tượng hóa rất mạnh mẽ, nhưng việc xếp chồng quá nhiều lớp sẽ tự nó trở thành một vấn đề.

Kết quả là việc chuyển đổi giữa các nhà cung cấp yêu cầu những thay đổi mã tối thiểu, và các trừu tượng hóa cốt lõi vẫn giữ được sự rõ ràng và có thể dự đoán được.

Đặc điểm gói: Chỉ bao gồm những gì bạn cần

Một thách thức với các thư viện đa backend là sự phình to của các dependency. Nếu bạn chỉ muốn chạy mô hình MLX, bạn không nên phải kéo theo llama.cpp và tất cả các dependency của nó.

AnyLanguageModel sử dụng các đặc điểm gói Swift để giải quyết vấn đề này. Bạn chỉ cần chọn các backend mà bạn cần:

swift dependencies: [ .package( url: “https://github.com/mattt/AnyLanguageModel.git”, from: “0.4.0”, traits: [“MLX”] // Chỉ kéo theo các dependency MLX ) ]

Các đặc điểm có sẵn bao gồm CoreML, MLX, và Llama (cho llama.cpp / llama.swift). Theo mặc định, không có dependency nặng nào được bao gồm. Bạn nhận được API cơ sở cộng với các nhà cung cấp đám mây, chỉ yêu cầu mạng URLSession tiêu chuẩn.

Đối với các dự án Xcode (chưa hỗ trợ khai báo đặc điểm trực tiếp), bạn có thể tạo một gói Swift nội bộ nhỏ phụ thuộc vào AnyLanguageModel với các đặc điểm bạn cần, sau đó thêm gói đó làm dependency cục bộ. README có hướng dẫn chi tiết.

Hỗ trợ hình ảnh (và các đánh đổi trong thiết kế API)

Các mô hình ngôn ngữ thị giác (VLM) cực kỳ mạnh mẽ và được sử dụng rộng rãi. Chúng có thể mô tả hình ảnh, trích xuất văn bản từ ảnh chụp màn hình, phân tích biểu đồ và trả lời câu hỏi về nội dung trực quan. Không may, framework Mô hình Nền tảng của Apple hiện không hỗ trợ gửi hình ảnh cùng với các câu lệnh.

Việc xây dựng dựa trên một API hiện có có nghĩa là chấp nhận những hạn chế của nó. Apple có thể sẽ bổ sung hỗ trợ hình ảnh trong một bản phát hành trong tương lai (có lẽ là iOS 27?), nhưng các mô hình ngôn ngữ thị giác quá hữu ích để chờ đợi. Vì vậy, chúng tôi đã mở rộng hơn những gì Mô hình Nền tảng cung cấp ngày nay.

Đây là một ví dụ gửi hình ảnh tới Claude:

swift let model = AnthropicLanguageModel( apiKey: ProcessInfo.processInfo.environment[“ANTHROPIC_API_KEY”]!, model: “claude-sonnet-4-5-20250929” )

let session = LanguageModelSession(model: model) let response = try await session.respond( to: “What’s in this image?”, image: .init(url: URL(fileURLWithPath: “/path/to/image.png”)) )

Chúng tôi đang chấp nhận một rủi ro có tính toán: chúng tôi có thể thiết kế một cái gì đó mâu thuẫn với cách triển khai cuối cùng của Apple. Nhưng đó là lý do cảnh báo lỗi thời tồn tại. Đôi khi, bạn phải viết API cho một framework chưa tồn tại.

Thử nghiệm: chat-ui-swift

Để xem AnyLanguageModel hoạt động, hãy xem chat-ui-swift, một ứng dụng trò chuyện SwiftUI minh họa khả năng của thư viện:

  • Tích hợp Trí tuệ Apple thông qua Mô hình Nền tảng (macOS 26+).
  • Xác thực OAuth Hugging Face để truy cập các mô hình được bảo vệ.
  • Phản hồi theo luồng.
  • Lưu trữ lịch sử trò chuyện.

Ứng dụng này được thiết kế như một điểm khởi đầu: Fork nó, mở rộng nó, thay thế các mô hình khác nhau. Xem cách các bộ phận kết hợp với nhau và điều chỉnh nó theo nhu cầu của bạn.

Sắp tới

AnyLanguageModel hiện đang ở giai đoạn tiền 1.0. API cốt lõi đã ổn định, nhưng chúng tôi đang tích cực làm việc để mang toàn bộ bộ tính năng của Mô hình Nền tảng đến tất cả các adapter, bao gồm:

  • Gọi công cụ trên tất cả các nhà cung cấp.
  • Tích hợp MCP cho công cụ và elicitations.
  • Tạo hướng dẫn cho kết quả có cấu trúc.
  • Tối ưu hóa hiệu suất cho suy luận cục bộ.

Thư viện này là bước đầu tiên hướng tới một thứ gì đó lớn hơn. Một API suy luận hợp nhất cung cấp khung cần thiết để xây dựng quy trình làm việc đại lý liền mạch trên nền tảng Apple — các ứng dụng mà mô hình có thể sử dụng công cụ, truy cập tài nguyên hệ thống và hoàn thành các tác vụ phức tạp. Sẽ có thêm thông tin về điều đó sớm thôi. 🤫

Tham gia

Chúng tôi rất muốn nhận được sự giúp đỡ của bạn để cải thiện điều này:

  • Hãy thử nghiệm — Xây dựng thứ gì đó, kiểm tra kỹ lưỡng.
  • Chia sẻ trải nghiệm của bạn — Điều gì hoạt động? Điều gì gây khó chịu? Chúng tôi muốn nghe về những thách thức bạn gặp phải khi tích hợp AI vào ứng dụng của mình.
  • Mở các issue — Yêu cầu tính năng, báo cáo lỗi, câu hỏi.
  • Đóng góp — Các PR được chào đón.

Liên kết

Chúng tôi rất vui mừng khi thấy những gì bạn sẽ xây dựng 🦾

Recommended for You

20x Fine-tuning TRL nhanh hơn với RapidFire AI

20x Fine-tuning TRL nhanh hơn với RapidFire AI

Tìm hiểu cách Fine-tuning TRL nhanh hơn 20 lần bằng cách sử dụng RapidFire AI.

Bảng xếp hạng Open ASR- Xu hướng và cái nhìn sâu sắc với các Track Đa ngôn ngữ & Dài hạn mới

Bảng xếp hạng Open ASR- Xu hướng và cái nhìn sâu sắc với các Track Đa ngôn ngữ & Dài hạn mới

Khám phá các xu hướng và những hiểu biết mới nhất từ Bảng xếp hạng Open ASR, bao gồm các Track Đa ngôn ngữ và Dài hạn mới.