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.
- Procesamiento inteligente de documentos con los servicios de AI de AWS y Amazon Bedrock
- Investigadores de Meta AI presentan RA-DIT Un nuevo enfoque de inteligencia artificial para adaptar modelos de lenguaje con capacidades de recuperación mejoradas para tareas intensivas en conocimiento.
- 5 casos de uso de IA generativa que las empresas pueden implementar hoy
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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Superando las Alucinaciones en IA Cómo Factually Augmented RLHF Optimiza la Coherencia de Visión y Lenguaje en Modelos Multimodales Grandes
- Una guía paso a paso para seleccionar y ejecutar tu propio modelo generativo
- Todo lo que necesitas saber sobre la serie de modelos de lenguaje (LLMs) Qwen Large
- Desde el Internet de las Cosas hasta el Internet de Todo La Convergencia de la IA y el 6G para una Inteligencia Conectada
- La mejor aventura de IA residencia de OpenAI
- Google DeepMind lanza Open X-Embodiment, que incluye un conjunto de datos de robótica con más de 1 millón de trayectorias y un modelo de IA generalista (𝗥𝗧-X) para ayudar a avanzar en cómo los robots pueden aprender nuevas habilidades.
- Los 12 principios fundamentales de la gobernanza de la IA