FlagAI : Entrene e implante modelos a gran escala de forma más rápida y sencilla

FlagAI : Entrene e implante modelos a gran escala de forma más rápida y sencilla

FlagAI es una caja de herramientas rápida, sencilla y adaptable para entrenar, ajustar y desplegar modelos a gran escala. Actualmente se centra en modelos y tareas de PNL, pero pronto será compatible con otras modalidades. FlagAI es compatible con un amplio número de modelos preentrenados, incluidos los modelos WuDao GLM, BERT, RoBERTa, GPT2, T5 y Huggingface Transformers. Ofrece API para descargar y utilizar rápidamente estos modelos, afinarlos en diversos conjuntos de datos y compartirlos con la comunidad. En este artículo, repasaremos FlagAI y demostraremos cómo instalar FlagAI con un ejemplo.

FlagAI también dispone de una caja de herramientas de aprendizaje por solicitud para tareas puntuales. Estos modelos pueden utilizarse para realizar tareas como clasificación de textos, extracción de información, respuesta a preguntas, resumen y generación de textos en chino o inglés.

Índice del contenido
  1. Requisitos previos
  2. ¿Por qué debería utilizar FlagAI?
    1. Tren paralelo con menos de 10 líneas de código
    2. Utiliza cómodamente las herramientas de aprendizaje de pocos pasos
    3. Especialmente bueno en tareas chinas
  3. ¿Cómo instalar FlagAI?
  4. ¿Cómo utilizar AutoLoad Class?
  5. Ejemplo de FlagAI Toolkit
    1. Modelo y Tokenizer
    2. Predictor
    3. NER (Reconocimiento de Entidades Nombradas)
  6. Ventajas de utilizar FlagAI
  7. Conclusión

Requisitos previos

  • Versión de Python >= 3.8 
  • Versión de PyTorch >= 1.8.0
  • También es necesario instalar CUDA y NCCL para entrenar y probar los modelos en las GPU.

¿Por qué debería utilizar FlagAI?

Si busca un conjunto de herramientas potente y fácil de usar para modelos lingüísticos a gran escala, FlagAI es una gran elección. Aquí algunas de las características clave de FlagAI sigue:

Descargar modelos utilizando la clave API

  • FlagAI proporciona una clave API que le permite descargar fácilmente modelos preentrenados y perfeccionarlos en una amplia gama de conjuntos de datos recopilados de las pruebas comparativas SuperGLUE y CLUE, tanto para texto chino como inglés. Puede ahorrar mucho tiempo y trabajo al no tener que entrenar los modelos usted mismo.
  • FlagAI es ahora compatible con más de 30 modelos principales, entre los que se incluyen el modelo lingüístico Aquila, el modelo multilingüe de representación de texto e imagen AltCLIP, el modelo de generación de texto a imagen AltDiffusion Huggingface space, el GLM WuDao (con un máximo de 10.000 millones de parámetros), los modelos EVA-CLIP, OPT, BERT, RoBERTa, GPT2, T5, ALM y Huggingface Transformers.
  • Esto le ofrece una amplia gama de modelos entre los que elegir, permitiéndole descubrir el que mejor se adapta a sus necesidades.

Tren paralelo con menos de 10 líneas de código

  • FlagAI es compatible con cuatro de las bibliotecas paralelas de datos/modelos más destacadas, como PyTorch, Deepspeed, Megatron-LM y BMTrain.
  • FlagAI facilita la integración, permitiendo a los usuarios paralelizar su proceso de formación/prueba con menos de 10 líneas de código. Esto puede acelerar drásticamente el proceso de formación.

Utiliza cómodamente las herramientas de aprendizaje de pocos pasos

  • FlagAI también proporciona un conjunto de herramientas de aprendizaje de avisos para trabajos de pocos disparos.
  • Esto es útil si sólo tiene una pequeña cantidad de datos para entrenar.

Especialmente bueno en tareas chinas

  • FlagAI es especialmente hábil con las tareas en chino. Esto se debe a que se entrenó con un gran conjunto de datos de texto chino.
  • FlagAI es una solución maravillosa si está trabajando en un proyecto en chino.

En general, FlagAI es una herramienta sólida que puede ayudarle a diseñar y desplegar modelos de IA de forma rápida y sencilla. Es una opción excelente tanto para usuarios nuevos como experimentados.

Como Usar Janitor AI API: Paso a Paso (fácil)Como Usar Janitor AI API: Paso a Paso (f...

¿Cómo instalar FlagAI?

El siguiente comando se utiliza para instalar FlagAI utilizando pip,

pip install -U flagai

[Opcional] Para instalar FlagAI y desarrollar localmente, siga estos pasos

git clone https://github.com/BAAI-Open/FlagAI.git
python setup.py install

[Opcional] Instala el software apex de NVIDIA para un entrenamiento más rápido.

git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

[Opcional] DEEPSPEED debe instalarse para los optimizadores ZeRO

git clone https://github.com/microsoft/DeepSpeed
cd DeepSpeed
DS_BUILD_CPU_ADAM=1 DS_BUILD_AIO=1 DS_BUILD_UTILS=1 pip install -e .
ds_report # check the deespeed status

[Opcional] Instalar BMTrain (>= 0.2.2) para la formación BMTrain

Janitor AI no funciona: cómo solucionarloJanitor AI no funciona: cómo solucionar...
git clone https://github.com/OpenBMB/BMTrain
cd BMTrain
python setup.py install

[Opcional] Instalar BMInf para la inferencia de bajos recursos

pip install bminf

[Opcional] Para Flash Attention, instale Flash-attention (>=1.0.2)

pip install flash-attn

¿Cómo utilizar AutoLoad Class?

Ofrecen una variedad de modelos que han sido entrenados para ejecutar diferentes tareas. Puede utilizar AutoLoader para cargar estos modelos y generar predicciones.

Ejemplo de FlagAI Toolkit

El código de ejemplo muestra cómo utilizar la clase AutoLoad del kit de herramientas FlagAI para cargar rápidamente modelos y tokenizadores.

Modelo y Tokenizer

La clase AutoLoad del kit de herramientas FlagAI permite la carga rápida de modelos y tokenizadores. Esta clase puede utilizarse para simplificar el proceso de carga del modelo y el tokenizador deseados. A continuación se muestra un ejemplo de cómo utilizar la clase AutoLoad:

Framer AI Creador de Sitios Web: Cree sitios web al instanteFramer AI Creador de Sitios Web: Cree si...
from flagai.auto_model.auto_loader import AutoLoader


# Specify the model and tokenizer names and Load the model and tokenizer
auto_loader = AutoLoader(
    task_name="title-generation",
    model_name="BERT-base-en"
)
model = auto_loader.get_model()
tokenizer = auto_loader.get_tokenizer()

Este es un ejemplo de la tarea title_generation, pero puede modelar tareas adicionales cambiando el task_name. El modelo y el tokenizador pueden utilizarse para ajustar o probar el modelo.

Predictor

La clase Predictor se utiliza para predecir varias tareas, como se muestra en el siguiente ejemplo.

from flagai.model.predictor.predictor import Predictor
predictor = Predictor(model, tokenizer)
test_data = [
    "Four minutes after the red card, Emerson Royal nodded a corner into the path of the unmarked Kane at the far post, who nudged the ball in for his 12th goal in 17 North London derby appearances. Arteta's misery was compounded two minutes after half-time when Kane held the ball up in front of goal and teed up Son to smash a shot beyond a crowd of defenders to make it 3-0.The goal moved the South Korea talisman a goal behind Premier League top scorer Mohamed Salah on 21 for the season, and he looked perturbed when he was hauled off with 18 minutes remaining, receiving words of consolation from Pierre-Emile Hojbjerg.Once his frustrations have eased, Son and Spurs will look ahead to two final games in which they only need a point more than Arsenal to finish fourth.",
]

for text in test_data:
    print(
        predictor.predict_generate_beamsearch(text,
                                              out_max_length=50,
                                              beam_size=3))

La tarea seq2seq es un tipo de tarea de procesamiento del lenguaje natural en la que se entrena un modelo para traducir una secuencia de palabras de un idioma a otro. La función predict_generate_beamsearch puede utilizarse para generar un haz de posibles traducciones para una secuencia de entrada dada.

NER (Reconocimiento de Entidades Nombradas)

  • El reconocimiento de entidades con nombre (NER) es la tarea de identificar entidades con nombre en un texto, como personas, organizaciones y lugares.
  • La generación de títulos es el proceso de creación de un título para un texto determinado.
  • Responder a preguntas: En esta actividad, deberá responder a preguntas relativas a un texto concreto.
from flagai.auto_model.auto_loader import AutoLoader
from flagai.model.predictor.predictor import Predictor

task_name = "ner"
model_name = "RoBERTa-base-ch"
target = ["O", "B-LOC", "I-LOC", "B-ORG", "I-ORG", "B-PER", "I-PER"]
maxlen = 256

auto_loader = AutoLoader(task_name,
                         model_name=model_name,
                         load_pretrain_params=True,
                         class_num=len(target))

model = auto_loader.get_model()
tokenizer = auto_loader.get_tokenizer()

predictor = Predictor(model, tokenizer)

test_data = [
      "On June 15, the Caocao Gaoling Cultural Relics Team of the Henan Provincial Institute of Cultural Relics and Archaeology publicly issued a statement admitting: "It has never been said that the unearthed beads belonged to the owner of the tomb",
    "On April 8, the Beijing Winter Olympics and Winter Paralympics Summary and Commendation Conference was grandly held in the Great Hall of the People. General Secretary Xi Jinping attended the conference and delivered an important speech. In his speech, the General Secretary fully affirmed the Beijing Winter Olympics, Winter Olympics The outstanding achievements of the Paralympic Games comprehensively reviewed the extraordinary process of preparations for the seven years, in-depth summed up the valuable experience in preparing for the Beijing Winter Olympics and the Winter Paralympics, and profoundly explained the spirit of the Beijing Winter Olympics. Austrian heritage to promote high-quality development and put forward clear requirements.",
    "On the 8th local time, the European Commission stated that the governments of EU member states have frozen a total of about 30 billion euros in assets related to Russian oligarchs and other sanctioned Russian personnel.",
    "Under this state of handicap, Betfair's Asian trading data shows that Bologna is hot. From the perspective of European betting, it is also hot for the home team. Palermo has lost two games in a row,"
 ]
for t in test_data:
    entities = predictor.predict_ner(t, target, maxlen=maxlen)
    result = {}
    for e in entities:
        if e[2] not in result:
            result[e[2]] = [t[e[0]:e[1] + 1]]
        else:
            result[e[2]].append(t[e[0]:e[1] + 1])
    print(f"result is {result}")

Ventajas de utilizar FlagAI

  • FlagAI está diseñado para ser sencillo y rápido de usar, incluso para los principiantes. La API es sencilla y fácil de usar, y la documentación es extensa.
    FlagAI es un proyecto de código abierto, por lo que es fácil de ampliar y personalizar. Se pueden añadir nuevas funciones, modelos y conjuntos de datos.
  • FlagAI está diseñado para escalar a enormes conjuntos de datos y modelos. Es capaz de entrenar y desplegar modelos en una amplia gama de plataformas de hardware, incluyendo CPUs, GPUs y TPUs.

Conclusión

En resumen, FlagAI es un conjunto de herramientas rápido, sencillo y flexible para la formación, el ajuste y la implementación de modelos. Puede realizar diversas tareas posteriores, como seq2seq, NER, generación de títulos y respuesta a preguntas. FlagAI es una herramienta útil para acelerar el desarrollo de aplicaciones de IA a gran escala. Siéntase libre de compartir sus opiniones y comentarios en la sección de comentarios a continuación.

IU web de Stable Diffusion: Guía completaIU web de Stable Diffusion: Guía comple...

Si quieres conocer otros artículos parecidos a FlagAI : Entrene e implante modelos a gran escala de forma más rápida y sencilla puedes visitar la categoría Cómo.

César Duarte

Mi objetivo es hacer que la IA sea accesible y comprensible para todos. Siempre estoy buscando nuevas formas de aprender y compartir mi conocimiento con los demás. ¡Gracias por visitar mi sitio web!

Contenido relacionado

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Tu puntuación: Útil

Subir

Este sitio utiliza cookies. Si continúa navegando, consideramos que acepta su uso. Para más información, consulte nuestra Política de privacidad. Más información