Evaluación de Azure OpenAI (versión preliminar)
La evaluación de modelos de lenguaje de gran tamaño es un paso fundamental para medir su rendimiento en varias tareas y dimensiones. Esto es especialmente importante para los modelos ajustados, donde evaluar las ganancias de rendimiento (o pérdidas) del entrenamiento es fundamental. Las evaluaciones exhaustivas pueden ayudar a comprender cómo las distintas versiones del modelo pueden afectar a la aplicación o el escenario.
La evaluación de Azure OpenAI permite a los desarrolladores crear ejecuciones de evaluación para probar los pares de entrada y salida esperados, evaluar el rendimiento del modelo en métricas clave, como la precisión, la confiabilidad y el rendimiento general.
Compatibilidad con evaluaciones
Disponibilidad regional
- Este de EE. UU. 2
- Centro-Norte de EE. UU
- Centro de Suecia
- Oeste de Suiza
Tipos de implementación admitidos
- Estándar
- aprovisionado
Canalización de evaluación
Datos de prueba
Debe ensamblar un conjunto de datos de verdad fundamental con el que desea probar. La creación de conjuntos de datos suele ser un proceso iterativo que garantiza que las evaluaciones sigan siendo relevantes para los escenarios a lo largo del tiempo. Este conjunto de datos de verdad básica se suele realizar a mano y representa el comportamiento esperado del modelo. El conjunto de datos también está etiquetado e incluye las respuestas esperadas.
Nota:
Algunas pruebas de evaluación como Sentiment y JSON o XML válidos no requieren datos de verdad de base.
El origen de datos debe estar en formato JSONL. A continuación se muestran dos ejemplos de los conjuntos de datos de evaluación JSONL:
Formato de evaluación
{"question": "Find the degree for the given field extension Q(sqrt(2), sqrt(3), sqrt(18)) over Q.", "subject": "abstract_algebra", "A": "0", "B": "4", "C": "2", "D": "6", "answer": "B", "completion": "B"}
{"question": "Let p = (1, 2, 5, 4)(2, 3) in S_5 . Find the index of <p> in S_5.", "subject": "abstract_algebra", "A": "8", "B": "2", "C": "24", "D": "120", "answer": "C", "completion": "C"}
{"question": "Find all zeros in the indicated finite field of the given polynomial with coefficients in that field. x^5 + 3x^3 + x^2 + 2x in Z_5", "subject": "abstract_algebra", "A": "0", "B": "1", "C": "0,1", "D": "0,4", "answer": "D", "completion": "D"}
Al cargar y seleccionar el archivo de evaluación, se devolverá una vista previa de las tres primeras líneas:
Puede elegir los conjuntos de datos cargados previamente existentes o cargar un nuevo conjunto de datos.
Generar respuestas (opcional)
El mensaje que use en la evaluación debe coincidir con el mensaje que planea usar en producción. Estas indicaciones proporcionan las instrucciones para que siga el modelo. De forma similar a las experiencias de parque infantil, puede crear varias entradas para incluir algunos ejemplos de capturas en el mensaje. Para obtener más información, consulte técnicas de ingeniería de avisos para obtener más información sobre algunas técnicas avanzadas en el diseño de avisos y la ingeniería de avisos.
Puede hacer referencia a los datos de entrada dentro de las indicaciones mediante el formato {{input.column_name}}
, donde column_name corresponde a los nombres de las columnas del archivo de entrada.
Se hará referencia a las salidas generadas durante la evaluación en pasos posteriores mediante el formato {{sample.output_text}}
.
Nota:
Debe usar llaves dobles para asegurarse de que hace referencia a los datos correctamente.
Implementación de modelo
Como parte de la creación de evaluaciones, elegirá los modelos que se usarán al generar respuestas (opcionales), así como los modelos que se usarán al evaluar modelos con criterios de prueba específicos.
En Azure OpenAI, asignará implementaciones de modelos específicas para usarlas como parte de las evaluaciones. Puede comparar varias implementaciones mediante la creación de una configuración de evaluación independiente para cada modelo. Esto le permite definir solicitudes específicas para cada evaluación, lo que proporciona un mejor control sobre las variaciones requeridas por diferentes modelos.
Puede evaluar una implementación de modelo base o optimizada. Las implementaciones disponibles en la lista dependen de las que creó en el recurso de Azure OpenAI. Si no encuentra la implementación deseada, puede crear una nueva desde la página Evaluación de OpenAI de Azure.
Criterios de prueba
Los criterios de prueba se usan para evaluar la eficacia de cada salida generada por el modelo de destino. Estas pruebas comparan los datos de entrada con los datos de salida para garantizar la coherencia. Tiene la flexibilidad de configurar diferentes criterios para probar y medir la calidad y relevancia de la salida en distintos niveles.
Introducción
Seleccione Azure OpenAI Evaluation (VERSIÓN PRELIMINAR) en el portal de Azure AI Foundry. Para ver esta vista como una opción, puede que tenga que seleccionar primero un recurso de Azure OpenAI existente en una región admitida.
Seleccione Nueva evaluación
Escriba un nombre de la evaluación. De forma predeterminada, se genera automáticamente un nombre aleatorio a menos que lo edite y lo reemplace. > seleccione Cargar nuevo conjunto de datos.
Seleccione la evaluación que estará en
.jsonl
formato. Si necesita un archivo de prueba de ejemplo, puede guardar estas 10 líneas en un archivo denominadoeval-test.jsonl
:{"input": [{"role": "system", "content": "Provide a clear and concise summary of the technical content, highlighting key concepts and their relationships. Focus on the main ideas and practical implications."}, {"role": "user", "content": "Tokenization is a key step in preprocessing for natural language processing, involving the division of text into smaller components called tokens. These can be words, subwords, or characters, depending on the method chosen. Word tokenization divides text at word boundaries, while subword techniques like Byte Pair Encoding (BPE) or WordPiece can manage unknown words by breaking them into subunits. Character tokenization splits text into individual characters, useful for multiple languages and misspellings. The tokenization method chosen greatly affects model performance and its capacity to handle various languages and vocabularies."}], "output": "Tokenization divides text into smaller units (tokens) for NLP applications, using word, subword (e.g., BPE), or character methods. Each has unique benefits, impacting model performance and language processing capabilities."} {"input": [{"role": "system", "content": "Create a comprehensive yet concise summary that captures the essential technical details and significance of the topic."}, {"role": "user", "content": "Self-attention mechanisms are vital in modern transformer models, allowing them to evaluate the relevance of different parts of an input sequence when processing each element. In self-attention, each position in a sequence learns to focus on all other positions, forming a weighted sum of their values. Attention weights are derived using queries, keys, and values, with compatibility between a query and key determining attention to each value. This mechanism enables capturing long-range dependencies and relationships within a sequence, making it effective for tasks needing context understanding and inter-part relationships."}], "output": "Self-attention is crucial in transformers, enabling each sequence position to evaluate and collect data from all others. It uses queries, keys, and values for attention weights, effectively capturing long-range dependencies and contextual links."} {"input": [{"role": "system", "content": "Synthesize the technical information into a brief, accurate summary that maintains the core concepts and their significance."}, {"role": "user", "content": "The transformer architecture significantly changed natural language processing by introducing a new method for sequence processing. Unlike recurrent neural networks, transformers process whole sequences at once using self-attention. The architecture consists of an encoder and decoder, each with multiple layers of multi-head attention, feed-forward networks, and normalization layers. The encoder processes the input sequence, and the decoder produces the output sequence. Positional encodings are added to retain sequence order information since the model lacks inherent sequence position awareness. This architecture underlies many leading language models like BERT and GPT."}], "output": "Transformers are a transformative neural architecture processing sequences with self-attention instead of recurrence. Their encoder-decoder design, with multi-head attention and position encodings, is fundamental to modern language models like BERT and GPT."} {"input": [{"role": "system", "content": "Distill the technical content into a clear, concise summary that preserves the most important concepts and their practical applications."}, {"role": "user", "content": "Cosine similarity is a metric for measuring similarity between vectors by calculating the cosine of the angle between them. The outcome ranges from -1 to 1, with 1 indicating identical orientation, 0 orthogonality, and -1 opposite orientation. In machine learning and NLP, cosine similarity is useful for comparing document vectors, word embeddings, or any high-dimensional representations. It's often preferred over Euclidean distance because it's invariant to vector magnitude, focusing instead on orientation. This makes it particularly useful for comparing documents or embeddings of various lengths or scales."}], "output": "Cosine similarity evaluates vector similarity by computing their angle's cosine, with values from -1 to 1. It's widely used in ML and NLP for comparing document vectors and embeddings due to its magnitude-invariant nature."} {"input": [{"role": "system", "content": "Provide a succinct summary that captures the key technical concepts and their relationships while maintaining clarity and accuracy."}, {"role": "user", "content": "Neural network activation functions are crucial for introducing non-linearity to deep learning models. Commonly used activation functions include ReLU (Rectified Linear Unit), which outputs the input directly if positive and zero otherwise, sigmoid, which compresses values between 0 and 1, and tanh, which normalizes values between -1 and 1. Each function has specific benefits and applications: ReLU avoids vanishing gradients and enables sparse activation, sigmoid is useful for binary classification, and tanh is often used in hidden layers for its zero-centered output. The activation function choice greatly affects model training dynamics and ultimate performance."}], "output": "Activation functions introduce non-linearity to neural networks, with ReLU, sigmoid, and tanh being the most common. Each serves distinct purposes: ReLU prevents vanishing gradients, sigmoid is suitable for binary classification, and tanh offers zero-centered output, all affecting model performance differently."} {"input": [{"role": "system", "content": "Create a focused summary that emphasizes the main technical concepts and their practical implications while maintaining accuracy."}, {"role": "user", "content": "Batch normalization is a technique that stabilizes and accelerates deep neural network training by normalizing each layer's inputs. It normalizes activations using the mean and variance computed over the current data batch. This normalization reduces internal covariate shift, where the input distribution changes during training. Batch normalization includes learnable parameters (gamma and beta) allowing the network to reverse normalization if necessary. Benefits include enabling higher learning rates, lessening the importance of precise parameter initialization, and serving as a regularizer, potentially removing the need for dropout."}], "output": "Batch normalization stabilizes neural network training by normalizing layer inputs using batch statistics. It addresses internal covariate shift with learnable parameters, allowing higher learning rates and improved training dynamics, while offering regularization benefits."} {"input": [{"role": "system", "content": "Summarize the technical content while preserving the essential concepts and their interconnections, ensuring clarity and precision."}, {"role": "user", "content": "Gradient descent optimization algorithms are foundational to training machine learning models. The basic version updates parameters in the steepest descent direction of the loss function. Variants like Stochastic Gradient Descent (SGD) use random samples to estimate gradients, enhancing computational efficiency. Advanced optimizers like Adam combine momentum (helping overcome local minima) and RMSprop (adapting learning rates for each parameter). These optimizers maintain running averages of gradients and their squares, enabling adaptive learning rates and more efficient training. The optimizer choice can significantly influence model convergence speed and final performance."}], "output": "Gradient descent algorithms optimize ML models by updating parameters based on loss gradients. Variants like SGD use sampling for efficiency, while advanced optimizers like Adam combine momentum with adaptive learning rates for improved training performance."} {"input": [{"role": "system", "content": "Deliver a concise yet comprehensive summary that highlights the key technical aspects and their practical significance."}, {"role": "user", "content": "Cross-validation is a resampling method used to evaluate machine learning models on limited data. The most common form, k-fold cross-validation, involves dividing the dataset into k equal parts, training the model on k-1 folds while validating on the remaining fold, and rotating through all combinations. This provides a more robust model performance assessment than a single train-test split, helping detect overfitting and estimate model generalization to unseen data. Variations include stratified k-fold (maintaining class distribution), leave-one-out (k equals dataset size), and time series cross-validation for temporal data."}], "output": "Cross-validation evaluates ML models by training and testing on different data splits, typically using k-fold methodology. This approach offers better performance assessment than single splits, with variations for different data types and requirements."} {"input": [{"role": "system", "content": "Generate a clear and focused summary that captures the essential technical details while maintaining their relationships and significance."}, {"role": "user", "content": "Transfer learning is a machine learning method where a model developed for one task is reused as the starting point for a model on a second task. This approach is powerful in deep learning, where pre-trained models on large datasets (like ImageNet for computer vision or BERT for NLP) are fine-tuned on specific downstream tasks. Transfer learning reduces the need for large amounts of task-specific training data and computational resources, as the model has already learned useful features from the source domain. Common strategies include feature extraction (freezing pre-trained layers) and fine-tuning (updating all or some pre-trained weights)."}], "output": "Transfer learning reuses models trained on one task for different tasks, particularly effective in deep learning. It leverages pre-trained models through feature extraction or fine-tuning, reducing data and computational needs for new tasks."} {"input": [{"role": "system", "content": "Provide a precise and informative summary that distills the key technical concepts while maintaining their relationships and practical importance."}, {"role": "user", "content": "Ensemble methods combine multiple machine learning models to create a more robust and accurate predictor. Common techniques include bagging (training models on random data subsets), boosting (sequentially training models to correct earlier errors), and stacking (using a meta-model to combine base model predictions). Random Forests, a popular bagging method, create multiple decision trees using random feature subsets. Gradient Boosting builds trees sequentially, with each tree correcting the errors of previous ones. These methods often outperform single models by reducing overfitting and variance while capturing different data aspects."}], "output": "Ensemble methods enhance prediction accuracy by combining multiple models through techniques like bagging, boosting, and stacking. Popular implementations include Random Forests (using multiple trees with random features) and Gradient Boosting (sequential error correction), offering better performance than single models."}
Verá las tres primeras líneas del archivo como versión preliminar:
Seleccione el botón de alternancia para Generar respuestas. Seleccione
{{item.input}}
en la lista desplegable. Esto insertará los campos de entrada de nuestro archivo de evaluación en solicitudes individuales para una nueva ejecución de modelo que queremos poder comparar con nuestro conjunto de datos de evaluación. El modelo tomará esa entrada y generará sus propias salidas únicas que, en este caso, se almacenarán en una variable denominada{{sample.output_text}}
. Después, usaremos ese texto de salida de ejemplo más adelante como parte de nuestros criterios de prueba. Como alternativa, puede proporcionar manualmente su propio mensaje del sistema personalizado y ejemplos de mensajes individuales.Seleccione el modelo que desea generar respuestas en función de la evaluación. Si no tiene un modelo, puede crear uno. Para este ejemplo, usamos una implementación estándar de
gpt-4o-mini
.El símbolo configuración/sprocket controla los parámetros básicos que se pasan al modelo. Solo se admiten los parámetros siguientes en este momento:
- Temperatura
- Longitud máxima
- P superior
La longitud máxima se limita actualmente a 2048, independientemente del modelo que seleccione.
Seleccione Agregar criterios de prueba seleccione Agregar.
Seleccione Similitud semántica> en Comparar
{{item.output}}
en Con agregar{{sample.output_text}}
. Esto tomará la salida de referencia original del archivo de.jsonl
evaluación y la comparará con la salida que se generará al proporcionar las indicaciones del modelo en función de la{{item.input}}
.Seleccione Agregar> en este momento puede agregar criterios de prueba adicionales o seleccionar Crear para iniciar la ejecución del trabajo de evaluación.
Una vez que seleccione Crear se le mostrará una página de estado para el trabajo de evaluación.
Una vez creado el trabajo de evaluación, puede seleccionar el trabajo para ver los detalles completos del trabajo:
Para la similitud semántica Ver detalles de salida contiene una representación JSON que puede copiar o pegar de las pruebas superadas.
Detalles de los criterios de prueba
Azure OpenAI Evaluation ofrece varias opciones de criterios de prueba. En la sección siguiente se proporcionan detalles adicionales sobre cada opción.
Fáctica
Evalúa la precisión fáctica de una respuesta enviada comparándola con una respuesta experta.
La realidad fáctica evalúa la precisión fáctica de una respuesta enviada comparandola con una respuesta experta. Utilizando un aviso detallado de cadena de pensamiento (CoT), el calificador determina si la respuesta enviada es coherente con, un subconjunto de, un superconjunto de o en conflicto con la respuesta del experto. Ignora las diferencias de estilo, gramática o puntuación, centrándose únicamente en el contenido fáctico. La realidad fáctica puede ser útil en muchos escenarios, entre los que se incluyen, entre otros, la verificación de contenido y las herramientas educativas, lo que garantiza la precisión de las respuestas proporcionadas por la inteligencia artificial.
Puede ver el texto del mensaje que se usa como parte de estos criterios de prueba seleccionando la lista desplegable situada junto al símbolo del sistema. El texto del mensaje actual es:
Prompt
You are comparing a submitted answer to an expert answer on a given question.
Here is the data:
[BEGIN DATA]
************
[Question]: {input}
************
[Expert]: {ideal}
************
[Submission]: {completion}
************
[END DATA]
Compare the factual content of the submitted answer with the expert answer. Ignore any differences in style, grammar, or punctuation.
The submitted answer may either be a subset or superset of the expert answer, or it may conflict with it. Determine which case applies. Answer the question by selecting one of the following options:
(A) The submitted answer is a subset of the expert answer and is fully consistent with it.
(B) The submitted answer is a superset of the expert answer and is fully consistent with it.
(C) The submitted answer contains all the same details as the expert answer.
(D) There is a disagreement between the submitted answer and the expert answer.
(E) The answers differ, but these differences don't matter from the perspective of factuality.
Similitud semántica
Mide el grado de similitud entre la respuesta del modelo y la referencia. Grades: 1 (completely different) - 5 (very similar)
.
Sentimiento
Intenta identificar el tono emocional de la salida.
Puede ver el texto del mensaje que se usa como parte de estos criterios de prueba seleccionando la lista desplegable situada junto al símbolo del sistema. El texto del mensaje actual es:
Prompt
You will be presented with a text generated by a large language model. Your job is to rate the sentiment of the text. Your options are:
A) Positive
B) Neutral
C) Negative
D) Unsure
[BEGIN TEXT]
***
[{text}]
***
[END TEXT]
First, write out in a step by step manner your reasoning about the answer to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character (without quotes or punctuation) on its own line corresponding to the correct answer. At the end, repeat just the letter again by itself on a new line
Comprobación de cadenas
Comprueba si la salida coincide exactamente con la cadena esperada.
La comprobación de cadenas realiza varias operaciones binarias en dos variables de cadena, lo que permite diversos criterios de evaluación. Ayuda a comprobar varias relaciones de cadena, incluida la igualdad, la contención y los patrones específicos. Este evaluador permite comparaciones que distinguen mayúsculas de minúsculas o que no distinguen mayúsculas de minúsculas. También proporciona calificaciones especificadas para resultados verdaderos o falsos, lo que permite resultados de evaluación personalizados en función del resultado de la comparación. Este es el tipo de operaciones admitidas:
equals
: Comprueba si la cadena de salida es exactamente igual a la cadena de evaluación.contains
: Comprueba si la cadena de evaluación es una subcadena de cadena de salida.starts-with
: Comprueba si la cadena de salida comienza con la cadena de evaluación.ends-with
: Comprueba si la cadena de salida termina con la cadena de evaluación.
Nota:
Al establecer determinados parámetros en los criterios de prueba, tiene la opción de elegir entre la variable y la plantilla. Seleccione variable si desea hacer referencia a una columna en los datos de entrada. Elija plantilla si desea proporcionar una cadena fija.
JSON o XML válidos
Comprueba si la salida es JSON o XML válidas.
Coincide con el esquema
Garantiza que la salida sigue la estructura especificada.
Coincidencia de criterios
Evalúe si la respuesta del modelo coincide con los criterios. Grado: Pase o produzca un error.
Puede ver el texto del mensaje que se usa como parte de estos criterios de prueba seleccionando la lista desplegable situada junto al símbolo del sistema. El texto del mensaje actual es:
Prompt
Your job is to assess the final response of an assistant based on conversation history and provided criteria for what makes a good response from the assistant. Here is the data:
[BEGIN DATA]
***
[Conversation]: {conversation}
***
[Response]: {response}
***
[Criteria]: {criteria}
***
[END DATA]
Does the response meet the criteria? First, write out in a step by step manner your reasoning about the criteria to be sure that your conclusion is correct. Avoid simply stating the correct answers at the outset. Then print only the single character "Y" or "N" (without quotes or punctuation) on its own line corresponding to the correct answer. "Y" for yes if the response meets the criteria, and "N" for no if it does not. At the end, repeat just the letter again by itself on a new line.
Reasoning:
Calidad del texto
Evalúe la calidad del texto comparando con el texto de referencia.
Resumen:
- Puntuación de BLEU: Evalúa la calidad del texto generado comparando con una o varias traducciones de referencia de alta calidad mediante la puntuación BLEU.
- Puntuación de ROUGE: Evalúa la calidad del texto generado comparándolo con resúmenes de referencia mediante puntuaciones ROUGE.
- Coseno: También conocido como similitud de coseno mide la similitud semántica entre ellos dos incrustaciones de texto, como salidas del modelo y textos de referencia, lo que ayuda a evaluar la similitud semántica entre ellos. Esto se hace midiendo su distancia en el espacio vectorial.
Detalles:
La puntuación de BLEU (BiLingual Evaluation Understudy) se usa normalmente en el procesamiento de lenguaje natural (NLP) y la traducción automática. Se usa ampliamente en los casos de uso de resumen de texto y generación de texto. Evalúa el modo en que el texto generado coincide con el texto de referencia. La puntuación de BLEU oscila entre 0 y 1, con puntuaciones más altas que indican una mejor calidad.
ROUGE (Recall-Oriented Understudy for Gisting Evaluation) es un conjunto de métricas utilizadas para evaluar el resumen automático y la traducción automática. Mide la superposición entre el texto generado y los resúmenes de referencia. ROUGE se centra en las medidas orientadas a la recuperación para evaluar la forma en que el texto generado cubre el texto de referencia. La puntuación rouge proporciona varias métricas, como: • ROUGE-1: Superposición de unigramas (palabras simples) entre texto generado y de referencia. • ROUGE-2: Superposición de bigramas (dos palabras consecutivas) entre texto generado y de referencia. • ROUGE-3: Superposición de trigramas (tres palabras consecutivas) entre texto generado y de referencia. • ROUGE-4: Superposición de cuatro gramos (cuatro palabras consecutivas) entre texto generado y de referencia. • ROUGE-5: Superposición de cinco gramos (cinco palabras consecutivas) entre texto generado y de referencia. • ROUGE-L: Superposición de L-gramas (L palabras consecutivas) entre texto generado y de referencia. El resumen de texto y la comparación de documentos se encuentran entre los casos de uso óptimos para ROUGE, especialmente en escenarios en los que la coherencia y la relevancia del texto son fundamentales.
La similitud de coseno mide la estrecha relación entre dos incrustaciones de texto, como las salidas del modelo y los textos de referencia, lo que ayuda a evaluar la similitud semántica entre ellas. Igual que otros evaluadores basados en modelos, debe proporcionar una implementación de modelos mediante para la evaluación.
Importante
Solo se admiten modelos de inserción para este evaluador:
text-embedding-3-small
text-embedding-3-large
text-embedding-ada-002
Solicitud personalizada
Usa el modelo para clasificar la salida en un conjunto de etiquetas especificadas. Este evaluador usa un símbolo del sistema personalizado que deberá definir.