CommunityImagemgithub.com

wshobson/vision-sft

Ajuste fino supervisionado de modelos de linguagem visuais (VLMs) com dados de imagem+texto. Use ao adaptar um VLM a um domínio ou tarefa visual, configurar LoRA com torre de visão congelada ou depurar um ajuste fino de VLM que treina sem aprender.

O que é vision-sft?

Este skill fornece receitas e boas práticas para o ajuste fino supervisionado (SFT) de modelos de linguagem visuais (VLMs), assumindo que a seleção do método de ajuste fino já encaminhou para esta rota (dados de imagem+texto, não pares de preferência ou sinais de recompensa verificáveis). Ele especializa a receita LoRA/QLoRA para a torre de visão e o projetor, enquanto o skill `lora-qlora-recipes` cobre os fundamentos para texto apenas. A recomendação principal é congelar a torre de visão e o projetor, aplicando LoRA apenas no LLM (rank 8-16, alpha 16-32), descongelando camadas de visão apenas em casos de mudança de domínio visual (ex: imagens médicas, satélite) e com LR 5-10x menor. O skill também destaca dois 'assassinos silenciosos' que causam treinamento sem aprendizado: incompatibilidade na contagem de placeholders de imagem e orçamento de resolução `min_pixels`/`max_pixels` mal configurado; além de detalhes específicos para Unsloth e considerações sobre escolha de modelo. O formato de saída é uma configuração de adaptador validada, consumida diretamente pelo skill `llm-finetuning-training-engineer`.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wshobson/agents/tree/main/plugins/llm-finetuning/skills/vision-sft

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Ajuste Fino Supervisionado Visão-Linguagem (Vision-Language SFT)

Este skill assume que finetuning-method-selection já encaminhou para aqui: o formato dos dados são demonstrações de imagem+texto, não pares de preferência ou um sinal de recompensa verificável, e a base é um modelo de linguagem visual (VLM), não um modelo apenas de texto. lora-qlora-recipes cobre a receita LoRA/QLoRA apenas para texto que este skill especializa para a torre de visão e o projetor; leia esse skill primeiro se os fundamentos do LoRA (rank, alpha, módulos alvo) ainda não forem familiares.

Entrada: um conjunto de dados de imagem+texto e um modelo base VLM já selecionado do catálogo de modelos. Formato de saída: uma configuração de adaptador validada — quais componentes estão congelados, módulos alvo do LoRA e um orçamento min_pixels/max_pixels — que o llm-finetuning-training-engineer consome diretamente ao gerar um script executável.

Referência Rápida

SituaçãoPadrão
Adaptar comportamento em imagens familiaresTorre+projetor congelados, LoRA r=8–16, α=16–32
Mudança de domínio visualDescongelar últimas 6 camadas ViT, LR da visão 5–10x menor
Não cabe em bf16 com o rank alvoQLoRA — apenas torre de visão congelada
fast_inference=Truefinetune_vision_layers=False
Perda normal, avaliação não melhoraVerifique primeiro os Dois Assassinos Silenciosos abaixo

A Receita Consensual

Congele a torre de visão e o projetor. Aplique LoRA apenas no LLM, em todas as camadas lineares (a mesma lista de alvos de atenção + MLP do SFT apenas para texto — veja lora-qlora-recipes), com r=8–16, α=16–32. Este é o padrão consolidado para adaptar o comportamento de um VLM sem perturbar sua capacidade de visão.

  • A torre de visão e o projetor permanecem congelados por padrão. Eles já codificam uma representação visual geral; retreiná-los raramente é necessário e adiciona risco sem adicionar capacidade para a maioria das tarefas.
  • O rank do LoRA é menor que o padrão geral apenas para texto (r=8–16 aqui vs r=16–32 para SFT apenas texto) porque o adaptador apenas no LLM está adaptando comportamento, não injetando novo conhecimento visual.
  • QLoRA é permitido apenas com a torre de visão congelada. Quantizar a base enquanto também descongela e treina camadas de visão não é suportado e é instável — trate isso como uma regra de pareamento rígida, não um parâmetro ajustável. Se a torre de visão precisar ser descongelada, abandone o QLoRA e use LoRA em bf16.
# congelar torre + projetor; LoRA apenas no LLM
for name, param in model.named_parameters():
    if "vision_tower" in name or "projector" in name:
        param.requires_grad = False

target_modules = [
    "q_proj", "k_proj", "v_proj", "o_proj",
    "gate_proj", "up_proj", "down_proj",
]  # Apenas LLM, todas lineares — r=8-16, alpha=16-32

Quando Descongelar

Descongelar camadas de visão é uma escalada deliberada, não uma decisão padrão — recorra a ela apenas quando a mudança de domínio for visual, não textual.

  • Descongele apenas para mudança de domínio visual. Se a tarefa é ensinar um novo comportamento em imagens que a torre já entende (gráficos, fotos do cotidiano), a receita de torre congelada acima é suficiente. Descongele quando o domínio visual em si for desconhecido para a torre — imagens de satélite, exames médicos, diagramas técnicos densos — e a receita de torre congelada estagnar.
  • Últimas 6 camadas ViT é o ponto ideal. Descongelar as últimas seis camadas do transformador de visão (não a torre inteira) mediu +1,7 p.p. no DocVQA com ~1,75x o custo de treinamento em comparação com a linha de base congelada. Trate seis camadas como o teto que vale a pena pagar; ir além gasta computação sem um resultado correspondente.
  • O LR da visão deve ser 5–10x menor que o LR do LLM quando descongelado. A representação pré-treinada da torre de visão é mais frágil que o adaptador do LLM; o mesmo LR para ambos corre o risco de sobrescrever a representação visual mais rápido do que o adaptador do LLM pode compensar.
  • Rank alto de LoRA na camada de patch embedding corre risco de NaN. Se a camada de patch embedding estiver no conjunto descongelado, mantenha seu rank baixo e monitore a perda nos primeiros passos de perto — um dos lugares mais frágeis para aplicar LoRA em um VLM.

Os Dois Assassinos Silenciosos

Ambos produzem uma execução que treina sem erro e sem aprendizado: a curva de perda parece normal, o modelo não melhora e nenhum deles lança uma exceção — ambos precisam de uma verificação explícita pré-treinamento, não apenas de um log de treinamento limpo.

  • Incompatibilidade na contagem de tags de imagem. Cada token de placeholder de imagem no texto formatado deve mapear 1:1 para um item de mídia realmente passado ao collator. Uma incompatibilidade (um placeholder, zero ou duas imagens anexadas; ou uma imagem sem placeholder) não gera erro na maioria dos collators — ela silenciosamente desalinha imagem e texto, e o modelo "treina mas não aprende nada". Valide o mapeamento 1:1 de placeholder para mídia antes do treinamento começar, em cada exemplo, não apenas em uma amostra. Detalhe completo da lista de verificação: references/collators-and-pitfalls.md.
  • Orçamento de resolução min_pixels/max_pixels. Este par é o hiperparâmetro único mais consequente para qualidade e memória no SFT de VLM — mais que rank, alpha ou LR. Muito baixo silenciosamente reduz a resolução das imagens abaixo do necessário para a tarefa (texto pequeno de documento se torna ilegível mesmo que o treinamento "tenha sucesso"); muito alto estoura o orçamento de memória de ativação ou força um batch muito pequeno para treinar de forma estável. Defina-o deliberadamente por conjunto de dados, não deixe no padrão do framework.

Especificidades do Unsloth

  • UnslothVisionDataCollator é o collator que o Unsloth espera para SFT de VLM — ele lida com o alinhamento de tags de imagem e o contrato do processador por arquitetura descrito em references/collators-and-pitfalls.md. Não substitua um collator apenas de texto para dados de VLM.
  • finetune_vision_layers=False é obrigatório quando fast_inference=True. vLLM não pode servir adaptadores LoRA em camadas de visão, portanto, uma configuração de inferência rápida que também descongela camadas de visão falha no momento do serviço, mesmo que o treinamento tenha sucesso. Se a receita exigir descongelar as últimas 6 camadas ViT (veja Quando Descongelar acima), a inferência rápida está fora de questão para essa execução — escolha um ou outro, não ambos.

Escolha do Modelo

A escolha do modelo VLM base está fora do escopo deste skill — ela reside em um único lugar, o catálogo de modelos em references/model-catalog.md do finetuning-method-selection. Este skill e suas referências descrevem receitas apenas por família de arquitetura, nunca recomendando um modelo em detrimento de outro.

O aprendizado por reforço de VLM (VLM-GRPO) é apenas de referência neste plugin — as ferramentas fragmentadas e modos de falha de recompensa específicos de VLM-RL são cobertos em grpo-rlvr-training, não aqui. O escopo deste skill termina no ajuste fino supervisionado.

Modos de Falha

O erro recorrente em cada seção acima é tratar uma curva de perda limpa como prova de que a execução está saudável. Uma curva de aparência normal é consistente tanto com uma execução funcional quanto com qualquer um dos assassinos silenciosos, já que o modelo treina em algo de qualquer forma — apenas não no sinal alinhado de imagem-texto quando um assassino está presente. Uma pontuação de avaliação plana ao lado de uma curva de perda normal significa executar novamente a lista de verificação em references/collators-and-pitfalls.md antes de tocar em qualquer hiperparâmetro.

Referências

  • references/collators-and-pitfalls.md — tabela de collators por arquitetura, exemplos de formato de conjunto de dados com placeholders de imagem, uma lista de verificação de validação pré-treinamento e a receita de alinhamento do projetor em dois estágios como um padrão avançado.

Skills relacionados: finetuning-method-selection roteia para cá; lora-qlora-recipes cobre os fundamentos do LoRA apenas para texto que este skill especializa; grpo-rlvr-training cobre VLM-RL (apenas referência); dataset-curation cobre a preparação de conjuntos de dados de imagem+texto que este skill não aborda.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

wshobson/accessibility-compliance

Implement WCAG 2.2 compliant interfaces with mobile accessibility, inclusive design patterns, and assistive technology support. Use when auditing accessibility, implementing ARIA patterns, building for screen readers, or ensuring inclusive user experiences.

wshobson/airflow-dag-patterns

Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.

wshobson/angular-migration

Migrate from AngularJS to Angular using hybrid mode, incremental component rewriting, and dependency injection updates. Use when upgrading AngularJS applications, planning framework migrations, or modernizing legacy Angular code.

wshobson/anti-reversing-techniques

Understand anti-reversing, obfuscation, and protection techniques encountered during software analysis. Use this skill when analyzing malware evasion techniques, when implementing anti-debugging protections for CTF challenges, when reverse engineering packed binaries, or when building security research tools that need to detect virtualized environments.

wshobson/api-design-principles

Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.

wshobson/architecture-decision-records

Write and maintain Architecture Decision Records (ADRs) following best practices for technical decision documentation. Use when documenting significant technical decisions, reviewing past architectural choices, or establishing decision processes.

wshobson/architecture-patterns

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use this skill when designing clean architecture for a new microservice, when refactoring a monolith to use bounded contexts, when implementing hexagonal or onion architecture patterns, or when debugging dependency cycles between application layers.

wshobson/async-python-patterns

Master Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.

wshobson/attack-tree-construction

Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.

wshobson/auth-implementation-patterns

Master authentication and authorization patterns including JWT, OAuth2, session management, and RBAC to build secure, scalable access control systems. Use when implementing auth systems, securing APIs, or debugging security issues.

wshobson/avoid-ai-writing

Audit and rewrite prose so it stops reading as machine-generated. Use this skill when asked to remove AI-isms, clean up AI writing, edit a draft for AI tells, audit a README, changelog, release note, PR description, or blog post for machine-sounding prose, or make text sound less like AI. Supports a detect-only mode, a rewrite mode, and an edit-in-place mode, with optional voice and context profiles.

wshobson/backtesting-frameworks

Build robust backtesting systems for trading strategies with proper handling of look-ahead bias, survivorship bias, and transaction costs. Use when developing trading algorithms, validating strategies, or building backtesting infrastructure.

wshobson/bash-defensive-patterns

Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.

wshobson/bats-testing-patterns

Master Bash Automated Testing System (Bats) for comprehensive shell script testing. Use when writing tests for shell scripts, CI/CD pipelines, or requiring test-driven development of shell utilities.

wshobson/bazel-build-optimization

Optimize Bazel builds for large-scale monorepos. Use when configuring Bazel, implementing remote execution, or optimizing build performance for enterprise codebases.

wshobson/before-you-build

Pre-build product and feature risk review for founders, product managers, and AI-assisted builders. Use this skill when the user is about to build a landing page, MVP, SaaS product, internal tool, agent workflow, or major feature and needs to check demand, positioning, monetization, retention, trust, distribution, and adoption risk before implementation starts.

wshobson/billing-automation

Build automated billing systems for recurring payments, invoicing, subscription lifecycle, and dunning management. Use when implementing subscription billing, automating invoicing, or managing recurring payment systems.

wshobson/binary-analysis-patterns

Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.

wshobson/block-no-verify-hook

Configure a PreToolUse hook to prevent AI agents from skipping git pre-commit hooks with --no-verify and other bypass flags. Use when setting up Claude Code projects that enforce commit quality gates.

wshobson/brand-landingpage

Brand-first landing page designer — runs a brand-identity interview (colors, typography, shape language), then generates and iterates on a polished landing page via Stitch with deployment-ready HTML. Use when the user asks to create, design, or build a landing page, homepage, or marketing page and has no established visual direction. Skip when they have a design mockup, need a dashboard or app UI, are working at component level, building a multi-page app, or restyling with known design tokens — use frontend-design instead.

Habilidades Relacionadas