Baru-baru ini, NVIDIA merilis model inovatif bernama LLaMA-Mesh, yang mampu menghasilkan mesh 3D dari deskripsi teks biasa.
Model ini juga bekerja sebaliknya: diberi sebuah mesh 3D, model dapat mengidentifikasi objeknya.
Ini merupakan kemajuan penting bagi machine learning, karena pemahaman ruang 3D adalah langkah krusial menuju AGI. LLaMA-Mesh juga menjadi alat berharga bagi profesional dan penggemar yang sering bekerja dengan perangkat lunak seperti Blender, sehingga proses membuat dan menggunakan mesh 3D menjadi lebih cepat.
Dalam panduan singkat ini, saya akan menjelaskan kemampuan model dan menjalankan beberapa contoh untuk membantu Anda memahami potensi serta keterbatasannya.
Apa Itu LLaMa-Mesh?
LLaMA-Mesh adalah model inovatif yang dikembangkan NVIDIA dan memperluas kemampuan large language models (LLM) ke ranah 3D.
Berbeda dari model sebelumnya, LLaMA-Mesh memadukan modalitas teks dan 3D, memungkinkan pengguna membuat mesh 3D melalui prompt bahasa alami yang sederhana.
Di balik layar, model ini adalah LLaMa-3.1-8B-Instruct yang di-fine-tune. Model bekerja dengan mengodekan data mesh 3D dalam format berbasis teks, khususnya menggunakan standar file OBJ, yang mendeskripsikan vertex dan face sebagai teks biasa.
Cara Mengakses LLaMa-Mesh
Ada tiga cara untuk menggunakan model ini:
Anda dapat menjalankan model secara lokal melalui Hugging Face—repositori tersedia di sini.
Bagi Anda yang mahir menggunakan Blender dan ingin memakainya di sana, model ini tersedia sebagai addon Blender.
Para penulis juga menyiapkan sebuah demo online di platform Hugging Face yang akan saya gunakan untuk membuat mesh eksperimental dalam panduan ini.
Seperti inilah tampilan WebApp demo tersebut:
Demo online mendukung hingga 4096 token, sedangkan model penuh mendukung 8K. Oleh karena itu, kita perlu menjalankan model secara lokal untuk merasakan seluruh kemampuannya.
Selanjutnya, saya akan membuat tiga contoh bentuk dengan tingkat kesulitan meningkat untuk menguji keterbatasan model. Saya akan menjalankan contoh pada versi model 4K dan 8K token untuk melihat perbedaannya.
Cara Menyiapkan LLaMa-Mesh untuk Penggunaan Lokal atau Berbasis Cloud
Untuk panduan ini, saya akan mendemonstrasikan menjalankan model menggunakan runtime GPU A100 milik Google Colab. Jika Anda memiliki daya komputasi yang cukup secara lokal, kode yang sama dapat diadaptasi untuk dijalankan pada perangkat keras pribadi Anda. Repositori Hugging Face tersedia di sini.
Untuk memulai, kita perlu mengimpor pustaka yang diperlukan dan mengunduh model serta tokenizer:
from transformers import AutoModelForCausalLM, AutoTokenizer
model_path ="Zhengyi/LLaMA-Mesh"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map="auto").cuda()Didukung oleh
Kita juga perlu menetapkan pad_token:
if tokenizer.pad_token_id isNone:
tokenizer.pad_token_id = tokenizer.eos_token_idDidukung oleh
Terakhir, kita perlu melakukan tokenisasi pada prompt dan memberikannya ke model untuk inferensi (semua ini adalah alur kerja standar Hugging Face yang berfungsi dengan hampir semua model lain):
prompt ="Create a 3D model of an original designer chair."
inputs = tokenizer(prompt, return_tensors="pt", padding=True)
input_ids = inputs.input_ids.cuda()
output = model.generate(
input_ids,
attention_mask=inputs['attention_mask'],# Provide the attention_mask
max_length=8000,)Didukung oleh
Para penulis tidak merinci hiperparameter yang mereka gunakan pada demo web app, jadi agar adil, saya akan menggunakan nilai bawaan untuk perbandingan kita.
Contoh LLaMa-Mesh
Sekarang saya akan membahas tiga contoh dengan tingkat kesulitan meningkat dan membandingkan keluaran dari aplikasi demo dengan keluaran yang saya peroleh saat menjalankan model di Colab.
Contoh 1: Sebuah Kursi
Kita mulai dengan sesuatu yang sederhana namun kreatif—sebuah kursi desainer. Berikut prompt-nya (saya menambahkan permintaan agar mesh dihasilkan dalam format OBJ di akhir karena model yang dijalankan secara lokal terkadang menolak menghasilkan apa pun jika tidak demikian):
Create a 3D model of an original designer chair in OBJ format.Didukung oleh
Berikut objek yang dihasilkan pada demo online:
Kursinya jelas keren dan unik, meski lebih mirip kursi sutradara film daripada kursi desainer.
Sekarang, mari jalankan prompt tersebut secara lokal dan memvisualisasikan hasilnya. Inilah yang kita dapatkan:
Visualisasi mesh 3D dari sebuah kursi
Mesh dengan konteks yang lebih besar tampak lebih detail. Namun, menurut saya kursinya lebih mirip sofa.
Contoh 2: Torus
Selanjutnya, mari coba objek geometri: torus (donat 3D). Prompt untuk contoh ini adalah:
Create a 3D model of a torus in OBJ format.Didukung oleh
Berikut tampilan mesh yang dihasilkan oleh model 4096:
Torus yang dihasilkan oleh model
Di sisi lain, berikut visualisasi mesh yang dihasilkan oleh model yang berjalan di Colab:
Torus yang dihasilkan oleh model
Seperti yang terlihat, mesh ini memiliki lebih banyak poligon. Namun, tetap tidak memiliki lubang di tengah. Inilah seharusnya bentuk sebuah torus:
Terakhir, mari dorong batasnya dengan botol Klein—struktur 3D yang kompleks. Prompt untuk ini adalah:
Create a 3D model of a Klein bottle in OBJ format.Didukung oleh
Model online terus menghasilkan mesh tanpa henti untuk masukan ini, hingga akhirnya waktu habis dengan sendirinya dan menampilkan kesalahan.
Menjalankan prompt secara lokal dengan jendela konteks yang lebih besar memperbaiki masalah tersebut, namun mesh yang kita dapatkan sama sekali tidak terlihat seperti botol Klein:
Dari pengujian di atas, jelas bahwa meskipun LLaMA-Mesh (versi online maupun lokal) unggul dalam desain yang kreatif dan sederhana, ia menghadapi keterbatasan pada bentuk geometri yang presisi dan bentuk matematis yang sangat kompleks. Seiring perkembangan model, akan menarik melihat bagaimana kemampuannya meluas.
Kesimpulan
Dalam panduan ini, kita menelusuri model baru Nvidia LLaMa-Mesh dan mencoba beberapa contoh di platform demo mereka. Walau model ini masih pada tahap awal, tetap menunjukkan potensi besar bagi profesional dan penggemar yang membutuhkan solusi cepat dan intuitif untuk menghasilkan mesh 3D.
Seiring kerangka kerjanya berkembang, pembaruan di masa depan mungkin menghadirkan kemampuan yang lebih luas, seperti menangani geometri yang lebih kompleks atau kompatibel dengan printer 3D.
Saya Dimitri Didmanidze, seorang ilmuwan data yang saat ini menempuh pendidikan Magister Matematika dengan fokus pada Machine Learning. Perjalanan akademis saya juga mencakup riset tentang kapabilitas model berbasis transformer dan mengajar di tingkat universitas, yang memperkaya pemahaman saya tentang konsep teoretis yang kompleks. Saya juga pernah bekerja di industri perbankan, di mana saya menerapkan prinsip-prinsip ini untuk mengatasi tantangan data di dunia nyata.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
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.
Coba gunakan Llama 3 untuk menjalankan inferensi pada model yang telah dilatih sebelumnya, menyesuaikan model tersebut pada dataset kustom, dan mengoptimalkan kinerjanya.
Baru-baru ini, NVIDIA merilis model inovatif bernama LLaMA-Mesh, yang mampu menghasilkan mesh 3D dari deskripsi teks biasa.
Model ini juga bekerja sebaliknya: diberi sebuah mesh 3D, model dapat mengidentifikasi objeknya.
Ini merupakan kemajuan penting bagi machine learning, karena pemahaman ruang 3D adalah langkah krusial menuju AGI. LLaMA-Mesh juga menjadi alat berharga bagi profesional dan penggemar yang sering bekerja dengan perangkat lunak seperti Blender, sehingga proses membuat dan menggunakan mesh 3D menjadi lebih cepat.
Dalam panduan singkat ini, saya akan menjelaskan kemampuan model dan menjalankan beberapa contoh untuk membantu Anda memahami potensi serta keterbatasannya.
Apa Itu LLaMa-Mesh?
LLaMA-Mesh adalah model inovatif yang dikembangkan NVIDIA dan memperluas kemampuan large language models (LLM) ke ranah 3D.
Berbeda dari model sebelumnya, LLaMA-Mesh memadukan modalitas teks dan 3D, memungkinkan pengguna membuat mesh 3D melalui prompt bahasa alami yang sederhana.
Di balik layar, model ini adalah LLaMa-3.1-8B-Instruct yang di-fine-tune. Model bekerja dengan mengodekan data mesh 3D dalam format berbasis teks, khususnya menggunakan standar file OBJ, yang mendeskripsikan vertex dan face sebagai teks biasa.
Cara Mengakses LLaMa-Mesh
Ada tiga cara untuk menggunakan model ini:
Seperti inilah tampilan WebApp demo tersebut:
Demo online mendukung hingga 4096 token, sedangkan model penuh mendukung 8K. Oleh karena itu, kita perlu menjalankan model secara lokal untuk merasakan seluruh kemampuannya.
Selanjutnya, saya akan membuat tiga contoh bentuk dengan tingkat kesulitan meningkat untuk menguji keterbatasan model. Saya akan menjalankan contoh pada versi model 4K dan 8K token untuk melihat perbedaannya.
Cara Menyiapkan LLaMa-Mesh untuk Penggunaan Lokal atau Berbasis Cloud
Untuk panduan ini, saya akan mendemonstrasikan menjalankan model menggunakan runtime GPU A100 milik Google Colab. Jika Anda memiliki daya komputasi yang cukup secara lokal, kode yang sama dapat diadaptasi untuk dijalankan pada perangkat keras pribadi Anda. Repositori Hugging Face tersedia di sini.
Untuk memulai, kita perlu mengimpor pustaka yang diperlukan dan mengunduh model serta tokenizer:
Kita juga perlu menetapkan
pad_token:Terakhir, kita perlu melakukan tokenisasi pada prompt dan memberikannya ke model untuk inferensi (semua ini adalah alur kerja standar Hugging Face yang berfungsi dengan hampir semua model lain):
Para penulis tidak merinci hiperparameter yang mereka gunakan pada demo web app, jadi agar adil, saya akan menggunakan nilai bawaan untuk perbandingan kita.
Contoh LLaMa-Mesh
Sekarang saya akan membahas tiga contoh dengan tingkat kesulitan meningkat dan membandingkan keluaran dari aplikasi demo dengan keluaran yang saya peroleh saat menjalankan model di Colab.
Contoh 1: Sebuah Kursi
Kita mulai dengan sesuatu yang sederhana namun kreatif—sebuah kursi desainer. Berikut prompt-nya (saya menambahkan permintaan agar mesh dihasilkan dalam format OBJ di akhir karena model yang dijalankan secara lokal terkadang menolak menghasilkan apa pun jika tidak demikian):
Berikut objek yang dihasilkan pada demo online:
Kursinya jelas keren dan unik, meski lebih mirip kursi sutradara film daripada kursi desainer.
Sekarang, mari jalankan prompt tersebut secara lokal dan memvisualisasikan hasilnya. Inilah yang kita dapatkan:
Visualisasi mesh 3D dari sebuah kursi
Mesh dengan konteks yang lebih besar tampak lebih detail. Namun, menurut saya kursinya lebih mirip sofa.
Contoh 2: Torus
Selanjutnya, mari coba objek geometri: torus (donat 3D). Prompt untuk contoh ini adalah:
Berikut tampilan mesh yang dihasilkan oleh model 4096:
Torus yang dihasilkan oleh model
Di sisi lain, berikut visualisasi mesh yang dihasilkan oleh model yang berjalan di Colab:
Torus yang dihasilkan oleh model
Seperti yang terlihat, mesh ini memiliki lebih banyak poligon. Namun, tetap tidak memiliki lubang di tengah. Inilah seharusnya bentuk sebuah torus:
Sumber: Wikipedia
Contoh 3: Botol Klein
Terakhir, mari dorong batasnya dengan botol Klein—struktur 3D yang kompleks. Prompt untuk ini adalah:
Model online terus menghasilkan mesh tanpa henti untuk masukan ini, hingga akhirnya waktu habis dengan sendirinya dan menampilkan kesalahan.
Menjalankan prompt secara lokal dengan jendela konteks yang lebih besar memperbaiki masalah tersebut, namun mesh yang kita dapatkan sama sekali tidak terlihat seperti botol Klein:
Botol Klein yang dihasilkan oleh model
Berikut tampilan botol Klein bagi yang berminat:
Sumber: Wikipedia
Dari pengujian di atas, jelas bahwa meskipun LLaMA-Mesh (versi online maupun lokal) unggul dalam desain yang kreatif dan sederhana, ia menghadapi keterbatasan pada bentuk geometri yang presisi dan bentuk matematis yang sangat kompleks. Seiring perkembangan model, akan menarik melihat bagaimana kemampuannya meluas.
Kesimpulan
Dalam panduan ini, kita menelusuri model baru Nvidia LLaMa-Mesh dan mencoba beberapa contoh di platform demo mereka. Walau model ini masih pada tahap awal, tetap menunjukkan potensi besar bagi profesional dan penggemar yang membutuhkan solusi cepat dan intuitif untuk menghasilkan mesh 3D.
Seiring kerangka kerjanya berkembang, pembaruan di masa depan mungkin menghadirkan kemampuan yang lebih luas, seperti menangani geometri yang lebih kompleks atau kompatibel dengan printer 3D.