Kosmos-2
O Kosmos-2 é o modelo de grounding da Microsoft: ele gera uma legenda para a imagem e depois localiza com uma caixa cada sintagma nominal dessa legenda. O LibreYOLO o envolve como um detector de objetos de vocabulário aberto: a lista de classes é informada na hora de prever.
- Tarefas
- detection
- Tamanhos
- 224 at 224 px
- Instalação
pip install libreyolo- Nível de suporte
- Nível irmão, desde a v. Uma superfície de produto separada, com sua própria fábrica e seu próprio contrato.
- Origem
- Kosmos-2 por Microsoft, MIT. Artigo, código-fonte
- Licenças
- Código MIT, pesos MIT. Uso comercial
Instalação
O Kosmos-2 pertence ao nível VLM-como-detector do LibreYOLO, uma superfície de
produto separada das famílias baseadas em checkpoint e com sua própria factory.
Ele precisa do extra vlm.
pip install "libreyolo[vlm]"Predição
Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache local. O
LibreYOLO carrega diretamente o repositório microsoft/kosmos-2-patch14-224 da
própria Microsoft; ao contrário do Florence-2, aqui não é preciso nenhum reenvio
da comunidade.
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("kosmos-2")model.set_classes(["boat", "person"])result = model.predict(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreVLM model = LibreVLM("kosmos-2")model.set_classes(["boat", "person"]) # Qualquer fonte que a biblioteca aceita: arquivo, pasta, URL, índice# de webcam, stream RTSP ou uma lista .streamsfor result in model.predict("clip.mp4", stream=True, save=True): print(len(result.boxes))Esta família é carregada pela factory LibreVLM(), não por LibreYOLO(): as
famílias VLM não declaram nenhum carregador de checkpoint, então o roteamento
por sufixo de arquivo descrito em outras páginas de modelos não se aplica aqui.
set_classes() define o vocabulário que o Kosmos-2 deve encontrar; ele é
persistente, então continua valendo em todas as chamadas posteriores a
predict()/track() até que você o defina de novo. O Kosmos-2 faz o grounding
de sintagmas nominais em vez de casar exatamente com um rótulo, então o wrapper
do LibreYOLO aceita uma correspondência parcial: uma classe chamada "boat"
também casa com um sintagma gerado como "the boats". Todas as detecções carregam
a mesma confiança de placeholder, então filtrar por conf é tudo ou nada em vez
de uma ordenação, e iou não tem efeito aqui, já que o wrapper monta a lista de
detecções diretamente a partir das entidades com grounding, sem nenhuma etapa de
deduplicação. chat() levanta NotImplementedError, porque o Kosmos-2 é
controlado por um prompt <grounding> e não por um template de chat. A CLI do
LibreYOLO não cobre este nível: não existe uma forma
libreyolo predict model=... para ele. Veja predição para
fontes, streaming e tratamento de resultados.
Variantes
Um único tamanho: kosmos-2-patch14-224, a 224 px, carregado como
LibreVLM("kosmos-2"). É um modelo da época de 2023, e o próprio wrapper do
LibreYOLO observa que seu grounding é mais grosseiro que o dos detectores mais
novos deste nível.
O LibreYOLO não treina, valida nem exporta o Kosmos-2: train(), val() e
export() levantam NotImplementedError em todas as famílias deste nível (veja
o nível de suporte acima). Faça fine-tuning do Kosmos-2 upstream e carregue os
pesos resultantes se precisar de um vocabulário personalizado embutido; confira
a saída de predict() no olho, em vez de uma passagem de validação no estilo
COCO, já que todas as detecções carregam a mesma confiança de placeholder.
Licenciamento
Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.
Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.
- Trabalho original
- Kosmos-2, Microsoft
- Licença original
- MIT
- Código-fonte original
- github.com/microsoft/unilm/tree/master/kosmos-2
- Código do LibreYOLO
- MIT
- Pesos
- MIT, distribuído pelos autores. O LibreYOLO não hospeda nem espelha esses pesos.
- Interpretação
- MIT is a permissive license, so these weights can be used in commercial and closed-source products, provided the copyright notice and license text travel with any copy you redistribute. LibreYOLO downloads Microsoft's own microsoft/kosmos-2-patch14-224 repository directly; unlike Florence-2, no community re-upload is needed for it to load on current transformers.
Citação
@article{kosmos-2,
title={Kosmos-2: Grounding Multimodal Large Language Models to the World},
author={Zhiliang Peng and Wenhui Wang and Li Dong and Yaru Hao and Shaohan Huang and Shuming Ma and Furu Wei},
journal={ArXiv},
year={2023},
volume={abs/2306}
}Copiado do bloco de citação dos autores em github.com/microsoft/unilm/blob/master/kosmos-2/README.md#citation.