2 poin oleh GN⁺ 2023-11-30 | 1 komentar | Bagikan ke WhatsApp

Ringkasan proyek llamafile

  • Mengembangkan framework yang menggabungkan llama.cpp dan Cosmopolitan Libc untuk mewujudkan impian para pengembang AI agar bisa membangun dan menjalankan di mana saja
  • llamafile dapat berjalan di berbagai mikroarsitektur CPU dan arsitektur CPU, serta mendukung eksekusi kode dengan satu build di berbagai sistem operasi
  • Bobot LLM dapat disertakan di dalam llamafile sehingga bisa dijalankan cepat melalui pemetaan memori langsung

Cara menggunakan biner

  • Menyediakan contoh biner dari berbagai model yang dapat diunduh melalui Hugging Face
  • Biner command line dijalankan seperti memanggil fungsi "main" dari llama.cpp secara manual
  • Biner server menjalankan web server lokal untuk menyediakan chatbot berbasis web

Hal yang perlu diperhatikan

  • Saat menggunakan Apple Silicon di macOS, Xcode harus diinstal
  • Di Windows, nama file harus diubah menjadi llamafile.exe agar bisa dijalankan
  • Jika muncul masalah eksekusi di zsh, Python subprocess, Fish, dan lainnya, disarankan menggunakan perintah alternatif
  • Jika terjadi masalah binfmt_misc di Linux, tersedia cara penyelesaiannya

Dukungan GPU

  • Di Apple Silicon, fitur ini otomatis berfungsi jika Xcode diinstal
  • Di Linux, perlu memasang compiler dan mengatur flag untuk dukungan GPU Nvidia cuBLAS
  • Di Windows, setelah dijalankan pertama kali melalui MSVC x64 Native Command Prompt, path CUDA perlu diatur

Cara build source code

  • Menjelaskan cara membangun source code llamafile menggunakan toolchain cosmocc
  • Menyediakan contoh pembuatan kode fungsi libc dan menjalankan HTTP server

Dokumen zipalign

  • Menjelaskan cara menggunakan alat zipalign untuk menambahkan file tidak terkompresi yang disejajarkan ke dalam arsip PKZIP
  • Menawarkan eksekusi yang lebih cepat dibanding alat arsip ZIP lama serta memenuhi kebutuhan penyelarasan memori

Detail teknis

  • llamafile memanfaatkan fungsi mmap() yang menggabungkan shell script dan bobot agar dapat dieksekusi dengan cepat
  • Menyajikan solusi teknis untuk penyertaan bobot ZIP, portabilitas mikroarsitektur dan arsitektur, serta dukungan GPU

Lisensi

  • Proyek llamafile menggunakan lisensi Apache 2.0, dan perubahan pada llama.cpp mengikuti lisensi MIT

Masalah yang diketahui

  • Di Windows 64-bit, ada batas ukuran file 4GB sehingga bobot harus digunakan sebagai file terpisah

Pendapat GN⁺

Hal terpenting dalam tulisan ini adalah pendekatan inovatif proyek llamafile untuk memudahkan pengembang AI membangun dan menjalankan LLM di mana saja. Proyek ini menawarkan kompatibilitas lintas platform dan arsitektur, serta sangat meningkatkan kemudahan penggunaan dengan distribusi dalam satu file yang sudah mencakup bobot. Kemajuan teknis seperti ini berpotensi semakin mempercepat riset dan pengembangan AI, sehingga sangat menarik bagi siapa pun yang menaruh minat pada bidang ini.

1 komentar

 
GN⁺ 2023-11-30
Komentar Hacker News
  • Cara menggunakan model LLaVA

    • Cara terbaik untuk mencoba model LLaVA di macOS adalah menggunakan model yang menggabungkan teks dan gambar, mirip GPT-4 Vision.
    • Dijelaskan langkah demi langkah cara menjalankannya di macOS, dan diperkirakan akan bekerja serupa di platform lain (meski belum dicoba).
      1. Unduh file llamafile-server-0.1-llava-v1.5-7b-q4 berukuran 4.26GB dari Hugging Face
      2. Berikan izin eksekusi di terminal
      3. Jalankan file executable untuk memulai web server di port 8080
      4. Buka http://127.0.0.1:8080/ di browser untuk mengunggah gambar dan mulai berinteraksi dengan model
  • Berbagi pengalaman mengembangkan aplikasi macOS

    • Sambil mengagumi karya portabilitas luar biasa dari Justine Tunney / jart, pengembang menjalankan llama.cpp di aplikasi macOS miliknya dengan frontend SwiftUI.
    • Pada versi pertama aplikasi, fokusnya adalah satu kali unduh lalu alur chat dan tanpa koneksi jaringan.
    • Model dibundel ke dalam aplikasi sehingga bisa langsung digunakan setelah diunduh, tetapi muncul masalah karena pengguna harus mengunduh ulang 3GB setiap kali pembaruan UI dirilis.
    • Setelah keluhan pengguna, unduhan model default dipisahkan dari UI sehingga saat aplikasi diperbarui hanya sekitar 5MB yang perlu didistribusikan.
    • Diperkirakan orang yang menggunakan alat ini akan menghadapi masalah serupa saat mereka menginginkan pembaruan llama.cpp, dan muncul pertanyaan apakah ada situasi di mana masalah ini tidak terlalu penting.
  • Rekomendasi posting terkait dari Simon Willison

    • Dibagikan tautan rekomendasi ke posting terkait dari Simon Willison.
  • Berbagi tautan terkait

    • Dibagikan tautan ke pengenalan llamafile dari Mozilla dan tweet Justine Tunney.
  • Usulan nama Llaminate

    • Diusulkan nama 'Llaminate' untuk tugas umum membungkus model yang kompatibel dengan Llama sebagai blob yang siap digunakan.
  • Kekaguman terhadap dukungan CUDA menggunakan Cosmopolitan

    • Kagum bahwa Cosmopolitan bulan ini menambahkan dukungan dynamic linking untuk mengaktifkan GPU.
    • Menarik bahwa meski instalasi CUDA Developer Toolkit tetap diperlukan, ada kemungkinan mendistribusikan aplikasi CUDA tanpa dependensi tambahan selain driver Nvidia.
  • Penyebutan batas ukuran executable di Windows

    • Dibagikan pengalaman bahwa file executable 4GB berjalan baik di sistem Windows 10 64-bit.
  • Berbagi cara bereksperimen dengan berbagai model di llama.cpp

    • Dibagikan cara meng-clone llama.cpp dari GitHub, mengunduh model yang diperlukan, lalu menjalankan server beserta kodenya.
  • Menunjukkan keterbatasan binary yang hanya bekerja dengan satu model dan satu set bobot

    • Disampaikan pendapat tentang keterbatasan binary yang hanya menjalankan satu model dan satu set bobot.
  • Menyebut kecepatan Justine dalam menciptakan proyek-proyek luar biasa

    • Disebutkan bahwa Justine terus menciptakan proyek-proyek luar biasa dengan kecepatan yang menakjubkan.