Integração com o BigQuery
O BigQuery se integra à Document AI para ajudar a criar análises de documentos e casos de uso de IA generativa. À medida que a transformação digital acelera, as organizações geram grandes quantidades de texto e outros dados de documentos, que têm um enorme potencial para insights e impulsionam novos casos de uso de IA generativa. Para ajudar a aproveitar esses dados, anunciamos uma integração entre o BigQuery e o Document AI, que permite extrair insights dos dados de documentos e criar novos aplicativos de modelos de linguagem grandes (LLMs).
Visão geral
Os clientes do BigQuery agora podem criar extratores personalizados da Document AI, com base nos modelos de fundação avançados do Google, que podem ser personalizados com base nos próprios documentos e metadados. Esses modelos personalizados podem ser invocados pelo BigQuery para extrair dados estruturados de documentos de maneira segura e governada usando a simplicidade e a potência do SQL. Antes dessa integração, alguns clientes tentaram criar pipelines independentes da Document AI, que envolviam a curadoria manual da lógica de extração e do esquema. A falta de recursos integrados de integração fez com que eles desenvolvessem uma infraestrutura personalizada para sincronizar e manter a consistência dos dados. Isso transformou cada projeto de análise de documentos em uma tarefa substancial que exigia um investimento significativo. Agora, com essa integração, os clientes podem criar modelos remotos no BigQuery para seus extratores personalizados no Document AI e usá-los para realizar análises de documentos e IA generativa em escala, abrindo uma nova era de insights e inovação baseados em dados.
Uma experiência unificada e governada de dados para IA
É possível criar um extrator personalizado na Document AI em três etapas:
- Defina os dados que você precisa extrair dos documentos. Isso é chamado de
document schema
, armazenado com cada versão do extrator personalizado, acessível pelo BigQuery. - Opcionalmente, forneça outros documentos com anotações como amostras da extração.
- Treine o modelo para o extrator personalizado com base nos modelos de base fornecidos na Document AI.
Além dos extratores personalizados que exigem treinamento manual, a Document AI também oferece extratores prontos para uso em despesas, recibos, faturas, formulários fiscais, documentos governamentais e muitos outros cenários na galeria de processadores.
Depois, quando o extrator personalizado estiver pronto, você poderá usar o BigQuery Studio para analisar os documentos usando SQL nas quatro etapas a seguir:
- Registre um modelo remoto do BigQuery para o extrator usando SQL. O modelo pode entender o esquema do documento (criado acima), invocar o extrator personalizado e analisar os resultados.
- Crie tabelas de objetos usando SQL para os documentos armazenados no Cloud Storage. É possível controlar os dados não estruturados nas tabelas definindo políticas de acesso no nível da linha, o que limita o acesso dos usuários a determinados documentos e, assim, restringe o poder da IA para privacidade e segurança.
- Use a função
ML.PROCESS_DOCUMENT
na tabela de objetos para extrair campos relevantes fazendo chamadas de inferência para o endpoint de API. Também é possível filtrar os documentos das extrações com uma cláusulaWHERE
fora da função. A função retorna uma tabela estruturada, em que cada coluna é um campo extraído. - Junte os dados extraídos a outras tabelas do BigQuery para combinar dados estruturados e não estruturados, produzindo valores comerciais.
O exemplo a seguir ilustra a experiência do usuário:
# Create an object table in BigQuery that maps to the document files stored in Cloud Storage.
CREATE OR REPLACE EXTERNAL TABLE `my_dataset.document`
WITH CONNECTION `my_project.us.example_connection`
OPTIONS (
object_metadata = 'SIMPLE',
uris = ['gs://my_bucket/path/*'],
metadata_cache_mode= 'AUTOMATIC',
max_staleness= INTERVAL 1 HOUR
);
# Create a remote model to register your Doc AI processor in BigQuery.
CREATE OR REPLACE MODEL `my_dataset.layout_parser`
REMOTE WITH CONNECTION `my_project.us.example_connection`
OPTIONS (
remote_service_type = 'CLOUD_AI_DOCUMENT_V1',
document_processor='PROCESSOR_ID'
);
# Invoke the registered model over the object table to parse PDF document
SELECT uri, total_amount, invoice_date
FROM ML.PROCESS_DOCUMENT(
MODEL `my_dataset.layout_parser`,
TABLE `my_dataset.document`,
PROCESS_OPTIONS => (
JSON '{"layout_config": {"chunking_config": {"chunk_size": 250}}}')
)
WHERE content_type = 'application/pdf';
Tabela de resultados
Casos de uso de análise de texto, resumo e outras análises de documentos
Depois de extrair o texto dos documentos, é possível realizar a análise de documentos de algumas maneiras:
- Use o BigQuery ML para realizar análises de texto: o BigQuery ML oferece suporte ao treinamento e implantação de modelos de embeddings de várias maneiras. Por exemplo, você pode usar o BigQuery ML para identificar o sentimento do cliente em ligações de suporte ou para classificar o feedback do produto em diferentes categorias. Se você for um usuário do Python, também poderá usar os DataFrames do BigQuery para pandas e APIs semelhantes ao scikit-learn para análise de texto nos seus dados.
- Use o LLM
text-embedding-004
para gerar embeddings dos documentos fragmentados: o BigQuery tem uma funçãoML.GENERATE_EMBEDDING
que chama o modelotext-embedding-004
para gerar embeddings. Por exemplo, é possível usar a Document AI para extrair o feedback do cliente e resumi-lo usando o PaLM 2, tudo com o BigQuery SQL. - Combine os metadados do documento com outros dados estruturados armazenados nas tabelas do BigQuery:
Por exemplo, é possível gerar embeddings usando os documentos fragmentados e usá-los na pesquisa vetorial.
# Example 1: Parse the chunked data
CREATE OR REPLACE TABLE docai_demo.demo_result_parsed AS (SELECT
uri,
JSON_EXTRACT_SCALAR(json , '$.chunkId') AS id,
JSON_EXTRACT_SCALAR(json , '$.content') AS content,
JSON_EXTRACT_SCALAR(json , '$.pageFooters[0].text') AS page_footers_text,
JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageStart') AS page_span_start,
JSON_EXTRACT_SCALAR(json , '$.pageSpan.pageEnd') AS page_span_end
FROM docai_demo.demo_result, UNNEST(JSON_EXTRACT_ARRAY(ml_process_document_result.chunkedDocument.chunks, '$')) json)
# Example 2: Generate embedding
CREATE OR REPLACE TABLE `docai_demo.embeddings` AS
SELECT * FROM ML.GENERATE_EMBEDDING(
MODEL `docai_demo.embedding_model`,
TABLE `docai_demo.demo_result_parsed`
);
Implementar casos de uso de pesquisa e IA generativa
Depois de extrair o texto estruturado dos seus documentos, você pode criar índices otimizados para consultas de agulha no palheiro, possibilitados pelos recursos de pesquisa e indexação do BigQuery, que desbloqueiam um recurso de pesquisa poderoso. Essa integração também ajuda a desbloquear novos aplicativos LLM generativos, como a execução de processamento de arquivos de texto para filtragem de privacidade, verificações de segurança de conteúdo e fragmentação de tokens usando SQL e modelos da Document AI personalizados. O texto extraído, combinado com outros metadados, simplifica a curadoria do corpus de treinamento necessário para ajustar grandes modelos de linguagem. Além disso, você está criando casos de uso de LLM em dados empresariais governados que foram fundamentados nos recursos de gerenciamento de índice de vetores e geração de incorporação do BigQuery. Ao sincronizar esse índice com a Vertex AI, você pode implementar casos de uso de geração aumentada de recuperação para uma experiência de IA mais governada e simplificada.
Exemplo de aplicativo
Confira um exemplo de um aplicativo completo usando o conector do Document AI:
- Consulte esta demonstração do relatório de despesas no GitHub.
- Leia a postagem do blog complementar.
- Assista um vídeo detalhado do Google Cloud Next 2021.