Falcon AI El nuevo modelo de lenguaje grande de código abierto

Falcon AI el nuevo modelo de lenguaje de código abierto.

Introducción

Desde el lanzamiento de GPT (Generative Pre Trained) por Open AI, el mundo ha sido arrasado por la IA Generativa. A partir de ese período, muchos Modelos Generativos han surgido. Con cada lanzamiento de nuevos Modelos de Lenguaje Grandes Generativos, la IA se acercaba cada vez más a la Inteligencia Humana. Sin embargo, la comunidad de Open AI convirtió la familia de potentes Modelos de Lenguaje Grandes GPT en código cerrado. Afortunadamente, Falcon AI, un Modelo Generativo altamente capaz, superando a muchos otros MLL, ahora es de código abierto, disponible para cualquier persona que quiera usarlo.

Objetivos de Aprendizaje

  • Comprender por qué Falcon AI encabezó la tabla de clasificación de MLL
  • Aprender las capacidades de Falcon AI
  • Observar el rendimiento de Falcon AI
  • Configurar Falcon AI en Python
  • Probar Falcon AI en LangChain con Prompts personalizados

Este artículo fue publicado como parte del Data Science Blogathon.

¿Qué es Falcon AI?

Falcon AI, principalmente Falcon LLM 40B, es un Gran Modelo de Lenguaje lanzado por el Instituto de Innovación Tecnológica (TII) de los Emiratos Árabes Unidos. El 40B indica los 40 mil millones de parámetros utilizados por este Gran Modelo de Lenguaje. El TII incluso ha desarrollado un modelo de 7B, es decir, un modelo de 7 mil millones de parámetros entrenado con 1500 mil millones de tokens. En comparación, el modelo Falcon LLM 40B está entrenado con 1 billón de tokens de RefinedWeb. Lo que hace que este MLL sea diferente de otros es que este modelo es transparente y de código abierto.

El Falcon es un modelo decodificador autoregresivo. El entrenamiento de Falcon AI se llevó a cabo en la nube de AWS de forma continua durante dos meses con 384 GPUs conectadas. Los datos de preentrenamiento consistieron principalmente en datos públicos, con algunas fuentes de datos tomadas de documentos de investigación y conversaciones en redes sociales.

¿Por qué Falcon AI?

Los Modelos de Lenguaje Grandes se ven afectados por los datos en los que se entrenan. Su sensibilidad varía con los cambios en los datos. Personalizamos los datos utilizados para entrenar a Falcon, que incluían extractos de datos de alta calidad tomados de sitios web (conjunto de datos RefinedWeb). Realizamos varios procesos de filtrado y eliminación de duplicados en estos datos, además de utilizar fuentes de datos fácilmente disponibles. La arquitectura de Falcon lo hace optimizado para inferencia. Falcon supera claramente a los modelos de vanguardia como Google, Anthropic, Deepmind, LLaMa, etc., en la tabla de clasificación de OpenLLM.

Además de todo esto, el diferenciador principal es que es de código abierto, lo que permite su uso comercial sin restricciones. Cualquier persona puede ajustar Falcon con sus datos para crear su propia aplicación a partir de este Gran Modelo de Lenguaje. Falcon incluso viene con versiones Instruct llamadas Falcon-7B-Instruct y Falcon-40B-Instruct, que vienen ajustadas con datos de conversación. Se puede trabajar directamente con ellas para crear aplicaciones de chat.

Primer Vistazo: Gran Modelo de Lenguaje Falcon

En esta sección, probaremos uno de los modelos de Falcon. El que utilizaremos es el Modelo Falcon-40B, que encabeza las tablas de clasificación de OpenLLM. Específicamente, utilizaremos la versión Instruct de Falcon-40B, es decir, Falcon-40B-Instruct, que ya ha sido ajustada con datos de conversación, para poder comenzar rápidamente. Una forma de interactuar con el modelo Falcon Instruct es a través de HuggingFace Spaces. HuggingFace ha creado un Espacio para el Modelo Falcon-40B-Instruct llamado Falcon-Chat demo. Haz clic aquí para visitar el sitio.

Después de abrir el sitio, desplázate hacia abajo para ver la sección de chat, que es similar a la imagen de arriba. En el campo “Escribe una entrada y presiona Enter”, ingresa la consulta que deseas hacer al modelo Falcon y presiona Enter para comenzar la conversación. Hagamos una pregunta al modelo Falcon y veamos su respuesta.

En la Imagen 1, podemos ver la respuesta generada. Esa fue una buena respuesta del modelo Falcon-40B a la consulta. Hemos visto el funcionamiento de Falcon-40B-Instruct en los Espacios de HuggingFace. Pero, ¿qué pasa si queremos trabajar con él en un código específico? Podemos hacer esto utilizando la biblioteca Transformers. Ahora pasaremos por los pasos necesarios.

Descargar los paquetes

!pip install transformers accelerate einops xformers

Instalamos el paquete transformers para descargar y trabajar con modelos de vanguardia que están pre-entrenados, como el Falcon. El paquete accelerate nos permite ejecutar modelos de PyTorch en cualquier sistema con el que estemos trabajando, y actualmente estamos utilizando Google Colab. Einops y xformers son otros paquetes que admiten el modelo Falcon.

Ahora necesitamos importar estas bibliotecas para descargar y comenzar a trabajar con el modelo Falcon. El código será:

from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch


model = "tiiuae/falcon-7b-instruct"


tokenizer = AutoTokenizer.from_pretrained(model)


pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
    torch_dtype=torch.bfloat16,
    trust_remote_code=True,
    device_map="auto",
    max_length=200,
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    eos_token_id=tokenizer.eos_token_id
)

Pasos

  • En primer lugar, debemos proporcionar la ruta al modelo que probaremos. Aquí trabajaremos con el modelo Falcon-7B-Instruct porque ocupa menos espacio en la GPU y se puede utilizar con la capa gratuita en Google Colab.
  • El enlace del modelo Falcon-7B-Instruct Large Language Model se almacena en la variable modelo.
  • Para descargar el tokenizador para este modelo, escribimos el método from_pretrained() de la clase AutoTokenizer presente en transformers.
  • A esto, proporcionamos la ruta LLM, que luego descarga el Tokenizador que funciona para este modelo.
  • Ahora creamos un pipeline. Al crear los pipelines, proporcionamos las opciones necesarias, como el modelo con el que estamos trabajando y el tipo de modelo, es decir, “text-generation” para nuestro caso de uso.
  • El tipo de tokenizador y otros parámetros se proporcionan al objeto pipeline.

Intentemos observar la salida del modelo Falcon 7B instruct proporcionando el modelo con una consulta. Para probar el modelo Falcon, escribiremos el siguiente código.

sequences = pipeline(
   "Crear una lista de 3 cosas importantes para reducir el calentamiento global"
)


for seq in sequences:
    print(f"Resultado: {seq['generated_text']}")
    

Pedimos al Falcon Large Language Model que liste las tres cosas importantes para reducir el calentamiento global. Veamos la salida generada por este modelo.

Podemos ver que el modelo Falcon 7B Instruct ha producido un buen resultado. Señaló los problemas fundamentales de la causa del calentamiento global e incluso proporcionó la solución adecuada para abordar los problemas, reduciendo así el calentamiento global.

Falcon AI con LangChain

LangChain es una biblioteca de Python que ayuda a construir aplicaciones con Large Language Applications. LangChain tiene un pipeline llamado HuggingFacePipeline para modelos alojados en HuggingFace. Entonces, en la práctica, debería ser posible usar Falcon con LangChain.

Instalar el paquete LangChain

!pip install langchain

Esto descargará el último paquete de langchain. Ahora, necesitamos crear un Pipeline para el modelo Falcon, lo cual haremos de la siguiente manera:

from langchain import HuggingFacePipeline


llm = HuggingFacePipeline(pipeline = pipeline, model_kwargs = {'temperature':0})
  • Llamamos al objeto HuggingFacePipeline() y pasamos el pipeline y los parámetros del modelo.
  • Aquí estamos utilizando el pipeline de la sección “First Look: Falcon Large Language Model”.
  • Para los parámetros del modelo, proporcionamos la temperatura con un valor de 0, lo que hace que el modelo no alucine demasiado (creando sus propias respuestas).
  • Todo esto lo pasamos a una variable llamada llm, que almacena nuestro Large Language Model.

Ahora sabemos que LangChain contiene PromptTemplate, que nos permite alterar las respuestas producidas por el Large Language Model. Y tenemos LLMChain, que encadena el PromptTempalte y el LLM juntos. Escribamos código con estos métodos.

from langchain import PromptTemplate, LLMChain


template = """
Eres un chatbot inteligente. Tu respuesta debe ser divertida.
Pregunta: {query}
Respuesta:"""
prompt = PromptTemplate(template=template, input_variables=["query"])


llm_chain = LLMChain(prompt=prompt, llm=llm)

Pasos

  • En primer lugar, definimos una plantilla para el Prompt. La plantilla describe cómo debe comportarse nuestro LLM, es decir, cómo debe responder a las preguntas formuladas por el usuario.
  • A continuación, se pasa a la función PromptTemplate() y se guarda en una variable.
  • Ahora tenemos que unir el modelo de lenguaje grande y el Prompt juntos, lo cual hacemos proporcionándolos a la función LLMChain().

Ahora nuestro modelo está listo. Según el Prompt, el modelo debe responder de manera divertida a una pregunta dada. Vamos a intentarlo con un ejemplo de código.

query = "¿Cómo llegar a la luna?"


print(llm_chain.run(query))

Así que le dimos al modelo la pregunta “¿Cómo llegar a la luna?”. La respuesta está debajo:

La respuesta generada por el modelo Falcon-7B-Instruct es realmente divertida. Siguió el Prompt que le dimos y generó la respuesta adecuada a la pregunta dada. Esto es solo una de las muchas cosas que podemos lograr con este nuevo modelo de código abierto.

Conclusión

En este artículo, hemos discutido un nuevo modelo de lenguaje grande llamado Falcon. Este modelo ha ocupado el primer lugar en el OpenLLM Leaderboard al superar a modelos principales como Llama, MPT, StableLM y muchos más. Lo mejor de este modelo es que es de código abierto, lo que significa que cualquiera puede desarrollar aplicaciones con Falcon con fines comerciales.

Puntos clave

  • Falcon-40B ocupa actualmente el primer lugar en el OpenLLM Leaderboard
  • Flacon ha lanzado los modelos de 40 mil millones y 7 mil millones de código abierto
  • Puedes trabajar con los modelos Instruct de Falcon, que están pre-entrenados en conversaciones, para comenzar rápidamente.
  • Optimiza la arquitectura de Falcon para la inferencia.
  • Ajusta este modelo para construir diferentes aplicaciones.

Preguntas frecuentes

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

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Drones Protegen los Aerogeneradores del Hielo

Los investigadores desarrollaron un método para proteger los aerogeneradores del hielo utilizando drones.

Inteligencia Artificial

ChatGPT se adentra en el lado robótico la última maravilla mecánica de Boston Dynamics ahora responde verbalmente

En un desarrollo innovador, la empresa de ingeniería Boston Dynamics ha integrado ChatGPT, un sofisticado modelo de l...

Inteligencia Artificial

¿Cómo supera Bing Chat a ChatGPT en proporcionar conocimiento en tiempo real actualizado? Conoce la Generación con Recuperación Mejorada (RAG)

Con el desarrollo de los Modelos de Lenguaje Grande (LLMs) en los últimos tiempos, estos modelos han provocado un cam...