VLMs (Vision-Language Models) são modelos de inteligência artificial que processam simultaneamente imagens e textos para análise visual e linguística.
Quando combinados com LoRA (Low-Rank Adaptation), permitem detectar fraudes em documentos com alta precisão em pipelines de baixa latência, sem retreinamento completo do modelo base.
O que é LoRA e como funciona para VLMs
LoRA (Low-Rank Adaptation) é uma técnica de fine-tuning que insere matrizes de adaptação de baixo rank em camadas específicas de um modelo pré-treinado.
Em vez de atualizar todos os parâmetros do modelo — o que pode exigir bilhões de operações — o LoRA ajusta apenas 0,1% a 1% dos parâmetros totais, concentrando a adaptação nos componentes críticos para o domínio-alvo.
Para VLMs como o Qwen-VL, o processo ocorre em três etapas:
- Seleção de módulos-alvo — identificar camadas de atenção relevantes para análise visual de documentos
- Decomposição low-rank — adicionar matrizes de adaptação pequenas sem alterar pesos originais
- Treinamento específico de domínio — ajustar somente os adaptadores com dados de fraude
from peft import get_peft_model, LoraConfig
lora_config = LoraConfig( target_modules=["q_proj", "k_proj", "v_proj", "o_proj"], r=8, lora_alpha=16, lora_dropout=0.05, bias="none")
financial_fraud_vlm = get_peft_model(qwen_vl_model, lora_config)O adaptador LoRA é salvo separadamente dos pesos base e carregado sobre o modelo antes de servir inferências — via PeftModel.from_pretrained() localmente ou implantado como variante no serviço de inferência. No Azion AI Inference, o modelo registrado já incorpora o adaptador: a Function chama o endpoint resultante sem gerenciar o carregamento diretamente.
Como a arquitetura distribuída amplifica os VLMs
Modelos VLM com fine-tuning LoRA precisam de uma camada de execução que entregue inferência em tempo real.
Arquiteturas centralizadas introduzem latência de rede por round-trip que inviabiliza detecção durante a transação. Já a execução em arquitetura distribuída elimina esse round-trip ao processar a inferência nos pontos de presença globais, próximos à origem da requisição.
Comparação: abordagens de detecção de fraude
Aspecto | Modelo genérico centralizado | VLM + LoRA em arquitetura distribuída |
Latência de rede | Round-trip para datacenter central | Processamento no ponto de presença mais próximo |
Precisão em documentos específicos | Baixa–média | Alta (com fine-tuning por tipo de documento) |
Custo de adaptação | Alto (retreinamento completo) | Baixo (0,1–1% dos parâmetros com LoRA) |
Privacidade dos dados | Dados trafegam para datacenter externo | Processamento próximo à origem |
Escalabilidade | Centralizada | Distribuída por pontos de presença |
Detecção durante a transação | Limitada pela latência de rede | Viável |
Melhor para | Análise retrospectiva em lote | Prevenção em tempo real |
Pipeline de detecção de fraude
O workflow adapta a profundidade de análise com base no nível de suspeita identificado na triagem inicial:
Estágio 1 — Triagem inicial
- Modelo leve avalia sinais básicos de fraude
- Resultado: score de suspeição (0–1)
Estágio 2 — Análise aprofundada (condicional)
- Acionado quando score > 0.3
- VLM analisa anomalias visuais específicas do documento
- Busca vetorial por padrões similares em casos anteriores confirmados
Estágio 3 — Verificação contextual
- Histórico de conta e padrões comportamentais
- Escalada de autenticação baseada em risco
Essa estrutura aplica análise intensiva apenas onde necessário, mantendo processamento rápido para documentos que não apresentam sinais de fraude.
Implementação com Azion AI Inference
VectorRetriever e FRAUD_DETECTION_PROMPT são abstrações locais que precisam ser implementadas. VectorRetriever encapsula a conexão com o banco vetorial e o método search; FRAUD_DETECTION_PROMPT é uma string com as instruções de sistema para o modelo. O contrato mínimo esperado de cada um está descrito na seção de configuração abaixo.
O código abaixo corrige o escopo de startTime — declarado antes do bloco try para garantir disponibilidade em toda a execução:
import { VectorRetriever } from './vectorRetriever'import { FRAUD_DETECTION_PROMPT } from './config'
export async function handleRequest(request) { const startTime = Date.now()
try { const formData = await request.formData() const documentFile = formData.get('document') const documentUrl = formData.get('documentUrl')
const imageUrl = documentUrl || (await uploadToStorage(documentFile))
const modelResponse = await Azion.AI.run('qwen-qwen25-vl-7b-instruct-awq', { stream: false, messages: [ { role: 'system', content: FRAUD_DETECTION_PROMPT }, { role: 'user', content: [ { type: 'text', text: 'Analise este documento para identificar possíveis sinais de fraude. Retorne JSON com fraudProbability (0-1), detectedAnomalies (array), e confidence (0-1).' }, { type: 'image_url', image_url: { url: imageUrl } } ] } ] })
const analysisResult = JSON.parse(modelResponse.choices[0].message.content)
let similarCases = [] if (analysisResult.fraudProbability > 0.3) { const retriever = new VectorRetriever({ dbName: process.env.VECTOR_STORE_DB_NAME || 'fraud_patterns', threshold: 0.8 }) similarCases = await retriever.search({ query: analysisResult.detectedAnomalies.join(' '), limit: 5 }) }
return new Response( JSON.stringify({ fraudProbability: analysisResult.fraudProbability, anomalies: analysisResult.detectedAnomalies, confidence: analysisResult.confidence, similarCases, processingTimeMs: Date.now() - startTime }), { headers: { 'Content-Type': 'application/json' }, status: 200 } ) } catch (error) { return new Response( JSON.stringify({ error: 'Erro ao processar documento', details: error.message }), { headers: { 'Content-Type': 'application/json' }, status: 500 } ) }}
async function uploadToStorage(file) { return `https://storage.example.com/temp/${Date.now()}_${file.name}`}Quando usar VLMs com LoRA para detecção de fraude
Use esta abordagem quando precisar de:
- Detecção durante a transação, não após sua conclusão
- Análise de imagens de documentos: cheques, faturas, identidades, contratos
- Adaptação rápida a novos padrões de fraude sem retreinamento completo do modelo
- Processamento que não pode enviar dados sensíveis para datacenters externos
- Decisões de aprovação com requisitos de latência baixa em pipelines de crédito ou onboarding
Não use esta abordagem quando:
- A análise for puramente textual, sem componente visual
- O volume de transações for baixo o suficiente para análise retrospectiva em lote
- A infraestrutura distribuída não estiver disponível no ambiente
Métricas e benchmarks
- Redução de parâmetros no fine-tuning: 99–99,9% menos parâmetros ajustados com LoRA vs. fine-tuning completo (Hu et al., ICLR 2022)
- Threshold de suspeição recomendado: 0.3 como ponto de partida; calibrar com base na taxa de falsos positivos observada em produção
- Similaridade vetorial para padrões conhecidos: threshold de 0.8 para correspondência com casos anteriores confirmados
- Latência de rede: eliminada a necessidade de round-trip para datacenter central ao processar nos pontos de presença globais da Azion
Erros comuns e como corrigi-los
Erro: Usar o modelo genérico sem fine-tuning para tipos específicos de documentos
Correção: Aplicar LoRA com dados rotulados do tipo de documento-alvo (cheques, faturas, IDs)
Erro: Definir threshold de suspeição muito baixo (< 0.1), gerando excesso de análises aprofundadas desnecessárias
Correção: Calibrar o threshold com base na taxa de falsos positivos aceitável; 0.3 é um ponto de partida, não um valor universal
Erro: Não alimentar o vector store com casos confirmados de fraude
Correção: Popule o banco fraud_patterns com vetores de anomalias de fraudes confirmadas para viabilizar busca por similaridade
Erro: Executar toda a análise em estágio único, independente do nível de suspeita
Correção: Implementar pipeline adaptativo com triagem leve antes de acionar o VLM completo
Erro: Declarar startTime dentro do bloco try, tornando-o inacessível no cálculo de processingTimeMs
Correção: Declarar startTime antes do try, conforme o exemplo de código acima
Casos de uso por setor
Serviços financeiros
- Validação de cheques e boletos em tempo de compensação
- Análise de comprovantes de renda em aprovação de crédito
- Detecção de faturas adulteradas em processos de reembolso
Onboarding digital
- Verificação de documentos de identidade (RG, CNH, passaporte)
- Detecção de documentos gerados por IA ou editados digitalmente
- Validação de selfies com documentos em fluxos KYC
Seguros
- Análise de fotos de sinistros para detectar adulteração
- Verificação de notas fiscais em reembolsos
E-commerce e marketplace
- Validação de comprovantes de pagamento
- Detecção de faturas falsas em disputas de estorno
Como implementar na Azion
- Selecione o modelo: Use qwen-qwen25-vl-7b-instruct-awq no AI Inference da Azion Web Platform
- Configure o vector store: Crie o banco de dados fraud_patterns com vetores de padrões de fraude confirmados
- Implemente a edge function: Use o código de exemplo acima como base
- Defina o system prompt: Configure FRAUD_DETECTION_PROMPT com instruções específicas para o tipo de documento
- Calibre os thresholds: Ajuste fraudProbability > 0.3 e threshold: 0.8 com dados reais de produção
- Configure a observabilidade: Adicione logging de processingTimeMs e scores para monitoramento contínuo
Consulte a documentação do AI Inference da Azion para detalhes de configuração.
Perguntas frequentes
O que é um VLM (Vision-Language Model)? Um VLM é um modelo de inteligência artificial que processa simultaneamente entradas visuais (imagens) e textuais. Modelos como o Qwen-VL conseguem analisar o conteúdo visual de um documento e responder perguntas sobre ele em linguagem natural.
O que é LoRA (Low-Rank Adaptation)? LoRA é uma técnica de fine-tuning que adiciona matrizes de adaptação de baixo rank a camadas específicas de um modelo pré-treinado. Permite especializar o modelo para um domínio ajustando apenas 0,1% a 1% dos parâmetros totais, reduzindo drasticamente o custo computacional.
Qual a diferença entre fine-tuning completo e LoRA? O fine-tuning completo atualiza todos os parâmetros do modelo, exigindo grande volume de dados e poder computacional. O LoRA insere adaptadores leves em camadas selecionadas, mantendo os pesos originais congelados. O resultado em tarefas específicas de domínio é comparável, com fração do custo.
Por que processar detecção de fraude em arquitetura distribuída em vez de centralizada? Arquiteturas centralizadas introduzem latência de rede por round-trip que pode tornar a detecção inviável durante a transação. Processar nos pontos de presença globais — próximos à origem da requisição — elimina esse round-trip e viabiliza decisões em tempo real.
O Qwen-VL consegue analisar qualquer tipo de documento? O Qwen-VL base possui capacidade geral de análise visual. Para tipos específicos de documento (cheques bancários, CNH, faturas), a precisão melhora com fine-tuning via LoRA usando dados representativos daquele tipo.
Como funciona a busca vetorial por padrões de fraude? Documentos com score de suspeição acima de 0.3 têm suas anomalias detectadas convertidas em vetores e comparadas ao banco de padrões conhecidos. Similaridade acima de 0.8 indica correspondência com fraudes anteriores confirmadas.
Quanto tempo leva para adaptar um VLM com LoRA para um novo tipo de fraude? O treinamento de adaptadores LoRA leva horas, não dias, dependendo do volume de dados e hardware disponível. Isso permite resposta a novos padrões de fraude sem esperar retreinamento completo do modelo.
É possível usar esta abordagem sem GPU? Modelos quantizados como o Qwen-VL AWQ reduzem os requisitos de hardware. A inferência pode ocorrer em hardware menos especializado, embora GPU acelere o throughput em volumes altos.
Como calibrar o threshold de fraudProbability? Comece com 0.3 e ajuste com base na taxa de falsos positivos observada em produção. Thresholds muito baixos aumentam o volume de revisões manuais; muito altos permitem que fraudes passem sem análise aprofundada. O threshold adequado depende do custo relativo entre falso positivo e falso negativo para o negócio.
O que acontece se o modelo retornar um JSON malformado? O bloco try/catch captura erros de parsing e retorna HTTP 500 com a mensagem de erro. Em produção, implemente fallback para análise manual e logging da resposta bruta do modelo para depuração.
A Azion suporta execução de VLMs em sua plataforma? Sim. O AI Inference da Azion permite executar modelos como o Qwen-VL AWQ nos pontos de presença globais da Azion Web Platform. A chamada Azion.AI.run(‘qwen-qwen25-vl-7b-instruct-awq’, {…}) executa a inferência sem round-trip para datacenter centralizado.
Como garantir privacidade de documentos sensíveis neste pipeline? O processamento nos pontos de presença globais mantém os dados próximos à origem, reduzindo o tráfego de documentos sensíveis para datacenters centrais. Para requisitos mais rigorosos, combine com políticas de retenção zero e processamento efêmero.
Recursos relacionados
- Documentação do AI Inference da Azion
- Arquitetura do Assistente Copilot na Azion
- Estudo de caso: Axur e detecção de ameaças com Azion







