Saltar al contenido principal

Cómo configurar y ejecutar Gemma 3 localmente con Ollama

Aprende a instalar, configurar y ejecutar Gemma 3 localmente con Ollama y crea un sencillo asistente de archivos en tu propio dispositivo.
Actualizado 17 mar 2025  · 12 min de lectura

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.

El primer paso es descargarlo e instalarlo desde la web oficial de Ollama.

Descargar Ollama para utilizar gemma 3 localmente

Al instalarlo, asegúrate de instalar la línea de comandos:

Instalar Ollama línea de comandos

Tras completar la instalación, podemos comprobar que se ha instalado correctamente utilizando el comando ollama en el terminal. Éste es el resultado:

Comprobación de la instalación de Ollama

Descargar Gemma 3

Para descargar un modelo con Ollama, utiliza el comando pull:

ollama pull <model_name>:<model_version>

La lista de modelos disponibles se encuentra en Biblioteca de Ollama.

Gemma 3, en concreto, dispone de cuatro modelos: 1b, 4b, 12b, y 27b, donde b significa mil millones, en referencia al número de parámetros del modelo.

Por ejemplo, para descargar gemma3 con los parámetros 1b, utilizamos el comando:

ollama pull gemma3:1b

Si no especificamos la versión del modelo, se descargará por defecto el modelo 4b:

ollama pull gemma3

Listado de modelos locales

Podemos listar los modelos que tenemos localmente utilizando el siguiente comando:

ollama list

En mi caso, la salida muestra que tengo dos modelos: 

NAME             ID              SIZE      MODIFIED       
gemma3:1b        2d27a774bc62    815 MB    38 seconds ago    
gemma3:latest    c0494fe00251    3.3 GB    22 minutes ago 

Chatear en el terminal

Podemos utilizar Ollama para chatear con una modelo utilizando el comando run:

ollama run gemma3

Charlando con Ollama y Gemma 3 en la terminal

Ten en cuenta que si utilizamos el comando run con un modelo que no hemos descargado, se descargará automáticamente mediante pull.

Ejecutando Gemma 3 en segundo plano

Para utilizar Gemma 3 con Python necesitamos ejecutarlo en segundo plano. Podemos hacerlo utilizando el comando serve:

ollama serve

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 use

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

conda create -n gemma3-demo -y python=3.9

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í.

A continuación, activamos el entorno utilizando:

conda activate gemma3-demo

Por último, instalamos el paquete ollama mediante el comando

pip install ollama

Enviar un mensaje a Gemma 3 con Python

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)

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)

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
def ask_questions_from_file(file_path):
    # Read the content of the text file
    with open(file_path, "r") as file:
        content = file.read()
    # Loop to keep asking questions
    while True:
        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__":
    if len(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)

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

python ask.py ask.py

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:

Utilizar el script para utilizar Gemma 3 localmente como asistente de archivos

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.

Temas

Aprende IA con estos cursos

Curso

Retrieval Augmented Generation (RAG) with LangChain

3 hr
4.6K
Learn cutting-edge methods for integrating external data with LLMs using Retrieval Augmented Generation (RAG) with LangChain.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

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

Guía de torchchat de PyTorch: Configuración local con Python

Aprende a configurar el torchat de PyTorch localmente con Python en este tutorial práctico, que proporciona orientación paso a paso y ejemplos.

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

Cómo ajustar GPT 3.5: Liberar todo el potencial de la IA

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.
Moez Ali's photo

Moez Ali

11 min

Tutorial

Cómo formar a un LLM con PyTorch

Domine el proceso de entrenamiento de grandes modelos lingüísticos con PyTorch, desde la configuración inicial hasta la implementación final.
Zoumana Keita 's photo

Zoumana Keita

8 min

Ver másVer más