En este documento, se describe cómo usar el optimizador de instrucciones de Vertex AI para optimizar automáticamente el rendimiento de las instrucciones mejorando las instrucciones del sistema para un conjunto de instrucciones.
El optimizador de instrucciones de Vertex AI puede ayudarte a mejorar tus instrucciones rápidamente a gran escala, sin tener que volver a escribir instrucciones del sistema ni instrucciones individuales de forma manual. Esto es especialmente útil cuando deseas usar indicaciones e instrucciones del sistema que se escribieron para un modelo con uno diferente.
El optimizador de instrucciones de Vertex AI ayuda a mejorar las instrucciones evaluando la respuesta del modelo a instrucciones de muestra en función de las métricas de evaluación especificadas. Para usar el optimizador de instrucciones de Vertex AI, debes tener lo siguiente:
- Un conjunto de instrucciones de muestra
- Instrucciones del sistema que usan todas tus instrucciones de muestra
- Una plantilla de instrucción que hace referencia a tus instrucciones de muestra
Ejemplo de optimización de instrucciones
Por ejemplo, para optimizar las instrucciones del sistema para un conjunto de instrucciones que hacen referencia a información contextual para responder preguntas sobre la cocina, puedes usar el optimizador de instrucciones de Vertex AI. Para completar esta tarea, debes preparar entradas similares a las siguientes:
Instrucciones del sistema
You are a professional chef. Your goal is teaching how to cook healthy cooking recipes to your apprentice. Given a question from your apprentice and some context, provide the correct answer to the question. Use the context to return a single and correct answer with some explanation.
Plantilla de instrucciones
Question: {input_question} Facts: {input_context}
Ejemplos de instrucciones
input_question |
input_context |
---|---|
¿Cuáles son algunas técnicas para cocinar carne roja y de cerdo que maximicen el sabor y la blandura y, al mismo tiempo, minimicen la formación de compuestos no saludables? | La carne roja y de cerdo deben cocinarse a una temperatura interna de 63 grados centígrados (145 grados Fahrenheit) para garantizar la seguridad. Marinar la carne en ingredientes ácidos, como jugo de limón o vinagre, puede ayudar a ablandarla, ya que descompone las fibras musculares duras. Los métodos de cocción a alta temperatura, como la parrilla y la sartén, pueden crear un dorado y una caramelización deliciosos, pero es importante evitar que se quemen, ya que pueden producir compuestos dañinos. |
¿Cuáles son algunas formas creativas de agregar sabor y nutrición a los batidos de proteínas sin usar azúcares agregados ni ingredientes artificiales? | Agregar verduras de hoja verde, como espinaca o col rizada, es una excelente manera de aumentar el valor nutricional de tu batido sin alterar drásticamente el sabor. El uso de leche de almendras sin endulzar o agua de coco en lugar de leche común puede agregar un sabor dulce sutil y un aumento de grasas saludables o electrolitos, respectivamente. ¿Sabías que si bates demasiado el batido, se puede calentar? Para mantener la frescura, bate en intervalos más cortos y dale un descanso a la licuadora si es necesario. |
Cómo funciona la optimización
Después de preparar tus entradas, eliges un modo de optimización, una métrica de evaluación y un modelo objetivo.
- Modo de optimización: Especifica si el optimizador de instrucciones de Vertex AI optimiza las instrucciones del sistema, selecciona instrucciones de muestra para agregarlas a las instrucciones del sistema como ejemplos de pocas tomas o ambas.
- Métrica de evaluación: Es la métrica que usa el optimizador de instrucciones de Vertex AI para optimizar las instrucciones del sistema o seleccionar instrucciones de muestra.
- Modelo de destino: el modelo de Google con el que el optimizador de instrucciones de Vertex AI optimiza las instrucciones del sistema o selecciona instrucciones de muestra para usarlo.
Cuando ejecutas el optimizador de instrucciones de Vertex AI, este optimiza las instrucciones del sistema según tus selecciones mediante la ejecución de un trabajo de entrenamiento personalizado en el que evalúa de forma iterativa tus instrucciones de muestra y reescribe las instrucciones del sistema para encontrar la versión que produce la mejor puntuación de evaluación para el modelo objetivo.
Al final de la tarea, el optimizador de instrucciones de Vertex AI genera las instrucciones del sistema optimizadas con su puntuación de evaluación.
Instrucciones del sistema optimizadas
As a highly skilled chef with a passion for healthy cooking, you love sharing your knowledge with aspiring chefs. Today, a culinary intern approaches you with a question about healthy cooking. Given the intern's question and some facts, provide a clear, concise, and informative answer that will help the intern excel in their culinary journey.
Modelos compatibles
Puedes optimizar las instrucciones del sistema para usarlas con los siguientes modelos:
Métricas de evaluación admitidas
El optimizador de instrucciones de Vertex AI admite métricas de evaluación personalizadas y, además, las siguientes métricas de evaluación:
Tipo de métrica | Caso de uso | Métrica | Descripción |
---|---|---|---|
Basado en modelos | Resúmenes | summarization_quality |
Describe la capacidad del modelo para responder preguntas con un cuerpo de texto al cual hacer referencia. |
Búsqueda de respuestas | question_answering_correctness * |
Describe la capacidad del modelo para responder correctamente una pregunta. | |
question_answering_quality |
Describe la capacidad del modelo para responder preguntas con un cuerpo de texto al cual hacer referencia. | ||
Coherencia | coherence |
Describe la capacidad del modelo para proporcionar una respuesta coherente y mide cuán bien el texto generado fluye de forma lógica y tiene sentido. | |
Seguridad | safety |
Describe el nivel de seguridad del modelo, es decir, si la respuesta contiene texto no seguro. | |
Fluidez | fluency |
Describe el dominio del idioma del modelo. | |
Fundamentación | groundedness |
Describe la capacidad del modelo de proporcionar o hacer referencia a información incluida solo en el texto de entrada. | |
Basada en procesamiento | Uso de herramientas y llamadas a funciones | tool_call_valid * |
Describe la capacidad del modelo para predecir una llamada a la herramienta válida. |
tool_name_match * |
Describe la capacidad del modelo de predecir una llamada a la herramienta con el nombre correcto de la herramienta. Solo se inspecciona la primera llamada a la herramienta. | ||
tool_parameter_key_match * |
Describe la capacidad del modelo para predecir una llamada a la herramienta con los nombres de parámetros correctos. | ||
tool_parameter_kv_match * |
Describe la capacidad del modelo de predecir una llamada a la herramienta con los nombres de parámetros y los valores de clave correctos. | ||
Generación de texto general | bleu * |
Contiene el resultado de un algoritmo para evaluar la calidad de la predicción, que se tradujo de un lenguaje natural a otro. La calidad de la predicción se considera la correspondencia entre un parámetro de predicción y su parámetro de referencia. | |
exact_match * |
Calcula si un parámetro de predicción coincide exactamente con un parámetro de referencia. | ||
rouge_1 * |
Se usa para comparar el parámetro de predicción proporcionado con un parámetro de referencia. | ||
rouge_2 * |
|||
rouge_l * |
|||
rouge_l_sum * |
* Si deseas optimizar tus instrucciones con las evaluaciones question_answering_correctness
o basadas en el procesamiento, debes hacer una de las siguientes acciones:
- Agrega una variable que represente la respuesta de verdad fundamental de tus instrucciones a la plantilla de instrucciones.
- Si no tienes respuestas de verdad fundamental para tus instrucciones, pero anteriormente
las usaste con un modelo de Google y conseguiste los resultados segmentados, puedes agregar el parámetro
source_model
a tu configuración en lugar de agregar respuestas de verdad fundamental. Cuando se establece el parámetrosource_model
, Vertex AI ejecuta tus instrucciones de muestra en el modelo de origen para generar las respuestas de verdad fundamental por ti.
Antes de comenzar
-
Para garantizar que la cuenta de servicio predeterminada de Compute Engine tenga los permisos necesarios para optimizar las instrucciones, pídele a tu administrador que otorgue a la cuenta de servicio predeterminada de Compute Engine los siguientes roles de IAM en el proyecto:
-
Usuario de Vertex AI (
roles/aiplatform.user
) -
Administrador de objetos de Storage (
roles/storage.objectAdmin
) -
Lector de Artifact Registry (
roles/artifactregistry.reader
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Es posible que tu administrador también pueda otorgarle los permisos necesarios al agente de servicio de Compute Engine mediante roles personalizados o cualquier otro rol predefinido.
-
Usuario de Vertex AI (
En la siguiente tabla, se incluyen los modelos que requieren una cuota de consultas por minuto (QPM) y el QPM recomendado para cada modelo. Si tienes una cuota de QPM inferior a la recomendada, es posible que el optimizador de instrucciones de Vertex AI se ejecute más lento de lo esperado. Si configuras el optimizador de instrucciones de Vertex AI con un QPM superior al que tienes acceso, la tarea fallará. Si no tienes suficiente cuota para ejecutar el optimizador de instrucciones de Vertex AI, puedes solicitar un aumento de cuota.
Modelo Descripción Cuota mínima de QPM Cuota de QPM recomendada Modelo objetivo El modelo cuyas instrucciones deseas optimizar. 200 QPM 500+ QPM gemini-1.5-pro-001
Es el modelo que usa el optimizador de instrucciones de Vertex AI para reescribir y evaluar instrucciones. 200 QPM 500+ QPM
Optimiza las instrucciones
Para optimizar las instrucciones, ejecuta el notebook del optimizador de instrucciones de Vertex AI o usa la API de Vertex AI. Para optimizar las instrucciones, elige el método que quieres usar para ejecutar el optimizador de instrucciones de Vertex AI y, luego, completa los pasos que se describen en detalle en las siguientes secciones:
- Crea una plantilla de instrucciones y del sistema
- Prepara instrucciones de muestra
- Cree una configuración
- Ejecuta el trabajo de optimización de instrucciones
- Analiza los resultados y realiza iteraciones
Crea una plantilla de instrucciones y del sistema
Las plantillas de instrucciones definen el formato de todas tus instrucciones a través de variables reemplazables. Cuando usas una plantilla de instrucción para optimizar las instrucciones, las variables se reemplazan por los datos del conjunto de datos de la instrucción.
Las variables de la plantilla de instrucciones deben cumplir con los siguientes requisitos:
- Las variables deben incluirse entre llaves
- Los nombres de las variables no deben contener espacios
Las variables que representan entradas multimodales deben incluir la cadena
MIME_TYPE
después de la variable:@@@MIME_TYPE
Reemplaza
MIME_TYPE
por un tipo de MIME de imagen, video, audio o documento que admita el modelo de destino.
Crea una plantilla de instrucciones y del sistema con uno de los siguientes métodos:
Notebook
Si quieres ejecutar el optimizador de instrucciones de Vertex AI a través del notebook, crea instrucciones del sistema y una plantilla de instrucción siguiendo estos pasos:
En Colab Enterprise, abre el notebook del optimizador de instrucciones de Vertex AI.
Ir al notebook del optimizador de instrucciones de Vertex AI
En la sección Crea una plantilla de instrucciones y del sistema, haz lo siguiente:
En el campo SYSTEM_INSTRUCTION, ingresa las instrucciones del sistema. Por ejemplo:
Based on the following images and articles respond to the questions.'\n' Be concise, and answer \"I don't know\" if the response cannot be found in the provided articles or images.
En el campo PROMPT_TEMPLATE, ingresa la plantilla de instrucción. Por ejemplo:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}
Si deseas optimizar tus instrucciones con las evaluaciones
question_answering_correctness
o basadas en el procesamiento, debes hacer una de las siguientes acciones:
Agrega la variable
{target}
a la plantilla de instrucción para representar la respuesta de verdad fundamental de la instrucción. Por ejemplo:Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}\n\n Answer: {target}
Si no tienes respuestas de verdad absoluta para tus instrucciones, pero las usaste con un modelo de Google y lograste los resultados segmentados, puedes agregar el parámetro
source_model
a tu configuración en lugar de agregar respuestas de verdad absoluta. Cuando se establece el parámetrosource_model
, el optimizador de instrucciones de Vertex AI ejecuta tus instrucciones de muestra en el modelo de origen para generar las respuestas de verdad fundamental por ti.
SDK
Si deseas ejecutar el optimizador de instrucciones de Vertex AI a través del SDK sin usar el notebook, crea archivos de texto para tu plantilla de instrucción y las instrucciones del sistema. Para ello, sigue estos pasos:
Crea un archivo de texto para las instrucciones del sistema.
En el archivo de texto, define las instrucciones del sistema. Por ejemplo:
Based on the following images and articles respond to the questions.'\n' Be concise, and answer \"I don't know\" if the response cannot be found in the provided articles or images.
Crea un archivo de texto para tu plantilla de instrucción.
En el archivo de texto, define una plantilla de instrucción que incluya una o más variables. Por ejemplo:
Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}
Si deseas optimizar tus instrucciones con las evaluaciones
question_answering_correctness
o basadas en el procesamiento, debes hacer una de las siguientes acciones:Agrega la variable
{target}
a la plantilla de instrucción para representar la respuesta de verdad fundamental de la instrucción. Por ejemplo:Article 1:\n\n{article_1}\n\nImage 1:\n\n{image_1} @@@image/jpeg\n\nQuestion: {question}\n\n Answer: {target}
Si no tienes respuestas de verdad absoluta para tus instrucciones, pero las usaste con un modelo de Google y lograste los resultados segmentados, puedes agregar el parámetro
source_model
a tu configuración en lugar de agregar respuestas de verdad absoluta. Cuando se establece el parámetrosource_model
, el optimizador de instrucciones de Vertex AI ejecuta tus instrucciones de muestra en el modelo de origen para generar las respuestas de verdad fundamental por ti.
Prepara instrucciones de ejemplo
Para obtener los mejores resultados del optimizador de instrucciones de Vertex AI, usa entre 50 y 100 instrucciones de muestra.
- La herramienta puede ser eficaz con tan solo 5 instrucciones de muestra.
- Los mejores ejemplos incluyen aquellos en los que el modelo de destino tiene un rendimiento deficiente.
Las instrucciones de muestra contienen los datos que reemplazan a las variables en la plantilla de instrucciones. Puedes usar un archivo JSONL o CSV para almacenar tus instrucciones de muestra.
Archivo JSONL
- Crea un archivo JSONL.
En el archivo JSONL, agrega los datos de la instrucción que reemplazan cada variable. Por ejemplo:
{"article_1": "The marine life …", "image_1": "gs://path_to_image", "Question": "What are some most effective ways to reduce ocean pollution?", "target": "The articles and images don't answer this question."} {"article_1": "During the year …", "image_1": "gs://path_to_image", "Question": "Who was the president in 2023?", "target": "Joe Biden"}
Archivo CSV
- Crea un archivo CSV.
- En la primera fila, agrega las variables de la plantilla de instrucciones.
- En las siguientes filas, agrega los datos de muestra que reemplazan cada variable.
- Sube el archivo CSV a un bucket de Cloud Storage.
Cree una configuración
La configuración del optimizador de instrucciones de Vertex AI especifica los parámetros que deseas establecer para tu trabajo de optimización de instrucciones, incluidos los siguientes:
- Modo de optimización: Especifica si el optimizador de instrucciones de Vertex AI optimiza las instrucciones del sistema, selecciona instrucciones de muestra para agregarlas a las instrucciones del sistema como ejemplos de pocas tomas o ambas.
- Métrica de evaluación: Es la métrica que usa el optimizador de instrucciones de Vertex AI para optimizar las instrucciones del sistema o seleccionar instrucciones de muestra.
- Modelo de destino: el modelo de Google con el que el optimizador de instrucciones de Vertex AI optimiza las instrucciones del sistema o selecciona instrucciones de muestra para usarlo.
Crea una configuración con una de las siguientes opciones:
Notebook
Si quieres ejecutar el optimizador de instrucciones de Vertex AI a través del notebook, crea una configuración de la siguiente manera:
En Colab Enterprise, abre el notebook del optimizador de instrucciones de Vertex AI.
Ir al notebook del optimizador de instrucciones de Vertex AI
En la sección Configuración del proyecto, haz lo siguiente:
- En el campo PROJECT_ID, ingresa tu ID del proyecto.
- En el campo LOCATION, ingresa la ubicación en la que quieres ejecutar el Optimizador de instrucciones de Vertex AI.
- En el campo OUTPUT_PATH, ingresa el URI del bucket de Cloud Storage en el que deseas que el optimizador de instrucciones de Vertex AI escriba las instrucciones del sistema optimizadas o los ejemplos de pocas imágenes.
Por ejemplo,
gs://bucket-name/output-path
- En el campo INPUT_PATH, ingresa el URI de las instrucciones de muestra en tu bucket de Cloud Storage. Por ejemplo,
gs://bucket-name/sample-prompts.jsonl
En la sección Configurar la configuración de optimización, haz lo siguiente:
- En el campo TARGET_MODEL, ingresa el modelo con el que deseas optimizar las instrucciones para usarlas.
- En OPTIMIZATION_MODE, ingresa el modo de optimización que deseas usar. Debe ser
instruction
,demonstration
oinstruction_and_demo
. - En el campo EVAL_METRIC, ingresa la métrica de evaluación para la que deseas optimizar tus instrucciones.
- Opcional: En el campo SOURCE_MODEL, ingresa el modelo de Google con el que se usaron anteriormente las instrucciones y las indicaciones del sistema. Cuando se configura el parámetro
source_model
, el optimizador de instrucciones de Vertex AI ejecuta tus instrucciones de muestra en el modelo de origen para generar las respuestas de verdad fundamental por ti, para las métricas de evaluación que requieren respuestas de verdad fundamental. Si no ejecutaste tus instrucciones con un modelo de Google o no lograste los resultados esperados, agrega respuestas de verdad a tu instrucción. Para obtener más información, consulta la sección Crea una instrucción y las instrucciones del sistema de este documento.
Opcional: En la sección Configurar la configuración de optimización avanzada, también puedes agregar cualquiera de los parámetros opcionales a tu configuración.
- En el campo NUM_INST_OPTIMIZATION_STEPS, ingresa la cantidad de iteraciones que usa el optimizador de instrucciones de Vertex AI en el modo de optimización de instrucciones. El tiempo de ejecución aumenta de manera lineal a medida que aumentas este valor. Debe ser un número entero entre
10
y20
. Si no se configura, el valor predeterminado es10
. - En el campo NUM_TEMPLATES_PER_STEP, ingresa la cantidad de instrucciones del sistema que genera y evalúa el optimizador de instrucciones de Vertex AI. Se usa con el modo de optimización
instruction
yinstruction_and_demo
. Debe ser un número entero entre1
y4
. Si no se configura, el valor predeterminado es2
. - En el campo NUM_DEMO_OPTIMIZATION_STEPS, ingresa la cantidad de demostraciones que evalúa el optimizador de instrucciones de Vertex AI.
Se usa con el modo de optimización
demonstration
yinstruction_and_demo
. Debe ser un número entero entre10
y30
. Si no se configura, el valor predeterminado es10
. - En el campo NUM_DEMO_PER_PROMPT, ingresa la cantidad de demostraciones generadas por instrucción. Debe ser un número entero entre
3
y6
. Si no se configura, el valor predeterminado es3
. - En el campo TARGET_MODEL_QPS, ingresa las consultas por segundo (QPS) que el optimizador de instrucciones de Vertex AI envía al modelo de destino.
El tiempo de ejecución disminuye de forma lineal a medida que aumentas este valor. Debe ser un número de punto flotante que sea
3.0
o mayor, pero menor que la cuota de QPS que tienes en el modelo de destino. Si no se configura, el valor predeterminado es3.0
. - En el campo SOURCE_MODEL_QPS, ingresa las consultas por segundo (QPS) que el optimizador de instrucciones de Vertex AI envía al modelo de origen. Debe ser un número de punto flotante que sea
3.0
o mayor, pero menor que la cuota de QPS que tienes en el modelo de origen. Si no se configura, el valor predeterminado es3.0
. - En el campo EVAL_QPS, ingresa las consultas por segundo (QPS) que el optimizador de instrucciones de Vertex AI envía al modelo de evaluación,
gemini-1.5-pro
.- Para las métricas basadas en modelos, debe ser un número de punto flotante que sea
3.0
o superior, pero menor que la cuota que tienes paragemini-1.5-pro
. Si no se configura, el valor predeterminado es3.0
. - Para las métricas personalizadas, debe ser un número de punto flotante igual o mayor que
3.0
. Esto determina la frecuencia con la que el optimizador de instrucciones de Vertex AI llama a tus funciones de Cloud Run de métricas personalizadas.
- Para las métricas basadas en modelos, debe ser un número de punto flotante que sea
- Si quieres usar más de una métrica de evaluación, haz lo siguiente:
- En el campo EVAL_METRIC_1, ingresa una métrica de evaluación que desees usar.
- En el campo EVAL_METRIC_1_WEIGHT, ingresa el valor que quieres que use el optimizador de instrucciones de Vertex AI cuando ejecute la optimización.
- En el campo EVAL_METRIC_2, ingresa una métrica de evaluación que desees usar.
- En el campo EVAL_METRIC_2_WEIGHT, ingresa el valor de ponderación que quieres que use el optimizador de instrucciones de Vertex AI cuando ejecute la optimización.
- De manera opcional, en el campo EVAL_METRIC_3, ingresa una métrica de evaluación que desees usar.
- En el campo EVAL_METRIC_3_WEIGHT, ingresa lo siguiente de forma opcional:
- En el campo METRIC_AGGREGATION_TYPE, ingresa el valor que deseas que use el optimizador de instrucciones de Vertex AI cuando ejecute la optimización.
- En el campo PLACEHOLDER_TO_VALUE, ingresa la información que reemplazará cualquier variable en las instrucciones del sistema. El optimizador de instrucciones de Vertex AI no optimiza la información incluida en esta marca.
- En el campo RESPONSE_MIME_TYPE, ingresa el tipo de respuesta MIME que usa el modelo de destino. Debe ser
text/plain
oapplication/json
. Si no se configura, el valor predeterminado estext/plain
. - En el campo TARGET_LANGUAGE, ingresa el idioma de las instrucciones del sistema. Si no se configura, el valor predeterminado es inglés.
SDK
Si deseas ejecutar el optimizador de instrucciones de Vertex AI a través del notebook, crea un archivo JSON con los parámetros que deseas usar para optimizar las instrucciones. Para ello, haz lo siguiente:
Crea un archivo JSON con los parámetros que deseas usar para optimizar tus instrucciones. Cada archivo de configuración requiere los siguientes parámetros:
{ "project": "PROJECT_ID", "system_instruction_path": "SYSTEM_INSTRUCTION_PATH", "prompt_template_path": "PROMPT_TEMPLATE_PATH", "target_model": "TARGET_MODEL", "eval_metric": "EVALUATION_METRIC" "optimization_mode": "OPTIMIZATION_MODE", "input_data_path": "SAMPLE_PROMPT_URI", "output_path": "OUTPUT_URI" }
Reemplaza lo siguiente:
PROJECT_ID
: el ID de tu proyectoSYSTEM_INSTRUCTION_PATH
: Es el URI de las instrucciones del sistema en tu bucket de Cloud Storage. Por ejemplo,gs://bucket-name/system-instruction.txt
PROMPT_TEMPLATE
: Es el URI de la plantilla de instrucción en tu bucket de Cloud Storage. Por ejemplo:gs://bucket-name/prompt-template.txt
.TARGET_MODEL
: El modelo con el que deseas optimizar las instrucciones para usarlas.EVALUATION_METRIC
: Es la métrica de evaluación para la que deseas optimizar tus instrucciones.OPTIMIZATION_MODE
: Es el modo de optimización. Debe serinstruction
,demonstration
oinstruction_and_demo
.SAMPLE_PROMPT_URI
: Es el URI de las instrucciones de muestra en tu bucket de Cloud Storage. Por ejemplo,gs://bucket-name/sample-prompts.jsonl
OUTPUT_URI
: Es el URI del bucket de Cloud Storage en el que deseas que el optimizador de instrucciones de Vertex AI escriba las instrucciones del sistema optimizadas o los ejemplos de pocas imágenes. Por ejemplo,gs://bucket-name/output-path
Además, puedes agregar cualquiera de los parámetros opcionales a tu archivo de configuración.
Los parámetros opcionales se dividen en 5 categorías:
- Parámetros del proceso de optimización. Estos parámetros controlan el proceso de optimización general, incluida su duración y la cantidad de iteraciones de optimización que ejecuta, lo que afecta directamente la calidad de las optimizaciones.
- Parámetros de selección de modelos y ubicación. Estos parámetros especifican qué modelos usa el optimizador de instrucciones de Vertex AI y las ubicaciones en las que usa esos modelos.
- Parámetros de latencia (QPS). Estos parámetros controlan la QPS, lo que afecta la velocidad del proceso de optimización.
- Métricas de evaluación. Estos parámetros definen cómo se evalúan las instrucciones optimizadas.
- Otro. Otros parámetros que controlan la estructura y el contenido de las instrucciones
Cómo ver los parámetros opcionales
"num_steps": NUM_INST_OPTIMIZATION_STEPS, "num_template_eval_per_step": NUM_TEMPLATES_PER_STEP, "num_demo_set_candidates": "NUM_DEMO_OPTIMIZATION_STEPS, "demo_set_size": NUM_DEMO_PER_PROMPT, "target_model_location": "TARGET_MODEL_LOCATION", "source_model": "SOURCE_MODEL", "source_model_location": "SOURCE_MODEL_LOCATION", "target_model_qps": TARGET_MODEL_QPS, "eval_qps": EVAL_QPS, "source_model_qps": SOURCE_MODEL_QPS, "eval_metrics_types": [EVALUATION_METRIC_LIST], "eval_metrics_weights": [EVAL_METRICS_WEIGHTS], "aggregation_type": "METRIC_AGGREGATION_TYPE", "response_mime_type": "RESPONSE_MIME_TYPE", "language": "TARGET_LANGUAGE", "placeholder_to_content": "PLACEHOLDER_TO_CONTENT", "data_limit": DATA_LIMIT
Reemplaza lo siguiente:
Parámetros del proceso de optimización:
NUM_INST_OPTIMIZATION_STEPS
: Es la cantidad de iteraciones que usa el optimizador de instrucciones de Vertex AI en el modo de optimización de instrucciones. El tiempo de ejecución aumenta de manera lineal a medida que aumentas este valor. Debe ser un número entero entre10
y20
. Si no se configura, el valor predeterminado es10
.NUM_TEMPLATES_PER_STEP
: Es la cantidad de instrucciones del sistema que genera y evalúa el optimizador de instrucciones de Vertex AI. Se usa con el modo de optimizacióninstruction
yinstruction_and_demo
. Debe ser un número entero entre1
y4
. Si no se configura, el valor predeterminado es2
.NUM_DEMO_OPTIMIZATION_STEPS
: Es la cantidad de demostraciones que evalúa el optimizador de instrucciones de Vertex AI. Se usa con el modo de optimizacióndemonstration
yinstruction_and_demo
. Debe ser un número entero entre10
y30
. Si no se configura, el valor predeterminado es10
.NUM_DEMO_PER_PROMPT
: Es la cantidad de demostraciones generadas por instrucción. Debe ser un número entero entre3
y6
Si no se configura, el valor predeterminado es3
.
Selección de modelos y parámetros de ubicación:
TARGET_MODEL_LOCATION
: La ubicación en la que deseas ejecutar el modelo de destino. Si no se configura, el valor predeterminado esus-central1
.SOURCE_MODEL
: El modelo de Google con el que se usaban anteriormente las instrucciones y las indicaciones del sistema. Cuando se configura el parámetrosource_model
, Vertex AI ejecuta tus instrucciones de muestra en el modelo de origen para generar las respuestas de verdad fundamental por ti, para las métricas de evaluación que requieren respuestas de verdad fundamental. Si no ejecutaste las instrucciones con un modelo de Google anteriormente o no lograste los resultados esperados, agrega respuestas de verdad del mundo real a la instrucción. Para obtener más información, consulta la sección Crea una instrucción y las instrucciones del sistema de este documento.SOURCE_MODEL_LOCATION
: La ubicación en la que deseas ejecutar el modelo de origen. Si no se configura, el valor predeterminado esus-central1
.
Parámetros de latencia (QPS):
TARGET_MODEL_QPS
: Las consultas por segundo (QPS) que el optimizador de instrucciones de Vertex AI envía al modelo de destino. El tiempo de ejecución disminuye de forma lineal a medida que aumentas este valor. Debe ser un número de punto flotante que sea3.0
o mayor, pero menor que la cuota de QPS que tienes en el modelo de destino. Si no se configura, el valor predeterminado es3.0
.EVAL_QPS
: Las consultas por segundo (QPS) que el optimizador de instrucciones de Vertex AI envía al modelo de evaluación,gemini-1.5-pro
.- Para las métricas basadas en modelos, debe ser un número de punto flotante que sea
3.0
o superior, pero menor que la cuota que tienes paragemini-1.5-pro
. Si no se configura, el valor predeterminado es3.0
. - Para las métricas personalizadas, debe ser un número de punto flotante igual o mayor que
3.0
. Esto determina la frecuencia con la que el optimizador de instrucciones de Vertex AI llama a tus funciones de Cloud Run de métricas personalizadas. SOURCE_MODEL_QPS
: Las consultas por segundo (QPS) que el optimizador de instrucciones de Vertex AI envía al modelo de origen. Debe ser un número de punto flotante que sea3.0
o mayor, pero menor que la cuota de QPS que tienes en el modelo de origen. Si no se configura, el valor predeterminado es3.0
.
Parámetros de las métricas de evaluación:
EVALUATION_METRIC_LIST
: Es una lista de métricas de evaluación. Usaeval_metrics_types
en lugar deeval_metric
cuando quieras usar varias métricas de evaluación. Debe ser un array. Por ejemplo,"bleu", "summarization_quality"
.EVAL_METRICS_WEIGHTS
: Es el peso de cadaeval_metrics_type
. Debe ser un array.METRIC_AGGREGATION_TYPE
: Es el tipo de agregación que se usa para las métricas de evaluación. Debe serweighted_sum
oweighted_average
. Si no se configura, el valor predeterminado esweighted_sum
.
Otros parámetros:
RESPONSE_MIME_TYPE
: El tipo de respuesta MIME que usa el modelo de destino. Debe sertext/plain
oapplication/json
. Si no se configura, el valor predeterminado estext/plain
.TARGET_LANGUAGE
: Es el idioma de las instrucciones del sistema. Si no se configura, el valor predeterminado es inglés.PLACEHOLDER_TO_CONTENT
: Es la información que reemplaza cualquier variable en las instrucciones del sistema. El optimizador de instrucciones de Vertex AI no optimiza la información incluida en esta marca.DATA_LIMIT
: Es la cantidad de datos que se usan para la validación. El tiempo de ejecución aumenta de forma lineal con este valor. Debe ser un número entero entre5
y100
. Si no se configura, el valor predeterminado es100
.
Ejecuta el optimizador de instrucciones
Ejecuta el optimizador de instrucciones de Vertex AI con una de las siguientes opciones:
Notebook
Ejecuta el optimizador de instrucciones de Vertex AI a través del notebook. Para ello, haz lo siguiente:
En Colab Enterprise, abre el notebook del optimizador de instrucciones de Vertex AI.
Ir al notebook del optimizador de instrucciones de Vertex AI
En la sección Ejecutar optimizador de instrucciones, haz clic en play_circle Ejecutar celda.
Se ejecuta el optimizador de instrucciones de Vertex AI.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- LOCATION: Es la ubicación en la que deseas ejecutar el optimizador de instrucciones de Vertex AI.
- PROJECT_ID: El ID del proyecto.
- JOB_NAME: Es un nombre para la tarea del optimizador de instrucciones de Vertex AI.
- PATH_TO_CONFIG: Es el URI del archivo de configuración en tu bucket de Cloud Storage.
Por ejemplo,
gs://bucket-name/configuration.json
HTTP method and URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs
Cuerpo JSON de la solicitud:
{ "displayName": "JOB_NAME", "jobSpec": { "workerPoolSpecs": [ { "machineSpec": { "machineType": "n1-standard-4" }, "replicaCount": 1, "containerSpec": { "imageUri": "us-docker.pkg.dev/vertex-ai-restricted/builtin-algorithm/apd:preview_v1_0", "args": ["--config=PATH_TO_CONFIG""] } } ] } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs"
PowerShell
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/customJobs" | Select-Object -Expand Content
El resultado es similar al siguiente:
Python
Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Vertex AI sobre cómo usar bibliotecas cliente. Para obtener más información, consulta la documentación de referencia de la API de Vertex AI Python.
Para autenticarte en Vertex AI, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Analiza los resultados y realiza iteraciones
Después de ejecutar el optimizador de instrucciones de Vertex AI, revisa el progreso del trabajo con una de las siguientes opciones:
Notebook
Si deseas ver los resultados del optimizador de instrucciones de Vertex AI a través del notebook, haz lo siguiente:
Abre el notebook del optimizador de instrucciones de Vertex AI.
En la sección Inspecciona los resultados, haz lo siguiente:
En el campo RESULT_PATH, agrega el URI del bucket de Cloud Storage en el que configuraste el optimizador de instrucciones de Vertex AI para escribir los resultados. Por ejemplo,
gs://bucket-name/output-path
Haz clic en play_circle Ejecutar celda.
Console
En la consola de Google Cloud, en la sección Vertex AI, ve a la página Canalizaciones de entrenamiento.
Haz clic en la pestaña Trabajos personalizados. El trabajo de entrenamiento personalizado del optimizador de instrucciones de Vertex AI aparecerá en la lista junto con su estado.
Cuando finalice el trabajo, sigue estos pasos para revisar las optimizaciones:
En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
Haz clic en el nombre del bucket de Cloud Storage.
Navega a la carpeta que tiene el mismo nombre que el modo de optimización que usaste para evaluar las instrucciones, ya sea
instruction
odemonstration
. Si usaste el modoinstruction_and_demo
, aparecerán ambas carpetas. La carpetainstruction
contiene los resultados de la optimización de instrucciones del sistema, mientras que la carpetademonstration
contiene los resultados de la optimización dedemonstration
y las instrucciones del sistema optimizadas.La carpeta contiene los siguientes archivos:
config.json
: Es la configuración completa que usó el optimizador de instrucciones de Vertex AI.templates.json
: Cada conjunto de instrucciones del sistema o ejemplos de pocas fotos que generó el optimizador de instrucciones de Vertex AI y su puntuación de evaluación.eval_results.json
: La respuesta del modelo de destino para cada instrucción de muestra para cada conjunto de instrucciones del sistema generadas o ejemplos de pocas imágenes y su puntuación de evaluación.optimized_results.json
: Las instrucciones del sistema con el mejor rendimiento o los ejemplos de pocas imágenes y su puntuación de evaluación.
Para ver las instrucciones del sistema optimizado, consulta el archivo
optimized_results.json
.
¿Qué sigue?
- Obtén información sobre las prácticas recomendadas de IA responsable y los filtros de seguridad de Vertex AI.
- Obtén más información sobre las estrategias de instrucciones.
- Explora ejemplos de instrucciones en la galería de instrucciones.