Kode sumber terbuka Queryable, sebuah aplikasi iOS, memanfaatkan KLIP OpenAI Model MobileCLIP Apple melakukan pencarian offline di album 'Foto'. Berbeda dengan model penelusuran berbasis kategori yang ada di aplikasi Foto iOS, Queryable memungkinkan Anda menggunakan pernyataan bahasa alami, seperti a brown dog sitting on a bench
, untuk menelusuri album Anda. Karena offline, privasi album Anda tidak akan dikompromikan oleh perusahaan mana pun, termasuk Apple atau Google.
Blog | Toko Aplikasi | Situs web | Cerita | itu
Prosesnya adalah sebagai berikut:
Untuk lebih jelasnya, silakan merujuk ke blog saya: Jalankan CLIP di iPhone untuk Mencari Foto.
[2024-09-01]: Sekarang mendukung MobileCLIP Apple.
Anda dapat mengunduh TextEncoder_mobileCLIP_s2.mlmodelc
dan ImageEncoder_mobileCLIP_s2.mlmodelc
yang diekspor dari Google Drive. Saat ini kami menggunakan model s2
sebagai model default, yang menyeimbangkan efisiensi & presisi.
Versi Android (Kode) yang dikembangkan oleh @greyovo, yang mendukung bahasa Inggris dan Cina. Lihat detailnya di #12.
Unduh TextEncoder_mobileCLIP_s2.mlmodelc
dan ImageEncoder_mobileCLIP_s2.mlmodelc
dari Google Drive. Kloning repo ini, letakkan model yang diunduh di bawah jalur CoreMLModels/
dan jalankan Xcode, itu akan berfungsi.
Jika Anda hanya ingin menjalankan Queryable, Anda dapat melewati langkah ini dan langsung menggunakan model yang diekspor dari Google Drive. Jika Anda ingin mengimplementasikan Queryable yang mendukung bahasa asli Anda, atau melakukan beberapa pekerjaan kuantisasi/akselerasi model, berikut beberapa panduannya.
Caranya adalah dengan memisahkan TextEncoder
dan ImageEncoder
pada tingkat arsitektur, lalu memuat bobot model satu per satu. Dapat dikueri menggunakan OpenAI ViT-B/32 Model MobileCLIP Apple, dan saya menulis buku catatan Jupyter untuk mendemonstrasikan cara memisahkan, memuat, dan mengekspor model CLIP Core ML OpenAI (Jika Anda ingin skrip ekspor MobileCLIP, periksa #issuecomment-2328024269). Hasil ekspor Core ML ImageEncoder memiliki tingkat kesalahan presisi tertentu, dan mungkin diperlukan parameter normalisasi yang lebih tepat.
clip-vit-base-patch32
versi HuggingFace. Hal ini telah mengurangi kesalahan presisi pada encoder gambar secara signifikan. Untuk lebih jelasnya, lihat #18. Penafian: Saya bukan insinyur iOS profesional, mohon maafkan kode Swift saya yang buruk. Anda hanya dapat fokus pada pemuatan, komputasi, penyimpanan, dan penyortiran model.
Anda dapat menerapkan Queryable ke produk Anda sendiri, tetapi saya tidak menyarankan sekadar mengubah tampilan dan mencantumkannya di App Store. Jika Anda tertarik untuk mengoptimalkan aspek tertentu (seperti #4, #5 , #6, #10, #11, #12 ), jangan ragu untuk mengirimkan PR (Pull Request).
Terima kasih atas kontribusi Anda :)
Jika Anda memiliki pertanyaan/saran, berikut beberapa metode kontak: Discord | Twitter | Reddit: r/Dapat ditanyakan.
Lisensi MIT
Hak Cipta (c) 2023 Ke Fang