1 poin oleh GN⁺ 2024-01-10 | 1 komentar | Bagikan ke WhatsApp
  • Mixtral 8x7B adalah model Sparse Mixture of Experts (SMoE) yang mempertahankan struktur dasar Mistral 7B, tetapi mengganti blok feedforward di setiap layer dengan 8 expert, dan dirilis dengan bobot terbuka serta lisensi Apache 2.0
  • Untuk setiap token, router hanya memilih 2 dari 8 expert untuk komputasi, sehingga model dapat mengakses 47B parameter per token, sementara parameter aktif saat inferensi dibatasi hingga 13B
  • Model ini dilatih dengan ukuran konteks 32k token, dan di berbagai benchmark yang dievaluasi menunjukkan kinerja yang melampaui atau setara dengan Llama 2 70B dan GPT-3.5, terutama kuat pada matematika, pembuatan kode, dan tugas multibahasa
  • Mixtral 8x7B – Instruct adalah model chat yang mempelajari kepatuhan terhadap instruksi melalui supervised fine-tuning dan direct preference optimization (DPO), dan dalam evaluasi manusia melampaui GPT-3.5 Turbo, Claude-2.1, Gemini Pro, serta Llama 2 70B-chat
  • Arsitektur sparse expert memperbesar total parameter sekaligus menekan jumlah komputasi per token, sehingga dapat diharapkan memberi inferensi cepat pada ukuran batch rendah dan throughput tinggi pada ukuran batch besar

Model yang Dirilis dan Kinerja Benchmark

  • Mixtral 8x7B adalah model open-weight Sparse Mixture of Experts (SMoE), dan dapat digunakan untuk keperluan akademis maupun komersial di bawah lisensi Apache 2.0
  • Model dasar dan Mixtral 8x7B – Instruct untuk kepatuhan instruksi dirilis bersama
  • Kode dan halaman web tersedia
  • Di beberapa benchmark, model ini mencatat hasil yang melampaui atau setara dengan Llama 2 70B dan GPT-3.5
  • Pada tugas yang membutuhkan matematika, pembuatan kode, dan pemahaman multibahasa, kinerjanya lebih kuat daripada Llama 2 70B
  • Telah dikonfirmasi bahwa model dapat mengambil informasi dalam jendela konteks 32k token tanpa bergantung pada posisi informasi maupun panjang sekuens

Arsitektur Sparse Mixture of Experts

  • Mixtral adalah transformer decoder-only, yang mengganti blok feedforward pada transformer umum dengan layer Mixture-of-Experts
  • Jaringan router di setiap layer memilih 2 expert dari 8 expert untuk tiap token
    • Output expert yang dipilih digabungkan sebagai weighted sum
    • Pilihan expert dapat berbeda pada setiap timestep
  • Satu token dapat mengakses 47B parameter, tetapi parameter aktif yang digunakan dalam inferensi sebenarnya adalah 13B
  • Struktur ini adalah cara untuk meningkatkan jumlah parameter total model sekaligus mengendalikan biaya pemrosesan token dan latensi

Cara Komputasi Layer MoE

  • Output modul MoE dihitung sebagai weighted sum dari output jaringan expert, dengan bobot ditentukan oleh jaringan gating
  • Jika vektor gating bersifat sparse, output dari expert yang nilai gate-nya 0 tidak perlu dihitung
  • Mixtral menerapkan softmax pada K logit teratas dari layer linear
    • K adalah hyperparameter yang menentukan jumlah expert yang digunakan per token
    • Pada Mixtral, nilainya ditetapkan sebagai K = 2
  • Jika jumlah expert n ditingkatkan dan K dipertahankan tetap, jumlah komputasi per token dapat dijaga pada dasarnya konstan sembari meningkatkan jumlah parameter total
  • Dengan demikian, jumlah total parameter sparse dan jumlah parameter aktif yang digunakan untuk memproses token individual menjadi terpisah

Implementasi dan Efisiensi Inferensi

  • Layer MoE dapat dijalankan secara efisien bahkan pada satu GPU melalui kernel khusus
  • Megablocks merepresentasikan operasi FFN pada layer MoE sebagai perkalian matriks sparse besar untuk meningkatkan kecepatan eksekusi, dan juga menangani kasus ketika jumlah token yang dialokasikan ke tiap expert berbeda-beda
  • Layer MoE dapat didistribusikan ke beberapa GPU melalui paralelisasi model standar dan Expert Parallelism
    • Token yang harus diproses oleh expert tertentu dirutekan ke GPU terkait
    • Output expert dikembalikan ke posisi token semula
  • Dalam expert parallelism, beban kerja antar-GPU harus dibagi secara merata, sehingga diperlukan load balancing
  • Agar Mixtral dapat dijalankan dengan stack open-source sepenuhnya, perubahan integrasi kernel CUDA Megablocks telah diajukan ke proyek vLLM, dan Skypilot mendukung deployment endpoint vLLM pada instance cloud

Model Instruct dan Karakteristik Evaluasi

  • Mixtral 8x7B – Instruct adalah model chat yang mempelajari kepatuhan terhadap instruksi melalui supervised fine-tuning dan direct preference optimization (DPO)
  • Pada benchmark evaluasi manusia, model ini menunjukkan kinerja lebih tinggi daripada GPT-3.5 Turbo, Claude-2.1, Gemini Pro, dan Llama 2 70B-chat
  • Pada benchmark seperti BBQ dan BOLD, model ini menunjukkan bias yang berkurang dan profil sentimen yang lebih seimbang
  • Berkat arsitektur sparse, model ini dapat diharapkan memberikan kecepatan inferensi yang lebih cepat pada ukuran batch rendah dan throughput yang lebih tinggi pada ukuran batch besar
  • Secara struktural, model ini berbeda dari GShard yang hanya mengganti sebagian blok, karena Mixtral mengganti semua subblok FFN dengan layer MoE

1 komentar

 
GN⁺ 2024-01-10
Opini Hacker News
  • Makalah ini membahas secara rinci model yang sudah dirilis dan digunakan sejak sekitar sebulan lalu. Mixtral 8x7B benar-benar luar biasa; ukurannya kira-kira setara kelas 13B, tetapi dalam peringkat seperti https://www.reddit.com/r/LocalLLaMA/comments/1916896/llm_com... nilainya jauh lebih tinggi daripada model berukuran serupa
    Ravenwolf mengatakan model ini dalam praktiknya sedikit lebih baik daripada sebagian skor benchmark-nya, dan pengalaman saya juga sama. Untuk model seukuran ini, kualitasnya mengejutkan, dan cukup baik untuk dipakai harian di Mac untuk chat, input kode, dan keperluan lain
    Hal yang terungkap setelah bobotnya dirilis adalah bahwa cukup besar kemungkinan kedelapan expert semuanya di-seed dari Mistral 7B lalu kemudian bercabang. Karena itu, komunitas LLM lokal sedang banyak bereksperimen dengan menyalin model untuk membuat expert secara murah
    Biasanya orang mengira melatih jaringan 8x7B akan membutuhkan beban kerja setara melatih delapan jaringan 7B, tetapi tampaknya tidak demikian bagi Mistral, dan ini sangat menarik
    Dengan terus munculnya makalah seperti Calm dari DeepMind dan eksperimen menggabungkan layer secara spontan seperti Goliath-120b, tampaknya besar kemungkinan tahun ini akan ada peningkatan arsitektur yang cukup menarik di ranah LLM. Calm tampaknya menunjuk ke tahap setelah MoE, dan model seperti Goliath menunjukkan bahwa bentuk implementasi Calm yang sangat malas—yakni sekadar memakai layer bobot penuh secara bergantian tanpa penggabungan layer linear—pun bisa memberi efek besar
    Secara keseluruhan, pada 2024, mungkin dalam paruh pertama tahun ini, sepertinya kita akan melihat model kuat yang bisa berjalan dengan performa baik bahkan di perangkat keras konsumen

    • Saya juga mendapatkan hasil yang sangat bagus dari Mixtral, dan benar-benar impresif. Namun, karena modelnya relatif besar, ada masalah bahwa sulit menjalankannya dengan inferensi GPU penuh di perangkat keras konsumen. Ini berbeda dari model 7B/13B yang biasa dipakai orang
      Sejauh ini, platform konsumen utama yang bisa menjalankannya tanpa kuantisasi tinggi yang sampai merusak kualitas output tampaknya adalah Mac Apple Silicon terbaru dengan unified memory, umumnya 48GB ke atas. Katanya bisa juga di 32GB atau 36GB, tetapi ruang geraknya tidak banyak
      Seperti yang ditunjukkan coder543, konfigurasi multi-GPU dengan total VRAM yang cukup bisa menjalankannya tanpa kuantisasi yang lebih banyak menimbulkan kehilangan kualitas
    • Mixtral memang bagus, tetapi benchmark Ravenwolf tidak bermakna. Rasanya seperti orang acak yang mencoba menciptakan ulang MMLU dalam bahasa Jerman tanpa ketelitian maupun konsistensi
      Kontaminasi dataset memang masalah, tetapi itu tidak akan diselesaikan oleh orang-orang di subreddit yang meminta tips lalu menilai LLM dengan cara-cara folklorik
    • Saya menantikan pengumuman perangkat keras. Produk yang sengaja dirancang untuk akselerasi LLM on-device bagi konsumen tampaknya jelas sedang mendekat
    • Saya benar-benar penasaran kapan kita akan melihat MoE berbasis model yang lebih kecil seperti Phi-2
  • Yang menonjol dari model ini adalah parameter yang digunakan serendah level 13B, sehingga bisa berjalan mulus dengan kualitas tinggi di 3090, sekaligus mengalahkan GPT-3.5 di HumanEval dan juga menyediakan konteks 32k
    3090 termasuk kelas konsumen dan umum dijumpai di PC gaming. Saya berharap pengembang gim mulai bereksperimen memasukkan Mixtral yang dideploy lokal ke dalam gim. Misalnya, di gim seperti Civilization, setiap pemimpin digerakkan oleh LLM

    • Mixtral bisa dijalankan dengan kecepatan token yang cukup baik di Apple MacBook Pro M1/M2/M3 setelah 2020 yang memiliki RAM 32GB atau lebih. RAM 16GB juga masih bisa sampai batas tertentu, tetapi mungkin memakai kuantisasi yang mirip dengan yang digunakan di 3090, dan perbedaan kuantisasi itu terasa
      Di M2 Pro saya, kecepatan token dan kecerdasannya terasa seperti GPT-3.5 Turbo. Ini adalah model pertama yang mulai saya pakai sungguhan sebagai pengganti GPT-3.5, bukan sekadar saya coba-coba karena teknologinya sendiri menarik
      Apple M2 Pro dengan RAM 32GB berada di kisaran harga yang mirip dengan PC gaming berisi 3090, dan ini adalah contoh lain bahwa orang biasa dengan sistem yang cukup bertenaga bisa “secara kebetulan” menjalankan model yang sebanding dengan GPT-3.5
      Jika Anda punya perangkat Apple yang memenuhi syarat ini dan ingin bereksperimen, LLM Studio bersifat open-source dan memudahkan untuk memulai: https://lmstudio.ai/
      Semoga Mixtral dan model-model lanjutannya memicu jauh lebih banyak hacking hobi
    • Menurut Google, harga RTX 3090 berada di antara 1.480–1.680 dolar
      Dengan uang sebanyak itu, orang bisa membeli satu PC utuh, jadi sulit dipercaya bahwa GPU semahal itu disebut “konsumen” dan “umum”
      Apakah ada GPU yang bagus untuk LLM atau AI generatif lain tetapi tidak terlalu mahal secara absurd? Atau ada produk yang dirancang khusus untuk AI, bukan grafis gim?
    • Penting juga bahwa model dengan kuantisasi 4-bit bisa berjalan di CPU dengan kecepatan kira-kira seperti membaca. Terutama jika sebagian hasil bisa dihitung lebih dulu secara asinkron, banyak use case bisa terbuka
    • Saya sedang mencoba memakai model lokal sebagai agen, dan orang yang tertarik perlu mengetahui fitur “grammars” di llama.cpp. Fitur ini dapat memaksa output model mengikuti struktur tertentu, sehingga berguna bukan hanya untuk menjamin output JSON yang valid, tetapi juga untuk batasan yang lebih spesifik seperti “jika memilih x, maka y juga harus disediakan”
      Misalnya, sebuah aktor yang merencanakan ke depan bisa diminta menjawab tiga hal acak dari 5W, tetapi tetap bebas menulis di dalam nilai string JSON agar kemudian dijadikan konteks untuk memilih dari kumpulan aksi yang terbatas. Atau model bisa meminta waktu berpikir tambahan di akhir respons, tetapi jika tidak meminta, ia harus menentukan aksi berikutnya
      Menurut saya tidak ada dampak pada kecepatan generasi, dan ini bisa dipakai dengan sangat kreatif. Namun, jika output terpotong, mungkin perlu digenerasi ulang, dan saya harus menulis fungsi terpisah yang berhenti segera setelah objek JSON yang valid tertutup atau jika lebih dari lima newline berurutan dihasilkan. Ini bisa berbeda tergantung model
    • Penggunaan VRAM lebih dekat ke model 47B. Meski saat inferensi hanya memakai 2 expert sekaligus, semua expert tetap dibutuhkan agar bisa menyelesaikan proses
  • Jika ingin mencoba model ini, kemungkinan salah satu yang didistribusikan oleh Mozilla/jart sebagai Llamafile

    1. Unduh llamafile (30,03 GB): https://huggingface.co/jartine/Mixtral-8x7B-Instruct-v0.1-ll...
    2. chmod +x mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile
    3. ./mixtral-8x7b-instruct-v0.1.Q5_K_M.llamafile
      [0] https://hacks.mozilla.org/2023/11/introducing-llamafile/
      [1] https://github.com/Mozilla-Ocho/llamafile#quickstart
  • Di Mac Silicon, bisa menggunakan Ollama
    https://ollama.ai/
    ollama pull mixtral
    Jika ingin UI web yang mirip ChatGPT: https://github.com/ollama-webui/ollama-webui
    docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:main
    Cukup akses http://localhost:3000. Ollama juga bisa dipakai di LangChain

    • Ada juga beberapa fine-tuning yang kuncinya dibuka. Dolphin tampaknya cukup populer, dan dilatih lebih lanjut dengan data coding. Jika ingin muat dalam 32 GB, ada https://ollama.ai/library/dolphin-mixtral:8x7b-v2.7-q3_K_M
    • Di Mac M1, sepertinya saya tidak akan memakai Ollama maupun host LLM lain lewat Docker. Setahu saya, masih belum ada dukungan Metal
  • Tulisan terkait terbaru
    Mixtral of experts - https://news.ycombinator.com/item?id=38598559 - Desember 2023, 300 komentar
    Mistral-8x7B-Chat - https://news.ycombinator.com/item?id=38594578 - Desember 2023, 69 komentar
    Mistral "Mixtral" 8x7B 32k model [magnet] - https://news.ycombinator.com/item?id=38570537 - Desember 2023, 239 komentar

  • Khususnya, Mixtral jauh mengungguli Llama 2 70B pada benchmark matematika, pembuatan kode, dan multibahasa
    Saya penasaran bagaimana performanya di matematika. Matematika selalu terlihat seperti kelemahan yang jelas, dan rasanya masih menjadi area yang belum diselesaikan siapa pun secara efektif

    • Matematika sampai batas tertentu adalah kelemahan bawaan LLM. Prediksi kata berikutnya memang bukan sesuatu yang sejak awal dirancang untuk mahir matematika
      Saya rasa masalah ini tidak akan “terselesaikan” hanya dengan LLM yang lebih baik, melainkan hanya lewat model multimodal yang dapat menjalankan program dan mengakses kalkulator
  • Saya tidak banyak membaca makalah LLM, tetapi menurut saya makalah ini cukup lemah karena kurang detail. Maksud saya, yang lemah bukan hasil LLM-nya, melainkan makalahnya sendiri
    Kalau ini masuk ke meja saya untuk direview, mungkin saya akan mengembalikannya hanya karena alasan itu. Misalnya, mereka tidak menjelaskan dengan baik bagaimana para expert dilatih atau dataset apa yang digunakan
    Apakah ini standar saat ini di bidang ini?

    • Ini sudah cukup umum. Dua hal yang disebutkan, yaitu detail pelatihan dan campuran dataset, pada dasarnya juga merupakan satu-satunya keunggulan kompetitif yang dimiliki perusahaan-perusahaan
      Karena kode dan arsitektur mudah direproduksi, siapa pun yang punya cukup uang bisa “dengan mudah” membuat model pesaing
      OpenAI memulai tren ini dan memantapkannya dengan “laporan teknis” GPT-4 yang bahkan tidak menyebutkan jumlah parameter model. Soal dataset, mereka sudah jauh lebih lama bersikap jauh lebih kabur
    • Benar, saya juga berpikir demikian. Sebenarnya saya menduga tiap expert dilatih secara terpisah lalu dilatih bersama. Karena jaringan router juga harus dilatih
      Saya sama sekali bukan ahli LLM, tetapi akan menarik jika bisa mengetahui terutama bagaimana pengaturan pelatihan yang berbeda memengaruhi performa
  • Penasaran kapan model multimodal yang dapat diakses publik akan mulai bermunculan
    Kemajuan model khusus teks memang mengagumkan, tetapi banyak perilaku “emergent” GPT-4 mungkin bukan hanya karena MoE atau jumlah parameter, melainkan juga karena pembelajaran multimodal
    Penasaran apakah lompatan serupa akan terlihat juga pada model multimodal yang lebih kecil

    • LLaVA sudah tersedia publik. Namun mungkin bukan lompatan yang diharapkan: https://llava-vl.github.io/
      Meta juga telah merilis model multimodal lintas 6 modalitas dengan lisensi nonkomersial: https://ai.meta.com/blog/imagebind-six-modalities-binding-ai...
    • Dari pengujian singkat, CogVLM terasa sangat bagus: https://github.com/THUDM/CogVLM
      Bobot modelnya berlisensi nonkomersial, jadi sepertinya bukan open source sejati, tetapi memenuhi “akses publik” yang diminta
      Semoga ada yang melatih dari awal model yang kompatibel dengan CogVLM dengan lisensi open source
    • Dari yang saya dengar dari orang-orang di FAANG, Google lebih dulu unggul daripada OpenAI dalam hal ini, dan OpenAI sedang sedikit mengejar. Tentu saja, di sisi bahasa, OpenAI masih punya keunggulan yang jelas. Ini semua cerita yang saya dengar dari orang lain
  • Penasaran apakah model ini bisa dijalankan dengan alat LLM milik Simon Willison. Saya tidak menemukan penyebutan Mixtral di issue atau diskusi
    Selain itu, adakah cara mudah mencoba model ini dari command line?

  • Dalam wawancara podcast A16Z baru-baru ini, pendiri Mistral mengatakan bahwa secara internal mereka memiliki beberapa model dengan kualitas di antara ChatGPT dan GPT-4
    Melihat rilis publik berkualitas tinggi sejauh ini, tampaknya ini akan menjadi masa yang menarik bagi LLM open source

    • Namun tidak ada sinyal bahwa model Mistral yang lebih kuat juga akan dirilis sebagai FOSS