Etiqueta | Explicación | Tipo de datos |
Tabla de entrada | Una tabla o clase de entidad que contiene un campo de texto con el texto de entrada para el modelo y un campo de etiqueta que contiene las etiquetas de clase objetivo. | Feature Layer; Table View |
Campo de texto | Un campo de texto de la tabla o clase de entidad de entrada que contiene el texto que el modelo clasificará. | Field |
Campo de etiqueta | Un campo de texto de la tabla o clase de entidad de entrada que contiene las etiquetas de clase objetivo para entrenar el modelo. Especifique más de un campo de texto para clasificar texto multietiqueta. | Field |
Modelo de salida | La ubicación de la carpeta de salida donde se almacenará el modelo entrenado. | Folder |
Archivo de modelo preentrenado (Opcional) | Modelo previamente entrenado que se utilizará para ajustar con precisión el nuevo modelo. La entrada puede ser un archivo de definición de modelo de Esri (.emd) o un archivo de paquete de aprendizaje profundo (.dlpk). Se puede ajustar un modelo previamente entrenado con clases similares para que se adecue al nuevo modelo. El modelo previamente entrenado se debe haber entrenado con el mismo tipo de modelo y el mismo modelo de base que se utilizará para entrenar el nuevo modelo. | File |
Máximo de épocas (Opcional) | Número máximo de épocas para las que se entrenará el modelo. Un valor máximo de época de 1 significa que el dataset se enviará una vez por la red neuronal. El valor predeterminado es 5. | Long |
Base del modelo (Opcional) | Especifica la red neuronal preconfigurada que actuará como codificador del modelo y extraerá representaciones de entidades del texto de entrada en forma de vectores de longitud fija. Estos vectores se transmitirán después como entrada a la cabeza de clasificación del modelo.
| String |
Tamaño de lote (Opcional) | El número de muestras de entrenamiento que se procesarán a la vez. El valor predeterminado es 2. Aumentar el tamaño de lote puede mejorar el rendimiento de la herramienta; sin embargo, a medida que aumenta el tamaño del lote, se utiliza más memoria. Si se produce un error de memoria insuficiente, utilice un tamaño de lote más pequeño. | Double |
Argumentos de modelo (Opcional) | Argumentos adicionales que se utilizarán para inicializar el modelo. El argumento de modelo admitido es sequence_length, que se utiliza para fijar la longitud máxima de secuencia de los datos de entrenamiento que se tendrán en cuenta para entrenar el modelo. | Value Table |
Tasa de aprendizaje (Opcional) | El tamaño del paso que indica cuánto se ajustarán las ponderaciones del modelo durante el proceso de entrenamiento. Si no se especifica ningún valor, se aplicará automáticamente una tasa de aprendizaje óptima. | Double |
Porcentaje de validación (Opcional) | Porcentaje de muestras de entrenamiento que se utilizarán para validar el modelo. El valor predeterminado es 10 para las bases del modelo basadas en transformadores y 50 para la base Mistral. | Double |
Detener cuando el modelo deja de mejorar (Opcional) | Especifica si el entrenamiento del modelo se detendrá cuando el modelo deje de mejorar o continuará hasta alcanzar el valor del parámetro Máximo de épocas.
| Boolean |
Hacer que la base del modelo se pueda entrenar (Opcional) | Especifica si las capas de base del modelo previamente entrenado se inmovilizarán, de modo que los pesos y sesgos permanezcan tal como se diseñaron originalmente.
| Boolean |
Eliminar etiquetas HTML (Opcional) | Especifica si las etiquetas HTML se eliminarán del texto de entrada.
| Boolean |
Eliminar direcciones URL (Opcional) | Especifica si las URL se eliminarán del texto de entrada.
| Boolean |
Solicitar (Opcional) | Entrada o instrucción específica dada a un modelo de gran lenguaje (LLM) para generar la salida esperada. El valor predeterminado es Categorizar el texto proporcionado en las clases especificadas. No cree nuevas etiquetas para la clasificación. | String |
Resumen
Entrena un modelo de clasificación de texto de una o varias etiquetas para asignar una categoría o etiqueta predefinida al texto no estructurado.
Uso
Esta herramienta requiere la instalación de marcos de aprendizaje profundo. Para configurar su equipo para usar marcos de aprendizaje profundo en ArcGIS Pro, consulte Instalar marcos de aprendizaje profundo para ArcGIS.
Esta herramienta también se puede utilizar para ajustar un modelo entrenado existente.
Para ejecutar esta herramienta con la GPU, configure el entorno Tipo de procesador en GPU. Si tiene más de una GPU, especifique el entorno de Id. de GPU en su lugar.
La entrada puede ser una tabla o clase de entidad que contiene datos de entrenamiento con un campo de texto que contiene el texto de entrada y un campo de etiqueta que contiene las etiquetas de clase objetivo.
Esta herramienta utiliza bases basadas en transformadores para entrenar modelos de clasificación de texto y también es compatible con el aprendizaje en contexto con indicaciones mediante el LLM Mistral. Para instalar la base Mistral, consulte base Mistral de ArcGIS.
Para obtener información sobre los requisitos para ejecutar esta herramienta y los problemas que pueden presentarse, consulte Preguntas frecuentes sobre el aprendizaje profundo.
Parámetros
arcpy.geoai.TrainTextClassificationModel(in_table, text_field, label_field, out_model, {pretrained_model_file}, {max_epochs}, {model_backbone}, {batch_size}, {model_arguments}, {learning_rate}, {validation_percentage}, {stop_training}, {make_trainable}, {remove_html_tags}, {remove_urls}, {prompt})
Nombre | Explicación | Tipo de datos |
in_table | Una tabla o clase de entidad que contiene un campo de texto con el texto de entrada para el modelo y un campo de etiqueta que contiene las etiquetas de clase objetivo. | Feature Layer; Table View |
text_field | Un campo de texto de la tabla o clase de entidad de entrada que contiene el texto que el modelo clasificará. | Field |
label_field [label_field,...] | Un campo de texto de la tabla o clase de entidad de entrada que contiene las etiquetas de clase objetivo para entrenar el modelo. Especifique más de un campo de texto para clasificar texto multietiqueta. | Field |
out_model | La ubicación de la carpeta de salida donde se almacenará el modelo entrenado. | Folder |
pretrained_model_file (Opcional) | Modelo previamente entrenado que se utilizará para ajustar con precisión el nuevo modelo. La entrada puede ser un archivo de definición de modelo de Esri (.emd) o un archivo de paquete de aprendizaje profundo (.dlpk). Se puede ajustar un modelo previamente entrenado con clases similares para que se adecue al nuevo modelo. El modelo previamente entrenado se debe haber entrenado con el mismo tipo de modelo y el mismo modelo de base que se utilizará para entrenar el nuevo modelo. | File |
max_epochs (Opcional) | Número máximo de épocas para las que se entrenará el modelo. Un valor máximo de época de 1 significa que el dataset se enviará una vez por la red neuronal. El valor predeterminado es 5. | Long |
model_backbone (Opcional) | Especifica la red neuronal preconfigurada que actuará como codificador del modelo y extraerá representaciones de entidades del texto de entrada en forma de vectores de longitud fija. Estos vectores se transmitirán después como entrada a la cabeza de clasificación del modelo.
| String |
batch_size (Opcional) | El número de muestras de entrenamiento que se procesarán a la vez. El valor predeterminado es 2. Aumentar el tamaño de lote puede mejorar el rendimiento de la herramienta; sin embargo, a medida que aumenta el tamaño del lote, se utiliza más memoria. Si se produce un error de memoria insuficiente, utilice un tamaño de lote más pequeño. | Double |
model_arguments [model_arguments,...] (Opcional) | Argumentos adicionales que se utilizarán para inicializar el modelo. El argumento de modelo admitido es sequence_length, que se utiliza para fijar la longitud máxima de secuencia de los datos de entrenamiento que se tendrán en cuenta para entrenar el modelo. | Value Table |
learning_rate (Opcional) | El tamaño del paso que indica cuánto se ajustarán las ponderaciones del modelo durante el proceso de entrenamiento. Si no se especifica ningún valor, se aplicará automáticamente una tasa de aprendizaje óptima. | Double |
validation_percentage (Opcional) | Porcentaje de muestras de entrenamiento que se utilizarán para validar el modelo. El valor predeterminado es 10 para las bases del modelo basadas en transformadores y 50 para la base Mistral. | Double |
stop_training (Opcional) | Especifica si el entrenamiento del modelo se detendrá cuando el modelo deje de mejorar o continuará hasta alcanzar el valor del parámetro max_epochs.
| Boolean |
make_trainable (Opcional) | Especifica si las capas de base del modelo previamente entrenado se inmovilizarán, de modo que los pesos y sesgos permanezcan tal como se diseñaron originalmente.
| Boolean |
remove_html_tags (Opcional) | Especifica si las etiquetas HTML se eliminarán del texto de entrada.
| Boolean |
remove_urls (Opcional) | Especifica si las URL se eliminarán del texto de entrada.
| Boolean |
prompt (Opcional) | Entrada o instrucción específica dada a un modelo de gran lenguaje (LLM) para generar la salida esperada. El valor predeterminado es Categorizar el texto proporcionado en las clases especificadas. No cree nuevas etiquetas para la clasificación. | String |
Muestra de código
El siguiente ejemplo muestra cómo utilizar la función TrainTextClassificationModel.
# Name: TrainTextClassification.py
# Description: Train a text classifier model to classify text in different
# classes.
#
# Requirements: ArcGIS Pro Advanced license
# Import system modules
import arcpy
arcpy.env.workspace = "C:/textanalysisexamples/data"
# Set local variables
in_table = "training_data_textclassifier.csv"
out_folder = "c:\\textclassifier"
# Run Train Text Classification Model
arcpy.geoai.TrainTextClassificationModel(
in_table, out_folder, max_epochs=2, text_field="Address",
label_field="Country", batch_size=16)
Entornos
Información de licenciamiento
- Basic: No
- Standard: No
- Advanced: Sí