希望您可以在不編寫代碼行的情況下搜索圖像或視頻?是否想通過以簡單的英語詢問從數據中提取見解?現在可以! ?
VoxelGpt是一個五十一個插件,結合了大語言模型(LLMS)和大型多模型模型(LMM)的功能,以及FiftyOne的計算機視覺查詢語言,使您能夠使用自然語言過濾,分類,分類,切片,切成語義,並提出有關數據的問題。它甚至可以在您的數據集上為您執行計算 - 當然可以通過批准!
您可以在gpt.fiftyone.ai上嘗試voxelgpt!
VoxelGpt能夠處理以下任何類型的查詢:
當您向Voxelgpt提出問題時,它將解釋您的意圖並確定您要問的查詢類型。如果不確定Voxelgpt,它將要求您澄清。
VoxelGpt可以處理有關數據集的以下查詢類型:
您可以要求Voxelpt為您搜索數據集。這是您可以問的一些示例:
在引擎蓋下,voxelgpt解釋您的查詢並將其轉換為相應的數據集視圖。 VoxelGpt了解數據集的模式,以及評估運行和相似性索引之類的內容。
它還可以自動檢查數據集的內容以檢索特定實體。
VoxelGpt可以回答有關數據集,大腦運行,評估運行等方案的問題。這裡有一些例子:
如果您的數據集包含一個或多個fo.Detections
字段,則VoxelGpt可以根據邊界框的大小(相對和絕對)和檢測次數進行過濾或匹配。
如果您的數據集具有GeoLocation
字段,則可以在數據集上運行地理查詢。 VoxelGpt可以執行從位置名稱(或文本描述)到(lon, lat)
對的地理編碼,或定義邊界區域的(lon, lat)
點的列表。這裡有幾個例子:
如果您的數據集具有Date
或DateTime
字段,則VoxelGpt可以執行諸如:
event
字段在晚上8點至晚上11點之間閱讀一天中的時間VoxelGpt可以訪問FiftyOne的聚合階段,因此可以執行整個數據集中的count
, mean
,Sum, sum
, std
, min
,MAX, max
, values
和DICTICT的聚合,或者在整個數據集中的字段或表達式distinct
,或在數據集中的視圖中進行視圖。這裡有一些例子:
cat
標籤我有幾張圖像?confidence
領域的標準偏差是什麼?VoxelGpt可以在數據集上執行計算,例如:
以下是一些計算查詢的示例,您可以詢問VoxelGpt:
如果您不想允許VoxelGpt運行計算,請設置環境變量:
export VOXELGPT_ALLOW_COMPUTATIONS=false
您還可以設置VoxelGPT需要在該數據集中的最小數據集大小來要求運行計算的權限:
export VOXELGPT_APPROVAL_THRESHOLD=1000
默認值是100個樣本。
Voxelgpt不僅是配對的程序員;它也是一種教育工具。 VoxelGpt可以訪問整個FiftyOne文檔,以及Voxel51博客上的所有博客文章,以及Voxel51 YouTube頻道上的視頻中的成績單。它可以使用所有這些資源來回答與五十一個有關的問題。
以下是一些文檔查詢的示例,您可以詢問VoxelGpt:
VoxelGpt將提供跨Voxel51文檔,博客和YouTube頻道中最有用的資源的鏈接。對於YouTube視頻,鏈接將直接指向最相關的時間戳!
Voxelgpt可以回答有關您正在運行的五十一個環境的問題,包括:
這是一些工作區查詢的示例,您可以詢問VoxelGpt:
最後,Voxelgpt可以回答有關計算機視覺,機器學習和數據科學的一般問題。它可以幫助您了解基本概念並學習如何克服數據質量問題。
以下是一些機器學習查詢的示例,您可以詢問VoxelGpt:
如果還沒有,請安裝fiftyone:
pip install fiftyone
您還需要提供一個OpenAI API密鑰(創建一個):
export OPENAI_API_KEY=XXXXXXXX
要與您的私人Azure部署一起使用,請參閱此處
如果您只想在fiftyone應用中使用voxelgpt,則可以簡單地將其安裝為插件:
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 "
是否想在您的FiftyOne團隊部署中添加Voxelgpt?你可以!說明在這裡。
您可以通過設置以下環境變量來將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將默認使用OpenAI API。對於最後三個環境變量,如果找不到任何資源的設置,則VoxelGpt將默認將OpenAI API用於該特定模型。
您可以通過加載任何數據集來使用fiftyone應用中的voxelgpt:
import fiftyone as fo
import fiftyone . zoo as foz
dataset = foz . load_zoo_dataset ( "quickstart" )
session = fo . launch_app ( dataset )
然後是:
+
圖標並選擇voxelgpt例如,嘗試詢問以下問題:
專家提示:使用now
關鍵字將您以前的提示合併為下一個查詢的上下文!
您還可以通過按鍵盤上的~
鍵並從列表中選擇Ask VoxelGPT
來運行VoxelGpt作為操作員。這將打開一個小型模式,您可以在其中輸入查詢。
如果您已經在本地安裝,也可以通過Python直接與Voxelgpt進行交互。
您可以使用ask_voxelgpt_interactive()
啟動交互式會話,可以在其中通過input()
提示與voxelgpt交談。導航到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 )
專家提示:使用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您希望它查詢fiftyone文檔。 |
now | 使用您的聊天歷史記錄作為上下文來解釋您的下一個查詢。例如,如果您問“與人一起向我展示圖像”,然後問“現在向我展示10個最獨特的圖像”,VoxelGpt將了解您想向人們展示10個最獨特的圖像 |
help | 用使用說明打印幫助消息 |
reset | 重置對話歷史 |
exit | 退出互動python會議 |
歡迎捐款!查看指示貢獻指南。
Voxelgpt使用:
Voxelgpt為視頻,分組數據集和3D媒體提供了有限的支持。基本的過濾,查詢和聚合仍將起作用,但不要期望對3D數據有深入的了解。
該實現基於一組有限的示例,因此可能無法很好地概括所有數據集。您的查詢越具體,結果就越好。如果您發現結果不是您的期望,請告訴我們!
如果您做到了這麼遠,我們將非常感謝您是否花點時間檢查Fiftyone並給我們一顆星星!
FiftyOne是用於構建高質量數據集和計算機視覺模型的開源庫。這是為該項目提供動力的引擎。
感謝您的訪問! ?
如果您想加入熱愛Visual AI的快速發展的工程師,研究人員和從業者,請加入Fiftyone Slack社區!