6.8 C
Madrid
miércoles, febrero 26, 2025

Correr Olmo-2 localmente con Gradio y Langchain


Procesamiento del lenguaje pure ha crecido rápidamente en los últimos años. Mientras que los modelos privados han estado liderando el camino, los modelos de código abierto se han puesto al día. Olmo 2 es un gran paso adelante en el mundo de código abierto, ofreciendo potencia y accesibilidad related a los modelos privados. Este artículo proporciona una discusión detallada de Olmo 2, que cubre su entrenamiento, rendimiento y cómo usarlo localmente.

Objetivos de aprendizaje

  • Comprender la importancia de la fuente abierta LLMS y el papel de Olmo 2 en la investigación de IA.
  • Discover la arquitectura de Olmo 2, la metodología de entrenamiento y los puntos de referencia de rendimiento.
  • Diferenciar entre modelos de peso abierto, parcialmente abierto y completamente abierto.
  • Aprenda a ejecutar Olmo 2 localmente usando Gradio y Langchain.
  • Implementar OLMO 2 en una aplicación de chatbot con Pitón Ejemplos de código.

Este artículo fue publicado como parte del Blogathon de ciencias de datos.

Comprender la necesidad de LLM de código abierto

El dominio inicial de las LLM propietarias creó preocupaciones sobre la accesibilidad, la transparencia y el management. Los investigadores y desarrolladores tenían una capacidad limitada para comprender el funcionamiento interno de estos modelos, lo que obstaculiza una mayor innovación y posiblemente perpetuos. Los LLM de código abierto han abordado estas preocupaciones al proporcionar un entorno de colaboración donde los investigadores pueden analizar, modificar y mejorar los modelos existentes. Un enfoque abierto es essential para avanzar en el campo y garantizar que los beneficios de los LLM estén ampliamente disponibles.

Olmoiniciado por el Instituto Allen para AI (AI2), ha estado a la vanguardia de este movimiento. Con el lanzamiento de OLMO 2, han solidificado su compromiso de abrir la ciencia al proporcionar no solo los pesos del modelo, sino también los datos de capacitación, el código, las recetas, los puntos de management intermedios y los modelos ajustados a las instrucciones. Este lanzamiento completo permite a los investigadores y desarrolladores comprender y reproducir completamente el proceso de desarrollo del modelo, allanando el camino para una mayor innovación. Correr Olmo 2 localmente con Gradio y Langchain

Allen Ai

¿Qué es Olmo 2?

Olmo 2 marca una actualización significativa de su antepasado, el OLMO-0424. La novedosa familia de modelos de parámetros 7b y 13b muestran un rendimiento comparable o, a veces, los modelos totalmente abiertos de los similares, mientras compiten con una versión de peso abierto como Llama 3.1 sobre puntos de referencia académicos en inglés. Esto hace que el logro sea muy notable dada una cantidad complete reducida de fracasos de entrenamiento en relación con algunos modelos similares.

  • OLMO-2 muestra una mejora significativa: Los modelos OLMO-2 (versiones de parámetros 7B y 13B) demuestran un salto de rendimiento claro en comparación con los modelos OLMO anteriores (OLMO-7B, OLMO-7B-0424, OLMOE-1B-7B-0924). Esto sugiere un progreso sustancial en la arquitectura, los datos de capacitación o la metodología de capacitación del modelo.
  • Competitivo con map-neo-7b: Los modelos OLMO-2, especialmente la versión 13B, logran puntajes comparables a MAP-NEO-7B, que probablemente fue una línea de base más fuerte entre los modelos completamente abiertos enumerados.

Romper el proceso de entrenamiento de Olmo 2

La arquitectura de Olmo 2 se basa en la base del OLMO authentic, incorporando varios cambios clave para mejorar la estabilidad y el rendimiento del entrenamiento.

El proceso de pre -proyren para OLMO 2 se divide en dos etapas:

  • Etapa 1: Entrenamiento en la base: esta etapa utiliza el conjunto de datos OLMO-MIX-1124, una colección masiva de aproximadamente 3.9 billones de tokens procedentes de varios conjuntos de datos abiertos. Esta etapa se centra en construir una base sólida para las capacidades de comprensión del idioma del modelo.
  • Etapa 2: Refinamiento y especialización: esta etapa emplea el conjunto de datos Dolmino-Combine-1124, una mezcla curada de datos internet de alta calidad y datos específicos de dominio, incluidos contenido académico, foros de preguntas y respuestas, datos de instrucciones y libros de trabajo matemático. Esta etapa refina el conocimiento y las habilidades del modelo en áreas específicas. El uso de «soporte modelo» para combinar múltiples modelos entrenados mejora aún más el punto de management ultimate.

Como OLMO-2 es un modelo completamente abierto, veamos cuál es la diferencia entre modelos de peso abierto, modelos parcialmente abiertos y modelos completamente abiertos:

Modelos de peso abierto

Llama-2-13b, Mistral-7B-V0.3, Llama-3.1-8b, Mistral-Nemo-12b, Qwen-2.5-7b, Gemma-2-9B, Qwen-2.5-14b: Estos modelos comparten un rasgo clave: sus pesos están disponibles públicamente. Esto permite a los desarrolladores usarlos para varias tareas de PNL. Sin embargo, los detalles críticos sobre su proceso de capacitación, como la composición exacta del conjunto de datos, el código de capacitación y los hiperparámetros, no se revelan por completo. Esto los convierte en «peso abierto», pero no completamente transparentes.

Modelos parcialmente abiertos

Stablelm-2-128, Zamba-2-7b: Estos modelos caen en un área gris. Ofrecen información adicional más allá de los pesos, pero no la imagen completa. Stablelm-2-128, por ejemplo, enumera flops de entrenamiento, lo que sugiere más transparencia que los modelos puramente abiertos. Sin embargo, la ausencia de datos de capacitación y código completos lo colocan en la categoría «parcialmente abierta».

Modelos completamente abiertos

Amber-7b, Olmo-7b, MAP-Neo-7B, OLMO-0424-7B, DCLM-7B, OLMO-2-1124-7B, OLMO-2-1124-13B: Estos modelos se destacan debido a su integral apertura. AI2 (Allen Institute for AI), la organización detrás de la serie OLMO, ha lanzado todo lo necesario para la transparencia complete y la reproducibilidad: pesos, datos de capacitación (o descripciones detalladas de la misma), código de entrenamiento, la «receta» de entrenamiento completa (incluidos los hiperparametros) , puntos de management intermedios y versiones ajustadas a instrucciones. Esto permite a los investigadores analizar profundamente estos modelos, comprender sus fortalezas y debilidades, y construir sobre ellos.

Diferencias clave

Característica Modelos de peso abierto Modelos parcialmente abiertos Modelos completamente abiertos
Pesas Liberado Liberado Liberado
Datos de capacitación Normalmente no Parcialmente disponible Totalmente disponible
Código de entrenamiento Normalmente no Parcialmente disponible Totalmente disponible
Receta de entrenamiento Normalmente no Parcialmente disponible Totalmente disponible
Reproducibilidad Limitado Más que peso abierto, menos que completamente abierto Lleno
Transparencia Bajo Medio Alto

Discover Olmo 2

Olmo 2 es un modelo de lenguaje de código abierto avanzado diseñado para conversaciones eficientes y potentes impulsadas por la IA. Se integra a la perfección con marcos como Langchain, lo que permite a los desarrolladores crear chatbots inteligentes y aplicaciones de IA. Discover sus capacidades, arquitectura y cómo mejora la comprensión del lenguaje pure en varios casos de uso.

  • Obtenga el modelo y los datos: Descargar Aquí
  • Código de entrenamiento: Vista
  • Evaluación: Vista

Vamos a ejecutarlo localmente

Descargar Ollama aquí.

Para descargar OLMO-2 Open CMD y escriba

ollama run olmo2:7b

Esto descargará OLMO2 en su sistema

Instalar bibliotecas

pip set up langchain-ollama
pip set up gradio

Construyendo un chatbot con olmo 2

Aproveche el poder de Olmo 2 para construir un chatbot inteligente con capacidades de peso abierto LLM. Aprenda a integrarlo con Python, Gradio y Langchain para interacciones sin problemas.

Paso 1: Importar bibliotecas requeridas

Cargue bibliotecas esenciales, incluidos Gradio para UI, Langchain para el manejo rápido y Ollamallm para aprovechar el modelo OLMO 2 en las respuestas de chatbot.

import gradio as gr
from langchain_core.prompts import ChatPromptTemplate
from langchain_ollama.llms import OllamaLLM

Paso 2: Definición de la función de generación de respuesta

Cree una función que tome el historial de chat y la entrada del usuario, formatea el mensaje, invoca el modelo OLMO 2 y actualiza el historial de conversación con respuestas generadas por IA.

def generate_response(historical past, query):
    template = """Query: {query}

    Reply: Let's suppose step-by-step."""
    immediate = ChatPromptTemplate.from_template(template)
    mannequin = OllamaLLM(mannequin="olmo2")
    chain = immediate | mannequin
    reply = chain.invoke({"query": query})
    historical past.append({"function": "consumer", "content material": query})
    historical past.append({"function": "assistant", "content material": reply})
    return historical past

La función Generate_Response toma un historial de chat y una pregunta del usuario como entrada. Outline una plantilla de aviso donde la pregunta se inserta dinámicamente, instruyendo a la IA que piense paso a paso. Luego, la función crea un chatPromptTemplate e inicializa el modelo Ollamallm (OLMO2). Usando la tubería de Langchain (modelo | modelo), genera una respuesta invocando el modelo con la pregunta proporcionada. El historial de conversación se actualiza, agregando la pregunta del usuario y la respuesta de IA. Devuelve el historial actualizado para más interacciones.

Paso 3: Creación de la interfaz de Gradio

Use Gradio’s Blocks, Chatboty Textbox Componentes para diseñar una interfaz de chat interactiva, lo que permite a los usuarios ingresar preguntas y recibir respuestas dinámicamente.

with gr.Blocks() as iface:
    chatbot = gr.Chatbot(sort="messages")
    with gr.Row():
        with gr.Column():
            txt = gr.Textbox(show_label=False, placeholder="Kind your query right here...")
    txt.submit(generate_response, (chatbot, txt), chatbot)
  • Usa gr.chatbot () para mostrar conversaciones.
  • Usa gr.textbox () para la entrada del usuario.

Paso 4: Lanzamiento de la aplicación

Ejecute la aplicación Gradio usando iface.launch()implementando el chatbot como una interfaz basada en la internet para interacciones en tiempo actual.

iface.launch()

Esto inicia la interfaz de Gradio y ejecuta el chatbot como una aplicación internet.

Obtener código de GitHub Aquí.

Producción

producción

Inmediato

Escriba una función de Python que devuelva verdadera si un número dado es un poder de 2 sin usar bucles o recursión.

Respuesta

Respuesta: Ejecutar OLMO-2 localmente con Gradio y Langchain
Salida: ejecutar OLMO-2 localmente con Gradio y Langchain
Salida: ejecutar OLMO-2 localmente con Gradio y Langchain

Conclusión

Por lo tanto, OLMO-2 se destaca como una de las mayores contribuciones al ecosistema LLM de código abierto. Es uno de los artistas más poderosos en el ámbito de la transparencia complete, con enfoque en la eficiencia de entrenamiento. Refleja la creciente importancia de la colaboración abierta en el mundo de la IA y allanará el camino para el progreso futuro en modelos de idiomas accesibles y transparentes.

Si bien OLMO-2-138 es un modelo muy fuerte, no es claramente dominante en todas las tareas. Algunos modelos parcialmente abiertos y QWEN-2.5-14B, por ejemplo, obtienen puntajes más altos en algunos puntos de referencia (por ejemplo, QWEN-2.5-14B supera significativamente en ARC/C y Winog). Además, OLMO-2 se queda significativamente detrás de los mejores modelos en tareas desafiantes particulares como GSM8K (matemáticas de la escuela primaria) y probablemente agieval.

A diferencia de muchos otros LLM, OLMO-2 está completamente abierto, proporcionando no solo los pesos del modelo sino también los datos de entrenamiento, el código, las recetas y los puntos de management intermedios. Este nivel de transparencia es essential para la investigación, la reproducibilidad y el desarrollo impulsado por la comunidad. Permite a los investigadores comprender a fondo las fortalezas, debilidades y posibles sesgos del modelo.

Para llevar

  • Los modelos OLMO-2, especialmente la versión de parámetros 13B, muestran excelentes resultados de rendimiento en una serie de puntos de referencia, superando a otras arquitecturas de peso abierto e incluso parcialmente abiertas. Parece que la apertura completa es una de las formas de hacer potentes LLM.
  • Los modelos completamente abiertos (particularmente Olmo) tienden a funcionar bien. Esto respalda el argumento de que tener acceso al proceso de capacitación completo (datos, código, and so on.) facilita el desarrollo de modelos más efectivos.
  • El chatbot mantiene el historial de conversación, asegurando que las respuestas consideren las interacciones anteriores.
  • Las actualizaciones de UI basadas en eventos de Gradio (txt.submit) en tiempo actual, haciendo que el chatbot sea smart y fácil de usar.
  • Ollamallm integra modelos AI en la tubería, lo que permite una funcionalidad de respuesta de pregunta perfecta.

Preguntas frecuentes

Q1. ¿Qué son los fracasos y por qué son importantes?

A. Flops representan operaciones de puntos flotantes. Representan la cantidad de cálculo que realiza un modelo durante el entrenamiento. Se utilizaron floos más altos en normal significan más recursos computacionales. Son un indicador importante, aunque no único, de la capacidad potencial del modelo. Sin embargo, la eficiencia arquitectónica y la calidad de los datos de capacitación también juegan enormes roles.

Q2. ¿Cuál es la diferencia entre «pesos abiertos», modelos «parcialmente abiertos» y «completamente abiertos»?

A. Esto se refiere al nivel de acceso a los componentes del modelo. «Pesos abiertos» solo proporciona los parámetros capacitados. «Parcialmente abierto» proporciona información adicional (por ejemplo, algunos datos de capacitación o detalles de capacitación de alto nivel). «Completamente abierto» proporciona todo: pesos, datos de capacitación, código, recetas, and so on., lo que permite la transparencia complete y la reproducibilidad.

Q3. ¿Por qué se usa la plantilla de inmediato de chat?

A. La plantilla de solicitud de chat permite la inserción dinámica de las consultas de los usuarios en un formato de inmediato predefinido, asegurando que la IA responda de manera estructurada y lógica.

This fall. ¿Cómo gestión de Gradio la interfaz de usuario de chatbot?

El componente Gr.Chatbot de A. Gradio muestra visualmente la conversación. El Gr.TextBox permite a los usuarios ingresar preguntas, y al enviar, el chatbot se actualiza con nuevas respuestas dinámicamente.

Q5. ¿Puede este chatbot admitir diferentes modelos de IA?

R. Sí, cambiando el modelo = ”olmo2 ″ línea a otro modelo disponible en OllamaEl chatbot puede usar diferentes modelos de IA para la generación de respuesta.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se usan a discreción del autor.

Hola, soy Gourav, entusiasta de la ciencia de datos con una base media en análisis estadístico, aprendizaje automático y visualización de datos. Mi viaje al mundo de los datos comenzó con una curiosidad por desentrañar los conocimientos de los conjuntos de datos.

Related Articles

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

Stay Connected

0SeguidoresSeguir
0SuscriptoresSuscribirte
- Advertisement -spot_img

Latest Articles