Gemma 3 27B: IA multimodal con llamada a funciones mediante LangChain

Gemma 3 27B: IA multimodal con llamada a funciones mediante LangChain

Puntos clave

Gemma 3 27B es un modelo de IA multimodal de última generación, lanzado por Google, con 27 mil millones de parámetros y soporte para más de 140 idiomas.

La llamada a funciones mediante herramientas como LangChain permite una integración fluida con sistemas externos, ampliando sus capacidades para ejecutar tareas especializadas como cálculos, análisis de datos y automatización de flujos de trabajo.

Combinada con las capacidades multimodales de Gemma 3 27B, la llamada a funciones mejora significativamente la automatización de tareas, permitiendo una cooperación avanzada entre texto, procesamiento de imágenes y herramientas externas. Su disponibilidad como código abierto fomenta una adopción amplia y la innovación en todas las industrias.

Gemma 3 27B representa un avance en la IA multimodal, ofreciendo capacidades inigualables para entender y generar texto e imágenes. Con 27 mil millones de parámetros y soporte para más de 140 idiomas, maneja sin problemas tareas complejas en diversas industrias.

¿Qué es Gemma 3 27B?

Fecha de lanzamiento

12 de marzo de 2025

Tamaño del modelo

27 mil millones de parámetros

Código abierto

Sí (lanzado por Google)

Idiomas compatibles

Más de 140 idiomas

Datos de entrenamiento

14 billones de tokens

Fortalezas

Matemáticas, programación, seguimiento de instrucciones

Capacidad multimodal

Sí (procesa imágenes y texto, genera texto)

Ventana de contexto

128K tokens

Prueba de capacidad multimodal de Gemma 3 27B

Prompt: Dime cuántas veces aumentó la puntuación Elo de gemma 2 27b a gemma 3 27b?

Puntuación ELO

De Google

Salida: Identificó correctamente los números pero no calculó los múltiplos como se indicaba en el prompt; en su lugar, solo calculó la diferencia.

Según la imagen, aquí está el cálculo:

  • Puntuación Elo de Gemma 2 27B: 1220
  • Puntuación Elo de Gemma 3 27B: 1338

Incremento: 1338 - 1220 = 118

La puntuación Elo aumentó en 118 puntos de Gemma 2 27B a Gemma 3 27B.

Puntos de referencia de Gemma 3 27B

Benchmark Gemma 3 27B DeepSeek R1 LLaMA 3.3 70B
Puntuación Elo LMSys 1339 ~1360 ~1260
MMLU-Pro 67.5 84.0 66.4
LiveCodeBench 29.7 65.9 ~29
GPQA Diamond 42.4 71.5 50.5
MATH 69.0 97.3 77.0

puntuaciones elo

De Hugging Face

¿Qué problemas se pueden resolver combinando modelos multimodales con llamada a funciones?

Problema 1

Manejo de archivos grandes con recursos limitados

Aunque los LLM pueden procesar directamente imágenes o videos, manejar archivos grandes (por ejemplo, videos largos o imágenes de alta resolución) puede consumir recursos significativos y podría exceder la ventana de contexto del modelo.

Rol de la llamada a funciones: Distribuir tareas complejas o que requieren muchos recursos a sistemas externos, permitiendo que el LLM se centre en coordinar e integrar los resultados.

Problema 2

Ampliación de capacidades para funcionalidades específicas

Los LLM se centran principalmente en entender y generar contenido, pero en ciertos escenarios los usuarios pueden necesitar funcionalidades más específicas (por ejemplo, generación de gráficos, edición de imágenes, recorte de videos) que van más allá de las capacidades integradas del LLM.

Rol de la llamada a funciones: Ampliar las capacidades del LLM permitiéndole generar o ejecutar resultados especializados a través de herramientas externas.

Problema 3

Lograr un análisis más profundo con herramientas profesionales

Si bien los LLM pueden analizar entradas multimodales como texto, imágenes y videos, pueden carecer de la profundidad necesaria para realizar tareas de nivel profesional, como análisis de imágenes médicas o edición de video de alta precisión.

Rol de la llamada a funciones: Delegar tareas a herramientas o APIs profesionales, garantizando una mayor precisión y un análisis más profundo del que el LLM por sí solo puede ofrecer.

Cómo usar la llamada a funciones de Gemma 3 27B mediante Novita AI

Paso 1: Obtén la clave API e instálala

Ingresa a la página “Gestión de claves” y copia la clave API como se indica en la imagen.

obtener clave api

¡Prueba el Demo de Gemma 3 27B ahora!

Paso 2: Usa LangChain para implementar la llamada a funciones

Crearemos una aplicación matemática simple que pueda realizar operaciones de suma y multiplicación.

💡 Aunque esta guía usa LangChain por conveniencia, la implementación de la llamada a funciones no requiere ningún framework específico. La clave está en diseñar los prompts adecuados para que el modelo entienda e invoque correctamente las funciones. LangChain se usa aquí simplemente para agilizar la implementación.

Requisitos previos

Primero, instala los paquetes necesarios:

pip install langchain-openai python-dotenv

Configuración del entorno

Crea un archivo .env en la raíz de tu proyecto y agrega tu clave API de Novita AI:

NOVITA_API_KEY=tu_clave_api_aqui

Paso 3: Pasos de implementación

1. Define las herramientas

Primero, creemos dos herramientas matemáticas simples usando el decorador @tool de LangChain:

from langchain_core.tools import tool

@tool
def multiply(x: float, y: float) -> float:
    """Multiplica dos números."""
    return x * y

@tool
def add(x: int, y: int) -> int:
    """Suma dos números."""
    return x + y

tools = [multiply, add]

2. Crea la función de ejecución de herramientas

A continuación, implementa una función para ejecutar las herramientas:

from typing import Any, Dict, Optional, TypedDict
from langchain_core.runnables import RunnableConfig

class ToolCallRequest(TypedDict):
    name: str
    arguments: Dict[str, Any]

def invoke_tool(
    tool_call_request: ToolCallRequest, 
    config: Optional[RunnableConfig] = None
):
    """Ejecuta la herramienta especificada con los argumentos dados."""
    tool_name_to_tool = {tool.name: tool for tool in tools}
    name = tool_call_request["name"]
    requested_tool = tool_name_to_tool[name]
    return requested_tool.invoke(tool_call_request["arguments"], config=config)

3. Configura la cadena de LangChain

Crea una cadena que use el LLM de Novita AI para seleccionar y preparar las llamadas a las herramientas:

from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.tools import render_text_description

def create_chain():
    """Crea una cadena que usa el modelo LLM especificado para seleccionar y preparar las llamadas a las herramientas."""
    model = ChatOpenAI(
        model="google/gemma-3-27b-it",
        api_key=os.getenv("NOVITA_API_KEY"),
        base_url="https://api.novita.ai/v3/openai",
    )
    
    rendered_tools = render_text_description(tools)
    system_prompt = f"""\
    Eres un asistente que tiene acceso al siguiente conjunto de herramientas. 
    Aquí están los nombres y descripciones de cada herramienta:

    {rendered_tools}

    Dada la entrada del usuario, devuelve el nombre y la entrada de la herramienta a usar. 
    Devuelve tu respuesta como un blob JSON con las claves 'name' y 'arguments'.

    Los 'arguments' deben ser un diccionario, con claves correspondientes 
    a los nombres de los argumentos y los valores correspondientes a los valores solicitados.
    """

    prompt = ChatPromptTemplate.from_messages(
        [("system", system_prompt), ("user", "{input}")]
    )

    return prompt | model | JsonOutputParser()

4. Crea la función principal de procesamiento

Implementa la función principal que procesa consultas matemáticas:

def process_math_query(query: str):
    """Procesa una consulta matemática usando un LLM para seleccionar la herramienta adecuada y ejecutarla."""
    chain = create_chain()
    message = chain.invoke({"input": query})
    result = invoke_tool(message, config=None)
    return message, result

5. Ejemplo de uso

Así es como se usa la implementación:

if __name__ == "__main__":
    message, result = process_math_query(
        "meta-llama/llama-3.3-70b-instruct", 
        "what's 3 plus 1132"
    )
    print(result)  # Salida: 1135

Gemma 3 27B redefine la IA multimodal con un rendimiento líder en matemáticas, programación y tareas basadas en instrucciones. Su integración multimodal y su extenso conjunto de datos de entrenamiento la convierten en una herramienta versátil para desarrolladores e investigadores.

Preguntas frecuentes

¿Qué es Gemma 3 27B?

Gemma 3 27B es un modelo de IA multimodal con 27 mil millones de parámetros, capaz de procesar texto e imágenes y compatible con más de 140 idiomas.

¿Cómo se compara Gemma 3 27B con su predecesor?

Gemma 3 27B muestra mejoras significativas, incluyendo un aumento de 118 puntos en la puntuación Elo y un mejor rendimiento en programación, matemáticas y tareas multimodales.

¿Gemma 3 27B es de código abierto?

Sí, Gemma 3 27B es de código abierto, lo que fomenta la innovación impulsada por la comunidad.

Novita AI es una plataforma en la nube de IA que ofrece a los desarrolladores una forma sencilla de implementar modelos de IA mediante nuestra API simple, al mismo tiempo que proporciona una GPU en la nube asequible y confiable para construir y escalar.

Lecturas recomendadas