¿Desea poder buscar sus imágenes o videos sin escribir una línea de código? ¿Quiere extraer información de sus datos preguntando en inglés sencillo? ¡Ahora puedes! ?
Voxelgpt es un complemento de cincuenta que combina la potencia de los modelos de lenguaje grande (LLM) y los grandes modelos multimodales (LMM) con el lenguaje de consulta de visión por computadora de FiftyOne, lo que le permite filtrar, clasificar, cortar semánticamente y hacer preguntas sobre sus datos utilizando el lenguaje natural. Incluso puede realizar cálculos en su conjunto de datos para usted, ¡con aprobación, por supuesto!
¡Puedes probar Voxelgpt Live en GPT.Fiftyone.ai!
Voxelgpt es capaz de manejar cualquiera de los siguientes tipos de consultas:
Cuando le haga una pregunta a Voxelgpt, interpretará su intención y determinará qué tipo de consulta está haciendo. Si Voxelgpt no está seguro, le pedirá que aclare.
Voxelgpt puede manejar los siguientes tipos de consultas sobre su conjunto de datos:
Puede pedirle a VoxelPpt que le busque sus conjuntos de datos. Aquí hay algunos ejemplos de cosas que puede preguntar:
Debajo del capó, Voxelgpt interpreta su consulta y la traduce en la vista del conjunto de datos correspondiente. Voxelgpt comprende el esquema de su conjunto de datos, así como cosas como las ejecuciones de evaluación e índices de similitud.
También puede inspeccionar automáticamente el contenido de su conjunto de datos para recuperar entidades específicas.
Voxelgpt puede responder preguntas sobre el esquema de su conjunto de datos, ejecuciones cerebrales, ejecuciones de evaluación y más. Aquí hay algunos ejemplos:
Si su conjunto de datos contiene uno o más campo fo.Detections
, Voxelgpt puede filtrar o coincidir en función del tamaño (relativo y absoluto) de los cuadros delimitadores, y en el número de detecciones.
Si su conjunto de datos tiene un campo GeoLocation
, puede ejecutar consultas geográficas en su conjunto de datos. Voxelgpt puede realizar la geocodificación para pasar del nombre de ubicación (o descripción textual) a un par (lon, lat)
, o una lista de puntos (lon, lat)
que definen una región límite. Aquí hay algunos ejemplos:
Si su conjunto de datos tiene un campo de Date
o DateTime
, Voxelgpt puede realizar consultas temporales como:
event
leyendo una hora del día entre las 8 p.m. y las 11 p.m. Voxelgpt tiene acceso a las etapas de agregación en cincuenta, por lo que puede realizar agregaciones como count
, mean
, sum
, std
, min
, max
, values
y distinct
para un campo o expresión en todo el conjunto de datos o una vista en el conjunto de datos. Aquí hay algunos ejemplos:
cat
?confidence
en mis predicciones?VoxElgpt puede realizar cálculos en su conjunto de datos, como:
Aquí hay algunos ejemplos de consultas computacionales que puede preguntar VOXELGPT:
Si no desea permitir que VOXELGPT ejecute los cálculos, establezca la variable de entorno:
export VOXELGPT_ALLOW_COMPUTATIONS=false
También puede establecer el tamaño mínimo del conjunto de datos en el que VoxelGPT debe solicitar permiso para ejecutar cálculos:
export VOXELGPT_APPROVAL_THRESHOLD=1000
El valor predeterminado es de 100 muestras.
Voxelgpt no es solo un programador de pares; También es una herramienta educativa. Voxelgpt tiene acceso a los Docios FiftyOne completos, así como a todas las publicaciones de blog en el blog Voxel51, y transcripciones de videos en el canal de YouTube Voxel51. Puede usar todos estos recursos para responder preguntas relacionadas con cincuenta.
Aquí hay algunos ejemplos de consultas de documentación que puede preguntar VOXELGPT:
Voxelgpt proporcionará enlaces a los recursos más útiles en los documentos, blog y canal de YouTube de Voxel51. ¡Para los videos de YouTube, los enlaces apuntarán directamente a la marca de tiempo más relevante!
Voxelgpt puede responder preguntas sobre el entorno en el que está ejecutando cincuenta, incluido:
Aquí hay algunos ejemplos de consultas en el espacio de trabajo que puede preguntar Voxelgpt:
Finalmente, Voxelgpt puede responder preguntas generales sobre visión por computadora, aprendizaje automático y ciencia de datos. Puede ayudarlo a comprender los conceptos básicos y aprender a superar los problemas de calidad de los datos.
Aquí hay algunos ejemplos de consultas de aprendizaje automático que puede preguntar VOXELGPT:
Si aún no lo ha hecho, instale FiftyOne:
pip install fiftyone
También necesitará proporcionar una tecla API de OpenAI (cree una):
export OPENAI_API_KEY=XXXXXXXX
Para usar con su implementación privada de Azure, vea aquí
Si solo desea usar VOXELGPT en la aplicación FiftyOne, simplemente puede instalarlo como un complemento:
fiftyone plugins download https://github.com/voxel51/voxelgpt
fiftyone plugins requirements @voxel51/voxelgpt --install
Si desea usar directamente el módulo voxelgpt
o desarrollar el proyecto localmente, entonces querrá clonar el repositorio:
git clone https://github.com/voxel51/voxelgpt
cd voxelgpt
Instale los requisitos:
pip install -r requirements.txt
Y haga que el complemento esté disponible para su uso en la aplicación FiftyOne al simularlo en su directorio de complementos:
# Symlinks your clone of voxelgpt into your FiftyOne plugins directory
ln -s " $( pwd ) " " $( fiftyone config plugins_dir ) /voxelgpt "
¿Quiere agregar Voxelgpt a su implementación de los equipos de cincuenta? ¡Puede! Instrucciones aquí.
Puede usar VOXELGPT con su implementación privada de Azure estableciendo las siguientes variables de entorno:
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 >
Si no se establece alguna de las tres primeras variables de entorno, VoxelGPT no puede usar la API de OpenAI. Para las últimas tres variables de entorno, si ninguna de ellas no se encuentra el recurso no se encuentra, VoxelGPT será predeterminado por el uso de la API de OpenAI para ese modelo específico.
Puede usar VOXELGPT en la aplicación FiftyOne cargando cualquier conjunto de datos:
import fiftyone as fo
import fiftyone . zoo as foz
dataset = foz . load_zoo_dataset ( "quickstart" )
session = fo . launch_app ( dataset )
Y luego o tampoco:
+
al lado de la pestaña de muestras y eligiendo VoxelgptPor ejemplo, intente hacer las siguientes preguntas:
Consejo profesional: ¡Use la palabra clave now
para incorporar sus indicaciones anteriores como contexto para su próxima consulta!
También puede ejecutar Voxelgpt como operador presionando la tecla ~
en su teclado y seleccionando Ask VoxelGPT
en la lista. Esto abrirá un pequeño modal donde puede escribir su consulta.
Si ha instalado localmente, también puede interactuar directamente con Voxelgpt a través de Python.
Puede usar ask_voxelgpt_interactive()
para iniciar una sesión interactiva donde puede conversar con Voxelgpt a través de las indicaciones input()
. Navegue al directorio donde se encuentra Voxelgpt y se ejecuta:
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 )
Consejo profesional: use la palabra clave now
para incorporar sus indicaciones anteriores como contexto para su próxima consulta.
Como de costumbre, puede solicitar VOXELGPT con cualquier combinación de consultas de conjunto de datos, documentación y visión por computadora general. Por ejemplo, una conversación puede 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
En modo interactivo, Voxelgpt carga automáticamente cualquier vista que cree en la aplicación, y puede acceder a ellos a través de su objeto de sesión:
print ( session . view . count ( "predictions.detections" ))
También puede usar ask_voxelgpt()
para solicitar voxelppt con consultas individuales:
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
Cuando Voxelgpt crea una opinión en respuesta a su consulta, se devuelve:
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)
Voxelgpt está capacitado para reconocer ciertas palabras clave que lo ayudan a comprender su intención:
Palabra clave | Significado |
---|---|
show / display | Le dice a Voxelgpt que desea que consulte su conjunto de datos y muestre los resultados |
docs / how / FiftyOne | Le dice a Voxelgpt que quieres que consulte los cincuenta y los documentos. |
now | Use su historial de chat como contexto para interpretar su próxima consulta. Por ejemplo, si pregunta "Muéstrame imágenes con personas" y luego pregunta "Ahora muéstrame los 10 más únicos", Voxelgpt comprenderá que desea mostrar las 10 imágenes más singulares con personas. |
help | Imprime un mensaje de ayuda con instrucciones de uso |
reset | Restablece el historial de conversación |
exit | Sale de sesiones interactivas de pitón |
¡Las contribuciones son bienvenidas! Consulte la Guía de contribuciones para obtener instrucciones.
Voxelgpt usa:
VoxelGPT proporciona soporte limitado para videos, conjuntos de datos agrupados y medios 3D. El filtrado básico, la consulta y las agregaciones seguirán funcionando, pero no espere información profunda en los datos 3D.
Esta implementación se basa en un conjunto limitado de ejemplos, por lo que puede no generalizarse bien a todos los conjuntos de datos. Cuanto más específica sea su consulta, mejores serán los resultados. Si encuentra que los resultados no son lo que espera, ¡háganoslo saber!
Si lo has llegado tan lejos, ¡apreciaríamos mucho si se tomaría un momento para visitar FiftyOne y darnos una estrella!
FiftyOne es una biblioteca de código abierto para construir conjuntos de datos de alta calidad y modelos de visión por computadora. Es el motor el que alimenta este proyecto.
¡Gracias por visitar! ?
Si desea unirse a una comunidad de ingenieros, investigadores y profesionales de rápido crecimiento que aman la IA visual, ¡únase a la comunidad FiftyOne Slack!