Google DeepMind acaba de lanzar Gemma 3, la siguiente iteración de sus modelos de código abierto. Gemma 3 está diseñado para funcionar directamente en dispositivos de bajos recursos, como teléfonos y ordenadores portátiles. Estos modelos están optimizados para un rendimiento rápido en una sola GPU o TPU y vienen en varios tamaños para adaptarse a las diferentes necesidades de hardware.
En este tutorial, te explicaré paso a paso cómo configurar y ejecutar Gemma 3 localmente utilizando Ollama. Una vez hecho esto, te mostraré cómo puedes utilizar Gemma 3 y Python para construir un asistente de archivos.
¿Por qué dirigir Gemma 3 localmente?
Ejecutar localmente un gran modelo lingüístico (LLM) como Gemma 3 tiene varias ventajas clave:
Privacidad: Los datos permanecen en el dispositivo, protegiendo la información sensible.
Baja latencia: Elimina la necesidad de transmisión por Internet, lo que da lugar a respuestas más rápidas.
Personalización: Los modelos pueden ajustarse a necesidades y experimentos específicos.
Rentabilidad: Reduce las tarifas de uso de la nube utilizando el hardware existente.
Acceso sin conexión: Las aplicaciones siguen funcionando sin conexión a Internet.
Control: Mayor seguridad y control de nuestro entorno informático.
Configura Gemma 3 localmente con Ollama
Instalación de Ollama
Ollama es una plataforma disponible para Windows, Mac y Linux que permite ejecutar y distribuir modelos de IA, facilitando a los desarrolladores la integración de estos modelos en sus proyectos. Lo utilizaremos para descargar y ejecutar Gemma 3 localmente.
Si obtienes el siguiente error al ejecutar el comando, probablemente significa que Ollama ya se está ejecutando:
Error: listen tcp 127.0.0.1:11434: bind: address already in useCon la tecnología de
Este error puede producirse cuando Ollama sigue ejecutándose en segundo plano.
Utilizar Gemma 3 localmente con Python
Configurar el entorno Python
Ollama ofrece un paquete Python para conectar fácilmente con los modelos que se ejecutan en nuestro ordenador.
Utilizaremos Anaconda para configurar un entorno Python y añadir las dependencias necesarias. Hacerlo así ayuda a evitar posibles problemas con otros paquetes de Python que ya tengamos.
Una vez instalado Anaconda, podemos configurar el entorno utilizando el comando
Este comando configura un entorno llamado gemma3-demo utilizando la versión de Python 3.9. La opción -y hace que todas las preguntas durante la configuración se respondan automáticamente con un sí.
He aquí cómo podemos enviar un mensaje a Gemma 3 utilizando Python:
from ollama import chat
response = chat(
model="gemma3",
messages=[{"role":"user","content":"Why is the sky blue?",},],)print(response.message.content)Con la tecnología de
Dependiendo de tu hardware, el modelo puede tardar un poco en responder, así que ten paciencia al ejecutar el script.
Anteriormente vimos que gemma3 se refiere por defecto a gemma3:4b. Así que cuando especifiquemos model="gemma3" como modelo, ése será el que se utilizará.
Para utilizar otro modelo -por ejemplo, el modelo 1B- debemos pasar el argumento model=”gemma3:1b” en su lugar (siempre que lo hayamos extraído previamente mediante el comando ollama pull gemma3:1b ). Para listar los modelos disponibles, podemos utilizar el comando ollama list.
Si queremos transmitir la respuesta palabra por palabra, podemos utilizar stream=True e imprimir la respuesta trozo por trozo:
from ollama import chat
stream = chat(
model="gemma3",
messages=[{"role":"user","content":"Why is the sky blue?"}],
stream=True,)for chunk in stream:print(chunk["message"]["content"], end="", flush=True)Con la tecnología de
Esto proporciona una mejor experiencia al usuario, ya que no tiene que esperar a que se genere la respuesta completa.
Para saber más sobre el paquete ollama, consulta su documentación.
Construir un Asistente de Archivos con Gemma 3
En esta sección, aprenderemos a construir un script en Python que nos permita hacer preguntas sobre el contenido de un archivo de texto directamente desde el terminal. Este script será útil para tareas como comprobar si hay errores en un archivo de código o consultar información de cualquier documento.
Resumen del guión
Nuestro objetivo es crear una herramienta de línea de comandos utilizando Python que lea un archivo de texto y utilice Gemma 3 para responder a preguntas relacionadas con su contenido. Aquí tienes la guía paso a paso para conseguirlo:
Configurar la estructura del script
En primer lugar, tenemos que configurar el script de Python con las importaciones necesarias y la estructura básica:
import sys
from ollama import chat
defask_questions_from_file(file_path):# Read the content of the text filewithopen(file_path,"r")asfile:
content =file.read()# Loop to keep asking questionswhileTrue:
question =input("> ")print()if question.lower()=="exit":break# Use Gemma 3 to get answers
stream = chat(
model="gemma3",
messages=[{"role":"user","content": content},{"role":"user","content": question},],
stream=True,)for chunk in stream:print(chunk["message"]["content"], end="", flush=True)if __name__ =="__main__":iflen(sys.argv)!=2:print("Usage: python ask_file.py <path_to_text_file>")else:
file_path = sys.argv[1]
ask_questions_from_file(file_path)Con la tecnología de
La funcionalidad principal está encapsulada en la función ask_questions_from_file(). Esta función toma una ruta de archivo como argumento y comienza abriendo y leyendo el contenido del archivo de texto especificado. Este contenido se utilizará como información de base para responder a las preguntas.
Una vez cargado el contenido del archivo, el script entra en un bucle en el que nos pide continuamente que introduzcamos preguntas. Cuando escribimos una pregunta, el script envía el contenido del archivo junto con nuestra pregunta al modelo Gemma 3, que procesa esta información para generar una respuesta.
La interacción con el modelo tiene lugar mediante un mecanismo de streaming, que permite mostrar las respuestas en tiempo real a medida que se generan. Si escribimos exit, el bucle se rompe y el script deja de ejecutarse.
Al final del script, hay una comprobación para asegurar que el script se ejecuta correctamente con un argumento de la línea de comandos, que debe ser la ruta al archivo de texto. Si no se proporciona el argumento, muestra un mensaje de uso para orientarnos sobre la forma correcta de ejecutar el script. Esta configuración nos permite dirigir el script eficazmente desde la línea de comandos.
Ejecutar el script
Guarda el código anterior en un archivo llamado, por ejemplo, ask.py. Para probar el script, ejecuta el comando
Esto ejecutará el script para que se haga preguntas sobre sí mismo (por eso ask.py aparece dos veces en el comando anterior). Aquí tienes un ejemplo de cómo pedirle que te explique cómo funciona el guión:
Conclusión
Hemos configurado con éxito y aprendido a ejecutar Gemma 3 localmente utilizando Ollama y Python. Este enfoque garantiza la privacidad de nuestros datos, ofrece una baja latencia, proporciona opciones de personalización y puede suponer un ahorro de costes. Los pasos que hemos seguido no se limitan a Gemma 3, también pueden aplicarse a otros modelos alojados en Ollama.
Si queremos mejorar la funcionalidad de nuestro script, podríamos, por ejemplo, ampliar sus capacidades para manejar PDFs. La mejor manera de hacerlo sería utilizar el Mistral OCR API. Podemos convertir archivos PDF en texto, lo que permite a nuestro script responder a preguntas sobre PDF, haciéndolo aún más versátil y potente.
Con estas herramientas, ahora estamos equipados para explorar e interactuar con grandes modelos desde nuestros propios dispositivos.
Preguntas frecuentes
¿Cuáles son los requisitos de hardware para ejecutar Gemma 3 localmente?⌄
La capacidad de ejecutar Gemma 3 localmente depende del tamaño específico del modelo que elijas descargar. Los modelos más pequeños, como gemma3:1b, están diseñados para ser eficientes y pueden funcionar en dispositivos menos potentes, como portátiles con una sola GPU o incluso algunas tabletas de gran potencia. Los modelos más grandes, como gemma3:27b, requieren más recursos informáticos, como una estación de trabajo multinúcleo con una GPU de gama alta. Comprueba siempre las especificaciones de tu dispositivo con los requisitos de recursos del modelo para asegurar la compatibilidad.
¿Puedo ejecutar varias instancias de Gemma 3 simultáneamente?⌄
Sí, puedes ejecutar varias instancias de Gemma 3 simultáneamente, siempre que tus recursos de hardware (CPU, GPU y memoria) sean suficientes para soportar la carga computacional adicional. Cada instancia del modelo que se ejecute en segundo plano consumirá recursos adicionales del sistema, así que asegúrate de que tu sistema puede manejar los múltiples procesos sin una degradación significativa del rendimiento.
¿Es necesario utilizar Anaconda para configurar un entorno Python?⌄
Aunque Anaconda es muy recomendable por su facilidad para crear entornos aislados, gestionar dependencias y evitar conflictos con otros paquetes de Python, no es estrictamente necesario. También puedes utilizar otras herramientas de entorno virtual como venv o virtualenv.
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.
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.
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.
Explore GPT-3.5 Turbo y descubra el potencial transformador del ajuste fino. Aprenda a personalizar este modelo de lenguaje avanzado para aplicaciones especializadas, mejore su rendimiento y comprenda los costes asociados, la seguridad y las consideraciones de privacidad.
Google DeepMind acaba de lanzar Gemma 3, la siguiente iteración de sus modelos de código abierto. Gemma 3 está diseñado para funcionar directamente en dispositivos de bajos recursos, como teléfonos y ordenadores portátiles. Estos modelos están optimizados para un rendimiento rápido en una sola GPU o TPU y vienen en varios tamaños para adaptarse a las diferentes necesidades de hardware.
En este tutorial, te explicaré paso a paso cómo configurar y ejecutar Gemma 3 localmente utilizando Ollama. Una vez hecho esto, te mostraré cómo puedes utilizar Gemma 3 y Python para construir un asistente de archivos.
¿Por qué dirigir Gemma 3 localmente?
Ejecutar localmente un gran modelo lingüístico (LLM) como Gemma 3 tiene varias ventajas clave:
Configura Gemma 3 localmente con Ollama
Instalación de Ollama
Ollama es una plataforma disponible para Windows, Mac y Linux que permite ejecutar y distribuir modelos de IA, facilitando a los desarrolladores la integración de estos modelos en sus proyectos. Lo utilizaremos para descargar y ejecutar Gemma 3 localmente.
El primer paso es descargarlo e instalarlo desde la web oficial de Ollama.
Al instalarlo, asegúrate de instalar la línea de comandos:
Tras completar la instalación, podemos comprobar que se ha instalado correctamente utilizando el comando
ollamaen el terminal. Éste es el resultado:Descargar Gemma 3
Para descargar un modelo con Ollama, utiliza el comando
pull:La lista de modelos disponibles se encuentra en Biblioteca de Ollama.
Gemma 3, en concreto, dispone de cuatro modelos:
1b,4b,12b, y27b, dondebsignifica mil millones, en referencia al número de parámetros del modelo.Por ejemplo, para descargar
gemma3con los parámetros1b, utilizamos el comando:Si no especificamos la versión del modelo, se descargará por defecto el modelo
4b:Listado de modelos locales
Podemos listar los modelos que tenemos localmente utilizando el siguiente comando:
En mi caso, la salida muestra que tengo dos modelos:
Chatear en el terminal
Podemos utilizar Ollama para chatear con una modelo utilizando el comando
run:Ten en cuenta que si utilizamos el comando
runcon un modelo que no hemos descargado, se descargará automáticamente mediantepull.Ejecutando Gemma 3 en segundo plano
Para utilizar Gemma 3 con Python necesitamos ejecutarlo en segundo plano. Podemos hacerlo utilizando el comando
serve:Si obtienes el siguiente error al ejecutar el comando, probablemente significa que Ollama ya se está ejecutando:
Este error puede producirse cuando Ollama sigue ejecutándose en segundo plano.
Utilizar Gemma 3 localmente con Python
Configurar el entorno Python
Ollama ofrece un paquete Python para conectar fácilmente con los modelos que se ejecutan en nuestro ordenador.
Utilizaremos Anaconda para configurar un entorno Python y añadir las dependencias necesarias. Hacerlo así ayuda a evitar posibles problemas con otros paquetes de Python que ya tengamos.
Una vez instalado Anaconda, podemos configurar el entorno utilizando el comando
Este comando configura un entorno llamado
gemma3-demoutilizando la versión de Python3.9. La opción-yhace que todas las preguntas durante la configuración se respondan automáticamente con un sí.A continuación, activamos el entorno utilizando:
Por último, instalamos el paquete
ollamamediante el comandoEnviar un mensaje a Gemma 3 con Python
He aquí cómo podemos enviar un mensaje a Gemma 3 utilizando Python:
Dependiendo de tu hardware, el modelo puede tardar un poco en responder, así que ten paciencia al ejecutar el script.
Anteriormente vimos que
gemma3se refiere por defecto agemma3:4b. Así que cuando especifiquemosmodel="gemma3"como modelo, ése será el que se utilizará.Para utilizar otro modelo -por ejemplo, el modelo 1B- debemos pasar el argumento
model=”gemma3:1b”en su lugar (siempre que lo hayamos extraído previamente mediante el comandoollama pull gemma3:1b). Para listar los modelos disponibles, podemos utilizar el comandoollama list.Si queremos transmitir la respuesta palabra por palabra, podemos utilizar
stream=Truee imprimir la respuesta trozo por trozo:Esto proporciona una mejor experiencia al usuario, ya que no tiene que esperar a que se genere la respuesta completa.
Para saber más sobre el paquete
ollama, consulta su documentación.Construir un Asistente de Archivos con Gemma 3
En esta sección, aprenderemos a construir un script en Python que nos permita hacer preguntas sobre el contenido de un archivo de texto directamente desde el terminal. Este script será útil para tareas como comprobar si hay errores en un archivo de código o consultar información de cualquier documento.
Resumen del guión
Nuestro objetivo es crear una herramienta de línea de comandos utilizando Python que lea un archivo de texto y utilice Gemma 3 para responder a preguntas relacionadas con su contenido. Aquí tienes la guía paso a paso para conseguirlo:
Configurar la estructura del script
En primer lugar, tenemos que configurar el script de Python con las importaciones necesarias y la estructura básica:
La funcionalidad principal está encapsulada en la función
ask_questions_from_file(). Esta función toma una ruta de archivo como argumento y comienza abriendo y leyendo el contenido del archivo de texto especificado. Este contenido se utilizará como información de base para responder a las preguntas.Una vez cargado el contenido del archivo, el script entra en un bucle en el que nos pide continuamente que introduzcamos preguntas. Cuando escribimos una pregunta, el script envía el contenido del archivo junto con nuestra pregunta al modelo Gemma 3, que procesa esta información para generar una respuesta.
La interacción con el modelo tiene lugar mediante un mecanismo de streaming, que permite mostrar las respuestas en tiempo real a medida que se generan. Si escribimos
exit, el bucle se rompe y el script deja de ejecutarse.Al final del script, hay una comprobación para asegurar que el script se ejecuta correctamente con un argumento de la línea de comandos, que debe ser la ruta al archivo de texto. Si no se proporciona el argumento, muestra un mensaje de uso para orientarnos sobre la forma correcta de ejecutar el script. Esta configuración nos permite dirigir el script eficazmente desde la línea de comandos.
Ejecutar el script
Guarda el código anterior en un archivo llamado, por ejemplo,
ask.py. Para probar el script, ejecuta el comandoEsto ejecutará el script para que se haga preguntas sobre sí mismo (por eso
ask.pyaparece dos veces en el comando anterior). Aquí tienes un ejemplo de cómo pedirle que te explique cómo funciona el guión:Conclusión
Hemos configurado con éxito y aprendido a ejecutar Gemma 3 localmente utilizando Ollama y Python. Este enfoque garantiza la privacidad de nuestros datos, ofrece una baja latencia, proporciona opciones de personalización y puede suponer un ahorro de costes. Los pasos que hemos seguido no se limitan a Gemma 3, también pueden aplicarse a otros modelos alojados en Ollama.
Si queremos mejorar la funcionalidad de nuestro script, podríamos, por ejemplo, ampliar sus capacidades para manejar PDFs. La mejor manera de hacerlo sería utilizar el Mistral OCR API. Podemos convertir archivos PDF en texto, lo que permite a nuestro script responder a preguntas sobre PDF, haciéndolo aún más versátil y potente.
Con estas herramientas, ahora estamos equipados para explorar e interactuar con grandes modelos desde nuestros propios dispositivos.