コードを書くことなく画像やビデオを検索できたらいいのにと思いますか?平易な英語で尋ねて、データから洞察を抽出したいですか?今、あなたはできます! ?
Voxelgptは、大規模な言語モデル(LLMS)と大規模なマルチモーダルモデル(LMMS)のパワーをFiftoneのコンピュータービジョンクエリ言語と組み合わせた50個のプラグインであり、自然言語を使用してデータについてフィルタリング、ソート、並べ替え、スライスし、質問することができます。もちろん、承認を得て、データセットで計算を実行することもできます。
voxelgpt live at gpt.fiftyone.aiでお試しください!
Voxelgptは、次のタイプのクエリのいずれかを処理できます。
Voxelgptに質問をすると、それはあなたの意図を解釈し、どのタイプのクエリを求めているかを決定します。 Voxelgptが不確かである場合、明確にするように求められます。
Voxelgptは、データセットに関する次の種類のクエリを処理できます。
Voxelgptにデータセットを検索するように依頼できます。これがあなたが尋ねることができるもののいくつかの例を紹介します:
ボンネットの下で、Voxelgptはクエリを解釈し、対応するデータセットビューに変換します。 Voxelgptは、データセットのスキーマと、評価の実行や類似性インデックスなどを理解しています。
また、特定のエンティティを取得するために、データセットの内容を自動的に検査することもできます。
Voxelgptは、データセットのスキーマ、脳の実行、評価の実行などに関する質問に答えることができます。ここにいくつかの例があります:
データセットに1つ以上のfo.Detections
フィールドが含まれている場合、Voxelgptは、境界ボックスのサイズ(相対的および絶対)、および検出の数に基づいてフィルタリングまたは一致させることができます。
データセットにGeoLocation
フィールドがある場合、データセットで地理的クエリを実行できます。 Voxelgptはジオコーディングを実行して、ロケーション名(またはテキストの説明)から(lon, lat)
ペア、または境界領域を定義する(lon, lat)
ポイントのリストに移動できます。ここにいくつかの例があります:
データセットにDate
またはDateTime
フィールドがある場合、voxelgptは次のような一時的なクエリを実行できます。
event
フィールドでサンプルを見せてくださいVoxelgptはFiftoneの集約段階にアクセスできるため、データセット全体やデータセットへのビュー全体でフィールドまたはdistinct
で、 count
、 mean
、 sum
、 std
、 min
、 values
などの集約max
実行できます。ここにいくつかの例があります:
cat
ラベルにはいくつの画像がありますか?confidence
分野の標準偏差は何ですか?voxelgptは、次のようなデータセットで計算を実行できます。
voxelgptに尋ねることができる計算クエリの例をいくつか紹介します。
voxelgptが計算を実行することを許可したくない場合は、環境変数を設定します。
export VOXELGPT_ALLOW_COMPUTATIONS=false
また、VoxelGPTが計算を実行する許可を求める必要がある最小データセットサイズを設定することもできます。
export VOXELGPT_APPROVAL_THRESHOLD=1000
デフォルト値は100サンプルです。
Voxelgptはペアプログラマーだけではありません。また、教育ツールでもあります。 Voxelgptは、Fiftoneドキュメント全体、Voxel51ブログのすべてのブログ投稿、Voxel51 YouTubeチャンネルのビデオからのトランスクリプトにアクセスできます。これらのすべてのリソースを使用して、50個関連する質問に答えることができます。
voxelgptに尋ねることができるドキュメントクエリの例をいくつか紹介します。
Voxelgptは、Voxel51のドキュメント、ブログ、YouTubeチャンネル全体で最も役立つリソースへのリンクを提供します。 YouTubeビデオの場合、リンクは最も関連性の高いタイムスタンプを直接指します!
voxelgptは、次のことを含む50oneを実行している環境に関する質問に答えることができます。
voxelgptに尋ねることができるワークスペースクエリの例をいくつか紹介します。
最後に、Voxelgptは、コンピュータービジョン、機械学習、データサイエンスに関する一般的な質問に答えることができます。基本的な概念を理解し、データ品質の問題を克服する方法を学ぶのに役立ちます。
voxelgptに尋ねることができる機械学習クエリの例をいくつか紹介します。
まだ行っていない場合は、FifToNeをインストールしてください。
pip install fiftyone
また、OpenAI APIキーを提供する必要があります(作成):
export OPENAI_API_KEY=XXXXXXXX
プライベートAzureの展開で使用するには、こちらを参照してください
Fiftoneアプリで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
プラグインディレクトリにシンリンクすることにより、プラグインをFiftoneアプリで使用できるようにします。
# Symlinks your clone of voxelgpt into your FiftyOne plugins directory
ln -s " $( pwd ) " " $( fiftyone config plugins_dir ) /voxelgpt "
Fiftoneチームの展開にVoxelgptを追加したいですか?あなたはできる!ここに指示があります。
次の環境変数を設定することにより、プライベートAzure展開でVoxelgptを使用できます。
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 >
最初の3つの環境変数のいずれかが設定されていない場合、voxelgptはOpenai APIを使用するデフォルトです。最後の3つの環境変数では、それらのいずれかがリソースのセットが見つからない場合、Voxelgptはその特定のモデルにOpenAI APIを使用することにデフォルトです。
任意のデータセットをロードすることにより、Fiftoneアプリで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に、Fiftone Docsを照会したいことを伝えます。 |
now | チャット履歴をコンテキストとして使用して、次のクエリを解釈します。たとえば、「人と一緒に画像を見せて」と尋ねてから「最もユニークな10のものを見せて」と尋ねると、voxelgptは人と最もユニークな10の画像を見せたいことを理解します。 |
help | 使用手順でヘルプメッセージを印刷します |
reset | 会話の履歴をリセットします |
exit | インタラクティブなPythonセッションを終了します |
貢献は大歓迎です!指示については、寄付ガイドをご覧ください。
voxelgptが使用します:
Voxelgptは、ビデオ、グループ化されたデータセット、3Dメディアのサポートが限られています。基本的なフィルタリング、クエリ、集約は引き続き機能しますが、3Dデータに関する深い洞察を期待しないでください。
この実装は、限られた一連の例に基づいているため、すべてのデータセットに適切に一般化できない場合があります。クエリが具体的になればなるほど、結果は良くなります。結果があなたが期待しているものではないことがわかった場合は、お知らせください!
あなたがここまでそれを作ったなら、あなたがフィフティオンをチェックアウトして私たちにスターを与えてくれるなら、あなたが少し時間をかけてくれたら大いに感謝します!
Fiftyoneは、高品質のデータセットとコンピュータービジョンモデルを構築するためのオープンソースライブラリです。このプロジェクトを動かすのはエンジンです。
訪問してくれてありがとう! ?
視覚的なAIを愛するエンジニア、研究者、実践者の急成長しているコミュニティに参加したい場合は、Fiftyone Slackコミュニティに参加してください!