Ana içeriğe geç

Nvidia'nın Llama Mesh'i: Örneklerle Bir Rehber

NVIDIA’nın 3B ağ (mesh) üreten modeli LLaMA-Mesh hakkında; yetenekleri, sınırlamaları, kurulum talimatları ve örnekleriyle bilgi edinin.
· 8 dk. oku

Yapay Zeka ile Keşfedin

NVIDIA yakın zamanda, LLaMA-Mesh adında, düz metin açıklamalarından 3B ağlar (mesh) üretebilen yenilikçi bir model yayımladı.

Tersi yönde de çalışıyor: bir 3B ağ verildiğinde, model nesneyi tanımlayabiliyor.

Bu, makine öğrenmesi için önemli bir ilerleme çünkü 3B uzayı anlamak, AGI’ye giden yolda kritik bir adım. LLaMA-Mesh, Blender gibi yazılımlarla sık çalışan profesyoneller ve meraklılar için de değerli bir araç; 3B ağ üretme ve kullanma sürecini hızlandırıyor.

Bu kısa rehberde, modelin yeteneklerini açıklayacak ve potansiyelini ve sınırlamalarını anlamanıza yardımcı olmak için birkaç örnek çalıştıracağım.

LLaMa-Mesh Nedir?

LLaMA-Mesh, NVIDIA tarafından geliştirilen ve büyük dil modellerinin (LLM’ler) yeteneklerini 3B alana taşıyan yenilikçi bir modeldir.

Öncekilerden farklı olarak LLaMA-Mesh, metin ve 3B modaliteleri birleştirir; kullanıcıların basit doğal dil istemleriyle 3B ağlar oluşturmasına olanak tanır. 

Arka planda model, ince ayarlı bir LLaMa-3.1-8B-Instruct’tur. Model, 3B ağ verisini, köşeleri (vertex) ve yüzleri düz metin olarak tanımlayan OBJ dosya standardını kullanarak metin tabanlı bir biçimde kodlar.

LLaMa-Mesh’e Nasıl Erişilir

Modeli kullanmanın üç yolu var:

  1. Modeli Hugging Face üzerinden yerelde çalıştırabilirsiniz—depo burada mevcut.
  2. Blender’a hâkim olan ve modeli orada kullanmak isteyenler için, model bir Blender eklentisi olarak mevcut.
  3. Yazarlar ayrıca Hugging Face platformunda bir çevrimiçi demo kurdu; bu rehber için deneysel ağlar üretirken onu kullanacağım.

Demo WebApp’i şu şekilde görünüyor:

Nvidia Llama Mesh

Çevrimiçi demo 4096 tokene kadar desteklerken, tam model 8K’yı destekliyor. Bu nedenle, modelin tüm yeteneklerini görmek için onu yerelde çalıştırmamız gerekiyor.

Sırada, modelin sınırlarını test etmek için zorluk seviyesi artan üç şekil örneği üreteceğim. Farklarını görmek için örnekleri modelin hem 4K hem de 8K token sürümlerinde çalıştıracağım.

LLaMa-Mesh Yerel veya Bulut Ortamında Nasıl Kurulur

Bu rehberde, modeli Google Colab’in A100 GPU çalışma zamanı ile çalıştırmayı göstereceğim. Yerelde yeterli hesaplama gücünüz varsa, aynı kod kişisel donanımınızda da çalışacak şekilde uyarlanabilir. Hugging Face deposu burada mevcut.

Başlamak için gerekli kütüphaneleri içe aktarmamız ve modeli ile ayrıştırıcıyı (tokenizer) indirmemiz gerekiyor:

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()

Ayrıca pad_token’ı ayarlamamız gerekiyor:

if tokenizer.pad_token_id is None:
    tokenizer.pad_token_id = tokenizer.eos_token_id

Son olarak, istemi ayrıştırıp çıkarım için modele vermemiz gerekiyor (tüm bunlar, neredeyse her modelle çalışan standart Hugging Face iş akışıdır):

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,
)

Yazarlar web uygulaması demosunda kullandıkları hiperparametreleri belirtmiyor; adil olmak adına, karşılaştırmamız için varsayılanları kullanacağım.

LLaMa-Mesh Örnekleri

Şimdi zorluk seviyesi artan üç örnek üzerinden gidecek ve demo uygulamasının çıktısını Colab’de modeli çalıştırarak elde ettiğim çıktı ile karşılaştıracağım.

Örnek 1: Bir Sandalye

Basit ama yaratıcı bir şeyle—tasarımcı sandalyesiyle—başlayalım. İstem şu şekilde (yerelde çalışan model bazen aksi halde hiçbir şey üretmeyi reddettiği için, sonuna ağın OBJ formatında üretilmesini istediğimi ekliyorum):

Create a 3D model of an original designer chair in OBJ format.

Çevrimiçi demoda üretilen nesne şu şekilde:

nvidia llama mesh example - 3D mesh visualization of a chair

Kesinlikle havalı ve biraz tuhaf bir sandalye; ancak bir tasarımcı sandalyesinden çok film yönetmeni sandalyesine benziyor.

Şimdi, istemi yerelde çalıştırıp sonucu görselleştirelim. Elde ettiğimiz şey şu:

nvidia llama mesh example - 3D mesh visualization of a chair

Bir sandalyenin 3B ağ görselleştirmesi

Daha büyük bağlama sahip ağ daha detaylı görünüyor. Ancak bana kalırsa sandalye daha çok bir kanepeye benziyor.

Örnek 2: Bir Torus

Sırada geometrik bir nesne var: torus (3B simit). Bu örnek için istem:

Create a 3D model of a torus in OBJ format.

4096’lık modelin ürettiği ağ şu şekilde görünüyor:

nvidia llama mesh torus example

Model tarafından üretilen torus

Öte yandan, Colab’de çalışan modelin ürettiği ağın görselleştirmesi de şöyle:

nvidia llama mesh torus example

Model tarafından üretilen torus

Gördüğünüz gibi, bu ağ çok daha fazla poligona sahip. Ancak hâlâ ortasında bir delik yok. Bir torus şu şekilde görünmeli:

example of a torus

Kaynak: Vikipedi

Örnek 3: Klein Şişesi

Son olarak, karmaşık bir 3B yapı olan Klein şişesiyle sınırları zorlayalım. İstem şöyle olacak:

Create a 3D model of a Klein bottle in OBJ format.

Çevrimiçi model, bu girdi verildiğinde ağı sonsuza dek üretmeye devam ediyor; sonunda zaman aşımına uğrayıp hata veriyor.

İstemi daha büyük bir bağlam penceresiyle yerelde çalıştırmak sorunu gideriyor; ancak elde ettiğimiz ağ, Klein şişesine hiç benzemiyor:

nvidia llama mesh example of a klein bottle

Model tarafından üretilen Klein şişesi

Merak edenler için Klein şişesi şu şekilde görünür:

Klein bottle example

Kaynak: Vikipedi

Yukarıdaki testlerden, LLaMA-Mesh’in (hem çevrimiçi hem de yerel sürümlerinin) yaratıcı ve basit tasarımlarda başarılı olsa da, hassas geometrik ve çok karmaşık matematiksel şekillerde sınırlamalarla karşılaştığı açıkça görülüyor. Model geliştikçe bu yeteneklerin nasıl genişlediğini görmek heyecan verici olacak.

Sonuç

Bu rehberde, yeni Nvidia LLaMa-Mesh modelini inceledik ve demo platformlarında birkaç örnek yaptık. Model erken aşamalarında olsa da, 3B ağ üretimi için hızlı ve sezgisel çözümlere ihtiyaç duyan profesyoneller ve meraklılar için büyük bir potansiyel gösteriyor.

Çerçeve geliştikçe, gelecekteki güncellemeler daha karmaşık geometrileri işleme veya 3B yazıcılarla uyumlu olma gibi genişletilmiş yetenekler getirebilir.

Dimitri Didmanidze

Yazar

Dimitri Didmanidze

Ben Dimitri Didmanidze. Makine Öğrenmesi odaklı Matematik yüksek lisansı yapıyorum. Akademik yolculuğum, dönüştürücü tabanlı modellerin yetenekleri üzerine araştırmaları ve üniversite düzeyinde ders vermeyi de kapsadı; bu deneyimler, karmaşık kuramsal kavrayışımı güçlendirdi. Ayrıca bankacılık sektöründe çalışarak bu ilkeleri gerçek dünyadaki veri sorunlarını çözmek için uyguladım.

Konular

İlgili