

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Accelerazione GPU per l'indicizzazione vettoriale
<a name="gpu-acceleration-vector-index"></a>

L'accelerazione GPU consente di creare database vettoriali su larga scala in modo più rapido ed efficiente. Puoi abilitare questa funzionalità su domini e raccolte Serverless nuovi o esistenti. OpenSearch OpenSearch Questa funzionalità utilizza l'accelerazione GPU per ridurre il tempo necessario per indicizzare i dati in indici vettoriali.

Con l'accelerazione GPU, puoi aumentare la velocità di indicizzazione vettoriale fino a 10 volte a un quarto del costo di indicizzazione.

## Prerequisiti
<a name="gpu-acceleration-prerequisites"></a>

L'accelerazione GPU è supportata nei domini che eseguono una versione o successiva e nelle raccolte Serverless. OpenSearch OpenSearch `3.1` OpenSearch Per ulteriori informazioni, vedere, e. [Aggiornamento dei domini Amazon Service OpenSearch](version-migration.md) [UpdateDomainConfig[UpdateCollection](https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_UpdateCollection.html)](https://docs.aws.amazon.com/opensearch-service/latest/APIReference/API_UpdateDomainConfig.html) APIs

## Come funziona
<a name="gpu-acceleration-how-it-works"></a>

Gli indici vettoriali richiedono risorse di calcolo significative per creare strutture di dati come i grafici Hierarchical Navigable Small Worlds (HNSW). Quando abiliti l'accelerazione GPU sul tuo dominio o sulla tua raccolta, rileva OpenSearch automaticamente le opportunità per accelerare la creazione dell'indice e trasferisce le build dell'indice su istanze GPU. OpenSearch Il servizio gestisce le istanze GPU per tuo conto, assegnandole al tuo dominio o alla tua raccolta quando necessario. Ciò significa che non gestisci l'utilizzo né paghi per i tempi di inattività.

Paghi solo per l'elaborazione utile tramite Compute Units (OCU) - Vector Acceleration. Ogni OCU di accelerazione vettoriale è una combinazione di circa 8 GiB di memoria CPU, 2 v CPUs e 6 GiB di memoria GPU. Per ulteriori informazioni, consulta [Prezzi dell'accelerazione GPU](#gpu-acceleration-pricing).

Per abilitare l'accelerazione GPU per il tuo dominio o la tua raccolta, consulta. [Abilitazione dell'accelerazione GPU](gpu-acceleration-enabling.md)

## Prezzi dell'accelerazione GPU
<a name="gpu-acceleration-pricing"></a>

AWS ti addebita quando OpenSearch rileva opportunità per accelerare i carichi di lavoro di creazione dell'indice del tuo dominio o della tua raccolta. Ogni OCU di accelerazione vettoriale è una combinazione di circa 8 GiB di memoria CPU, 2 v CPUs e 6 GiB di memoria GPU.

AWS fattura l'OCU con granularità di secondo livello. Nel tuo estratto conto, vedrai una voce relativa al calcolo in OCU-Hours.

Ad esempio, quando utilizzi l'accelerazione GPU per un'ora per creare un indice, utilizzando 2 vCPU e 1 GiB di memoria GPU, ti viene fatturato 1 OCU. Se utilizzi 9 GiB di memoria CPU mentre utilizzi l'accelerazione GPU, ti verranno fatturati 2 OCU.

OpenSearch Serverless ne aggiunge altre OCUs in incrementi di 1 OCU in base alla potenza di elaborazione e allo storage necessari per supportare le tue raccolte. Puoi configurare un numero massimo di OCUs per il tuo account per controllare i costi.

**Nota**  
Il numero di OCUs unità fornite in qualsiasi momento può variare e non è esatto. Nel tempo, l'algoritmo utilizzato da OpenSearch Serverless continuerà a migliorare per ridurre al minimo l'utilizzo del sistema. OpenSearch 

Per i dettagli completi sui prezzi, consulta la pagina [dei prezzi OpenSearch di Amazon Service](https://aws.amazon.com/opensearch-service/pricing/).

## Accelerazione tramite GPU e operazioni di scrittura
<a name="gpu-acceleration-write-operations"></a>

L'accelerazione GPU viene attivata quando la velocità di ingestione vettoriale ( OpenSearchMB/sec) rientra in un intervallo. [Sui OpenSearch domini, hai la flessibilità di configurare questo intervallo tramite e.](https://docs.opensearch.org/3.2/vector-search/remote-index-build/#using-the-remote-index-build-service) `index.knn.remote_index_build.size.min` `index.knn.remote_index_build.size.max` Ad esempio, con l'intervallo inferiore predefinito di 50 MB, la scrittura di 15.000 vettori a piena precisione con una dimensione di 768 tra gli [intervalli di aggiornamento](https://docs.aws.amazon.com/opensearch-service/latest/developerguide/bp.html#bp-perf) attiverà l'accelerazione GPU per impostazione predefinita.

I dati vengono scritti con le seguenti operazioni API:
+ [Flush](https://docs.opensearch.org/latest/api-reference/index-apis/flush/)
+ [Bulk](https://docs.opensearch.org/latest/api-reference/document-apis/bulk/)
+ [Reindicizzazione](https://docs.opensearch.org/latest/api-reference/document-apis/reindex/)
+ [Indice](https://docs.opensearch.org/latest/api-reference/index-apis/index/)
+ [Aggiorna](https://docs.opensearch.org/latest/api-reference/document-apis/update-document/)
+ [Elimina](https://docs.opensearch.org/latest/api-reference/document-apis/delete-document/)
+ [Unione forzata](https://docs.opensearch.org/latest/api-reference/index-apis/force-merge/)

[L'accelerazione GPU viene attivata con l'unione automatica e manuale dei segmenti.](https://docs.opensearch.org/latest/api-reference/index-apis/force-merge/)

## Configurazioni degli indici supportate
<a name="gpu-acceleration-index-configurations"></a>

Il motore [Faiss](https://docs.opensearch.org/latest/field-types/supported-field-types/knn-methods-engines/#faiss-engine) supporta l'accelerazione GPU.

Le seguenti configurazioni non supportano l'accelerazione GPU:
+ [Quantizzazione del prodotto Faiss](https://docs.opensearch.org/latest/vector-search/optimizing-storage/faiss-product-quantization/)
+ [Indice dei file invertito (IVF)](https://docs.opensearch.org/latest/field-types/supported-field-types/knn-methods-engines/#ivf-parameters)
+ [Libreria spaziale non metrica](https://docs.opensearch.org/latest/field-types/supported-field-types/knn-methods-engines/#nmslib-engine-deprecated)
+ [Motore Lucene](https://docs.opensearch.org/latest/field-types/supported-field-types/knn-methods-engines/#lucene-engine)

## Supportato Regioni AWS
<a name="gpu-acceleration-regions"></a>

L'accelerazione GPU è disponibile nelle seguenti versioni: Regioni AWS
+ Stati Uniti orientali (Virginia settentrionale)
+ Stati Uniti occidentali (Oregon)
+ Asia Pacifico (Sydney)
+ Asia Pacifico (Tokyo)
+ Europa (Irlanda)

# Abilitazione dell'accelerazione GPU
<a name="gpu-acceleration-enabling"></a>

Puoi abilitare l'accelerazione GPU durante la creazione o l'aggiornamento di un OpenSearch dominio o di una raccolta Serverless con, o SDK. OpenSearch Console di gestione AWS AWS CLI AWS 

Dopo aver abilitato l'accelerazione GPU sul dominio o sulla raccolta, questa funzionalità è abilitata per impostazione predefinita su tutti gli indici. Se devi disabilitare questa funzionalità a livello di indice, consulta. [Creazione di indici vettoriali accelerati da GPU](gpu-acceleration-creating-indexes.md)

## Console
<a name="gpu-acceleration-console"></a>

Le seguenti procedure abilitano l'accelerazione GPU per OpenSearch domini e raccolte Serverless utilizzando la console di OpenSearch gestione Serverless. OpenSearch 

------
#### [ Create new domain ]

Per creare un dominio con l'accelerazione GPU abilitata, consulta OpenSearch . [Creazione OpenSearch di domini di servizio](createupdatedomains.md#createdomains)

------
#### [ Edit existing domain ]

1. [Aprire la console di gestione del servizio. OpenSearch ](https://console.aws.amazon.com/aos/home )

1. Nel riquadro di navigazione, scegli **Domini**.

1. Scegli il tuo nome di dominio per aprire la pagina dei dettagli del dominio.

1. Scegli **Azioni**, quindi **Modifica dominio**.

1. Nella sezione **Funzioni avanzate**, seleziona **Abilita l'accelerazione GPU**. [Una volta abilitata questa funzionalità, le operazioni di indicizzazione vettoriale vengono accelerate.](gpu-acceleration-vector-index.md#gpu-acceleration-write-operations)

1. Scegli **Save changes** (Salva modifiche).

------
#### [ Create new collection ]

Per creare una raccolta OpenSearch Serverless con accelerazione GPU abilitata, consulta. [Tutorial: Guida introduttiva ad Amazon OpenSearch Serverless](serverless-getting-started.md) Durante la creazione della raccolta, assicuratevi di selezionare il tipo di raccolta di **ricerca vettoriale** e di abilitare l'accelerazione GPU nella configurazione della ricerca vettoriale.

------
#### [ Edit existing collection ]

1. [Apri la console di gestione del servizio. OpenSearch ](https://console.aws.amazon.com/aos/home )

1. Nel riquadro di navigazione, scegli **Raccolte**.

1. Scegli il nome della collezione per aprire la pagina dei dettagli della collezione.

1. Nella sezione **Opzioni di distribuzione**, **Modifica l'accelerazione** GPU vettoriale.

1. Disabilita o abilita l'accelerazione GPU.

1. Scegli **Save changes** (Salva modifiche).

------

### AWS CLI
<a name="gpu-acceleration-cli"></a>

------
#### [ Create new domain ]

L' AWS CLI esempio seguente crea un OpenSearch dominio con accelerazione GPU abilitata negli Stati Uniti orientali (Virginia settentrionale). Sostituiscilo *text* con quello della tua configurazione.

```
aws opensearch create-domain \
    --domain-name my-domain \
    --engine-version OpenSearch_3.1 \
    --cluster-config InstanceType=r6g.xlarge.search,\
        InstanceCount=1,\
        DedicatedMasterEnabled=true,\
        DedicatedMasterCount=3,\
        DedicatedMasterType=m6g.large.search \
    --ebs-options "EBSEnabled=true,\
        VolumeType=gp3,\
        VolumeSize=2000" \
    --encryption-at-rest-options '{"Enabled":true}' \
    --aiml-options '{"ServerlessVectorAcceleration": {"Enabled": true}}' \
    --node-to-node-encryption-options '{"Enabled":true}' \
    --domain-endpoint-options '{"EnforceHTTPS":true,\
        "TLSSecurityPolicy":"Policy-Min-TLS-1-0-2019-07"}' \
    --access-policies '{"Version": "2012-10-17",		 	 	 
        "Statement": [{
            "Effect": "Allow",
            "Principal": {"AWS": "*"},
            "Action": "es:*",
            "Resource": "arn:aws:es:us-east-1:123456789012:domain/my-domain/*"
        }]}' \
    --advanced-security-options '{
        "Enabled":true,
        "InternalUserDatabaseEnabled":true,
        "MasterUserOptions": {
            "MasterUserName":"USER_NAME",
            "MasterUserPassword":"PASSWORD"
        }}' \
    --region us-east-1
```

------
#### [ Edit existing domain ]

L' AWS CLI esempio seguente abilita l'accelerazione GPU per un dominio esistente. OpenSearch Sostituiscilo *text* con quello della tua configurazione.

```
aws opensearch update-domain-config \
    --domain-name my-domain \
    --cluster-config InstanceType=r7g.16xlarge.search,InstanceCount=3 \
    --aiml-options '{"ServerlessVectorAcceleration": {"Enabled": true}}'
```

------
#### [ Create new collection ]

L' AWS CLI esempio seguente crea una raccolta OpenSearch Serverless con accelerazione GPU abilitata negli Stati Uniti orientali (Virginia settentrionale). Sostituiscila *text* con quella della tua configurazione.

```
aws opensearchserverless create-collection \
    --name "my-collection" \
    --type "VECTORSEARCH" \
    --description "My vector collection with GPU acceleration" \
    --vector-options '{"ServerlessVectorAcceleration": "ENABLED"}' \
    --region us-east-1
```

------
#### [ Edit existing collection ]

L' AWS CLI esempio seguente abilita l'accelerazione GPU per una raccolta Serverless esistente. OpenSearch Sostituiscila *text* con quella della tua configurazione.

```
aws opensearchserverless update-collection \
    --id 07tjusf2h91cunochc \
    --vector-options '{"ServerlessVectorAcceleration": "ENABLED"}' \
    --region us-east-1
```

------

# Creazione di indici vettoriali accelerati da GPU
<a name="gpu-acceleration-creating-indexes"></a>

Dopo aver abilitato l'accelerazione GPU sul tuo dominio o sulla tua raccolta, crea indici vettoriali in grado di sfruttare l'elaborazione GPU.

**Nota**  
Quando crei un dominio con l'accelerazione GPU abilitata, l'impostazione è predefinita. `index.knn.remote_index_build.enabled` `true` Non è necessario impostare esplicitamente questa impostazione durante la creazione degli indici. Per le raccolte, è necessario specificare in modo esplicito un valore per questa impostazione.

------
#### [ Creating index with GPU-acceleration ]

L'esempio seguente crea un indice vettoriale ottimizzato per l'elaborazione tramite GPU. Questo indice memorizza vettori di 768 dimensioni (comuni per gli incorporamenti di testo).

```
PUT my-vector-index
{
  "settings": {
    "index.knn": true,
    "index.knn.remote_index_build.enabled": true
  },
  "mappings": {
    "properties": {
      "vector_field": {
        "type": "knn_vector",
        "dimension": 768
      },
      "text": {
        "type": "text"
      }
    }
  }
}
```

Elementi chiave di configurazione:
+ `"index.knn": true`- Abilita la funzionalità k-nearest neighbor
+ `"index.knn.remote_index_build.enabled": true`- Abilita l'elaborazione tramite GPU per questo indice. Quando il dominio ha l'accelerazione GPU abilitata, se non si specifica questa impostazione, l'impostazione predefinita è. `true` Per le raccolte, è necessario specificare esplicitamente un valore per questa impostazione.
+ `"dimension": 768`- Speciifica la dimensione del vettore (regola in base al modello di incorporamento)

------
#### [ Creating index without GPU-acceleration ]

L'esempio seguente crea un indice vettoriale in cui l'elaborazione della GPU è disabilitata. Questo indice memorizza vettori di 768 dimensioni (comuni per gli incorporamenti di testo).

```
PUT my-vector-index
{
  "settings": {
    "index.knn": true,
    "index.knn.remote_index_build.enabled": false
  },
  "mappings": {
    "properties": {
      "vector_field": {
        "type": "knn_vector",
        "dimension": 768
      },
      "text": {
        "type": "text"
      }
    }
  }
}
```

------

# Indicizzazione dei dati vettoriali e unione forzata
<a name="gpu-acceleration-index-force-merge"></a>

Dopo aver creato un indice vettoriale accelerato da GPU sul dominio o sulla raccolta, puoi aggiungere dati vettoriali e ottimizzare l'indice utilizzando operazioni standard. OpenSearch L'accelerazione GPU migliora automaticamente sia le prestazioni di indicizzazione che le operazioni di unione forzata, velocizzando la creazione e la manutenzione di applicazioni di ricerca vettoriale su larga scala senza richiedere modifiche ai flussi di lavoro esistenti.

## Indicizzazione dei dati vettoriali
<a name="gpu-acceleration-indexing-data"></a>

Indicizza i dati vettoriali come faresti normalmente. L'accelerazione GPU si applica automaticamente alle operazioni di indicizzazione e unione forzata. [L'esempio seguente mostra come aggiungere documenti vettoriali all'indice utilizzando l'API bulk.](https://docs.opensearch.org/latest/api-reference/document-apis/bulk/#index) Ogni documento contiene un campo vettoriale con valori numerici e contenuto testuale associato:

```
POST _bulk
{"index": {"_index": "my-vector-index"}}
{"vector_field": [0.1, 0.2, 0.3, ...], "text": "Sample document 1"}
{"index": {"_index": "my-vector-index"}}
{"vector_field": [0.4, 0.5, 0.6, ...], "text": "Sample document 2"}
```

### Operazioni di unione forzata
<a name="gpu-acceleration-force-merge"></a>

L'accelerazione GPU si applica anche alle operazioni di [unione forzata, che possono ridurre significativamente](https://docs.opensearch.org/latest/api-reference/index-apis/force-merge/) il tempo necessario per ottimizzare gli indici vettoriali. Tieni presente che le operazioni di unione forzata non sono supportate nelle raccolte. L'esempio seguente dimostra come ottimizzare l'indice vettoriale consolidando tutti i segmenti in un unico segmento:

```
POST my-vector-index/_forcemerge?max_num_segments=1
```

## Best practice
<a name="gpu-acceleration-best-practices"></a>

Segui queste best practice per massimizzare i vantaggi dell'accelerazione GPU per i tuoi carichi di lavoro di ricerca vettoriale:
+ **Aumenta i client di indicizzazione**: per sfruttare appieno i vantaggi della creazione dell' GPUs indice, aumenta il numero di client di indicizzazione in cui vengono importati i dati. OpenSearch Ciò consente una migliore parallelizzazione e utilizzo delle risorse GPU.
+ **Regola la soglia approssimativa**: modifica l'`index.knn.advanced.approximate_threshold`impostazione per garantire che non si verifichino aumenti di indici di segmenti più piccoli, il che migliora la velocità complessiva di inserimento. Un valore di 10.000 è un buon punto di partenza. Per le raccolte, è necessario specificare esplicitamente un valore per questa impostazione.
+ **Ottimizza le dimensioni dei frammenti**: prova a creare frammenti contenenti almeno 1 milione di documenti. Gli shard con un numero di documenti inferiore a questo numero potrebbero non trarre benefici complessivi dall'accelerazione tramite GPU.