Saltar al contenido principal

Malla Llama de Nvidia: Una guía con ejemplos

Aprende sobre el modelo de generación de mallas 3D de NVIDIA, LLaMA-Mesh, incluyendo sus capacidades, limitaciones, instrucciones de configuración y ejemplos.
Actualizado 16 ene 2025  · 8 min de lectura

Recientemente, NVIDIA ha lanzado un modelo innovador llamado LLaMA-Mallaque es capaz de generar mallas 3D a partir de descripciones en texto plano.

También funciona a la inversa: dada una malla 3D, el modelo puede identificar el objeto.

Se trata de un avance significativo para el aprendizaje automático, ya que comprender el espacio 3D es un paso crucial hacia la AGI. LLaMA-Mesh es también una valiosa herramienta para los profesionales y aficionados que trabajan frecuentemente con software como Blender, ya que agiliza el proceso de generación y uso de mallas 3D.

En esta breve guía, te explicaré las capacidades del modelo y pondré algunos ejemplos para ayudarte a comprender su potencial y sus limitaciones.

¿Qué es LLaMa-Mesh?

LLaMA-Mesh es un modelo innovador desarrollado por NVIDIA que amplía las capacidades de los grandes modelos lingüísticos (LLM) al dominio 3D.

A diferencia de cualquier modelo anterior, LLaMA-Mesh unifica las modalidades de texto y 3D, permitiendo a los usuarios crear mallas 3D mediante sencillas indicaciones en lenguaje natural. 

Bajo el capó, el modelo es un afinado LLaMa-3.1-8B-Instrucción. El modelo funciona codificando los datos de la malla 3D en un formato basado en texto, concretamente utilizando el estándar de archivo OBJ, que describe los vértices y las caras como texto sin formato.

Cómo acceder a LLaMa-Mesh

Hay tres formas de utilizar el modelo:

  1. Puedes ejecutar el modelo localmente a través de Hugging Face -el repositorio está disponible aquí.
  2. Para aquellos de vosotros que dominéis Blender y queráis utilizar el modelo allí, está disponible como un complemento de blender.
  3. Los autores también han creado una demostración en línea en la plataforma Hugging Face que utilizaré para generar mallas experimentales para la guía.

Este es el aspecto de la WebApp de demostración:

Nvidia Llama Mesh

La demo online admite hasta 4096 fichas, mientras que el modelo completo admite 8K. Por lo tanto, necesitamos ejecutar el modelo localmente para experimentar todas sus capacidades.

A continuación, generaré tres ejemplos de formas de dificultad creciente para probar las limitaciones del modelo. Ejecutaré los ejemplos tanto en la versión 4K como en la versión 8K del modelo para ver en qué se diferencian.

Cómo configurar LLaMa-Mesh para uso local o en la nube

Para esta guía, demostraré la ejecución del modelo utilizando el tiempo de ejecución de la GPU A100 de Google Colab. Si tienes suficiente potencia de cálculo a nivel local, el mismo código se puede adaptar para que funcione en tu hardware personal. El repositorio Cara Abrazada está disponible aquí.

Para empezar, tenemos que importar las bibliotecas necesarias y descargar el modelo y el tokenizador:

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

También tenemos que fijar la dirección pad_token:

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

Por último, tenemos que tokenizar el aviso y alimentarlo a un modelo para su inferencia (todo esto es un flujo de trabajo estándar de Huggingface que funciona con casi cualquier otro modelo):

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

Los autores no especifican los hiperparámetros que utilizan en la demostración de la aplicación web, así que, para ser justos, utilizaré los predeterminados para nuestra comparación.

Ejemplos de LLaMa-Mesh

A continuación, repasaré tres ejemplos de dificultad creciente y compararé los resultados de la aplicación de demostración con los que obtuve ejecutando el modelo en Colab.

Ejemplo 1: Una Cátedra

Empezaremos con algo sencillo pero creativo: una silla de diseño. Aquí tienes la solicitud (añado al final una petición para que la malla se genere en formato OBJ porque el modelo que se ejecuta localmente a veces se niega a generar nada de otro modo):

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

Aquí tienes el objeto generado en la demo online:

ejemplo de malla nvidia llama - visualización de malla 3D de una silla

Es sin duda una silla chula y extraña, aunque se parece más a la silla de un director de cine que a la de un diseñador.

Ahora, vamos a intentar ejecutar la consulta localmente y visualizar el resultado. Esto es lo que conseguimos:

ejemplo de malla nvidia llama - visualización de malla 3D de una silla

Visualización en malla 3D de una silla

La malla con un contexto mayor parece más detallada. Sin embargo, la silla se parece más a un sofá, en mi opinión.

Ejemplo 2: Un Torus

A continuación, probemos con un objeto geométrico: un toroide (un donut en 3D). La indicación para este ejemplo es:

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

Este es el aspecto de la malla generada por un modelo 4096:

nvidia llama mesh torus ejemplo

Torus generado por el modelo

Por otro lado, aquí tienes la visualización de la malla generada por el modelo que se ejecuta en Colab:

nvidia llama mesh torus ejemplo

Torus generado por el modelo

Como puedes ver, esta malla tiene muchos más polígonos. Sin embargo, sigue sin tener un agujero en el centro. Este es el aspecto que debe tener un toroide:

ejemplo de toroide

Fuente: Wikipedia

Ejemplo 3: Botella Klein

Por último, superemos los límites con una botella de Klein, una compleja estructura tridimensional. La indicación para ello será:

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

El modelo en línea sigue generando una malla sin cesar a partir de esta entrada, hasta que finalmente se agota y da un error.

Ejecutar la consulta localmente con una ventana contextual más grande soluciona el problema, sin embargo la malla que obtenemos no se parece en nada a una botella klein:

nvidia llama malla ejemplo de una botella klein

Botella de Klein generada por el modelo

Este es el aspecto de la botella Klein para los que estén interesados:

Ejemplo de botella Klein

Fuente: Wikipedia

De las pruebas anteriores se desprende claramente que, aunque LLaMA-Mesh (tanto en su versión en línea como local) destaca en diseños creativos y sencillos, se enfrenta a limitaciones con formas geométricas precisas y matemáticas muy complejas. A medida que evolucione el modelo, será emocionante ver cómo se amplían estas capacidades.

Conclusión

En esta guía, exploramos el nuevo modelo LLaMa-Mesh de Nvidia y realizamos algunos ejemplos en su plataforma de demostración. Aunque el modelo está en sus primeras fases, sigue siendo muy prometedor para los profesionales y aficionados que necesitan soluciones rápidas e intuitivas para generar mallas 3D.

A medida que evolucione el marco, las futuras actualizaciones pueden aportar capacidades ampliadas, como el manejo de geometrías más complejas o la compatibilidad con impresoras 3D.


Dimitri Didmanidze's photo
Author
Dimitri Didmanidze
LinkedIn
Soy Dimitri Didmanidze, un científico de datos que actualmente cursa un Máster en Matemáticas con especialización en Aprendizaje Automático. Mi trayectoria académica también ha incluido la investigación sobre las capacidades de los modelos basados en transformadores y la docencia a nivel universitario, lo que ha enriquecido mi comprensión de conceptos teóricos complejos. También he trabajado en el sector bancario, donde he aplicado estos principios para afrontar retos de datos del mundo real.
Temas

¡Aprende Llama con estos cursos!

programa

Llama Fundamentals

5 hours hr
Experiment with Llama 3 to run inference on pre-trained models, fine-tune them on custom datasets, and optimize performance.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Evaluación de un LLM: Métricas, metodologías y buenas prácticas

Aprende a evaluar grandes modelos lingüísticos (LLM) utilizando métricas clave, metodologías y mejores prácticas para tomar decisiones informadas.
Stanislav Karzhev's photo

Stanislav Karzhev

9 min

tutorial

Guía para principiantes de LlaMA-Factory WebUI: Ajuste de los LLM

Aprende a afinar los LLM en conjuntos de datos personalizados, evaluar el rendimiento y exportar y servir modelos sin problemas utilizando el marco de trabajo de bajo/ningún código de LLaMA-Factory.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Ajuste fino de LLaMA 2: Guía paso a paso para personalizar el modelo de lenguaje grande

Aprende a ajustar Llama-2 en Colab utilizando nuevas técnicas para superar las limitaciones de memoria y computación y hacer más accesibles los grandes modelos lingüísticos de código abierto.
Abid Ali Awan's photo

Abid Ali Awan

12 min

tutorial

Guía introductoria para el ajuste preciso de los LLM

El ajuste preciso de los grandes modelos lingüísticos (LLM) ha revolucionado el procesamiento del lenguaje natural (PLN) y ofrece capacidades sin precedentes en tareas como la traducción lingüística, el análisis del sentimiento y la generación de textos. Este enfoque transformador aprovecha modelos preentrenados como el GPT-2 y mejora su rendimiento en dominios específicos mediante el proceso de ajuste preciso.
Josep Ferrer's photo

Josep Ferrer

12 min

tutorial

RAG Con Llama 3.1 8B, Ollama y Langchain: Tutorial

Aprende a crear una aplicación RAG con Llama 3.1 8B utilizando Ollama y Langchain, configurando el entorno, procesando documentos, creando incrustaciones e integrando un recuperador.
Ryan Ong's photo

Ryan Ong

12 min

tutorial

Llama.cpp Tutorial: Una Guía Completa para la Inferencia e Implementación Eficiente del LLM

Esta completa guía sobre Llama.cpp te guiará a través de los aspectos esenciales de la configuración de tu entorno de desarrollo, la comprensión de sus funcionalidades básicas y el aprovechamiento de sus capacidades para resolver casos de uso del mundo real.
Zoumana Keita 's photo

Zoumana Keita

11 min

Ver másVer más