Como Construir um Agente de IA Web Guiado por Visão com MolmoWeb-4B Usando Raciocínio Multimodal e…

Neste tutorial, exploramos o MolmoWeb, o agente web multimodal aberto do Ai2 que entende e interage com websites diretamente de capturas de tela, sem depender de parsing de HTML ou DOM. Configuramos o ambiente completo no Colab, carregamos o modelo MolmoWeb-4B com quantização eficiente de 4 bits e construímos o fluxo de trabalho de prompt exato que permite ao modelo raciocinar sobre uma tarefa web e prever ações do navegador. Além disso, testamos o modelo em páginas em branco, capturas de tela web sintéticas e cenários de navegação multi-passos para entender como os agentes web baseados em capturas de tela realmente pensam, agem e mantêm o contexto entre os passos. Copiar Código Copiado Use um navegador diferente

print("=" * 70)

print("SEÇÃO 1: Instalando dependências...")

print("=" * 70)

import subprocess, sys

def pip_install(*packages):

subprocess.check_call(

[sys.executable, "-m", "pip", "install", "-q"] + list(packages)

)

pip_install(

"transformers>=4.48.0",

"accelerate",

"bitsandbytes",

"jinja2",

"Pillow",

"requests",

"datasets",

"matplotlib",

"torch",

)

import torch

import re

import json

import textwrap

from PIL import Image, ImageDraw, ImageFont

import requests

from io import BytesIO

from jinja2 import Template

import matplotlib.pyplot as plt

import matplotlib.patches as patches

from transformers import AutoProcessor, AutoModelForImageTextToText, BitsAndBytesConfig

print(f"PyTorch {torch.__version__} | CUDA disponível: {torch.cuda.is_available()}")

if torch.cuda.is_available():

print(f" GPU: {torch.cuda.get_device_name(0)}")

mem_gb = torch.cuda.get_device_properties(0).total_mem / 1e9

print(f" VRAM: {mem_gb:.1f} GB")

print("\n" + "=" * 70)

print("SEÇÃO 2: Carregando modelo MolmoWeb-4B...")

print("=" * 70)

CHECKPOINT = "allenai/MolmoWeb-4B"

QUANTIZE = True

if QUANTIZE:

print("Usando quantização NF4 de 4 bits (cabe em ~6 GB VRAM)")

bnb_config = BitsAndBytesConfig(

load_in_4bit=True,

bnb_4bit_quant_type="nf4",

bnb_4bit_compute_dtype=torch.bfloat16,

bnb_4bit_use_double_quant=True,

)

model = AutoModelForImageTextToText.from_pretrained(

CHECKPOINT,

trust_remote_code=True,

quantization_config=bnb_config,

device_map="auto",

)

else:

print("Carregando em precisão bfloat16 completa")

model = AutoModelForImageTextToText.from_pretrained(

CHECKPOINT,

trust_remote_code=True,

torch_dtype=torch.bfloat16,

device_map="auto",

)

processor = AutoProcessor.from_pretrained(

CHECKPOINT,

trust_remote_code=True,

padding_side="left",

)

print(f"Modelo carregado: {CHECKPOINT}")

print(f" Device map: {model.hf_devi"

Fonte: MarkTechPost

Publicado em 2026-03-25

Notícias relacionadas

Continue explorando