Gostaria de poder pesquisar suas imagens ou vídeos sem escrever uma linha de código? Deseja extrair insights de seus dados perguntando em inglês simples? Agora você pode! ?
O Voxelgpt é um plug -in de cinquenta que combina o poder de grandes modelos de linguagem (LLMS) e grandes modelos multimodais (LMMs) com a linguagem de consulta de visão computacional da FiftyOne, permitindo filtrar, classificar, cortar semanticamente e fazer perguntas sobre seus dados usando linguagem natural. Ele pode até executar cálculos no seu conjunto de dados para você - com aprovação, é claro!
Você pode experimentar o Voxelgpt Live em gpt.fiftyone.ai!
O Voxelgpt é capaz de lidar com qualquer um dos seguintes tipos de consultas:
Quando você faz uma pergunta ao Voxelgpt, ele interpretará sua intenção e determinará qual tipo de consulta você está fazendo. Se o Voxelgpt não tiver certeza, ele pedirá que você esclareça.
O Voxelgpt pode lidar com os seguintes tipos de consultas sobre seu conjunto de dados:
Você pode pedir ao Voxelgpt para pesquisar seus conjuntos de dados. Aqui estão alguns exemplos de coisas que você pode perguntar:
Sob o capô, o Voxelgpt interpreta sua consulta e a traduz na visualização do conjunto de dados correspondente. O Voxelgpt entende o esquema do seu conjunto de dados, bem como coisas como execuções de avaliação e índices de similaridade.
Ele também pode inspecionar automaticamente o conteúdo do seu conjunto de dados para recuperar entidades específicas.
O Voxelgpt pode responder a perguntas sobre o esquema do seu conjunto de dados, corridas de cérebro, execuções de avaliação e muito mais. Aqui estão alguns exemplos:
Se o seu conjunto de dados contiver um ou mais campo (s) fo.Detections
, o Voxelgpt poderá filtrar ou corresponder com base no tamanho (relativo e absoluto) das caixas delimitadoras e no número de detecções.
Se o seu conjunto de dados tiver um campo GeoLocation
, você poderá executar consultas geográficas no seu conjunto de dados. O Voxelgpt pode executar a geocodificação para ir do nome do local (ou descrição textual) a um par (lon, lat)
ou uma lista de pontos (lon, lat)
que definem uma região de limite. Aqui estão alguns exemplos:
Se o seu conjunto de dados tiver um campo Date
ou DateTime
, o Voxelgpt poderá executar consultas temporais, como:
event
lendo uma hora do dia entre as 20h e as 23h O Voxelgpt tem acesso a estágios de agregação em cinquenta, para que possa executar agregações como count
, mean
, sum
, std
, min
, max
, values
e distinct
para um campo ou expressão em todo o conjunto de dados ou uma exibição no conjunto de dados. Aqui estão alguns exemplos:
cat
?confidence
em minhas previsões?O Voxelgpt pode executar cálculos no seu conjunto de dados, como:
Aqui estão alguns exemplos de consultas computacionais que você pode perguntar ao voxelgpt:
Se você não deseja permitir que o Voxelgpt execute cálculos, defina a variável de ambiente:
export VOXELGPT_ALLOW_COMPUTATIONS=false
Você também pode definir o tamanho mínimo do conjunto de dados no qual o Voxelgpt precisa solicitar permissão para executar cálculos:
export VOXELGPT_APPROVAL_THRESHOLD=1000
O valor padrão é de 100 amostras.
O Voxelgpt não é apenas um programador de par; É também uma ferramenta educacional. O VoxelGPT tem acesso a todos os cinquenta do Docns, bem como a todas as postagens do blog no blog Voxel51 e transcrições de vídeos no canal Voxel51 no YouTube. Ele pode usar todos esses recursos para responder a cinquenta perguntas relacionadas a um.
Aqui estão alguns exemplos de consultas de documentação que você pode perguntar ao voxelgpt:
O Voxelgpt fornecerá links para os recursos mais úteis nos documentos, no blog e no canal do YouTube da Voxel51. Para os vídeos do YouTube, os links apontarão diretamente para o registro de data e hora mais relevante!
O Voxelgpt pode responder a perguntas sobre o ambiente em que você está executando cinquenta, incluindo:
Aqui estão alguns exemplos de consultas no espaço de trabalho que você pode perguntar ao voxelgpt:
Finalmente, o Voxelgpt pode responder a perguntas gerais sobre visão computacional, aprendizado de máquina e ciência de dados. Pode ajudá -lo a entender conceitos básicos e aprender a superar os problemas de qualidade dos dados.
Aqui estão alguns exemplos de consultas de aprendizado de máquina que você pode perguntar ao voxelgpt:
Se você ainda não o fez, instale cinquenta:
pip install fiftyone
Você também precisará fornecer uma chave de API do OpenAI (Criar um):
export OPENAI_API_KEY=XXXXXXXX
Para uso com sua implantação privada do Azure, veja aqui
Se você deseja usar apenas o Voxelgpt no aplicativo FiftyOne, basta instalá -lo como um plug -in:
fiftyone plugins download https://github.com/voxel51/voxelgpt
fiftyone plugins requirements @voxel51/voxelgpt --install
Se você deseja usar diretamente o módulo voxelgpt
ou desenvolver o projeto localmente, você deseja clonar o repositório:
git clone https://github.com/voxel51/voxelgpt
cd voxelgpt
Instale os requisitos:
pip install -r requirements.txt
e disponibilize o plug -in para uso no aplicativo FiftyOne, simplificando -o no diretório do seu plugins:
# Symlinks your clone of voxelgpt into your FiftyOne plugins directory
ln -s " $( pwd ) " " $( fiftyone config plugins_dir ) /voxelgpt "
Deseja adicionar voxelgpt à sua implantação de cinquenta equipes? Você pode! Instruções aqui.
Você pode usar o Voxelgpt com sua implantação privada do Azure, definindo as seguintes variáveis de ambiente:
export OPENAI_API_TYPE=azure
export AZURE_OPENAI_ENDPOINT= < azure_endpoint >
export AZURE_OPENAI_KEY= < azure_api_key >
export AZURE_OPENAI_GPT35_DEPLOYMENT_NAME= < gpt35-deployment-name >
export AZURE_OPENAI_GPT4O_DEPLOYMENT_NAME= < gpt4o-deployment-name >
export AZURE_OPENAI_TEXT_EMBEDDING_3_LARGE_DEPLOYMENT_NAME= < embedding-deployment-name >
Se alguma das três primeiras variáveis de ambiente não estiver definida, o VoxelGPT não será o uso da API do OpenAI. Para as três últimas variáveis de ambiente, se alguma delas não for definida do recurso não for encontrada, o VoxelGPT não forem o uso da API OpenAI para esse modelo específico.
Você pode usar o Voxelgpt no aplicativo FiftyOne, carregando qualquer conjunto de dados:
import fiftyone as fo
import fiftyone . zoo as foz
dataset = foz . load_zoo_dataset ( "quickstart" )
session = fo . launch_app ( dataset )
e então:
+
ao lado da guia Amostras e escolhendo voxelgptPor exemplo, tente fazer as seguintes perguntas:
Dica profissional: use a palavra -chave now
para incorporar seus avisos anteriores como contexto para sua próxima consulta!
Você também pode executar o VoxElgpt como operador pressionando a tecla ~
no teclado e selecionando Ask VoxelGPT
na lista. Isso abrirá um pequeno modal onde você pode digitar sua consulta.
Se você instalou localmente, também pode interagir diretamente com o Voxelgpt via Python.
Você pode usar ask_voxelgpt_interactive()
para iniciar uma sessão interativa, onde você pode conversar com o voxelgpt via input()
solicitantes. Navegue até o diretório em que o voxelgpt está localizado e execute:
import fiftyone as fo
import fiftyone . zoo as foz
from voxelgpt import ask_voxelgpt_interactive
dataset = foz . load_zoo_dataset ( "quickstart" )
session = fo . launch_app ( dataset )
ask_voxelgpt_interactive ( dataset , session = session )
Dica profissional: use a palavra -chave now
para incorporar seus avisos anteriores como contexto para sua próxima consulta.
Como sempre, você pode solicitar o Voxelgpt com qualquer combinação de consultas de conjunto de dados, documentação e visão geral. Por exemplo, uma conversa pode parecer:
You:
what is the difference between precision and recall?
VoxelGPT:
Precision and recall are two important metrics used to evaluate the
performance of a machine learning model in classification tasks. Precision
measures the proportion of true positive predictions among all positive
predictions made by the model. Recall, on the other hand, measures the
proportion of true positive predictions among all actual positive instances
in the dataset.
In other words, precision is the ability of the model to correctly identify
positive instances, while recall is the ability of the model to identify
all positive instances. A high precision means that the model is making
very few false positive predictions, while a high recall means that the
model is able to identify most of the positive instances in the dataset.
It is important to balance precision and recall when evaluating a model's
performance. A model with high precision but low recall may be missing
important positive instances, while a model with high recall but low
precision may be making too many false positive predictions.
In the context of the FiftyOne library, precision and recall can be
computed using the `fiftyone.utils.metrics` module, which provides
functions for computing various classification metrics. For example, the
`fiftyone.utils.metrics.binary_classification` function can be used to
compute precision and recall for binary classification tasks.
You:
does FiftyOne integrate with Label Studio?
VoxelGPT:
Yes, FiftyOne integrates with Label Studio. The integration allows you to
easily upload your data directly from FiftyOne to Label Studio for labeling.
You can get started with Label Studio through a simple pip install to get a
local server up and running. FiftyOne provides simple setup instructions
that you can use to specify the necessary account credentials and server
endpoint to use. FiftyOne provides an API to create projects, upload data,
define label schemas, and download annotations using Label Studio, all
programmatically in Python. All of the following label types are supported
for image datasets: Classification, Detections, Instance segmentations,
Polygons and polylines, Keypoints, Scalar fields, and Semantic segmentation.
Sources:
- https://docs.voxel51.com/integrations/index.html
- https://docs.voxel51.com/integrations/labelstudio.html
You:
show me predicted airplanes
VoxelGPT:
Identified potential algorithms: evaluation
No evaluation runs found.
Identified potential fields: predictions
Identified potential label classes: {'predictions': ['airplane']}
Identified potential view stages: ['match', 'filter_labels', 'match_labels', 'exclude_labels', 'filter_field']
Okay, I'm going to load dataset.filter_labels("predictions",F("label") == "airplane")
You:
now only show me the first 10 samples
VoxelGPT:
Identified potential algorithms: evaluation
No evaluation runs found.
Identified potential fields: predictions
Identified potential label classes: {'predictions': ['airplane']}
Identified potential view stages: ['match', 'limit', 'limit_labels', 'skip', 'sort_by']
Okay, I'm going to load dataset.match(F("predictions.detections.label").contains("airplane")).limit(10)
You: exit
No modo interativo, o Voxelgpt carrega automaticamente todas as visualizações que cria no aplicativo e você pode acessá -las através do objeto de sessão:
print ( session . view . count ( "predictions.detections" ))
Você também pode usar ask_voxelgpt()
para solicitar o Voxelgpt com consultas individuais:
from voxelgpt import ask_voxelgpt
ask_voxelgpt ( "Does FiftyOne integrate with CVAT?" )
Yes, FiftyOne integrates with CVAT, which is an open-source image and video
annotation tool. You can upload your data directly from FiftyOne to CVAT to add or
edit labels. You can use CVAT either through the hosted server at app.cvat.ai or
through a self-hosted server. In either case, FiftyOne provides simple setup
instructions that you can use to specify the necessary account credentials and
server endpoint to use. The tight integration between FiftyOne and CVAT allows
you to curate and explore datasets in FiftyOne and then send off samples or
existing labels for annotation in CVAT with just one line of code. To use CVAT,
you must create an account on a CVAT server. By default, FiftyOne uses app.cvat.ai.
If you haven’t already, go to app.cvat.ai and create an account now. Another option
is to set up CVAT locally and then configure FiftyOne to use your self-hosted server.
A primary benefit of setting up CVAT locally is that you are limited to 10 tasks and
500MB of data with app.cvat.ai.
Sources:
- https://docs.voxel51.com/integrations/cvat.html#examples
- https://docs.voxel51.com/tutorials/cvat_annotation.html#Annotating-Datasets-with-CVAT
- https://docs.voxel51.com/tutorials/cvat_annotation.html#Setup
- https://docs.voxel51.com/integrations/index.html#fiftyone-integrations
Quando o Voxelgpt cria uma visão em resposta à sua consulta, ele é devolvido:
import fiftyone as fo
import fiftyone . zoo as foz
dataset = foz . load_zoo_dataset ( "quickstart" )
view = ask_voxelgpt ( "show me 10 random samples" , dataset )
Identified potential view stages: ['match', 'limit', 'skip', 'take', 'sort_by']
Okay, I'm going to load dataset.take(10)
O Voxelgpt é treinado para reconhecer certas palavras -chave que ajudam a entender sua intenção:
Palavra -chave | Significado |
---|---|
show / display | Diz a Voxelgpt que você deseja que ele consulte seu conjunto de dados e exiba os resultados |
docs / how / FiftyOne | Diz a Voxelgpt que você deseja que ele consulte os cinquenta documentos. |
now | Use seu histórico de bate -papo como contexto para interpretar sua próxima consulta. Por exemplo, se você perguntar "mostre -me imagens com pessoas" e depois pergunte "Agora mostre -me os 10 mais exclusivos", o Voxelgpt entenderá que você deseja mostrar as 10 imagens mais exclusivas com pessoas |
help | Imprime uma mensagem de ajuda com instruções de uso |
reset | Redefina o histórico de conversas |
exit | Sai sessões interativas de python |
As contribuições são bem -vindas! Confira o Guia de Contribuições para obter instruções.
Voxelgpt usa:
O Voxelgpt fornece suporte limitado para vídeos, conjuntos de dados agrupados e mídia 3D. A filtragem, a consulta e as agregações básicas ainda funcionarão, mas não espere insights profundos sobre dados 3D.
Essa implementação é baseada em um conjunto limitado de exemplos, portanto, pode não generalizar bem para todos os conjuntos de dados. Quanto mais específica sua consulta, melhores serão os resultados. Se você achar que os resultados não são o que você espera, informe -nos!
Se você chegou até aqui, gostaríamos muito de que você levaria um momento para conferir cinquenta e nos dar uma estrela!
A Ciftyone é uma biblioteca de código aberto para criar conjuntos de dados de alta qualidade e modelos de visão computacional. É o motor que alimenta este projeto.
Obrigado por visitar! ?
Se você deseja ingressar em uma comunidade de engenheiros, pesquisadores e profissionais que amam a IA visual, junte-se à comunidade de cinquenta e slack!