

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à.

# Intelligenza artificiale generativa di Amazon DocumentDB
<a name="generative-ai"></a>

Amazon DocumentDB offre funzionalità per consentire ai modelli di apprendimento automatico (ML) e intelligenza artificiale generativa (AI) di lavorare con i dati archiviati in Amazon DocumentDB in tempo reale. I clienti non devono più perdere tempo a gestire un'infrastruttura separata, scrivere codice per connettersi a un altro servizio e duplicare i dati dal database principale.

Per ulteriori informazioni sull'intelligenza artificiale e su come AWS può supportare le tue esigenze di intelligenza artificiale, consulta questo articolo [«Cos'è](https://aws.amazon.com/what-is/artificial-intelligence/)».

**Topics**
+ [

# Apprendimento automatico senza codice con Amazon SageMaker AI Canvas
](no-code-machine-learning.md)
+ [

# Ricerca vettoriale per Amazon DocumentDB
](vector-search.md)

# Apprendimento automatico senza codice con Amazon SageMaker AI Canvas
<a name="no-code-machine-learning"></a>

[Amazon SageMaker AI Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) ti consente di creare AI/ML i tuoi modelli senza dover scrivere una sola riga di codice. Puoi creare modelli di machine learning per casi d'uso comuni come regressione e previsioni e accedere e valutare modelli di base () FMs da Amazon Bedrock. Puoi anche accedere al pubblico FMs da Amazon SageMaker AI JumpStart per la generazione di contenuti, l'estrazione e il riepilogo del testo per supportare soluzioni di intelligenza artificiale generativa.

## Come creare modelli ML senza codice con AI Canvas SageMaker
<a name="w2aac21b9b5"></a>

Amazon DocumentDB ora si integra con Amazon SageMaker AI Canvas per abilitare l'apprendimento automatico (ML) senza codice con i dati archiviati in Amazon DocumentDB. Ora puoi creare modelli ML per esigenze di regressione e previsione e utilizzare modelli di base per il riepilogo e la generazione di contenuti utilizzando i dati archiviati in Amazon DocumentDB senza scrivere una sola riga di codice.

SageMaker AI Canvas fornisce un'interfaccia visiva che consente ai clienti di Amazon DocumentDB di generare previsioni senza richiedere alcuna AI/ML esperienza o scrivere una sola riga di codice. I clienti possono ora avviare l'area di lavoro SageMaker AI Canvas dai dati di Amazon DocumentDB Console di gestione AWS, importarli e unirli per la preparazione dei dati e la formazione dei modelli. I dati di Amazon DocumentDB possono ora essere utilizzati in SageMaker AI Canvas per creare e potenziare modelli per prevedere l'abbandono dei clienti, rilevare frodi, prevedere gli errori di manutenzione, prevedere le metriche aziendali e generare contenuti. I clienti possono ora pubblicare e condividere informazioni basate sul machine learning tra i team utilizzando l'integrazione nativa di SageMaker AI Canvas con Quick. Le pipeline di inserimento dati in SageMaker AI Canvas vengono eseguite su istanze secondarie di Amazon DocumentDB per impostazione predefinita, garantendo che le prestazioni delle applicazioni e dei carichi di lavoro di acquisizione di SageMaker AI Canvas non siano ostacolate.

I clienti di Amazon DocumentDB possono iniziare a usare SageMaker AI Canvas accedendo alla nuova pagina della console ML senza codice di Amazon DocumentDB e connettendosi ad aree di lavoro AI Canvas nuove o disponibili. SageMaker 

## Configurazione del dominio AI e del profilo utente SageMaker
<a name="sagemaker-domain"></a>

Puoi connetterti ai cluster Amazon DocumentDB da domini SageMaker AI in esecuzione in modalità Solo VPC. Avviando un dominio SageMaker AI nel tuo VPC, puoi controllare il flusso di dati dai SageMaker tuoi ambienti AI Studio e Canvas. Ciò consente di limitare l'accesso a Internet, monitorare e ispezionare il traffico utilizzando funzionalità AWS di rete e sicurezza standard e connettersi ad altre AWS risorse tramite endpoint VPC. Consulta [Amazon SageMaker AI Canvas Getting started](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) and [Configure Amazon SageMaker AI Canvas in un VPC senza accesso a Internet disponibile](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-vpc.html) nella *Amazon SageMaker AI Developer Guide* per creare il tuo dominio SageMaker AI per connetterti al tuo cluster Amazon DocumentDB.

## Configurazione delle autorizzazioni di accesso IAM per Amazon SageMaker DocumentDB e AI Canvas
<a name="iam-access-canvas"></a>

Un utente Amazon DocumentDB `AmazonDocDBConsoleFullAccess` collegato al ruolo e all'identità associati può accedere a. Console di gestione AWS Aggiungi le seguenti azioni al ruolo o all'identità di cui sopra per fornire l'accesso all'apprendimento automatico senza codice con Amazon SageMaker AI Canvas.

```
"sagemaker:CreatePresignedDomainUrl",
"sagemaker:DescribeDomain",
"sagemaker:ListDomains",
"sagemaker:ListUserProfiles"
```

## Creazione di utenti e ruoli del database per AI Canvas SageMaker
<a name="w2aac21b9c11"></a>

Puoi limitare l'accesso alle azioni che gli utenti possono eseguire sui database utilizzando il controllo degli accessi basato sui ruoli (RBAC) in Amazon DocumentDB. RBAC funziona concedendo uno o più ruoli a un utente. Questi ruoli determinano le operazioni che un utente può eseguire sulle risorse del database. 

Come utente Canvas, ti connetti a un database Amazon DocumentDB con credenziali di nome utente e password. Puoi creare un database user/role per un utente Canvas con accesso in lettura a database specifici utilizzando la funzionalità RBAC di Amazon DocumentDB.

Ad esempio, usa l'operazione: `createUser`

```
db.createUser({
user: "canvas_user", 
pwd: "<insert-password>", 
roles: [{role: "read", db: "sample-database-1"}]
})
```

Questo crea un file `canvas_user` che ha i permessi di lettura per il `sample-database-1` database. I tuoi analisti Canvas possono utilizzare questa credenziale per accedere ai dati nel tuo cluster Amazon DocumentDB. Fai riferimento a per saperne di [Accesso al database tramite Role-Based Access Control](role_based_access_control.md) più. 

## Regioni disponibili
<a name="available-regions"></a>

L'integrazione senza codice è disponibile nelle regioni in cui sono supportati sia Amazon DocumentDB che SageMaker Amazon AI Canvas. Le regioni includono:
+ us-east-1 (Virginia settentrionale)
+ us-east-2 (Ohio)
+ us-west-2 (Oregon)
+ ap-northeast-1 (Tokyo)
+ ap-northeast-2 (Seoul)
+ ap-south-1 (Mumbai)
+ ap-southeast-1 (Singapore)
+ ap-southeast-2 (Sydney)
+ eu-central-1 (Francoforte)
+ eu-west-1 (Irlanda)

Consulta [Amazon SageMaker AI Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) nella *Amazon SageMaker AI Developer Guide* per conoscere la disponibilità più recente della regione.

# Ricerca vettoriale per Amazon DocumentDB
<a name="vector-search"></a>

La ricerca vettoriale è un metodo utilizzato nell'apprendimento automatico per trovare punti dati simili a un dato punto dati confrontando le relative rappresentazioni vettoriali utilizzando metriche di distanza o somiglianza. Più i due vettori sono vicini nello spazio vettoriale, più gli elementi sottostanti vengono considerati simili. Questa tecnica aiuta a catturare il significato semantico dei dati. Questo approccio è utile in varie applicazioni, come i sistemi di raccomandazione, l'elaborazione del linguaggio naturale e il riconoscimento delle immagini.

La ricerca vettoriale per Amazon DocumentDB combina la flessibilità e la ricca capacità di interrogazione di un database di documenti basato su JSON con la potenza della ricerca vettoriale. Se desideri utilizzare i dati esistenti di Amazon DocumentDB o una struttura di dati documentale flessibile per creare casi d'uso di machine learning e intelligenza artificiale generativa, come esperienza di ricerca semantica, consigli di prodotti, personalizzazione, chatbot, rilevamento di frodi e rilevamento di anomalie, la ricerca vettoriale per Amazon DocumentDB è la scelta ideale per te. La ricerca vettoriale è disponibile nei cluster basati su istanze di Amazon DocumentDB 5.0.

**Topics**
+ [

## Inserimento di vettori
](#w2aac21c11b9)
+ [

## Creazione di un indice vettoriale
](#w2aac21c11c11)
+ [

## Ottenere una definizione dell'indice
](#w2aac21c11c13)
+ [

## Query sui vettori
](#w2aac21c11c15)
+ [

## Caratteristiche e limitazioni
](#vector-limitations)
+ [

## Best practice
](#w2aac21c11c19)

## Inserimento di vettori
<a name="w2aac21c11b9"></a>

Per inserire vettori nel tuo database Amazon DocumentDB, puoi utilizzare i metodi di inserimento esistenti: 

**Esempio**

Nell'esempio seguente, viene creata una raccolta di cinque documenti all'interno di un database di test. Ogni documento include due campi: il nome del prodotto e l'incorporamento vettoriale corrispondente.

```
db.collection.insertMany([
  {"product_name": "Product A", "vectorEmbedding": [0.2, 0.5, 0.8]},
  {"product_name": "Product B", "vectorEmbedding": [0.7, 0.3, 0.9]},
  {"product_name": "Product C", "vectorEmbedding": [0.1, 0.2, 0.5]},
  {"product_name": "Product D", "vectorEmbedding": [0.9, 0.6, 0.4]},
  {"product_name": "Product E", "vectorEmbedding": [0.4, 0.7, 0.2]}
]);
```

## Creazione di un indice vettoriale
<a name="w2aac21c11c11"></a>

Amazon DocumentDB supporta sia l'indicizzazione Hierarchical Navigable Small World (HNSW) che i metodi di indicizzazione Inverted File with Flat Compression (). IVFFlat Un IVFFlat indice separa i vettori in elenchi e successivamente cerca un sottoinsieme selezionato di quegli elenchi più vicini al vettore di query. D'altra parte, un indice HNSW organizza i dati vettoriali in un grafico a più livelli. Sebbene HNSW abbia tempi di compilazione più lenti rispetto a, offre prestazioni di query e richiamo migliori IVFFlat. Al contrario IVFFlat, HNSW non prevede alcuna fase di formazione, il che consente di generare l'indice senza alcun caricamento iniziale dei dati. Per la maggior parte dei casi d'uso, consigliamo di utilizzare il tipo di indice HNSW per la ricerca vettoriale.

Se non crei un indice vettoriale, Amazon DocumentDB esegue una ricerca esatta del vicino più vicino, assicurando un richiamo perfetto. Tuttavia, negli scenari di produzione, la velocità è fondamentale. Consigliamo di utilizzare indici vettoriali, che potrebbero sostituire alcuni richiami in cambio di una maggiore velocità. È importante notare che l'aggiunta di un indice vettoriale può portare a risultati di query diversi.

**Modelli**

È possibile utilizzare quanto segue `createIndex` o i `runCommand` modelli per creare un indice vettoriale su un campo vettoriale:

------
#### [ Using createIndex ]

In alcuni driver, come mongosh e Java, l'utilizzo dei `vectorOptions` parametri in `createIndex` può causare un errore. In questi casi, si consiglia di utilizzare: `runCommand`

```
db.collection.createIndex(
  { "<vectorField>": "vector" },
  { "name": "<indexName>",
    "vectorOptions": {
      "type": " <hnsw> | <ivfflat> ",
      "dimensions": <number_of_dimensions>,
      "similarity": " <euclidean> | <cosine> | <dotProduct> ",
      "lists": <number_of_lists> [applicable for IVFFlat],
      "m": <max number of connections> [applicable for HNSW],
      "efConstruction": <size of the dynamic list for index build> [applicable for HNSW]
    }
  }
);
```

------
#### [ Using runCommand ]

In alcuni driver, come mongosh e Java, l'utilizzo dei `vectorOptions` parametri in `createIndex` può causare un errore. In questi casi, si consiglia di utilizzare: `runCommand`

```
db.runCommand(
  { "createIndexes": "<collection>", 
  "indexes": [{
      key: { "<vectorField>": "vector" },
      vectorOptions: {
          type: " <hnsw> | <ivfflat> ",
          dimensions: <number of dimensions>,
          similarity: " <euclidean> | <cosine> | <dotProduct> ",
          lists: <number_of_lists> [applicable for IVFFlat],
          m: <max number of connections> [applicable for HNSW],
          efConstruction: <size of the dynamic list for index build> [applicable for HNSW]
          },
      name: "myIndex" 
      }] 
  }
);
```

------


| Parametro | Requisito | Tipo di dati | Description | Valore (i) | 
| --- | --- | --- | --- | --- | 
|  **name**  |  facoltativo  |  stringa  |  Specificate il nome dell'indice.  |  Carattere alfanumerico  | 
|  **type**  |  facoltativo  |    |  Speciifica il tipo di indice.  |  Supportato: hnsw o ivfflat Impostazione predefinita: HNSW (patch del motore 3.0.4574 in poi)  | 
|  **dimensions**  |  obbligatorio  |  intero  |  Speciifica il numero di dimensioni nei dati vettoriali.  |  Massimo 2.000 dimensioni.  | 
|  **similarity**  |  obbligatorio  |  stringa  |  Speciifica la metrica della distanza utilizzata per il calcolo della somiglianza.  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/documentdb/latest/developerguide/vector-search.html)  | 
|  **lists**  |  richiesto per IVFFlat  |  intero  |  Speciifica il numero di cluster utilizzati dall' IVFFlat indice per raggruppare i dati vettoriali. L'impostazione consigliata è il numero di documenti/1000 per un massimo di 1 milione di documenti e per oltre 1 milione di documenti. `sqrt(# of documents)`  |  Minimo: 1 Massimo: fai riferimento alla tabella dei tipi di istanza degli elenchi per istanza riportata di seguito. [Caratteristiche e limitazioni](#vector-limitations)  | 
|  **m**  |  facoltativo  |  intero  |  Speciifica il numero massimo di connessioni per un indice HNSW  |  Impostazione predefinita: 16 Intervallo [2, 100]  | 
|  **efConstruction**  |  facoltativo  |  intero  |  Speciifica la dimensione dell'elenco dinamico di candidati per la costruzione del grafico per l'indice HNSW. `efConstruction`deve essere maggiore o uguale a (2 \$1 m)  |  Impostazione predefinita: 64 Intervallo [4, 1000]  | 

È importante impostare il valore dei sottoparametri come `lists` per IVFFlat `m` e `efConstruction` per HNSW in modo appropriato, poiché ciò influirà sulla precisione/richiamo, sui tempi di compilazione e sulle prestazioni della ricerca. Un valore di elenco più elevato aumenta la velocità della query in quanto riduce il numero di vettori in ogni elenco, con conseguenti aree più piccole. Tuttavia, una dimensione dell'area più piccola può portare a più errori di richiamo, con conseguente minore precisione. Per HNSW, aumentare il valore `m` e la precisione dell'indice, ma anche `efConstruction` aumentare il tempo e le dimensioni di costruzione dell'indice. Fare riferimento agli esempi riportati di seguito:

**Esempi**

------
#### [ HNSW ]

```
db.collection.createIndex(
  { "vectorEmbedding": "vector" },
  { "name": "myIndex",
    "vectorOptions": {
      "type": "hnsw",
      "dimensions": 3,
      "similarity": "euclidean",
      "m": 16,
      "efConstruction": 64
    }
  }
);
```

------
#### [ IVFFlat ]

```
db.collection.createIndex(
  { "vectorEmbedding": "vector" },
  { "name": "myIndex",
    "vectorOptions": {
      "type": "ivfflat",
      "dimensions": 3,
      "similarity": "euclidean",
      "lists":1
    }
  }
)
```

------

## Ottenere una definizione dell'indice
<a name="w2aac21c11c13"></a>

Puoi visualizzare i dettagli dei tuoi indici, inclusi gli indici vettoriali, usando il comando: `getIndexes`

**Esempio**

```
db.collection.getIndexes()
```

**Output di esempio**

```
[
 {
  "v" : 4,
  "key" : {
   "_id" : 1
  },
  "name" : "_id_",
  "ns" : "test.collection"
 },
 {
  "v" : 4,
  "key" : {
   "vectorEmbedding" : "vector"
  },
  "name" : "myIndex",
  "vectorOptions" : {
   "type" : "ivfflat",
   "dimensions" : 3,
   "similarity" : "euclidean",
   "lists" : 1
  },
  "ns" : "test.collection"
 }
]
```

## Query sui vettori
<a name="w2aac21c11c15"></a>

Amazon DocumentDB supporta due operatori di ricerca vettoriale per interrogare i vettori:

### Operatore di ricerca vettoriale classico
<a name="w2aac21c11c15b5"></a>

Usa il seguente modello per interrogare un vettore:

```
db.collection.aggregate([
  {
    $search: {
      "vectorSearch": {
        "vector": <query vector>, 
        "path": "<vectorField>", 
        "similarity": "<distance metric>",
        "k": <number of results>,
        "probes":<number of probes> [applicable for IVFFlat],
        "efSearch":<size of the dynamic list during search> [applicable for HNSW]
      }
    }
  }
]);
```


| Parametro | Requisito | Tipo | Description | Valore (i) | 
| --- | --- | --- | --- | --- | 
|  **vectorSearch**  |  obbligatorio  |  operatore  |  Utilizzato all'interno del comando \$1search per interrogare i vettori.  |    | 
|  **vector**  |  obbligatorio  |  array  |  Indica il vettore di interrogazione che verrà utilizzato per trovare vettori simili.  |    | 
|  **path**  |  obbligatorio  |  stringa  |  Definisce il nome del campo vettoriale.  |    | 
|  **k**  |  obbligatorio  |  intero  |  Speciifica il numero di risultati restituiti dalla ricerca.  |    | 
|  **similarity**  |  obbligatorio  |  stringa  |  Specifica la metrica della distanza utilizzata per il calcolo della somiglianza.  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/documentdb/latest/developerguide/vector-search.html)  | 
|  **probes**  |  facoltativo  |  intero  |  Il numero di cluster che si desidera ispezionare tramite la ricerca vettoriale. Un valore più elevato offre una migliore capacità di richiamo a scapito della velocità. Può essere impostato sul numero di elenchi per la ricerca esatta del vicino più vicino (a quel punto il pianificatore non utilizzerà l'indice). L'impostazione consigliata per avviare la regolazione fine è. `sqrt(# of lists)`  |  Impostazione predefinita: 1  | 
|  **efSearch**  |  facoltativo  |  intero  |  Speciifica la dimensione dell'elenco dinamico di candidati utilizzato dall'indice HNSW durante la ricerca. Un valore più elevato di `efSearch` fornisce un migliore richiamo a scapito della velocità.  |  Impostazione predefinita: 40 Intervallo [1, 1000]  | 

È importante regolare con precisione il valore di `efSearch` (HNSW) o `probes` (IVFFlat) per ottenere le prestazioni e la precisione desiderate. Vedi le seguenti operazioni di esempio:

------
#### [ HNSW ]

```
db.collection.aggregate([
  {
    $search: {
      "vectorSearch": {
        "vector": [0.2, 0.5, 0.8], 
        "path": "vectorEmbedding", 
        "similarity": "euclidean",
        "k": 2,
        "efSearch": 40
      }
    }
  }
]);
```

------
#### [ IVFFlat ]

```
db.collection.aggregate([
  {
    $search: {
      "vectorSearch": {
        "vector": [0.2, 0.5, 0.8], 
        "path": "vectorEmbedding", 
        "similarity": "euclidean",
        "k": 2,
        "probes": 1
      }
    }
  }
]);
```

------

**Output di esempio**

L'aspetto dell'output di questa operazione è simile al seguente.

```
{ "_id" : ObjectId("653d835ff96bee02cad7323c"), "product_name" : "Product A", "vectorEmbedding" : [ 0.2, 0.5, 0.8 ] }
{ "_id" : ObjectId("653d835ff96bee02cad7323e"), "product_name" : "Product C", "vectorEmbedding" : [ 0.1, 0.2, 0.5 ] }
```

### `$vectorSearch`operatore (disponibile in Amazon DocumentDB 8.0 e versioni successive)
<a name="w2aac21c11c15b7"></a>

Utilizza il seguente modello per interrogare un vettore:

```
db.collection.aggregate([
{
  "$vectorSearch": {
    "exact": true | false,
    "index": "<index-name>" [supports only HNSW index],
    "limit": <number-of-results> [same as k],
    "path": "<vector field-to-search>",
    "queryVector": <array-of-numbers>,
    "numCandidates": <number-of-candidates> [same as efSearch], 
  }
}])
```

## Caratteristiche e limitazioni
<a name="vector-limitations"></a>

**Compatibilità delle versioni**
+ La ricerca vettoriale per Amazon DocumentDB è disponibile solo su cluster basati su istanze Amazon DocumentDB 5.0\$1.

**Vettori**
+ Amazon DocumentDB può indicizzare vettori fino a 2.000 dimensioni. Tuttavia, è possibile archiviare fino a 16.000 dimensioni senza un indice.

**Indici**
+ Per la creazione di IVFFlat indici, l'impostazione consigliata per il parametro degli elenchi è il numero di documenti/1000 per un massimo di 1 milione di documenti e `sqrt(# of documents)` per oltre 1 milione di documenti. A causa di un limite di memoria di lavoro, Amazon DocumentDB supporta un determinato valore massimo del parametro lists a seconda del numero di dimensioni. A titolo di riferimento, la tabella seguente fornisce i valori massimi del parametro lists per vettori di 500, 1000 e 2.000 dimensioni:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/documentdb/latest/developerguide/vector-search.html)
+ Nessun'altra opzione di indice come `compound` `sparse` o `partial` è supportata dagli indici vettoriali.
+ La creazione di indici paralleli non è supportata per l'indice HNSW in Amazon DocumentDB 5.0.

**Interrogazione vettoriale**
+ Per le query di ricerca vettoriali, è importante ottimizzare i parametri come `probes` o `efSearch` per ottenere risultati ottimali. Più alto è il valore di `probes` o `efSearch` parametro, maggiore è il richiamo e minore è la velocità. L'impostazione consigliata per iniziare a regolare con precisione il parametro delle sonde è. `sqrt(# of lists)` 

## Best practice
<a name="w2aac21c11c19"></a>

Scopri le best practice per lavorare con la ricerca vettoriale in Amazon DocumentDB. Questa sezione viene continuamente aggiornata man mano che vengono identificate nuove best practice.
+ La creazione dell'indice Inverted File with Flat Compression (IVFFlat) prevede il raggruppamento e l'organizzazione dei punti dati in base alle somiglianze. Pertanto, affinché un indice sia più efficace, consigliamo di caricare almeno alcuni dati prima di creare l'indice. 
+ Per le query di ricerca vettoriali, è importante ottimizzare i parametri come `probes` o `efSearch` per ottenere risultati ottimali. Più alto è il valore del `efSearch` parametro `probes` or, maggiore è il richiamo e minore è la velocità. L'impostazione consigliata per iniziare a regolare con precisione il `probes` parametro è`sqrt(lists)`. 

**Risorse**
+ [Ricerca vettoriale: qual è il nuovo post del blog?](https://aws.amazon.com/blogs/aws/vector-search-for-amazon-documentdb-with-mongodb-compatibility-is-now-generally-available)
+ [Esempio di codice di ricerca semantico](https://github.com/aws-samples/amazon-documentdb-samples/tree/master/blogs/semanticsearch-docdb)
+ [Esempi di codice di ricerca vettoriale di Amazon DocumentDB](https://github.com/aws-samples/amazon-documentdb-samples/tree/master/samples/vector-search)