Хотите, чтобы вы могли искать свои изображения или видео, не написав строку кода? Хотите извлечь понимание из ваших данных, спросив на простом английском? Теперь вы можете! ?
Voxelgpt - это плагин FiftyOne, который объединяет мощность больших языковых моделей (LLMS) и крупные мультимодальные модели (LMMS) с языком запросов компьютерного зрения FiftyOne, позволяя вам фильтровать, сортировать, семантически нарезать и задавать вопросы о ваших данных с использованием естественного языка. Он может даже выполнить вычисления на ваш набор данных для вас - с одобрения, конечно!
Вы можете попробовать Voxelgpt Live на gpt.fiftyone.ai!
Voxelgpt способен обрабатывать любой из следующих типов запросов:
Когда вы зададите Voxelgpt вопрос, он будет интерпретировать ваши намерения и определить, какой тип запроса вы спрашиваете. Если Voxelgpt не уверен, он попросит вас уточнить.
Voxelgpt может обрабатывать следующие типы запросов о вашем наборе данных:
Вы можете попросить Voxelgpt поиск ваших наборов данных для вас. Вот несколько примеров вещей, которые вы можете спросить:
Под капотом Voxelgpt интерпретирует ваш запрос и переводит его в соответствующий представление набора данных. Voxelgpt понимает схему вашего набора данных, а также такие вещи, как оценки и индексы сходства.
Он также может автоматически проверять содержимое вашего набора данных, чтобы получить конкретные объекты.
Voxelgpt может ответить на вопросы о схеме вашего набора данных, прогонов мозга, прогонов оценки и многого другого. Вот несколько примеров:
Если ваш набор данных содержит одно или несколько fo.Detections
поле (ы), Voxelgpt может фильтровать или соответствовать размеру (относительно и абсолютно) ограничивающих ящиков и на количестве обнаружений.
Если ваш набор данных имеет поле GeoLocation
, вы можете запустить географические запросы на своем наборе данных. Voxelgpt может выполнять геокодирование, чтобы перейти от названия местоположения (или текстового описания) в пару (lon, lat)
или список (lon, lat)
, определяющих граничную область. Вот несколько примеров:
Если ваш набор данных имеет поле Date
или DateTime
, Voxelgpt может выполнять временные запросы, такие как:
event
, чтение времени суток с 8 вечера до 11 вечера Voxelgpt имеет доступ к этапам агрегации в Fiftyone, поэтому он может выполнять агрегации, такие как count
, mean
, sum
, std
, min
, max
, values
и distinct
для поля или выражения по всему набору данных или представление в наборе набора данных. Вот несколько примеров:
cat
меткой?confidence
в моих прогнозах?Voxelgpt может выполнять вычисления в вашем наборе данных, например:
Вот несколько примеров вычислительных запросов, вы можете спросить Voxelgpt:
Если вы не хотите разрешать Voxelgpt запускать вычисления, установите переменную среды:
export VOXELGPT_ALLOW_COMPUTATIONS=false
Вы также можете установить минимальный размер набора данных, при котором Voxelgpt необходимо попросить разрешения на запуск вычислений:
export VOXELGPT_APPROVAL_THRESHOLD=1000
Значение по умолчанию составляет 100 образцов.
Voxelgpt - это не только пара -программист; Это также образовательный инструмент. Voxelgpt имеет доступ ко всему пятьдесятиновым документам, а также все сообщения в блоге в блоге Voxel51, а также транскрипты из видео на канале YouTube Voxel51. Он может использовать все эти ресурсы, чтобы ответить на вопросы, связанные с пятьдесят.
Вот несколько примеров запросов документации, вы можете спросить Voxelgpt:
Voxelgpt предоставит ссылки на наиболее полезные ресурсы в Docs, блоге и канале YouTube Voxel51. Для видео на YouTube ссылки будут непосредственно указывать на наиболее актуальную временную метку!
Voxelgpt может ответить на вопросы о среде, в которой вы управляете пятьдесят, включая:
Вот несколько примеров запросов рабочей области, вы можете спросить Voxelgpt:
Наконец, Voxelgpt может ответить на общие вопросы о компьютерном зрении, машинном обучении и науке о данных. Это может помочь вам понять основные концепции и научиться преодолеть проблемы качества данных.
Вот несколько примеров запросов машинного обучения, вы можете спросить Voxelgpt:
Если вы еще этого не сделали, установите пятьдесят:
pip install fiftyone
Вам также необходимо предоставить ключ API OpenAI (создать один):
export OPENAI_API_KEY=XXXXXXXX
Для использования с вашим частным развертыванием Azure, см. Здесь
Если вы хотите использовать Voxelgpt в приложении Fiftyone, то вы можете просто установить его в качестве плагина:
fiftyone plugins download https://github.com/voxel51/voxelgpt
fiftyone plugins requirements @voxel51/voxelgpt --install
Если вы хотите напрямую использовать модуль voxelgpt
или разработать проект локально, то вам захочется клонировать репозиторий:
git clone https://github.com/voxel51/voxelgpt
cd voxelgpt
Установите требования:
pip install -r requirements.txt
и сделать плагин доступным для использования в приложении Fiftyone, символизируя его в каталоге плагинов:
# Symlinks your clone of voxelgpt into your FiftyOne plugins directory
ln -s " $( pwd ) " " $( fiftyone config plugins_dir ) /voxelgpt "
Хотите добавить Voxelgpt в развертывание ваших команд PiftyOne? Ты можешь! Инструкции здесь.
Вы можете использовать Voxelgpt с вашим частным развертыванием Azure, установив следующие переменные среды:
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 >
Если какая -либо из первых трех переменных среды не установлена, Voxelgpt по умолчанию будет использовать API OpenAI. Для последних трех переменных среды, если какая -либо из них не будет установлен из ресурса, не найден, Voxelgpt будет дефолт на использование API OpenAI для этой конкретной модели.
Вы можете использовать Voxelgpt в приложении Fiftyone, загрузив любой набор данных:
import fiftyone as fo
import fiftyone . zoo as foz
dataset = foz . load_zoo_dataset ( "quickstart" )
session = fo . launch_app ( dataset )
а потом либо:
+
рядом с вкладкой «Образцы» и выбор VoxelgptНапример, попробуйте задать следующие вопросы:
Совет профессионала: используйте ключевое слово now
, чтобы включить ваши предыдущие подсказки в качестве контекста для вашего следующего запроса!
Вы также можете запустить Voxelgpt в качестве оператора, нажав клавишу ~
на клавиатуре и выбрав Ask VoxelGPT
из списка. Это откроет небольшой модал, где вы можете ввести свой запрос.
Если вы установили локально, вы также можете напрямую взаимодействовать с Voxelgpt через Python.
Вы можете использовать ask_voxelgpt_interactive()
для запуска интерактивного сеанса, где вы можете общаться с Voxelgpt через подсказки input()
. Перейдите в каталог, где находится Voxelgpt и запускается:
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 )
Совет Pro: используйте ключевое слово now
, чтобы включить ваши предыдущие подсказки в качестве контекста для вашего следующего запроса.
Как обычно, вы можете призвать Voxelgpt с любой комбинацией набора данных, документации и общих запросов компьютерного зрения. Например, может выглядеть разговор:
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
В интерактивном режиме Voxelgpt автоматически загружает любые представления, которые он создает в приложении, и вы можете получить к ним доступ через свой объект сеанса:
print ( session . view . count ( "predictions.detections" ))
Вы также можете использовать ask_voxelgpt()
чтобы привлечь Voxelgpt с отдельными запросами:
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
Когда Voxelgpt создает представление в ответ на ваш запрос, он возвращается:
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 обучен распознавать определенные ключевые слова, которые помогают им понять ваши намерения:
Ключевое слово | Значение |
---|---|
show / display | Сообщает Voxelgpt, что вы хотите, чтобы он запросил ваш набор данных и отобразил результаты |
docs / how / FiftyOne | Сообщает Voxelgpt, что вы хотите, чтобы он запрашивал пятьдесят документов. |
now | Используйте историю чата в качестве контекста, чтобы интерпретировать ваш следующий запрос. Например, если вы спросите «Покажи мне изображения с людьми», а затем спросите: «Теперь покажи мне 10 самых уникальных», Voxelgpt поймет, что вы хотите показать 10 самых уникальных изображений с людьми |
help | Отпечатает сообщение о справочнике с инструкциями по использованию |
reset | Сбрасывает историю разговоров |
exit | Выходит из интерактивных сеансов Python |
Взносы приветствуются! Проверьте руководство по вкладам для инструкций.
Voxelgpt использует:
Voxelgpt предоставляет ограниченную поддержку видео, сгруппированных наборов данных и 3D Media. Основная фильтрация, запросы и агрегации все еще будут работать, но не ожидайте глубокого понимания 3D -данных.
Эта реализация основана на ограниченном наборе примеров, поэтому она может не хорошо обобщать все наборы данных. Чем конкретно ваш запрос, тем лучше будут результаты. Если вы обнаружите, что результаты не то, что вы ожидаете, дайте нам знать!
Если вы сделали это так далеко, мы очень признателен, если бы вы потратили время, чтобы проверить FiftyOne и дать нам звезду!
Fiftyone-это библиотека с открытым исходным кодом для создания высококачественных наборов данных и моделей компьютерного зрения. Это двигатель, который питает этот проект.
Спасибо за посещение! ?
Если вы хотите присоединиться к быстро растущему сообществу инженеров, исследователей и практикующих, которые любят Visual AI, присоединяйтесь к сообществу FiftyOne Slack!