Attuデスクトップのクイックスタート
1.はじめに
Attuは、Milvusのためのオールインワンのオープンソース管理ツールです。直感的なグラフィカルユーザインタフェース(GUI)を備えており、データベースを簡単に操作することができます。数回クリックするだけで、クラスタステータスの可視化、メタデータの管理、データクエリの実行などが可能です。
2.デスクトップアプリケーションのインストール
Attu GitHub Releasesページからデスクトップ版をダウンロードします。お使いのオペレーティングシステムに適したバージョンを選択し、インストール手順に従ってください。
macOS (Mシリーズチップ)の場合:
エラーが発生した場合
attu.app is damaged and cannot be opened.
ターミナルで以下のコマンドを実行し、この問題を回避してください:
sudo xattr -rd com.apple.quarantine /Applications/attu.app
3.Milvusへの接続
AttuはMilvus Standaloneと Zilliz Cloudの両方への接続をサポートしており、ローカルまたはクラウドホスティングのデータベースを柔軟に操作することができます。
Milvus Standaloneをローカルで使用する場合:
- Milvusインストールガイドに従ってMilvus Standaloneを起動します。
- Attuを開き、接続情報を入力します:
- Milvusアドレス:Milvus アドレス: Milvus Standalone サーバー URI (例: http://localhost:19530)
- その他のオプション設定:Milvusの設定に応じて設定するか、デフォルトのままでも構いません。
- 接続] をクリックしてデータベースにアクセスします。
Zilliz Cloud上のフルマネージドMilvusに接続することもできます。
Milvus Address
とtoken
をZilliz CloudインスタンスのパブリックエンドポイントとAPIキーに設定するだけです。
- クリックしてデータベースにアクセスします。
4.データの準備、コレクションの作成、データの挿入
4.1 データの準備
Milvus Documentation 2.4.xのFAQページをデータセットとして使用します。
データをダウンロードして抽出します:
wget https://github.com/milvus-io/milvus-docs/releases/download/v2.4.6-preview/milvus_docs_2.4.x_en.zip
unzip -q milvus_docs_2.4.x_en.zip -d milvus_docs
Markdownファイルを処理する:
from glob import glob
text_lines = []
for file_path in glob("milvus_docs/en/faq/*.md", recursive=True):
with open(file_path, "r") as file:
file_text = file.read()
text_lines += file_text.split("# ")
4.2 埋め込みを生成する
埋め込みモデルを定義して、milvus_model
を使ってテキストの埋め込みを生成します。ここでは、事前に学習された軽量な埋め込みモデルであるDefaultEmbeddingFunction
を例として使います。
from pymilvus import model as milvus_model
embedding_model = milvus_model.DefaultEmbeddingFunction()
# Generate test embedding
test_embedding = embedding_model.encode_queries(["This is a test"])[0]
embedding_dim = len(test_embedding)
print(embedding_dim)
print(test_embedding[:10])
出力:
768
[-0.04836066 0.07163023 -0.01130064 -0.03789345 -0.03320649 -0.01318448
-0.03041712 -0.02269499 -0.02317863 -0.00426028]
4.3 コレクションの作成
Milvusに接続し、コレクションを作成する:
from pymilvus import MilvusClient
# Connect to Milvus Standalone
client = MilvusClient(uri="http://localhost:19530")
collection_name = "attu_tutorial"
# Drop collection if it exists
if client.has_collection(collection_name):
client.drop_collection(collection_name)
# Create a new collection
client.create_collection(
collection_name=collection_name,
dimension=embedding_dim,
metric_type="IP", # Inner product distance
consistency_level="Strong"
)
4.4 データの挿入
テキスト行を繰り返し、埋め込みを作成し、Milvusにデータを挿入します:
from tqdm import tqdm
data = []
doc_embeddings = embedding_model.encode_documents(text_lines)
for i, line in enumerate(tqdm(text_lines, desc="Creating embeddings")):
data.append({"id": i, "vector": doc_embeddings[i], "text": line})
client.insert(collection_name=collection_name, data=data)
4.5 データとスキーマの可視化
Attuのインターフェースを使用して、データスキーマと挿入されたエンティティを視覚化することができます。スキーマは、Int64
型のid
フィールドと、FloatVector(768)
型のvector
フィールドと、Inner Product (IP)
メトリックを含む、定義されたフィールドを表示します。コレクションには72のエンティティがロードされています。
さらに、ID、ベクトル埋め込み、テキスト・コンテンツなどのメタデータを格納するダイナミック・フィールドなど、挿入されたデータを見ることができる。このインターフェースは、指定された条件やダイナミック・フィールドに基づくフィルタリングやクエリをサポートしている。
5.検索結果と関係の視覚化
Attu は、データの関係を視覚化し、探索するための強力なインターフェイスを提供します。挿入されたデータポイントとその類似関係を調べるには、以下の手順に従います:
5.1検索の実行
Attu のVector Searchタブに移動します。
- テストクエリを作成するには、Generate Random Dataボタンをクリックします。
- Search をクリックして、生成されたデータに基づいて結果を取得します。
一致する各エンティティの ID、類似度スコア、およびダイナミック・フィールドが表 示されます。
5.2データ関係の調査
結果パネルの[Explore]ボタンをクリックすると、クエリ・ベクタと検索結果の関係がナレッジ・グラフのような 構造で視覚化されます。
- 中央のノードは検索ベクトルを表します。
- 接続されたノードは検索結果を表し、クリックすると対応するノードの詳細情報が表示されます。
5.3グラフの展開
任意の結果ノードをダブルクリックすると、その接続が展開されます。この操作により、選択したノードとコレクション内の他のデータ・ポイント間の追加関係が明らかになり、より大きく相互接続されたナレッジ・グラフが作成されます。
この拡大表示により、ベクトルの類似性に基づいて、データ・ポイントがどのように関連しているかをより深く調査できます。
6.結論
AttuはMilvusに保存されたベクトルデータの管理と可視化を簡素化します。データ挿入からクエリ実行、インタラクティブな探索まで、複雑なベクトル検索タスクを処理するための直感的なインターフェイスを提供します。動的スキーマサポート、グラフィカルな検索ビジュアライゼーション、柔軟なクエリフィルタなどの機能により、Attuは大規模なデータセットを効果的に分析することができます。
Attuの視覚的な探索ツールを活用することで、ユーザはデータをより良く理解し、隠れた関係を特定し、データ駆動型の意思決定を行うことができます。Attuとmilvusを利用して、今すぐデータセットの分析を始めましょう!