Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Advertencia
El ajuste fino del Modelo Foundation ha llegado al final de su vida útil (EoL) y ya no está soportado. El databricks_genai paquete y la interfaz de ajuste fino del modelo Foundation ya no están disponibles.
Para entrenar y ajustar modelos de base, Databricks recomienda AI Runtime, que ofrece un entorno serverless respaldado por GPU.
Importante
Esta característica se encuentra en versión preliminar pública en las siguientes regiones: centralus, eastus, eastus2, northcentralus y westus.
En este artículo se describen los formatos de archivo de datos aceptados para entrenamiento y evaluación en el ajuste fino de modelos fundacionales (ahora parte del entrenamiento de modelos de Databricks).
Bloc de notas: Validación de datos para ejecuciones de entrenamiento
En el cuaderno siguiente se muestra cómo validar los datos. Está diseñado para ejecutarse de forma independiente antes de comenzar el entrenamiento. Valida que los datos tienen el formato correcto para el ajuste óptimo del modelo fundacional e incluye código para ayudarle a calcular los costes durante la ejecución de entrenamiento mediante la tokenización del conjunto de datos sin procesar.
Validación de datos para el cuaderno de ejecuciones de entrenamiento
Preparación de datos para la finalización del chat
Para las tareas de finalización de chat, los datos con formato de chat deben estar en un archivo .jsonl, donde cada línea es un objeto JSON independiente que representa una sola sesión de chat. Cada sesión de chat se representa como un objeto JSON con una única clave, messages, que se asigna a una matriz de objetos de mensaje. Para entrenar con datos de chat, proporcione la task_type = 'CHAT_COMPLETION' cuando cree su ejecución de entrenamiento.
Los mensajes en formato de chat se formatearán automáticamente según la plantilla de chat del modelo, por lo que no es necesario agregar tokens de chat especiales para indicar manualmente el principio o el final de un turno de chat. Un ejemplo de un modelo que usa una plantilla de chat personalizada es Meta Llama 3.1 8B Instruct.
Cada objeto de mensaje de la matriz representa un único mensaje en la conversación y tiene la siguiente estructura:
-
role: cadena que indica el autor del mensaje. Los valores posibles sonsystem,useryassistant. Si el rol fuerasystem, deberá ser el primer chat en la lista de mensajes. Debe haber al menos un mensaje con el rolassistanty cualquier mensaje después del mensaje del sistema (opcional) debe alternar los roles de usuario y asistente. No debe haber dos mensajes adyacentes con el mismo rol. El último mensaje de lamessagesmatriz debe tener el rolassistant. -
content: cadena que contiene el texto del mensaje.
Nota:
Los modelos Mistral no aceptan system roles en sus formatos de datos.
A continuación, se muestra un ejemplo de datos con formato de chat:
{
"messages": [
{ "role": "system", "content": "A conversation between a user and a helpful assistant." },
{ "role": "user", "content": "Hi there. What's the capital of the moon?" },
{
"role": "assistant",
"content": "This question doesn't make sense as nobody currently lives on the moon, meaning it would have no government or political institutions. Furthermore, international treaties prohibit any nation from asserting sovereignty over the moon and other celestial bodies."
}
]
}
Preparación de datos para un entrenamiento previo continuo
Para tareas de entrenamiento previo continuo, los datos de entrenamiento son los datos de texto no estructurado. Los datos de entrenamiento deben almacenarse en un volumen de Catálogo de Unity que incluya archivos .txt. Cada archivo .txt se trata como una sola muestra. Si los archivos .txt están en una carpeta de volumen del Unity Catalog, esos archivos también se obtienen para los datos de entrenamiento. Se omiten todos los archivos no txt del volumen. Consulte cómo trabajar con archivos en volúmenes de Unity Catalog.
En la siguiente imagen se muestran archivos de ejemplo .txt en un volumen de Unity Catalog. Para usar estos datos en la configuración de ejecución de entrenamiento previo, establezca train_data_path = "dbfs:/Volumes/main/finetuning/cpt-data" y task_type = 'CONTINUED_PRETRAIN'.
Dar formato a los datos usted mismo
Advertencia
No se recomienda la guía de esta sección, pero está disponible para escenarios en los que se requiere el formato de datos personalizado.
Databricks recomienda encarecidamente usar datos con formato de chat para que el formato adecuado se aplique automáticamente a los datos en función del modelo que use.
Foundation Model Fine-tuning le permite dar formato a los datos usted mismo. Se debe aplicar cualquier formato de datos al entrenar y atender el modelo. Para entrenar el modelo utilizando sus datos formateados, establezca task_type = 'INSTRUCTION_FINETUNE' cuando cree su ejecución de entrenamiento.
Los datos de entrenamiento y evaluación deben estar en uno de los siguientes esquemas:
Pares de solicitud y respuesta.
{ "prompt": "your-custom-prompt", "response": "your-custom-response" }Pares de indicación y finalización.
{ "prompt": "your-custom-prompt", "completion": "your-custom-response" }
Importante
La indicación-respuesta y la indicación-finalización no tienenplantilla, por lo que las plantillas específicas del modelo, como el formato de instrucción de Mistral, deben realizarse como paso de procesamiento previo.
Formatos de datos compatibles
A continuación se muestran los formatos de datos admitidos:
Un volumen del catálogo de Unity con un archivo
.jsonl. Los datos de entrenamiento deben estar en formato JSONL, donde cada línea es un objeto JSON válido. A continuación se muestra un ejemplo de mensaje y respuesta:{ "prompt": "What is Databricks?", "response": "Databricks is a cloud-based data engineering platform that provides a fast, easy, and collaborative way to process large-scale data." }Una tabla Delta que cumpla uno de los esquemas aceptados mencionados anteriormente. Para las tablas Delta, es necesario proporcionar un parámetro
data_prep_cluster_idpara el procesamiento de datos. Consulte Configuración de una ejecución de entrenamiento.Un conjunto de datos público de Hugging Face.
Si se usa un conjunto de datos público de Hugging Face como datos de entrenamiento, es necesario especificar la ruta de acceso completa con la división. Por ejemplo:
mosaicml/instruct-v3/train and mosaicml/instruct-v3/test. Esto incluye los conjuntos de datos que tengan diferentes esquemas de división. No se admiten conjuntos de datos anidados de Hugging Face.Para ver un ejemplo más detallado, consulte el conjunto de datos
mosaicml/dolly_hhrlhfsobre Hugging Face.Las siguientes filas de datos de ejemplo son del conjunto de datos
mosaicml/dolly_hhrlhf.{"prompt": "Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: what is Databricks? ### Response: ","response": "Databricks is a cloud-based data engineering platform that provides a fast, easy, and collaborative way to process large-scale data."} {"prompt": "Below is an instruction that describes a task. Write a response that appropriately completes the request. ### Instruction: Van Halen famously banned what color M&Ms in their rider? ### Response: ","response": "Brown."}