Cortex AISQL Images

Com o Cortex AI Images, você pode realizar o seguinte:

  • Comparar imagens

  • Gerar legendas para imagens

  • Classificar imagens

  • Extrair entidades de imagens

  • Responder a perguntas usando dados em gráficos e tabelas

Você pode realizar essas tarefas com as seguintes funções:

Requisitos de entrada

A multimodal COMPLETE pode processar imagens com as seguintes características:

Requisito

Valor

Extensões de nome de arquivo

.jpg, .jpeg, .png, .webp, .gif

Criptografia de estágio

Criptografia do lado do servidor

Tipo de dados

FILE

Nota

Atualmente, o processamento de arquivos de estágios é incompatível com políticas de rede personalizadas.

Criação de um estágio para o processamento de imagens

Crie um estágio adequado para armazenar as imagens a serem processadas. O estágio deve ter uma tabela de diretório e criptografia no lado do servidor.

O SQL abaixo cria um estágio interno adequado.

CREATE OR REPLACE STAGE input_stage
    DIRECTORY = ( ENABLE = true )
    ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
Copy

O SQL a seguir cria um estágio externo no Amazon S3. Também há suporte para os estágios externos do Azure e GCP.

CREATE OR REPLACE STAGE input_stage
    URL='s3://<s3-path>/'
    DIRECTORY = ( ENABLE = true )
    CREDENTIALS = (AWS_KEY_ID = <aws_key_id>
    AWS_SECRET_KEY = <aws_secret_key>)
    ENCRYPTION = ( TYPE = 'AWS_SSE_S3' );
Copy

Nota

Para atualizar automaticamente a tabela de diretórios do estágio externo quando houver arquivos novos ou atualizados disponíveis, passe a opção AUTO_REFRESH = true ao criar o estágio. Para obter mais informações, consulte CREATE STAGE.

Processamento de imagens

A função COMPLETE processa uma única imagem ou várias imagens (por exemplo, extraindo diferenças em entidades em várias imagens). A chamada de função especifica o seguinte:

  • O modelo multimodal a ser usado

  • Um prompt

  • O caminho do estágio do(s) arquivo(s) de imagem por meio de um objeto FILE

Exemplo com uma imagem

O exemplo a seguir usa o modelo Claude Sonnet 3.5 do Anthropic para resumir um gráfico de pizza science-employment-slide.jpeg armazenado no estágio @myimages.

Gráfico de pizza exibindo a distribuição das ocupações em que a matemática é considerada “extremamente importante” em 2023

A distribuição das ocupações em que a matemática é considerada “extremamente importante” em 2023

SELECT AI_COMPLETE('claude-3-5-sonnet',
    'Summarize the insights from this pie chart in 100 words',
    TO_FILE('@myimages', 'science-employment-slide.jpeg'));
Copy

Resposta:

This pie chart shows the distribution of occupations where mathematics is considered "extremely important" in 2023.
Data scientists dominate with nearly half (48.7%) of all such positions, followed by operations research analysts
at 29.6%. The remaining positions are distributed among statisticians (7.8%), actuaries (7.2%), physicists (5.1%),
mathematicians (0.6%), and other mathematical science occupations (1.1%). This distribution highlights the growing
importance of data science in mathematics-intensive careers, while traditional mathematics roles represent a smaller
share of the workforce.

Exemplo com várias imagens

Nota

Atualmente, apenas os modelos Anthropic (claude) e Meta (llama) podem fazer referência a várias imagens em um único prompt. O suporte a várias imagens para outros modelos poderá estar disponível em um lançamento futuro.

Use a função auxiliar PROMPT para processar várias imagens em uma única chamada COMPLETE. O exemplo a seguir usa o modelo Claude Sonnet 3.5 da Anthropic para comparar dois criativos de anúncios diferentes do estágio @myimages.

Imagens de dois anúncios de carros elétricos

Imagem de dois anúncios de carros elétricos

SELECT AI_COMPLETE('claude-3-5-sonnet',
    PROMPT('Compare this image {0} to this image {1} and describe the ideal audience for each in two concise bullets no longer than 10 words',
    TO_FILE('@myimages', 'adcreative_1.png'),
    TO_FILE('@myimages', 'adcreative_2.png')
));
Copy

Resposta:

First image ("Discover a New Energy"):
• Conservative luxury SUV buyers seeking a subtle transition to electrification

Second image ("Electrify Your Drive"):
• Young, tech-savvy urbanites attracted to bold, progressive automotive design

Limitações do modelo

Todos os modelos disponíveis para o Snowflake Cortex têm limitações quanto ao número total de tokens de entrada e saída, conhecido como a janela de contexto do modelo. O tamanho da janela de contexto é medido em tokens. As entradas que excedem o limite da janela de contexto resultam em um erro.

Para modelos de texto, os tokens geralmente representam aproximadamente quatro caracteres de texto, portanto, a contagem de palavras correspondente a um limite é menor que a contagem de tokens.

Para modelos de imagem, a contagem de tokens por imagem depende da arquitetura do modelo de visão. Os tokens em um prompt (por exemplo, “que animal é esse?”) também contribuem para a janela de contexto do modelo.

Modelo

Janela de contexto (tokens)

Tipos de arquivo

Tamanho do arquivo

Imagens por prompt

claude-4-opus

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

claude-4-sonnet

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

claude-3-7-sonnet

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

claude-3-5-sonnet

200,000

.jpg, .jpeg, .png, .webp, .gif

3,75 MB [L1]

20

llama4-maverick

128,000

.jpg, .jpeg, .png, .webp, .gif, .bmp [L2]

10 MB

10

llama-4-scout

128,000

.jpg, .jpeg, .png, .webp, .gif

10 MB

10

pixtral-large

128,000

.jpg, .jpeg, .png, .webp, .gif, .bmp [L2]

10 MB

1

[L1] (1,2,3,4)

As imagens devem ser menores que 8.000 × 8.000 pixels. Os modelos Anthropic (claude) oferecem suporte a até 100 imagens em uma única chamada. Os limites se aplicam a cada imagem individual.

[L2] (1,2)

Os modelos Mistral (pixtral) e Meta (llama) oferecem suporte a arquivos .bmp, além dos formatos comuns.

Considerações sobre custo

O faturamento é escalonado de acordo com o número de tokens processados. O número de tokens por imagem depende da arquitetura do modelo de visão.

  • A fórmula dos modelos antrópicos (claude) é aproximadamente: tokens = (largura em pixels × altura em pixels)/750.

  • Os modelos Mistral (pixtral) dividem cada imagem em lotes de 16 × 16 pixels e convertem cada lote em um token. O número total de tokens é equivalente a aproximadamente (largura em pixels/16) * (altura em pixels/16).

  • Os modelos Meta (llama) tentam colocar a imagem em blocos quadrados. Dependendo da proporção e do tamanho da imagem, o número de blocos pode ser de até 16, cada uma representada por cerca de 153 tokens.

Nota

No momento, a função COUNT_TOKENS não é compatível com entradas de imagem.

Escolha de um modelo de visão

A função COMPLETE é compatível com vários modelos de capacidade, latência e custo variados. Para obter o melhor desempenho por crédito, escolha um modelo que se alinhe ao tamanho do conteúdo e à complexidade da tarefa.

Modelo

MMMU

Mathvista

ChartQA

DocVQA

VQAv2

GPT-4o

68,6

64,6

85,1

88,9

77,8

claude-3-5-sonnet

68,0

64,4

87,6

90,3

70,7

llama-4-maverick

73,4

673,7

90

94,4

llama-4-scout

69,4

70,7

88,8

94,4

pixtral-large

64,0

69,4

88,1

85,7

67

Os benchmarks são:

  • MMMU: avalia modelos multimodais em tarefas multidisciplinares que exigem raciocínio de nível universitário.

  • Mathvista: referência de raciocínio matemático em um contexto visual.

  • ChartQA: avalia questões de raciocínio complexas sobre gráficos.

  • DocVQA e VQv2: benchmarks para responder a perguntas visuais em documentos.

Disponibilidade regional

O suporte a esse recurso está disponível nativamente para contas nas seguintes regiões do Snowflake:

Modelo
AWS US West 2
(Oregon)
AWS US East 1
(N. Virginia)
AWS Europe Central 1
(Frankfurt)

claude-3-5-sonnet

claude-3-7-sonnet [A1]

claude-4-sonnet [A1]

claude-4-opus [A1]

pixtral-large

llama4-maverick

llama4-scout

[A1] (1,2,3)

O modelo está disponível somente por meio de inferência entre regiões.

A multimodal COMPLETE está disponível em outras regiões por meio de Inferência entre regiões.

Condições de erro

Mensagem

Explicação

Falha na solicitação da função externa SYSTEM$COMPLETE_WITH_IMAGE_INTERNAL com erro de serviço remoto: 400 “invalid image path”

A extensão do arquivo ou o próprio arquivo não é aceito pelo modelo. A mensagem também pode significar que o caminho do arquivo está incorreto, ou seja, o arquivo não existe no local especificado. Os nomes de arquivos diferenciam maiúsculas de minúsculas.

Erro no objeto seguro

Pode indicar que o estágio não existe. Verifique o nome do estágio e certifique-se de que o estágio exista e esteja acessível. Não se esqueça de usar o sinal de arroba (@) no início do caminho do estágio, como @myimages.

Falha na solicitação da função externa _COMPLETE_WITH_PROMPT com erro de serviço remoto: 400 “invalid request parameters: unsupported image format: image/**

Formato de imagem não compatível fornecido a claude-3-5-sonnet, ou seja, diferente de .jpeg, .png, .webp ou .gif.

Falha na solicitação da função externa _COMPLETE_WITH_PROMPT com erro de serviço remoto: 400 “invalid request parameters: Image data exceeds the limit of 5.00 MB”

A imagem fornecida para claude-3-5-sonnet excede 5 MB.