Solución de inicio rápido: Base de conocimiento de la IA generativa

Last reviewed 2024-03-01 UTC

Esta guía te ayuda a comprender e implementar la solución Base de conocimiento de IA generativa. En esta solución, se muestra cómo compilar una canalización de respuesta a preguntas extractivas (EQA) para producir contenido para una base de conocimiento interna.

Este documento está dirigido a desarrolladores que tengan experiencia en los LLMs. Se supone que estás familiarizado con los conceptos básicos de la nube, aunque no necesariamente con Google Cloud. Es útil tener experiencia en Terraform.

Objetivos

Esta guía de soluciones te ayuda a hacer lo siguiente:

  • Implementar una aplicación que extraiga pares de preguntas y respuestas de tus documentos, junto con una canalización que active tu aplicación cuando se suba un documento.
  • Entrena un modelo de IA basado en instrucciones con el resultado de tu aplicación

Arquitectura

Esta solución implementa una aplicación de base de conocimiento de IA generativa. En el siguiente diagrama, se muestra la arquitectura de la infraestructura de la aplicación:

Diagrama de arquitectura de una aplicación que usa la IA generativa de Vertex AI para extraer pares de preguntas y respuestas de documentos

Flujo de solicitud

En los siguientes pasos, se detalla el flujo de procesamiento de solicitudes de la aplicación. Los pasos del flujo están numerados como se muestra en el diagrama de arquitectura anterior.

Para iniciar la aplicación de la base de conocimiento de IA generativa, sube un documento directamente a un bucket de Cloud Storage, ya sea a través de la consola de Google Cloud o gcloud CLI.

  1. Cuando se sube el documento, se activa una función de Cloud Functions. Esta función ejecuta el proceso de búsqueda de respuestas de extracción.

  2. La función usa el OCR de Document AI para extraer todo el texto del documento.

  3. La función indexa el documento en Vector Search. El índice de Vector Search proporciona contexto para que LLM extraiga pares de pregunta y respuesta solo en función del contenido que se extrae directamente de los documentos subidos.

  4. La función usa Vertex AI para extraer y generar preguntas y respuestas del documento.

  5. La función almacena los pares de preguntas y respuestas extraídos en Firestore.

  6. Se genera un conjunto de datos de ajuste JSONL a partir de la base de datos de Firestore y se almacena en Cloud Storage.

  7. Después de validar manualmente que estás satisfecho con el conjunto de datos, puedes iniciar un trabajo de ajuste en Vertex AI.

    Cuando se completa el trabajo de ajuste, el modelo ajustado se implementa en un extremo. Después de implementar en un extremo, puedes enviar consultas al modelo ajustado en un notebook de Colab y compararlo con el modelo de base.

Productos usados

En esta sección, se describen los productos que usa la solución.

Si estás familiarizado con el lenguaje de configuración de Terraform, puedes cambiar algunas de las opciones de configuración de los servicios.

Componente Descripción del producto Objetivo en esta solución
Cloud Storage Un servicio preparado para empresas que proporciona almacenamiento de objetos de bajo costo y sin límites para varios tipos de datos. Almacena los documentos PDF, el texto extraído, el conjunto de datos de ajuste y el modelo ajustado.
Eventarc Un servicio que administra el flujo de cambios de estado (eventos) entre microservicios separados y enruta eventos a varios destinos mientras administra la entrega, la seguridad, la autorización, la observabilidad y el manejo de errores. Detecta documentos nuevos en el bucket de Cloud Storage y activa un evento en Cloud Functions.
Cloud Functions Es un servicio de procesamiento sin servidores ligero que te permite crear funciones independientes y de un solo propósito que respondan a eventos de Google Cloud sin necesidad de administrar un servidor o un entorno de ejecución. Organiza los pasos de procesamiento de documentos.
Document AI Una plataforma de comprensión de documentos que toma datos no estructurados de documentos y los transforma en datos estructurados. Puedes automatizar tareas tediosas, mejorar la extracción de datos y obtener estadísticas más detalladas a partir de los datos. Extrae el texto de los documentos.
Vertex AI Una plataforma de aprendizaje automático que te permite entrenar, probar, ajustar e implementar LLMs y aplicaciones de IA generativa. Genera preguntas y respuestas a partir de los documentos.
Búsqueda de vectores Es un servicio que te permite usar la misma infraestructura que proporciona una base para los productos de Google, como la Búsqueda de Google, YouTube y Play. Te permite buscar incorporaciones para encontrar entidades semánticamente similares o relacionadas.
Firestore Un sistema de archivos completamente administrado y de baja latencia para VMs y clústeres que ofrece alta disponibilidad y alta capacidad de procesamiento. Almacena las preguntas y respuestas generadas.

Costo

Para obtener una estimación del costo de los recursos de Google Cloud que usa la solución de base de conocimiento de IA generativa, consulta la estimación calculada previamente en la calculadora de precios de Google Cloud.

Usa la estimación como punto de partida para calcular el costo de la implementación. Puedes cambiar la estimación para que refleje cualquier cambio de configuración que planeas hacer para los recursos que se usan en la solución.

La estimación calculada con anterioridad se basa en suposiciones para ciertos factores, incluidos los siguientes:

  • Las ubicaciones de Google Cloud en las que se implementan los recursos.
  • La cantidad de tiempo que se usan los recursos.

  • La cantidad de datos almacenados en Cloud Storage.

  • Es la cantidad de veces que se invoca la aplicación de base de conocimiento.

  • Los recursos de procesamiento que se usan para ajustar el modelo.

Antes de comenzar

Para implementar esta solución, primero necesitas un proyecto de Google Cloud y algunos permisos de IAM.

Crea o elige un proyecto de Google Cloud

Cuando implementas la solución, eliges el proyecto de Google Cloud en el que se implementan los recursos. Cuando decidas si usarás un proyecto existente o crearás un proyecto nuevo, ten en cuenta los siguientes factores:

  • Si creas un proyecto para la solución, cuando ya no necesites la implementación, puedes borrar el proyecto y evitar la facturación continua. Si usas un proyecto existente, debes borrar la implementación cuando ya no la necesites.
  • El uso de un proyecto nuevo puede ayudar a evitar conflictos con los recursos aprovisionados con anterioridad, como los recursos que se usan para cargas de trabajo de producción.

Si deseas implementar la solución en un proyecto nuevo, crea el proyecto antes de comenzar la implementación.

Para crear un proyecto, completa los siguientes pasos:

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Click Create project.

  3. Name your project. Make a note of your generated project ID.

  4. Edit the other fields as needed.

  5. Click Create.

Obtén los permisos de IAM necesarios

Para iniciar el proceso de implementación, necesitas los permisos de Identity and Access Management (IAM) que se enumeran en la siguiente tabla. Si tienes el rol básico roles/owner para el proyecto en el que planeas implementar la solución, ya tienes todos los permisos necesarios. Si no tienes el rol roles/owner, pídele a tu administrador que te otorgue estos permisos (o los roles que incluyen estos permisos).

Se requiere permiso de IAM Rol predefinido que incluye los permisos necesarios

serviceusage.services.enable

Administrador de Service Usage
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

Administrador de cuenta de servicio
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

Administrador de IAM de proyecto
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
Administrador de Cloud Infrastructure Manager
(roles/config.admin)

Cuenta de servicio creada para la solución

Si inicias el proceso de implementación a través de la consola, Google crea una cuenta de servicio para implementar la solución en tu nombre (y para borrar la implementación más adelante si lo deseas). A esta cuenta de servicio se le asignan ciertos permisos de IAM de forma temporal; es decir, los permisos se revocan de forma automática después de que se completan las operaciones de implementación y eliminación de la solución. Google recomienda que, después de borrar la implementación, borres la cuenta de servicio, como se describe más adelante en esta guía.

Visualiza los roles asignados a la cuenta de servicio

Estos roles se enumeran aquí en caso de que un administrador de tu organización o proyecto de Google Cloud necesite esta información.

  • roles/aiplatform.user
  • roles/artifactregistry.admin
  • roles/documentai.editor
  • roles/firebase.admin
  • roles/iam.serviceAccountUser
  • roles/serviceusage.serviceUsageAdmin
  • roles/iam.serviceAccountAdmin
  • roles/resourcemanager.projectIamAdmin

Implementa la solución

Para ayudarte a implementar esta solución con un esfuerzo mínimo, se proporciona una configuración de Terraform en GitHub. La configuración de Terraform define todos los recursos de Google Cloud que se requieren para la solución.

Puedes implementar la solución con uno de los siguientes métodos:

  • A través de la consola: usa este método si deseas probar la solución con la configuración predeterminada y ver cómo funciona. Cloud Build implementa todos los recursos necesarios para la solución. Cuando ya no necesites la solución, puedes borrarla desde la consola. Es posible que cualquier recurso que crees después de implementar la solución deba borrarse por separado.

    Para usar este método de implementación, sigue las instrucciones en Implementa desde la consola.

  • Usa Terraform: Usa este método si quieres personalizar la solución o automatizar el aprovisionamiento y la administración de los recursos con el uso del enfoque de la infraestructura como código (IaC). Descarga la configuración de Terraform desde GitHub y de forma opcional personaliza el código según sea necesario e implementa la solución con Terraform. Después de implementar la solución, puedes seguir usando Terraform para administrarla.

    Para usar este método de implementación, sigue las instrucciones en Implementa con la CLI de Terraform.

Implementa a través de la consola

Completa los siguientes pasos para implementar la solución preconfigurada.

  1. En el catálogo de soluciones de inicio rápido de Google Cloud, ve a la solución Base de conocimiento de IA generativa.

    Ir a la solución de base de conocimiento de IA generativa

  2. Revisa la información que se proporciona en la página, como el costo estimado de la solución y el tiempo de implementación estimado.

  3. Cuando estés listo para comenzar la implementación de la solución, haz clic en Implementar.

    Se muestra una guía interactiva paso a paso.

  4. Completa los pasos de la guía interactiva.

    Toma nota del nombre que ingreses para la implementación. Este nombre es obligatorio más adelante cuando borres la implementación.

    Cuando haces clic en Implementar, se muestra la página Implementaciones de soluciones. El campo Estado de esta página muestra Implementando.

  5. Espera a que se implemente la solución.

    Si la implementación falla, el campo Estado muestra Con errores. Puedes usar el registro de Cloud Build para diagnosticar los errores. Para obtener más información, consulta Errores cuando se implementa desde la consola.

    Una vez completada la implementación, el campo Estado cambia a Implementado.

  6. Para ver los recursos de Google Cloud que se implementan y su configuración, realiza un recorrido interactivo en la consola.

    Empieza el recorrido

Para continuar, consulta Usa la solución.

Cuando ya no necesites la solución, puedes borrar la implementación para evitar que se sigan facturando los recursos de Google Cloud. Para obtener más información, consulta Borra la implementación.

Implementa con la CLI de Terraform

En esta sección, se describe cómo puedes personalizar la solución o automatizar el aprovisionamiento y la administración de la solución con CLI de Terraform. Las soluciones que implementas con el código de Terraform no se muestran en la página Implementaciones de soluciones en la consola de Google Cloud.

Configura el cliente de Terraform

Puedes ejecutar Terraform en Cloud Shell o en tu host local. En esta guía, se describe cómo ejecutar Terraform en Cloud Shell, que tiene Terraform preinstalado y configurado para autenticarse con Google Cloud.

El código de Terraform para esta solución está disponible en un repositorio de GitHub.

  1. Clona el repositorio de GitHub en Cloud Shell.

    Abrir en Cloud Shell

    Se muestra un mensaje para que confirmes la descarga del repositorio de GitHub en Cloud Shell.

  2. Haz clic en Confirmar.

    Cloud Shell se inicia en otra pestaña del navegador y el código de Terraform se descarga en el directorio $HOME/cloudshell_open de tu entorno de Cloud Shell.

  3. En Cloud Shell, verifica si el directorio de trabajo actual es $HOME/cloudshell_open/terraform-genai-knowledge-base/. Este es el directorio que contiene los archivos de configuración de Terraform para la solución. Si necesitas cambiar a ese directorio, ejecuta el siguiente comando:

    cd $HOME/cloudshell_open/terraform-genai-knowledge-base/
    
  4. Inicializa Terraform con la ejecución del siguiente comando:

    terraform init
    

    Espera hasta ver el siguiente mensaje:

    Terraform has been successfully initialized!
    

Configura las variables de Terraform

El código de Terraform que descargaste incluye variables que puedes usar para personalizar la implementación según tus requisitos. Por ejemplo, puedes especificar el proyecto de Google Cloud y la región en la que deseas que se implemente la solución.

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-genai-knowledge-base/. Si no es así, ve a ese directorio.

  2. En el mismo directorio, crea un archivo de texto llamado terraform.tfvars.

  3. En el archivo terraform.tfvars, copia el siguiente fragmento de código y establece los valores para las variables obligatorias.

    • Sigue las instrucciones que se proporcionan como comentarios en el fragmento de código.
    • Este fragmento de código solo incluye las variables para las que debes establecer valores. La configuración de Terraform incluye otras variables que tienen valores predeterminados. Para revisar todas las variables y los valores predeterminados, consulta el archivo variables.tf que está disponible en el directorio $HOME/cloudshell_open/terraform-genai-knowledge-base/.
    • Asegúrate de que cada valor que establezcas en el archivo terraform.tfvars coincida con el tipo de variable como se declara en el archivo variables.tf. Por ejemplo, si el tipo que se define para una variable en el archivo variables.tf es bool, debes especificar true o false como el valor de esa variable en el archivo terraform.tfvars.
    # This is an example of the terraform.tfvars file.
    # The values in this file must match the variable types declared in variables.tf.
    # The values in this file override any defaults in variables.tf.
    
    # ID of the project in which you want to deploy the solution
    project_id = "PROJECT_ID"
    

Valida y revisa la configuración de Terraform

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-genai-knowledge-base/. Si no es así, ve a ese directorio.

  2. Verifica que la configuración de Terraform no tenga errores:

    terraform validate
    

    Si el comando muestra algún error, realiza las correcciones necesarias en la configuración y, luego, vuelve a ejecutar el comando terraform validate. Repite este paso hasta que el comando muestre el siguiente mensaje:

    Success! The configuration is valid.
    
  3. Revisa los recursos que se definen en la configuración:

    terraform plan
    
  4. Si no creaste el archivo terraform.tfvars como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores obligatorios.

    El resultado del comando terraform plan es una lista de los recursos que Terraform aprovisiona cuando aplicas la configuración.

    Si deseas hacer algún cambio, cambia la configuración y, luego, vuelve a ejecutar los comandos terraform validate y terraform plan.

Aprovisiona los recursos

Cuando no se necesiten más cambios en la configuración de Terraform, implementa los recursos de la siguiente manera:

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-genai-knowledge-base/. Si no es así, ve a ese directorio.

  2. Aplica la configuración de Terraform:

    terraform apply
    
  3. Si no creaste el archivo terraform.tfvars como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores