Ajustando los LLM en los mensajes de Slack

Ajustando las notificaciones en los mensajes de Slack

Nota del editor: Eli Chen es un orador para ODSC West del 30 de octubre al 2 de noviembre. Asegúrese de ver su charla, “Ajuste fino de LLMs en mensajes de Slack“, allí!

El ajuste fino de LLMs es súper fácil, gracias a las librerías de HuggingFace. Este tutorial te guía a través de la adaptación de un modelo pre-entrenado para generar texto que imite conversaciones de chat de un canal de Slack. Debes sentirte cómodo/a con Python para aprovechar al máximo esta guía.

Obteniendo los datos

Primero, obtén los datos de Slack utilizando la API. Antes de comenzar, asegúrate de tener a mano el token de tu bot, ID de usuario e ID de canal. Si no estás seguro/a de cómo adquirirlos, aquí tienes una guía rápida.

Inicializa el WebClient de Slack y define una función, fetch_messages, para extraer chats específicos filtrados por ID de usuario.

token = "TU_TOKEN_DEL_BOT_DE_SLACK"channel_id = "ID_DEL_CANAL"user_id = "ID_DEL_USUARIO"client = WebClient(token=token)def fetch_messages(channel_id):    messages = []    cursor = None    while True:        try:            response = client.conversations_history(channel=channel_id, cursor=cursor)            assert response["ok"]            for message in response['messages']:                if 'user' in message and message['user'] == user_id:                    messages.append(message['text'])            cursor = response.get('response_metadata',{}).get('next_cursor')            if not cursor:                break        except SlackApiError as e:            print(f"Error: {e.response['error']}")            break    return messagesall_messages = fetch_messages(channel_id)

La función fetch_messages devuelve una lista all_messages que contiene los mensajes del usuario especificado en el canal dado para el ajuste fino de LLMs.

EVENTO – ODSC West 2023

Conferencia Presencial y Virtual

Del 30 de octubre al 2 de noviembre

Únete a nosotros para una inmersión profunda en las últimas tendencias, herramientas y técnicas de ciencia de datos e IA, desde LLMs hasta análisis de datos y desde aprendizaje automático hasta IA responsable.

Ajuste fino del modelo

Después de recopilar los mensajes, el siguiente paso es ajustar finamente un modelo de lenguaje pre-entrenado para imitar los patrones de lenguaje específicos de este usuario en particular. El código a continuación utiliza la biblioteca transformers de HuggingFace para agilizar este proceso.

# Inicializa el tokenizer y el modelotokenizer = AutoTokenizer.from_pretrained("gpt2")tokenizer.pad_token = tokenizer.eos_token  # Establece el token de relleno como eos_tokenmodel = AutoModelForCausalLM.from_pretrained("gpt2")# Tokeniza las cadenas y crea un objeto Datasettokens = tokenizer(all_messages, padding=True, truncation=True, return_tensors="pt")dataset = Dataset.from_dict(tokens)# Crea el DataCollatordata_collator = DataCollatorForLanguageModeling(    tokenizer=tokenizer,    mlm=False,)# Configura los argumentos de entrenamientotraining_args = TrainingArguments(    output_dir="./output",    learning_rate=2e-4,)# Inicializa el Trainertrainer = Trainer(    model=model,    args=training_args,    data_collator=data_collator,    train_dataset=dataset,)# Ajuste finotrainer.train()

Ejecutando este código, ajustas finamente un modelo GPT-2 para generar texto que imite los mensajes del usuario. Siéntete libre de experimentar con diferentes modelos y tasas de aprendizaje para adaptarse mejor a tus necesidades.

Probando tu modelo

Después del ajuste fino, querrás probar la capacidad del modelo para imitar los mensajes de tu usuario. El código a continuación muestra cómo generar texto basado en el mensaje de inicio “Hola”.

# Generar texto de entrada
input_text = "Hola "
input_ids = tokenizer.encode(input_text, return_tensors="pt")

# Generar una muestra de texto
output = model.generate(input_ids, max_length=50, num_return_sequences=1, temperature=1.0)

# Decodificar e imprimir el texto
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(generated_text)

Para evaluaciones más rigurosas, considera agregar métricas de rendimiento como la puntuación BLEU o la perplejidad.

Conclusión

En conclusión, has recorrido los pasos básicos para ajustar un modelo de lenguaje pre-entrenado en los mensajes de Slack de un usuario. Si bien esto sirve como una introducción, hay numerosos caminos para mejorar, como la descarga incremental, el ajuste de hiperparámetros, el desarrollo de modelos de conversación por usuario e incorporar métodos de evaluación más completos para detectar sesgos.

Para profundizar, únete a mi charla en ODSC West. Discutiré experiencias de entrenamiento reales, comportamientos interesantes y extraños que observamos durante un año, y compartiré ideas sobre los riesgos asociados y las estrategias de mitigación.

Sobre el autor

Eli es el CTO y co-fundador de Credo AI. Ha liderado equipos de desarrollo de software seguro y escalable en empresas como Netflix y Twitter. Eli tiene una pasión por desentrañar cómo funcionan las cosas y solucionar problemas difíciles. Ya sea usando criptografía para asegurar sistemas de software o diseñando arquitecturas de sistemas distribuidos, siempre está emocionado de aprender y enfrentar nuevos desafíos. Eli se graduó con una licenciatura en Ingeniería Eléctrica y Ciencias de la Computación de U.C. Berkeley.

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

Investigadores de Microsoft presentan FP8 Mixed-Precision Training Framework Potenciando la eficiencia del entrenamiento de modelos de lenguaje grandes

Los modelos de lenguaje grandes han demostrado una destreza sin precedentes en la creación y comprensión del lenguaje...

Inteligencia Artificial

Deblur AI de Google Afilado de tus imágenes

En nuestra era digital en constante evolución, donde capturar y compartir momentos a través de la fotografía se ha co...

Aprendizaje Automático

Rendimiento sobrehumano en la prueba Atari 100K El poder de BBF - Un nuevo agente de RL basado en valores de Google DeepMind, Mila y la Universidad de Montreal.

El aprendizaje por refuerzo profundo (RL) ha surgido como un algoritmo de aprendizaje automático poderoso para aborda...

Inteligencia Artificial

Principales herramientas para simplificar y estandarizar el aprendizaje automático

La inteligencia artificial y el aprendizaje automático son dos líderes innovadores a medida que el mundo se beneficia...

Ciencia de Datos

Manteniendo la Calidad de Datos en Sistemas de Aprendizaje Automático

En el deslumbrante mundo del aprendizaje automático (ML), es bastante fácil quedar absorto en la emoción de idear alg...

Aprendizaje Automático

¿Qué es Machine Learning como Servicio? Beneficios y principales plataformas de MLaaS.

El aprendizaje automático utiliza análisis estadísticos para generar resultados de predicción sin requerir programaci...