ベクターデータベースの作成¶
GPU usage for Self-Managed users
When working with datasets over 1GB, Self-Managed users who do not have GPU usage configured on their cluster may experience serious delays. Email DataRobot Support, or visit the Support site, for installation guidance.
To create a vector database for use in a playground:
-
Add an appropriate data source to the Data Registry.
-
Set the basic configuration, including a data source and embedding model.
Use the Vector databases tab in the Use Case directory to manage built vector databases and deployed embedding models.
ベクターデータベースを構築¶
First, add a vector database from one of the multiple points within the application:
From within a Use Case, click the Add dropdown and:
- AIカタログのデータからベクターデータベースを作成するには、ベクターデータベースを作成を選択します。
- LLMプロンプティング中に使用されるベクターデータベースを含むデプロイを追加するには、デプロイ済みベクターデータベースを追加を選択します。
次のいずれかの方法を選択します。
- Use the Add data dropdown and select Create vector database or Add deployed vector database (same as the All tab).
- Click the Actions menu for a data source and select Create vector database. この方法は、設定 > データソースフィールドにデータベースをロードします。
The Actions menu option is only available if the data is detected as eligible, which means:
- Processing of the dataset has finished.
- The data source has the mandatory
document
anddocument_file_path
(orドキュメント
andドキュメントファイルパス
) columns. - There are no more than 50 metadata columns.
From the Vector databases tab, either:
-
Click the Add vector database button in the upper right. From the Data source dropdown in the resulting window, select from the data source(s) associated with the Use Case or click Add data to add data from the Data Registry.
-
If there are not yet any vector databases associated with the Use Case, alternatively you can click Create vector database.
When in a playground, use the Vector database tab in the configuration section of the LLM blueprint:
Configure the database¶
ベクターデータベースを作成するときは、基本設定を行い テキストチャンキングを設定します。
The following table describes the settings used in vector database creation:
フィールド | 説明 |
---|---|
名前 | ベクターデータベースが保存される名前。 この名前はユースケースベクターデータベースタブに表示され、プレイグラウンドを設定するときに選択できます。 |
データソース | ベクターデータベースのナレッジソースとして使用されるデータセット。 リストは、ユースケースベクターデータベースタブのエントリーに基づいて入力されます。 データタブのアクションメニューからベクターデータベースの作成を開始した場合、フィールドにはそのデータセットが自動入力されます。 Chunking settings become available after you select a data source. |
埋め込みモデル | The model that defines the type of embedding used for encoding data. |
チャンキング方法 | The method applied for splitting (or not) text documents into smaller sizes. |
Set the embedding model¶
To encode your data, select the embedding model that best suits your Use Case. Use one of the DataRobot-provided embeddings or a BYO embedding. DataRobot supports the following types of embeddings; see the full embedding descriptions in the here.
Embedding type | 説明 |
---|---|
cl-nagoya/sup-simcse-ja-base | A medium-sized language model for Japanese RAG. |
huggingface.co/intfloat/multilingual-e5-base | A medium-sized language model used for multilingual RAG performance across multiple languages. |
huggingface.co/intfloat/multilingual-e5-small | 多言語RAG処理に使用する小型の言語モデルで、multilingual-e5-baseよりも高速です。 |
intfloat/e5-base-v2 | A medium-sized language model used for medium-to-high RAG performance. With fewer parameters and a smaller architecture, it is faster than e5_large_v2. |
intfloat/e5-large-v2 | A large language model designed for optimal RAG performance. It is classified as slow due to its architecture and size. |
jinaai/jina-embedding-t-en-v1 | A tiny language model pre-trained on the English corpus and is the fastest, and default, embedding model offered by DataRobot. |
jinaai/jina-embedding-s-en-v2 | Jina Embeddings v2ファミリーの1つであるこの埋め込みモデルは、長いドキュメントの埋め込みに最適です(最大8192の大きなチャンクサイズ)。 |
sentence-transformers/all-MiniLM-L6-v2 | A small language model fine-tuned on a 1B sentence-pairs dataset that is relatively fast and pre-trained on the English corpus. It is not recommended for RAG, however, as it was trained on old data. |
デプロイ済み埋め込みモデルを追加 | ベクターデータベースの作成時に使用するデプロイ済みの埋め込みモデルを選択します。 列名は、デプロイのコンソール概要ページにあります。 |
The embedding models that DataRobot provides are based on the SentenceBERT framework, providing an easy way to compute dense vector representations for sentences and paragraphs. The models are based on transformer networks (BERT, RoBERTA, T5) trained on a mixture of supervised and unsupervised data, and achieve state-of-the-art performance in various tasks. Text is embedded in a vector space such that similar text is grouped more closely and can efficiently be found using cosine similarity.
デプロイ済み埋め込みモデルを追加¶
While adding a vector database, you can select an embedding model deployed as an unstructured custom model. On the Create vector database panel, click the Embedding model dropdown, then click Add deployed embedding model.
On the Add deployed embedding model panel, configure the following settings:
設定 | 説明 |
---|---|
名前 | Enter a descriptive name for the embedding model. |
デプロイ名 | Select the unstructured custom model deployment. |
プロンプト列の名前 | Enter the name of the column containing the user prompt, defined when you created the custom embedding model in the model workshop (for example, promptText ). |
回答(ターゲット)列の名前 | Enter the name of the column containing the LLM response, defined when you created the custom embedding model in the model workshop (for example, responseText or resultText ). |
After you configure the deployed embedding model settings, click Validate and add. The deployed embedding model is added to the Embedding model dropdown list:
チャンク設定¶
テキストチャンキングは、テキストドキュメントをより小さなテキストチャンクに分割するプロセスで、埋め込みの生成に使用されます。 次のいずれかの原因が考えられます。
- Choose Text chunking and further configure how chunks are derived—method, separators, and other parameters.
- Select No chunking. DataRobot will then treat each row as a chunk and directly generate an embedding on each row.
チャンキング方法¶
The chunking method sets how text from the data source is divided into smaller, more manageable pieces. It is used to improve the efficiency of nearest-neighbor searches so that when queried, the database first identifies the relevant chunks that are likely to contain the nearest neighbors, and then searches within those chunks rather than searching the entire dataset.
方法 | 説明 |
---|---|
再帰的 | テキストを分割し、チャンクのサイズが指定された最大サイズよりも小さくなるまで繰り返し、サイズが大きすぎるチャンクは破棄します。必要に応じて、チャンクのサイズ制限を維持するために、テキストを個々の文字で分割します。 |
セマンティック | 長いテキストを、長さではなく内容に基づいて、意味のある小さな単位に分割します。 It is a fully automatic method, meaning that when it is selected, nor further chunking configuration is available—chunks where sentences are semantically "closed.". |
詳細:チャンキング方法
再帰的テキストチャンキングは、テキストチャンクの長さが指定された最大チャンクサイズ未満になるまで、テキスト区切り文字の順序付けられたリストに従ってテキストドキュメントを再帰的に分割することによって機能します。 生成されたチャンクの長さ/サイズが既に最大チャンクサイズよりも小さい場合、以降の区切り文字は無視されます。 Otherwise, DataRobot applies, sequentially, the list of separators until chunks have a length/size that is less than the max chunk size. 最終的に、生成されたチャンクが指定された長さよりも大きい場合、破棄されます。 その場合、DataRobotは「各文字を分離」戦略を使用して各文字で分割し、連続する分割文字のチャンクを最大チャンクサイズ制限のところに来るまでマージします。 「文字で分割」が区切り文字としてリストされていない場合、長いチャンクは切り取られます。 つまり、テキストの一部は埋め込みの生成で欠損しますが、チャンク全体は引き続きドキュメントの取得に使用できます。
Semantic chunking is the process of breaking down a larger piece of text into smaller, meaningful units (or "chunks") based on the semantic content or meaning of the text, rather than just arbitrary character or word limits. Instead of splitting the text based solely on length, semantic chunking attempts to keep coherent ideas or topics intact within each chunk. This method is useful for tasks like natural language processing (NLP), where understanding the meaning and context of the text is important for tasks like information retrieval, summarization, or generating embeddings for machine learning models. For example, in a semantic chunking process, paragraphs might be kept together if they discuss the same topic, even if they exceed a specific size limit, ensuring that the chunks represent complete thoughts or concepts.
区切り文字の操作¶
区切り文字は、テキストを分割するための「ルール」または検索パターン(サポート可能ですが正規表現ではありません)です。各区切り文字は、テキストをより小さなコンポーネントに分割するために、順番に適用されます。区切り文字は、ドキュメントをチャンクに分割するためのトークンを定義します。 チャンクはトピックごとにグループ化するのに十分な大きさで、サイズ制約はモデルの設定によって決定されます。 再帰的テキストチャンキングは、チャンクルールに適用される方法です。
各ベクターデータベースは、テキストを分割する内容を定義する4つのデフォルトルールから始まります。
- 二重改行
- 改行
- スペース
これらのルールは、理解しやすいように単語で識別されますが、バックエンドでは個々の文字列として解釈されます(つまり、\n\n
, \n
, " "
, ""
)。
ドキュメントに区切り文字が存在しない場合や、目的のチャンクサイズに分割するための十分なコンテンツがない場合があります。 その場合、DataRobotは「next-best character」(次にベストな文字)フォールバックルールを適用し、チャンクが定義されたチャンクサイズに適合するまで、次のチャンクに文字を移動します。 そうでない場合、埋め込みモデルは、継承されたコンテキストサイズを超えるチャンクを切り捨てます。
カスタムルールを追加¶
最大5つのカスタム区切り文字を追加して、チャンク戦略の一部として適用できます。 これにより、合計9つの区切り文字が使用できます(4つのデフォルトを一緒に考慮した場合)。 カスタム区切り文字には、以下が適用されます。
- 各区切り文字の最大文字数は20文字です。
-
区切り文字として単語を使用できる「変換ロジック」はありません。 たとえば、句読点を分割する場合は、各タイプに区切り文字を追加する必要があります。
-
区切り文字の順序は重要です。 区切り文字を並べ替えるには、セルをクリックして目的の場所にドラッグします。
-
チャンク戦略のファインチューニングや区切り文字追加のための空き容量調整などで区切り文字を削除するには、ごみ箱アイコンをクリックします。 デフォルトの区切り文字は削除できません。
正規表現の使用¶
区切り文字に正規表現を使用できるようにするには、セパレーターを正規表現として解釈を選択します。 この機能をアクティブにすると、すべての区切り文字が正規表現として扱われることを理解するのが重要です。 例えば、「.」を追加すると、各文字に一致して分割されることを意味します。 リテラルの「dots」で分割する場合は、記号(「\.」など)を付けてエスケープする必要があります。 このルールは、カスタム区切り文字と(この方法で動作するよう設定されている)事前定義済みの両方の区切り文字に適用されます。
チャンクパラメーター¶
チャンクパラメーターは、ベクターデータベースの出力をさらに定義します。 チャンクパラメーターのデフォルト値は、埋め込みモデルによって異なります。
チャンクのオーバーラップ¶
オーバーラップとは、隣接するチャンクがある程度のデータを共有できるようにする方法を指します。 チャンクオーバーラップパラメーターは、連続するチャンク間のトークンの重複割合(パーセント)を指定します。 重複は、言語モデルでテキストを処理するときにチャンク間のコンテキストの連続性を維持するのに役立ちますが、より多くのチャンクを生成しベクターデータベースのサイズを増やすという代償があります。
Retrieval limits¶
The value you set for Top K (nearest neighbors) instructs the LLM on how many relevant chunks to retrieve from the vector database. Chunk selection is based on similarity scores. 以下の点に注意してください。
- Larger values provide more comprehensive coverage but also require more processing overhead and may include less relevant results.
- Smaller values provide more focused results and faster processing, but may miss relevant information.
Max tokens specifies:
- ベクターデータベースを構築するときにデータセットから抽出された各テキストチャンクの最大サイズ(トークン単位)。
- 埋め込みの作成に使用されるテキストの長さ。
- RAG操作で使用される引用のサイズ。
Save the vector database¶
設定が完了したら、ベクターデータベースを作成をクリックして、データベースを プレイグラウンドで使用可能にします。
Manage vector databases¶
The Vector databases tab lists all the vector databases and deployed embedding models associated with a Use Case. Vector database entries include information on the versions derived from the parent; see the section on versioning for detailed information on vector database versioning.
You can view all vector databases (and associated versions) for a Use Case from the Vector database tab within the Use Case. For external vector databases, you can see only the source type. Because these vector databases aren't managed by DataRobot, other data is not available for reporting.
Click on any entry in the Vector databases tab listing to open a new tab where you can view an expanded view of that database's configuration and related items.
以下を実行することが可能です。
説明 | |
---|---|
1 | Select a different vector database to explore from the dropdown in the breadcrumbs. |
2 | Select a different version of the vector database to explore from the dropdown. When you click a version, the details and reported assets (Related items) update to those associated with the specific version. Learn more about versioning. |
3 | Execute a variety of vector database actions. |
4 | View the versioning history. When you click a version, the details and reported assets (Related items) update to those associated with the specific version. Learn more about versioning. |
5 | View items associated with the vector database, such as the related Use Case and LLM blueprints and deployed customer and registered models that use the vector database. Click on an entity to open it in the corresponding Console tab. |
6 | Create a playground that uses the selected database. |
ベクターデータベースのアクション¶
The actions dropdown allows you to apply an action to the version of the vector database you are viewing. See the versioning documentation for additional information.
アクション | 説明 |
---|---|
このバージョンを使用してプレイグラウンドを作成 | Opens a new playground with the vector database loaded into the LLM configuration. |
このバージョンから新しいバージョンを作成 | Creates a new version of the vector database that is based on the version that is currently selected. |
このバージョンをデータレジストリにエクスポート | 最新のベクターデータベースバージョンをデータレジストリにエクスポート It can then be used in different Use Case playgrounds. |
ベクターデータベースを削除 | Deletes the parent vector database and all versions. Because the vector databases used by deployments are snapshots, deleting a vector database in a Use Case does not affect the deployments using that vector database. The deployment uses an independent snapshot of the vector database. |
Vector database details¶
The details section of the vector database expanded view reports information for the selected version, whether you selected the version from the dropdown or the right-hand panel.
- Basic vector database metadata: ID, creator and creation date, data source name and size.
- Chunking configuration settings: Embedding column and chunking method and settings.
- Metadata columns: Names of columns from the data source, which can later be used for metadata filtering..
Use this area to quickly compare versions to see how configuration changes impact chunking results. For example, notice how the size and number of chunks changes between the parent version that uses the DataRobot English language documentation:
And with the addition of the Japanese language documentation: