Sử dụng MLX Framework qua Ollama trên Mac, phiên bản qwen38-deep cần 21GB RAM cho Context 32k Token. Khuyến nghị thiết lập Alias và kiểm tra KV Cache để ngăn việc tự động Unload mô hình.

Chuẩn bị máy và cài đặt qua Terminal

Để sử dụng Qwen3 trên Mac, tôi chọn phương pháp cài đặt qua Ollama vì đây là công cụ hỗ trợ tốt nhất cho MLX Framework của Apple hiện nay. Bước đầu tiên là cài đặt Ollama rồi kéo mô hình qwen38-chat về thử nghiệm với các lệnh cơ bản. Qua kiểm tra hệ thống của mình, tôi thấy phiên bản API của mô hình này phản hồi trạng thái 200 tốt, đảm bảo kết nối giữa Local Host và mô hình hoạt động hoàn chỉnh. Đối với những ai cần độ sâu suy luận (Reasoning) cao hơn, tôi khuyến nghị kéo phiên bản qwen38-deep - sẽ dùng nhiều tài nguyên hơn nhưng cho kết quả chính xác hơn trong các tác vụ kỹ thuật. Sử dụng qua Terminal giúp chúng ta thấy rõ Log hoạt động và dễ Debug vấn đề hơn so với một số GUI che giấu chi tiết này. Bạn có thể tải về và cài đặt từ trang web chính thức.

Quản lý VRAM và Context Window phù hợp với công việc

Quản lý bộ nhớ trên Mac sử dụng hệ thống Unified Memory là điều cần chú ý đặc biệt vì chúng ta chia sẻ bộ nhớ giữa CPU và GPU. Theo dữ liệu kiểm tra của tôi, mô hình qwen38-deep có kích thước file weights (trọng số) là 18GB, khá lớn. Tuy nhiên, khi tôi cố gắng đặt Context Window tối đa 32k token để xử lý tài liệu lớn, bộ nhớ thực tế sử dụng tăng lên tới 21GB. Phần tăng thêm chính là KV Cache khoảng 3GB dùng để lưu dữ liệu tính toán trong quá trình hội thoại. Nếu bạn có Mac với RAM 16GB, có thể cần giảm độ dài context xuống 16k hoặc 8k để máy vẫn hoạt động mượt mà mà không phải Swap dữ liệu ra SSD - điều này sẽ làm tốc độ Gen Token giảm rõ rệt.

Thử nghiệm thực tế trên máy của chúng tôi

Tôi đã kiểm tra hệ thống kỹ lưỡng trên Mac Mini M4 Pro vào ngày 2 tháng 9 năm 2026 để xác định giới hạn của phiên bản qwen38-deep32k-test, cấu hình hỗ trợ Context Window lên đến 32k và sử dụng KV Cache 3GB. Tôi thử đưa vào Prompt dữ liệu 20049 tokens - một lượng khá lớn. Kết quả là mô hình xử lý thành công và sử dụng đúng 21GB bộ nhớ như tính toán. Tuy nhiên, bài học thú vị từ thất bại là script predictive.sh của tôi đã tự động Unload mô hình này vì phát hiện không có Production Route nào đang gọi trực tiếp mô hình này tại thời điểm đó, dẫn đến mất thời gian tải lại mô hình khi có lệnh mới. Ngoài ra, tôi cũng thấy cảnh báo từ hệ thống LiteLLM về việc Parse Tool-call args thất bại, cho thấy cấu hình hệ thống Tools vẫn cần điều chỉnh thêm để hỗ trợ các lệnh phức tạp.

Kiểm tra khả năng tiếng Việt và Vision

Ngoài hội thoại văn bản, tôi còn kiểm tra khả năng Vision và nhận diện tiếng Việt của Qwen3. Cụ thể, tôi dùng bộ test Thai 5-key với phiên bản qwen38-chat và thấy mô hình phản hồi và hiểu ngữ cảnh tiếng Việt rất tốt, trả về HTTP 200 thành công. Về phần Embeddings, tôi test cả nomic-embed-text (768) và embed-bge (1024), phát hiện cả hai vẫn dùng tiền tố ollama/, cần lưu ý khi gọi qua API. Đối với tính năng Vision, tôi kết hợp mô hình qwen38-fast 18GB (MLX) với qwen2.5vl 7.3GB (GGUF) để xử lý ảnh trong cùng một Workflow. Test Smoke Vision Routes bằng file PNG 1x1 pixel qua hệ thống thành công, cho thấy việc kết hợp các Framework khác nhau như MLX và GGUF trên Mac là khả thi và vẫn giữ được độ ổn định, dù phải đánh đổi bằng việc tăng dung lượng lưu trữ trên máy.

Muốn theo dõi thêm các dự án lab tương tự, hãy follow LINE @icafefx hoặc tải công cụ miễn phí tại redhatai.net