Cara Menjalankan MiniMax M3 Secara Lokal: Setup Multi-GPU dengan llama.cpp dan Pi Agent
Pelajari cara menjalankan MiniMax M3 secara lokal pada dua GPU RTX PRO 6000 dengan llama.cpp, menguji API dan antarmuka web yang kompatibel dengan OpenAI, serta menghubungkannya ke Pi Coding Agent untuk alur kerja pengkodean lokal yang privat dan berkecepatan tinggi.
MiniMax M3 adalah model open-weight terbaru dari MiniMax untuk pengkodean, penggunaan tool, dan alur kerja agen jangka panjang. Yang membedakannya dari model MiniMax terdahulu adalah kombinasi jendela konteks 1M token, dukungan multimodal native untuk teks, gambar, dan video, serta MiniMax Sparse Attention yang dirancang untuk membuat inferensi konteks sangat panjang menjadi lebih praktis.
Dalam panduan ini, saya akan menunjukkan cara menjalankan MiniMax M3 secara lokal di dua GPU NVIDIA RTX PRO 6000, menguji model melalui antarmuka web bawaannya, dan menghubungkan endpoint lokal yang kompatibel dengan OpenAI ke agen pengkodean Pi.
Setup ini menggunakan terminal JupyterLab pada pod RunPod PyTorch alih-alih SSH, dengan llama.cpp dikompilasi untuk CUDA, melayani model pada port 8910.
Persyaratan Sistem untuk Menjalankan MiniMax M3 Secara Lokal
Sebelum menjalankan MiniMax M3 secara lokal, pastikan sistem Anda memiliki memori GPU dan penyimpanan yang cukup untuk memuat model.
GPU: 2× NVIDIA RTX PRO 6000 dengan VRAM 96 GB masing-masing, total 192 GB VRAM.
Penyimpanan: Minimal 350 GB ruang disk kosong untuk file model, cache Hugging Face, file build llama.cpp, dan data runtime sementara.
Kuantisasi model: Gunakan kuantisasi GGUF UD-IQ3_XXS dari unsloth/MiniMax-M3-GGUF. Ukurannya kira-kira 159 GB dan paling praktis untuk perangkat keras ini.
Runtime: Build llama.cpp yang mendukung CUDA dengan dukungan multi-GPU.
MiniMax M3 adalah model mixture-of-experts berukuran besar, sehingga bobotnya harus dibagi di kedua GPU saat inferensi. Meskipun sistem menyediakan total 192 GB VRAM, tidak semua memori tersebut dapat digunakan untuk model itu sendiri.
Sebagian VRAM diperlukan untuk overhead runtime, pemrosesan prompt, dan KV cache.
Karena itu, mulailah dengan kuantisasi UD-IQ3_XXS. Dengan ukuran sekitar 159 GB, ini menyisakan memori yang cukup untuk memuat dan menjalankan model.
Hindari kuantisasi 4-bit MiniMax M3 pada setup ini, karena file 4-bit terkecil yang tersedia berukuran sekitar 208 GB dan melebihi VRAM yang tersedia sebelum mempertimbangkan overhead runtime.
1. Siapkan Lingkungan Multi-GPU RunPod Anda
Buat Pod RunPod baru dan pilih 2× NVIDIA RTX PRO 6000 dengan template RunPod PyTorch terbaru. Template ini menyertakan JupyterLab, yang akan kita gunakan alih-alih SSH sepanjang panduan ini.
Konfigurasikan Pod dengan pengaturan berikut:
Container Disk:50 GB
Volume Disk:300 GB
Expose HTTP Ports:8910
Environment Variables: HF_TOKEN: Token akses Hugging Face Anda
Disk container 50 GB hanya untuk sistem operasi, paket, dan file sementara. Volume disk 300 GB adalah tempat model MiniMax M3 dan cache Hugging Face seharusnya berada.
Ekspos port HTTP 8910, karena llama.cpp nantinya akan menjalankan antarmuka web dan API yang kompatibel dengan OpenAI pada port ini. Setelah server berjalan, Anda dapat mengaksesnya melalui URL dengan format:
https://<POD_ID>-8910.proxy.runpod.net
Konfigurasi Pod yang digunakan untuk panduan ini berbiaya sekitar $4,23 per jam, meskipun harga dapat bervariasi tergantung ketersediaan dan lokasi.
Saya menyarankan Anda menyimpan setidaknya $10 dalam kredit RunPod, namun $15–$20 lebih aman untuk proses build awal, pengunduhan model, dan pengujian.
Anda akan melihat CUDA 12.8 atau versi CUDA yang kompatibel. Anda kini siap membangun llama.cpp dengan dukungan CUDA.
2. Build Cabang llama.cpp MiniMax M3 dengan CUDA
llama.cpp adalah mesin inferensi open-source untuk menjalankan model GGUF secara lokal. Saya sarankan membaca panduan lengkap llama.cpp kami jika Anda belum familiar.
Ia mendukung akselerasi CUDA, offloading multi-GPU, antarmuka web bawaan, dan server API yang kompatibel dengan OpenAI.
Dukungan MiniMax M3 masih eksperimental, jadi Anda perlu membangun llama.cpp dari cabang khusus minimax-m3 alih-alih menggunakan rilis standar.
Jalankan perintah berikut dari terminal JupyterLab Anda:
cd /workspace
git clone https://github.com/ggml-org/llama.cpp.git
cd llama.cpp
git fetch origin pull/24523/head:minimax-m3
git checkout minimax-m3Didukung oleh
Selanjutnya, konfigurasikan llama.cpp dengan dukungan CUDA dan kompilasi binary server dan command-line:
llama-server, yang menyediakan antarmuka chat berbasis browser dan endpoint API yang kompatibel dengan OpenAI.
llama-cli, yang memungkinkan Anda menguji model langsung dari terminal.
Catatan: Ini adalah implementasi MiniMax M3 yang bersifat eksperimental. Ia mendukung inferensi teks, tetapi MiniMax Sparse Attention tidak disertakan dalam cabang ini, sehingga llama.cpp menggunakan dense attention. Dukungan visi dan MTP/speculative decoding juga belum menjadi bagian dari build ini.
3. Unduh Bobot Model GGUF MiniMax M3
MiniMax M3 didistribusikan sebagai beberapa file GGUF. Unduh folder lengkap UD-IQ3_XXS ke volume workspace persisten sebelum memulai server.
Buat direktori untuk model dan aktifkan pengunduhan Hugging Face yang lebih cepat:
mkdir-p /workspace/unsloth
exportHF_XET_HIGH_PERFORMANCE=1Didukung oleh
Lalu unduh kuantisasi UD-IQ3_XXS:
hf download unsloth/MiniMax-M3-GGUF \--include"UD-IQ3_XXS/*"\
--local-dir /workspace/unslothDidukung oleh
Unduhan berukuran sekitar 159 GB dan mencakup lima shard GGUF. Karena model disimpan di /workspace, model akan tetap tersedia saat Anda menghentikan dan memulai ulang Pod.
4. Layani MiniMax M3 Secara Lokal di Beberapa GPU
Pindah ke direktori llama.cpp dan buat kedua GPU tersedia untuk server:
cd /workspace/llama.cpp
exportCUDA_VISIBLE_DEVICES=0,1Didukung oleh
Perintah ini memuat MiniMax M3 di kedua GPU RTX PRO 6000. Pengaturan --tensor-split 1,1 membagi model secara merata di antara GPU, sementara --n-gpu-layers 99 menjaga sebanyak mungkin lapisan model berada di memori GPU.
Server berjalan pada port 8910 dan menyediakan antarmuka web llama.cpp serta API yang kompatibel dengan OpenAI. Biarkan terminal ini tetap terbuka saat model berjalan.
Mulailah dengan jendela konteks 8K. Cabang llama.cpp eksperimental ini menggunakan dense attention alih-alih MiniMax Sparse Attention, sehingga penggunaan jendela konteks yang jauh lebih besar dapat menyebabkan masalah memori. Setelah server berfungsi, Anda dapat menguji --ctx-size 16384.
Buka terminal JupyterLab lain dan jalankan perintah berikut untuk memastikan bahwa kedua GPU sedang digunakan:
Setelah model dimuat, kedua GPU akan menampilkan penggunaan VRAM yang signifikan.
5. Uji Endpoint API yang Kompatibel dengan OpenAI untuk MiniMax M3
Buka terminal JupyterLab baru dan pertama-tama konfirmasikan bahwa server berjalan dan telah memuat MiniMax M3:
curl-s http://127.0.0.1:8910/v1/models \| python3 -c"import sys, json; print(json.load(sys.stdin)['data'][0]['id'])"Didukung oleh
Anda akan melihat ID model seperti:
MiniMax-M3-UD-IQ3_XXS-00001-of-00005.ggufDidukung oleh
Selanjutnya, kirim permintaan uji ke endpoint chat completions yang kompatibel dengan OpenAI:
curl http://127.0.0.1:8910/v1/chat/completions \-H"Content-Type: application/json"\-d'{
"model": "MiniMax-M3-UD-IQ3_XXS-00001-of-00005.gguf",
"messages": [
{
"role": "user",
"content": "Write a Python function that checks whether a number is prime."
}
],
"temperature": 1.0,
"top_p": 0.95,
"max_tokens": 512
}'Didukung oleh
Server MiniMax M3 lokal Anda berfungsi dengan benar.
Model menghasilkan fungsi Python is_prime() yang efisien menggunakan math.isqrt() dan optimisasi 6k ± 1.
Respons terpotong karena mencapai batas max_tokens 512, ditunjukkan oleh: "finish_reason": "length"
Dalam pengujian ini, server memproses prompt sekitar 357 token per detik dan menghasilkan teks sekitar 73 token per detik.
Kecepatan Anda dapat bervariasi tergantung panjang konteks, beban GPU, dan ukuran prompt.
6. Akses Web UI llama.cpp untuk MiniMax M3
Karena port 8910 diekspos melalui RunPod, Anda juga dapat menguji MiniMax M3 melalui antarmuka web bawaan llama.cpp.
Di dasbor RunPod, buka Pod Anda dan klik tombol Connect. Di bawah port HTTP yang diekspos, pilih tautan untuk port 8910.
Ini akan membuka antarmuka web llama.cpp di browser Anda. Cara kerjanya mirip aplikasi chat bergaya ChatGPT yang ringan, dengan model MiniMax M3 yang berjalan lokal sudah dipilih. Anda kini dapat mengirim prompt dan menguji model tanpa menggunakan terminal atau API.
Untuk uji praktis, saya meminta MiniMax M3 membuat antarmuka web Python untuk melayani model machine learning. Ia menghasilkan desain dasbor berbasis FastAPI yang terperinci dengan penggantian model, permintaan prediksi JSON, unggah batch CSV, streaming WebSocket langsung, registry model, endpoint health, logging terstruktur, pengujian, dan setup Docker.
Respons menghasilkan 5.510 token dalam 1 menit 19 detik, mencapai sekitar 69 token per detik.
Untuk kuantisasi lokal 3-bit yang berjalan di dua RTX PRO 6000, ini adalah hasil yang kuat dan menunjukkan bahwa MiniMax M3 dapat menangani permintaan pengkodean yang lebih panjang dengan kecepatan interaktif.
7. Hubungkan Pi Coding Agent ke LLM Lokal Anda
Pi adalah agen pengkodean berbasis terminal yang dapat bekerja langsung dengan file proyek lokal Anda, menjalankan perintah, memeriksa kode, dan menggunakan model MiniMax M3 yang Anda host secara lokal.
Buka terminal JupyterLab ketiga. Biarkan terminal pertama menjalankan llama-server, lalu gunakan terminal ini untuk memasang dan mengonfigurasi Pi.
Pasang Pi dengan skrip instalasi resmi:
curl-fsSL https://pi.dev/install.sh |shDidukung oleh
Jika penginstal menanyakan apakah harus memasang Node.js, ketik Y lalu tekan Enter. Pi kemudian akan memasang runtime Node.js yang diperlukan dan tool baris perintah pi.
Saat instalasi selesai, penginstal mungkin menampilkan perintah untuk memperbarui lingkungan shell Anda. Jalankan perintah yang diberikan, lalu mulai ulang shell:
Konfigurasi ini memberi tahu Pi untuk menggunakan server llama.cpp lokal yang berjalan pada port 8910. Pengaturan API openai-completions sesuai dengan endpoint chat completions yang kompatibel dengan OpenAI milik llama.cpp.
Pengaturan kompatibilitas mencegah Pi mengirim field atau role pesan yang tidak didukung yang dapat menimbulkan masalah pada beberapa server lokal yang kompatibel dengan OpenAI. Secara khusus, Pi akan menggunakan role system standar alih-alih role developer yang lebih baru dan akan mengirim max_tokens, seperti yang diharapkan oleh llama.cpp.
Model dicantumkan sebagai teks saja dengan jendela konteks 8K, sesuai dengan konfigurasi server yang Anda jalankan sebelumnya. Nilai biaya disetel ke nol karena MiniMax M3 berjalan secara lokal di instance RunPod Anda, bukan melalui API berbayar.
8. Jalankan Pi dengan MiniMax M3
Buka terminal JupyterLab baru untuk Pi. Untuk pengalaman agen pengkodean yang lebih nyaman, ubah JupyterLab ke mode gelap dengan memilih Settings → Theme → JupyterLab Dark.
Selanjutnya, klon proyek yang ingin Anda kerjakan dengan MiniMax M3:
cd /workspace
git clone https://github.com/kingabzpro/semantic-web-cache
cd semantic-web-cacheDidukung oleh
Cari local, lalu pilih MiniMax M3 Local 3-bit. Pi akan menampilkan penyedia lokal dan mengonfirmasi bahwa model GGUF MiniMax M3 terpilih.
Mulailah dengan tugas read-only agar Pi dapat memeriksa repositori tanpa mengubah file apa pun. Misalnya:
"Read the README.md file and explain how this project is structured."Didukung oleh
Pi akan menggunakan tool terminal seperti ls dan read untuk menelusuri repositori, memeriksa README, dan meninjau file pendukung seperti .env.example, requirements.txt, dan Jupyter notebook.
Dalam contoh ini, MiniMax M3 mengidentifikasi dengan benar file utama proyek dan menjelaskan bahwa repositori ini adalah demo caching semantik yang dibangun dengan Olostep dan Qdrant.
Ia menyoroti alur kerja berbasis notebook, variabel lingkungan yang diperlukan untuk API, pengaturan ambang cache dan TTL, serta evaluasi latensi, cache-hit, dan penghematan kredit yang disertakan dalam proyek.
Saya juga memintanya membuat diagram alur kerja ASCII untuk pipeline cache semantik. Ia membuat alur yang jelas yang menunjukkan bagaimana kueri pengguna di-embed, diperiksa terhadap cache Qdrant, dievaluasi terhadap ambang kemiripan, lalu dikembalikan dari cache atau dikirim ke Olostep sebelum hasilnya disimpan.
Untuk repositori yang lebih besar atau tugas bertahap yang lebih mendalam, Anda mungkin membutuhkan jendela konteks yang lebih besar. Perbarui nilai --ctx-size pada perintah llama-server dan mulai ulang server. Mulailah dengan menaikkannya dari 8192 ke 16384, lalu uji 32768` jika memori GPU masih tersedia.
Hindari langsung melompat ke jendela konteks 100K. Cabang llama.cpp MiniMax M3 yang eksperimental ini menggunakan dense attention alih-alih MiniMax Sparse Attention, sehingga konteks yang sangat besar dapat meningkatkan penggunaan memori secara signifikan dan mungkin menyebabkan error kehabisan memori.
Pemikiran Akhir
Setelah menjalankan MiniMax M3 secara lokal, saya rasa ia menawarkan keseimbangan yang jauh lebih baik dibanding mencoba menjalankan model pengkodean yang sangat besar seperti GLM 5.2 atau Kimi K2.7 Code.
Model-model tersebut mungkin lebih kuat dalam beberapa kasus, tetapi juga membutuhkan memori GPU yang jauh lebih besar dan bisa menjadi sangat mahal untuk disewa dan dijalankan secara lokal.
Dengan MiniMax M3, saya dapat menjalankan model pengkodean dan agen yang mumpuni di dua RTX PRO 6000, menggunakannya melalui antarmuka browser, mengeksposnya melalui API yang kompatibel dengan OpenAI, dan menghubungkannya ke Pi sebagai agen pengkodean lokal.
Dalam pengujian saya, ia menghasilkan sekitar 70 token per detik dan menangani penelusuran repositori, analisis README, eksekusi perintah, penjelasan proyek, dan diagram alur kerja dengan baik.
Setup ini belum sempurna. Dukungan llama.cpp masih eksperimental, Sparse Attention belum tersedia, dan jendela konteks perlu tetap relatif kecil kecuali Anda memiliki VRAM yang lebih banyak. Meski begitu, untuk model 3-bit yang dijalankan secara lokal, hasilnya mengesankan.
FAQs
Berapa ukuran parameter MiniMax M3 sebenarnya?⌄
MiniMax M3 adalah model Mixture-of-Experts (MoE) yang sangat besar dengan sekitar 428 miliar parameter total. Namun, hanya sekitar 22 hingga 23 miliar parameter per token yang diaktifkan selama inferensi, itulah mengapa model ini dapat berjalan efisien menggunakan Sparse Attention dan format terkuantisasi.
Apakah saya bisa menggunakan bobot MiniMax M3 yang terbuka untuk produk komersial?⌄
Tidak, bobot terbuka saat ini dirilis di bawah lisensi non-komersial. Ketentuan lisensi secara eksplisit membatasi penggunaan komersial, sehingga pengembang yang membangun produk berbayar atau aplikasi enterprise harus menggunakan API berbayar atau menegosiasikan lisensi komersial dengan MiniMax.
Bagaimana perbandingan MiniMax M3 pada tolok ukur pengkodean melawan model proprietari?⌄
MiniMax M3 mencapai kinerja setara frontier, mencetak 59,0% pada SWE-Bench Pro dan 66,0% pada Terminal-Bench 2.1. Skor ini menempatkannya pada level yang sama dengan model sumber tertutup seperti Claude Opus 4.7 dan GPT-5.5 untuk rekayasa perangkat lunak dan tugas terminal agentic.
Jika saya tidak menjalankannya secara lokal, berapa biaya API-nya?⌄
Harga API standar sekitar $0,60 per satu juta token input dan $2,40 per satu juta token output. Meskipun mendukung hingga 1M token konteks, beberapa penyedia API membuat tier harga, membebankan biaya premium setelah Anda melewati ambang konteks 512K.
Sebagai data scientist tersertifikasi, saya bersemangat memanfaatkan teknologi mutakhir untuk menciptakan aplikasi machine learning yang inovatif. Dengan latar belakang kuat di pengenalan ucapan, analisis dan pelaporan data, MLOps, conversational AI, dan NLP, saya mengasah keterampilan dalam mengembangkan sistem cerdas yang berdampak nyata. Selain keahlian teknis, saya juga komunikator andal yang mampu menyederhanakan konsep kompleks menjadi bahasa yang jelas dan ringkas. Karena itu, saya menjadi blogger yang dicari di bidang data science, membagikan wawasan dan pengalaman kepada komunitas profesional data yang terus berkembang. Saat ini, saya berfokus pada pembuatan dan penyuntingan konten, bekerja dengan large language model untuk mengembangkan konten yang kuat dan menarik agar membantu bisnis dan individu memaksimalkan data mereka.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Latih dan sempurnakan model AI terbaru untuk produksi, termasuk model bahasa besar (LLM) seperti Llama 3. Mulailah perjalanan Anda untuk menjadi seorang Insinyur Kecerdasan Buatan (AI) hari ini!
MiniMax M3 adalah model open-weight terbaru dari MiniMax untuk pengkodean, penggunaan tool, dan alur kerja agen jangka panjang. Yang membedakannya dari model MiniMax terdahulu adalah kombinasi jendela konteks 1M token, dukungan multimodal native untuk teks, gambar, dan video, serta MiniMax Sparse Attention yang dirancang untuk membuat inferensi konteks sangat panjang menjadi lebih praktis.
Sumber: MiniMax
Dalam panduan ini, saya akan menunjukkan cara menjalankan MiniMax M3 secara lokal di dua GPU NVIDIA RTX PRO 6000, menguji model melalui antarmuka web bawaannya, dan menghubungkan endpoint lokal yang kompatibel dengan OpenAI ke agen pengkodean Pi.
Setup ini menggunakan terminal JupyterLab pada pod RunPod PyTorch alih-alih SSH, dengan llama.cpp dikompilasi untuk CUDA, melayani model pada port
8910.Persyaratan Sistem untuk Menjalankan MiniMax M3 Secara Lokal
Sebelum menjalankan MiniMax M3 secara lokal, pastikan sistem Anda memiliki memori GPU dan penyimpanan yang cukup untuk memuat model.
UD-IQ3_XXSdariunsloth/MiniMax-M3-GGUF. Ukurannya kira-kira 159 GB dan paling praktis untuk perangkat keras ini.llama.cppyang mendukung CUDA dengan dukungan multi-GPU.MiniMax M3 adalah model mixture-of-experts berukuran besar, sehingga bobotnya harus dibagi di kedua GPU saat inferensi. Meskipun sistem menyediakan total 192 GB VRAM, tidak semua memori tersebut dapat digunakan untuk model itu sendiri.
Sebagian VRAM diperlukan untuk overhead runtime, pemrosesan prompt, dan KV cache.
Karena itu, mulailah dengan kuantisasi
UD-IQ3_XXS. Dengan ukuran sekitar 159 GB, ini menyisakan memori yang cukup untuk memuat dan menjalankan model.Hindari kuantisasi 4-bit MiniMax M3 pada setup ini, karena file 4-bit terkecil yang tersedia berukuran sekitar 208 GB dan melebihi VRAM yang tersedia sebelum mempertimbangkan overhead runtime.
1. Siapkan Lingkungan Multi-GPU RunPod Anda
Buat Pod RunPod baru dan pilih 2× NVIDIA RTX PRO 6000 dengan template RunPod PyTorch terbaru. Template ini menyertakan JupyterLab, yang akan kita gunakan alih-alih SSH sepanjang panduan ini.
Konfigurasikan Pod dengan pengaturan berikut:
50 GB300 GB8910HF_TOKEN: Token akses Hugging Face AndaDisk container 50 GB hanya untuk sistem operasi, paket, dan file sementara. Volume disk 300 GB adalah tempat model MiniMax M3 dan cache Hugging Face seharusnya berada.
Ekspos port HTTP
8910, karena llama.cpp nantinya akan menjalankan antarmuka web dan API yang kompatibel dengan OpenAI pada port ini. Setelah server berjalan, Anda dapat mengaksesnya melalui URL dengan format:https://<POD_ID>-8910.proxy.runpod.net
Konfigurasi Pod yang digunakan untuk panduan ini berbiaya sekitar $4,23 per jam, meskipun harga dapat bervariasi tergantung ketersediaan dan lokasi.
Saya menyarankan Anda menyimpan setidaknya $10 dalam kredit RunPod, namun $15–$20 lebih aman untuk proses build awal, pengunduhan model, dan pengujian.
Setelah Pod berjalan, buka dari dasbor RunPod:
Pertama, konfirmasikan bahwa kedua GPU tersedia:
Anda akan melihat dua NVIDIA RTX PRO 6000, masing-masing dengan sekitar 96 GB VRAM.
Selanjutnya, pasang build tools yang diperlukan:
Terakhir, verifikasi bahwa CUDA tersedia:
Anda akan melihat CUDA 12.8 atau versi CUDA yang kompatibel. Anda kini siap membangun llama.cpp dengan dukungan CUDA.
2. Build Cabang llama.cpp MiniMax M3 dengan CUDA
llama.cpp adalah mesin inferensi open-source untuk menjalankan model GGUF secara lokal. Saya sarankan membaca panduan lengkap llama.cpp kami jika Anda belum familiar.
Ia mendukung akselerasi CUDA, offloading multi-GPU, antarmuka web bawaan, dan server API yang kompatibel dengan OpenAI.
Dukungan MiniMax M3 masih eksperimental, jadi Anda perlu membangun llama.cpp dari cabang khusus
minimax-m3alih-alih menggunakan rilis standar.Jalankan perintah berikut dari terminal JupyterLab Anda:
Selanjutnya, konfigurasikan llama.cpp dengan dukungan CUDA dan kompilasi binary server dan command-line:
Ini membuat dua binary di
build/bin/:llama-server, yang menyediakan antarmuka chat berbasis browser dan endpoint API yang kompatibel dengan OpenAI.llama-cli, yang memungkinkan Anda menguji model langsung dari terminal.Catatan: Ini adalah implementasi MiniMax M3 yang bersifat eksperimental. Ia mendukung inferensi teks, tetapi MiniMax Sparse Attention tidak disertakan dalam cabang ini, sehingga llama.cpp menggunakan dense attention. Dukungan visi dan MTP/speculative decoding juga belum menjadi bagian dari build ini.
3. Unduh Bobot Model GGUF MiniMax M3
MiniMax M3 didistribusikan sebagai beberapa file GGUF. Unduh folder lengkap
UD-IQ3_XXSke volume workspace persisten sebelum memulai server.Pertama, pasang Hugging Face Hub CLI terbaru:
Buat direktori untuk model dan aktifkan pengunduhan Hugging Face yang lebih cepat:
Lalu unduh kuantisasi
UD-IQ3_XXS:Unduhan berukuran sekitar 159 GB dan mencakup lima shard GGUF. Karena model disimpan di
/workspace, model akan tetap tersedia saat Anda menghentikan dan memulai ulang Pod.4. Layani MiniMax M3 Secara Lokal di Beberapa GPU
Pindah ke direktori llama.cpp dan buat kedua GPU tersedia untuk server:
Lalu mulai MiniMax M3:
Perintah ini memuat MiniMax M3 di kedua GPU RTX PRO 6000. Pengaturan
--tensor-split 1,1membagi model secara merata di antara GPU, sementara --n-gpu-layers 99menjaga sebanyak mungkin lapisan model berada di memori GPU.Server berjalan pada port 8910
dan menyediakan antarmuka web llama.cpp serta API yang kompatibel dengan OpenAI. Biarkan terminal ini tetap terbuka saat model berjalan.Mulailah dengan jendela konteks 8K. Cabang llama.cpp eksperimental ini menggunakan dense attention alih-alih MiniMax Sparse Attention, sehingga penggunaan jendela konteks yang jauh lebih besar dapat menyebabkan masalah memori. Setelah server berfungsi, Anda dapat menguji --ctx-size 16384
.Buka terminal JupyterLab lain dan jalankan perintah berikut untuk memastikan bahwa kedua GPU sedang digunakan:
Setelah model dimuat, kedua GPU akan menampilkan penggunaan VRAM yang signifikan.
5. Uji Endpoint API yang Kompatibel dengan OpenAI untuk MiniMax M3
Buka terminal JupyterLab baru dan pertama-tama konfirmasikan bahwa server berjalan dan telah memuat MiniMax M3:
Anda akan melihat ID model seperti:
Selanjutnya, kirim permintaan uji ke endpoint chat completions yang kompatibel dengan OpenAI:
Server MiniMax M3 lokal Anda berfungsi dengan benar.
Model menghasilkan fungsi Python is_prime()
yang efisien menggunakanmath.isqrt()dan optimisasi6k ± 1.Respons terpotong karena mencapai batas max_tokens
512, ditunjukkan oleh: "finish_reason": "length"Dalam pengujian ini, server memproses prompt sekitar 357 token per detik dan menghasilkan teks sekitar 73 token per detik.
Kecepatan Anda dapat bervariasi tergantung panjang konteks, beban GPU, dan ukuran prompt.
6. Akses Web UI llama.cpp untuk MiniMax M3
Karena port
8910diekspos melalui RunPod, Anda juga dapat menguji MiniMax M3 melalui antarmuka web bawaan llama.cpp.Di dasbor RunPod, buka Pod Anda dan klik tombol Connect. Di bawah port HTTP yang diekspos, pilih tautan untuk port
8910.Ini akan membuka antarmuka web llama.cpp di browser Anda. Cara kerjanya mirip aplikasi chat bergaya ChatGPT yang ringan, dengan model MiniMax M3 yang berjalan lokal sudah dipilih. Anda kini dapat mengirim prompt dan menguji model tanpa menggunakan terminal atau API.
Untuk uji praktis, saya meminta MiniMax M3 membuat antarmuka web Python untuk melayani model machine learning. Ia menghasilkan desain dasbor berbasis FastAPI yang terperinci dengan penggantian model, permintaan prediksi JSON, unggah batch CSV, streaming WebSocket langsung, registry model, endpoint health, logging terstruktur, pengujian, dan setup Docker.
Respons menghasilkan 5.510 token dalam 1 menit 19 detik, mencapai sekitar 69 token per detik.
Untuk kuantisasi lokal 3-bit yang berjalan di dua RTX PRO 6000, ini adalah hasil yang kuat dan menunjukkan bahwa MiniMax M3 dapat menangani permintaan pengkodean yang lebih panjang dengan kecepatan interaktif.
7. Hubungkan Pi Coding Agent ke LLM Lokal Anda
Pi adalah agen pengkodean berbasis terminal yang dapat bekerja langsung dengan file proyek lokal Anda, menjalankan perintah, memeriksa kode, dan menggunakan model MiniMax M3 yang Anda host secara lokal.
Buka terminal JupyterLab ketiga. Biarkan terminal pertama menjalankan llama-server
, lalu gunakan terminal ini untuk memasang dan mengonfigurasi Pi.Pasang Pi dengan skrip instalasi resmi:
Saat instalasi selesai, penginstal mungkin menampilkan perintah untuk memperbarui lingkungan shell Anda. Jalankan perintah yang diberikan, lalu mulai ulang shell:
Konfirmasikan bahwa Pi tersedia:
Anda akan melihat nomor versi Pi yang terpasang.
Pi mendukung penyedia kustom yang kompatibel dengan OpenAI melalui file models.json. Buat direktori konfigurasi Pi:
Lalu buat konfigurasi penyedia:
Konfigurasi ini memberi tahu Pi untuk menggunakan server llama.cpp lokal yang berjalan pada port
8910. Pengaturan APIopenai-completionssesuai dengan endpoint chat completions yang kompatibel dengan OpenAI milik llama.cpp.Pengaturan kompatibilitas mencegah Pi mengirim field atau role pesan yang tidak didukung yang dapat menimbulkan masalah pada beberapa server lokal yang kompatibel dengan OpenAI. Secara khusus, Pi akan menggunakan role system standar alih-alih role developer yang lebih baru dan akan mengirim
max_tokens, seperti yang diharapkan oleh llama.cpp.Model dicantumkan sebagai teks saja dengan jendela konteks 8K, sesuai dengan konfigurasi server yang Anda jalankan sebelumnya. Nilai biaya disetel ke nol karena MiniMax M3 berjalan secara lokal di instance RunPod Anda, bukan melalui API berbayar.
8. Jalankan Pi dengan MiniMax M3
Buka terminal JupyterLab baru untuk Pi. Untuk pengalaman agen pengkodean yang lebih nyaman, ubah JupyterLab ke mode gelap dengan memilih Settings → Theme → JupyterLab Dark.
Selanjutnya, klon proyek yang ingin Anda kerjakan dengan MiniMax M3:
Luncurkan Pi:
Di dalam Pi, ketik:
Cari local
, lalu pilih MiniMax M3 Local 3-bit. Pi akan menampilkan penyedia lokal dan mengonfirmasi bahwa model GGUF MiniMax M3 terpilih.Mulailah dengan tugas read-only agar Pi dapat memeriksa repositori tanpa mengubah file apa pun. Misalnya:
Pi akan menggunakan tool terminal seperti ls
danreaduntuk menelusuri repositori, memeriksa README, dan meninjau file pendukung seperti.env.example,requirements.txt, dan Jupyter notebook.Dalam contoh ini, MiniMax M3 mengidentifikasi dengan benar file utama proyek dan menjelaskan bahwa repositori ini adalah demo caching semantik yang dibangun dengan Olostep dan Qdrant.
Ia menyoroti alur kerja berbasis notebook, variabel lingkungan yang diperlukan untuk API, pengaturan ambang cache dan TTL, serta evaluasi latensi, cache-hit, dan penghematan kredit yang disertakan dalam proyek.
Saya juga memintanya membuat diagram alur kerja ASCII untuk pipeline cache semantik. Ia membuat alur yang jelas yang menunjukkan bagaimana kueri pengguna di-embed, diperiksa terhadap cache Qdrant, dievaluasi terhadap ambang kemiripan, lalu dikembalikan dari cache atau dikirim ke Olostep sebelum hasilnya disimpan.
Untuk repositori yang lebih besar atau tugas bertahap yang lebih mendalam, Anda mungkin membutuhkan jendela konteks yang lebih besar. Perbarui nilai --ctx-size
pada perintahllama-serverdan mulai ulang server. Mulailah dengan menaikkannya dari8192ke16384, lalu uji32768` jika memori GPU masih tersedia.Hindari langsung melompat ke jendela konteks 100K. Cabang llama.cpp MiniMax M3 yang eksperimental ini menggunakan dense attention alih-alih MiniMax Sparse Attention, sehingga konteks yang sangat besar dapat meningkatkan penggunaan memori secara signifikan dan mungkin menyebabkan error kehabisan memori.
Pemikiran Akhir
Setelah menjalankan MiniMax M3 secara lokal, saya rasa ia menawarkan keseimbangan yang jauh lebih baik dibanding mencoba menjalankan model pengkodean yang sangat besar seperti GLM 5.2 atau Kimi K2.7 Code.
Model-model tersebut mungkin lebih kuat dalam beberapa kasus, tetapi juga membutuhkan memori GPU yang jauh lebih besar dan bisa menjadi sangat mahal untuk disewa dan dijalankan secara lokal.
Dengan MiniMax M3, saya dapat menjalankan model pengkodean dan agen yang mumpuni di dua RTX PRO 6000, menggunakannya melalui antarmuka browser, mengeksposnya melalui API yang kompatibel dengan OpenAI, dan menghubungkannya ke Pi sebagai agen pengkodean lokal.
Dalam pengujian saya, ia menghasilkan sekitar 70 token per detik dan menangani penelusuran repositori, analisis README, eksekusi perintah, penjelasan proyek, dan diagram alur kerja dengan baik.
Setup ini belum sempurna. Dukungan llama.cpp masih eksperimental, Sparse Attention belum tersedia, dan jendela konteks perlu tetap relatif kecil kecuali Anda memiliki VRAM yang lebih banyak. Meski begitu, untuk model 3-bit yang dijalankan secara lokal, hasilnya mengesankan.