Aprende sobre el modelo de generación de mallas 3D de NVIDIA, LLaMA-Mesh, incluyendo sus capacidades, limitaciones, instrucciones de configuración y ejemplos.
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:
Puedes ejecutar el modelo localmente a través de Hugging Face -el repositorio está disponible aquí.
Para aquellos de vosotros que dominéis Blender y queráis utilizar el modelo allí, está disponible como un complemento de blender.
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:
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()Con la tecnología de
También tenemos que fijar la dirección pad_token:
if tokenizer.pad_token_id isNone:
tokenizer.pad_token_id = tokenizer.eos_token_idCon la tecnología de
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,)Con la tecnología de
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.Con la tecnología de
Aquí tienes el objeto generado en la demo online:
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:
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:
Este es el aspecto de la malla generada por un modelo 4096:
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:
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:
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:
Botella de Klein generada por el modelo
Este es el aspecto de la botella Klein para los que estén interesados:
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.
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.
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.
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.
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.
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.
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.
Experimenta con Llama 3 para ejecutar la inferencia en modelos preentrenados, afinarlos en conjuntos de datos personalizados y optimizar el rendimiento.
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:
Este es el aspecto de la WebApp de demostración:
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:
También tenemos que fijar la dirección
pad_token: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):
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):
Aquí tienes el objeto generado en la demo online:
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:
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:
Este es el aspecto de la malla generada por un modelo 4096:
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:
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:
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á:
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:
Botella de Klein generada por el modelo
Este es el aspecto de la botella Klein para los que estén interesados:
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.