- llamafile adalah proyek Mozilla Builders yang merangkum deployment dan eksekusi LLM menjadi satu file executable, sehingga bisa dijalankan secara lokal di sebagian besar sistem operasi dan arsitektur CPU tanpa instalasi
- Implementasinya menggabungkan llama.cpp dan Cosmopolitan Libc untuk melipat kompleksitas menjalankan LLM ke dalam satu executable “llamafile”, dan proyek ini telah dirombak oleh Mozilla.ai
- whisperfile yang disertakan adalah alat speech-to-text satu file berbasis packaging Cosmopolitan yang sama seperti whisper.cpp, mendukung transkripsi dan terjemahan file audio
- Sejak v0.10.0, proyek ini menggunakan sistem build baru agar lebih mudah selaras dengan versi terbaru llama.cpp, sehingga mendukung model dan fitur yang lebih baru, meski beberapa fungsi lama yang sudah familier mungkin tidak lagi ada
- Di Windows, perlu menambahkan ekstensi
.exe sebelum dijalankan, dan karena file executable di atas 4GB tidak bisa dijalankan di Windows, pengguna perlu memakai biner llamafile terpisah dan bobot/model GGUF eksternal
Menjalankan LLM dalam satu file
- llamafile adalah proyek yang memungkinkan LLM didistribusikan dan dijalankan sebagai satu file
- Tujuannya adalah meningkatkan aksesibilitas open LLM bagi developer maupun pengguna akhir
- Menggabungkan llama.cpp dan Cosmopolitan Libc dalam satu framework
- Hasilnya adalah file executable tunggal bernama “llamafile”, yang berjalan secara lokal tanpa instalasi
- Cakupan dukungannya meliputi sebagian besar sistem operasi dan arsitektur CPU
Perombakan Mozilla.ai dan proyek terkait
- llamafile adalah proyek Mozilla Builders dan saat ini telah dirombak oleh Mozilla.ai
- Pengenalan proyek ditautkan ke announcement blog post
- Tim menerima masukan tentang hal apa yang dianggap bernilai oleh pengguna dan apa yang bisa membuatnya lebih berguna
Termasuk whisperfile
- whisperfile adalah alat speech-to-text satu file yang disertakan dalam llamafile
- Dibangun di atas packaging Cosmopolitan yang sama seperti whisper.cpp
- Mendukung transkripsi dan terjemahan file audio
- Bisa digunakan tanpa instalasi pada cakupan platform yang sama dengan llamafile
- Dokumentasinya tersedia di Whisperfile
Perubahan sistem build di v0.10.x
- Mulai 0.10.0 llamafile menggunakan sistem build baru
- Tujuan sistem build baru ini adalah menjaga agar basis kode lebih mudah diselaraskan dengan versi terbaru llama.cpp
- Perubahan ini menghadirkan dukungan untuk model dan fitur yang lebih baru
- Pada saat yang sama, beberapa fitur yang sebelumnya familier bagi pengguna mungkin sudah tidak ada
- Penjelasan tingkat tinggi tentang perubahan ini ada di README_0.10.0.md
- Pengguna yang lebih menyukai “classic experience” bisa mengakses versi sebelumnya di halaman releases
- llamafile pre-built menampilkan versi server apa yang dibundel bersamanya
Quickstart dan batasan Windows
- Model contoh yang digunakan adalah Qwen3.5 0.8B, dan README menunjukkan alur untuk mengunduh serta menjalankannya dalam beberapa menit
curl -LO https://huggingface.co/mozilla-ai/llamafile_0.10/…
chmod +x Qwen3.5-0.8B-Q8_0.llamafile
./Qwen3.5-0.8B-Q8_0.llamafile
- Model ini dipilih karena merupakan model terkecil yang dibangun proyek sebagai llamafile, sehingga kemungkinan besar bisa langsung berjalan
- Jika memiliki hardware atau GPU yang lebih kuat, pengguna bisa memilih model yang lebih besar dan lebih ekspresif, yang dapat memberikan respons lebih akurat
- Pengguna Windows harus menambahkan ekstensi
.exe ke nama file sebelum menjalankannya
- Di Windows, hanya file executable di bawah 4GB yang dapat dijalankan
Dokumentasi dan lisensi
- Dokumentasi lengkap tersedia di docs.mozilla.ai/llamafile
- Item dokumentasi utama:
- Proyek llamafile menggunakan lisensi Apache 2.0
- Perubahan terhadap llama.cpp dan whisper.cpp menggunakan lisensi MIT yang sama seperti proyek aslinya, dipilih agar kemungkinan upstream tetap terbuka di masa depan
1 komentar
Pendapat Hacker News
Tampaknya paling bagus dicoba dengan model teks+gambar seperti LLaVA. Prosedurnya untuk macOS, tetapi sepertinya akan bekerja serupa di platform lain
llamafile-server-0.1-llava-v1.5-7b-q4berukuran 4,26GB dari https://huggingface.co/jartine/llava-v1.5-7B-GGUF/blob/main/...wget https://huggingface.co/jartine/llava-v1.5-7B-GGUF/…chmod 755 llamafile-server-0.1-llava-v1.5-7b-q4./llamafile-server-0.1-llava-v1.5-7b-q4, lalu web server akan muncul di port 8080Screenshot ada di https://simonwillison.net/2023/Nov/29/llamafile/
Kalau belum pernah memakai chatgpt-web, saya merekomendasikannya. Dengan model GPT-4 baru, Anda bisa bercakap-cakap jauh lebih murah daripada ChatGPT Plus, dan masih bisa beralih ke model GPT-4 lama yang lebih tidak dibatasi dan benar-benar masih bagus untuk coding
[0]: https://github.com/Niek/chatgpt-web
llamafile-server-0.1-llava-v1.5-7b-q4pada pengujian yang dibutuhkan proyek, dan semuanya lolos, termasuk kueri vision. Secara strategis, rasanya ini akan membawa perubahan bagi cukup banyak orangUser: What is the third planet from the sun?Llama: The third planet from the sun is called Mars.Pekerjaan portabilitas Justine Tunney / jart memang hebat dan benar-benar keren, tetapi saya belum yakin dengan use case alat ini
Saya sedang membuat aplikasi macOS kecil https://www.freechat.run yang menjalankan
llama.cppdengan frontend SwiftUI. Pada versi pertama, saya terobsesi membuatnya sekali unduh lalu langsung bisa chat, dengan 0 koneksi jaringan. Menggabungkan model ke dalam aplikasi membuatnya mudah karena pengguna cukup mengunduh, membuka, lalu langsung memakai. Namun ketika saya mencoba mendistribusikan pembaruan UI ke pengguna beta TestFlight, mereka harus mengunduh 3GB lagi, dan ketiga pengguna semuanya mengeluhSetelah itu, saya memisahkan unduhan model bawaan dari UI, sehingga pembaruan aplikasi hanya sekitar 5MB. Saya rasa alat ini juga akan cukup cepat menemui masalah yang sama begitu orang ingin mendapatkan pembaruan
llama.cppterbaru. Mungkin ada kasus ketika itu tidak masalah, tetapi saya penasaran ini berguna di manahttps://justine.lol/cosmopolitan/, https://github.com/ggerganov/llama.cpp
Model sudah saya unduh dan susun rapi, siap dipakai, tetapi aplikasi-aplikasi tidak menanyakannya dan memperlakukan pengguna seperti orang bodoh dengan mengunduhnya lagi
Makeayo sekarang setidaknya lebih baik karena menanyakan lokasi model, dan harus memakai symbolic link di comfy/automatic itu menyebalkan. Cukup tanyakan lokasi file saat pertama kali dijalankan dan izinkan mengubahnya di pengaturan; itu bukan hal sulit
cosmopolitan libcbenar-benar seperti trik sulap yang keren, layak dipuji, dan mungkin punya use case nyata, tetapi untuk sebagian besar tujuan tampaknya tidak praktisKalau ada format seperti ELF yang sangat gemuk dan mendukung sebanyak mungkin arsitektur serta sistem operasi yang diinginkan, apakah kita akan memakainya? Rasanya mungkin tidak
Namun setelah memakai
zig ccbeberapa waktu, saya mulai berpikir bahwa pendekatan sekali build untuk membuat binari universal berukuran sangat besar juga bisa masuk akal. Dispatch per mikroarsitektur juga merupakan unsur yang bagus, jadi semakin dipakai, rasanya saya malah sedang meyakinkan diri sendiri akan alternatifnyaGambar apa pun yang saya unggah tampaknya tidak bisa dilihat dengan benar. Meski begitu, jawaban ini lucu
User: Describe the image in the most detailed way possibleLlama: The image is a close-up of an empty, dark room with no visible objects or people...User: is it just a black square?Llama: Yes, it is just a black square.Saat saya bertanya apakah itu kotak putih, ia mengatakan itu bukan sekadar kotak putih, melainkan tampak seperti lukisan abstrak yang juga memiliki warna abu-abu dan kuning kecokelatan
Tulisan terkait dari Simon Willison bagus: https://simonwillison.net/2023/Nov/29/llamafile/
Cara model ini berhalusinasi menarik. Saat ditunjukkan “In the Mountains” karya Albert Bierstadt (https://www.wikiart.org/en/albert-bierstadt/in-the-mountains...), ia terus bersikeras bahwa ada sapi-sapi tersebar di berbagai bagian adegan
Meski diberi tahu tidak ada sapi dan mungkin ia keliru mengira batu sebagai sapi, ia menjawab bukan begitu; baru setelah dikatakan lagi “tidak ada sapi”, ia menggambarkannya sebagai adegan tenang dengan gunung, danau, pohon, burung, dan perahu
Materi terkait: https://hacks.mozilla.org/2023/11/introducing-llamafile/ dan https://twitter.com/justinetunney/status/1729940628098969799
Alurnya berasal dari https://news.ycombinator.com/item?id=38463456 dan https://news.ycombinator.com/item?id=38464759, tetapi komentarnya digabungkan ke sini
Saya sedang mencoba menjalankan beberapa model format GGUF dari
llama.cppdengan cara seperti inigit clone https://github.com/ggerganov/llama.cppcd llama.cppmake# M2 Max - 16 GB RAMwget -P ./models https://huggingface.co/TheBloke/OpenHermes-2.5-Mistral-7B-16k-GGUF/…./server -m models/openhermes-2.5-mistral-7b-16k.Q8_0.gguf -c 16000 -ngl 32# M1 - 8 GB RAMwget -P ./models https://huggingface.co/TheBloke/OpenHermes-2.5-Mistral-7B-16k-GGUF/…./server -m models/openhermes-2.5-mistral-7b.Q4_K_M.gguf -c 2000 -ngl 32Llaminate juga sepertinya nama yang bagus untuk hal semacam ini. Bisa juga dipakai sebagai kata kerja umum untuk membungkus model yang kompatibel dengan llama menjadi paket yang langsung dapat digunakan
Keren juga bahwa meski dibangun dengan Cosmopolitan, tetap ada dukungan CUDA. Sepertinya bulan ini Cosmopolitan menambahkan sebagian dukungan dynamic linking agar GPU bisa digunakan: https://github.com/jart/cosmopolitan/commit/5e8c928f1a37349a...
Sayangnya, perlu memasang CUDA developer toolkit. Sebenarnya sangat mungkin mendistribusikan aplikasi CUDA yang bisa berjalan hanya dengan driver Nvidia tanpa dependensi tambahan; kalau bagian ini juga terselesaikan, itu akan jadi game changer
Saya suka kalimat “taruh berkasnya di USB stick dan simpan di laci, maka itu menjadi asuransi untuk menghadapi kiamat di masa depan. Anda tidak akan pernah lagi hidup tanpa model bahasa”