

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

# AWS Clean Rooms ML
<a name="machine-learning"></a>

AWS Clean Rooms ML consente a due o più parti di eseguire modelli di apprendimento automatico sui propri dati senza la necessità di condividerli tra loro. Il servizio fornisce controlli che migliorano la privacy che consentono ai proprietari dei dati di proteggere i propri dati e il proprio modello IP. Puoi utilizzare modelli AWS creati o portare il tuo modello personalizzato.

Per una spiegazione più dettagliata di come funziona, vedi[Lavori su più account](ml-behaviors.md#ml-behaviors-cross-account-jobs).

Per ulteriori informazioni sulle funzionalità dei modelli Clean Rooms ML, consulta i seguenti argomenti. 

**Topics**
+ [Terminologia ML di AWS Clean Rooms](#ml-terminology)
+ [Come funziona AWS Clean Rooms ML con AWS i modelli](#ml-how-it-works)
+ [Come funziona AWS Clean Rooms ML con modelli personalizzati](#custML-how-it-works)
+ [AWS modelli in Clean Rooms ML](aws-models.md)
+ [Modelli personalizzati in Clean Rooms ML](custom-models.md)

## Terminologia ML di AWS Clean Rooms
<a name="ml-terminology"></a>

È importante comprendere la seguente terminologia quando si utilizza Clean Rooms ML:
+ *Fornitore di dati di formazione*: la parte che fornisce i dati di formazione, crea e configura un modello simile e quindi associa tale modello a una collaborazione.
+ *Fornitore di dati iniziali*: la parte che fornisce i dati iniziali, genera un segmento simile ed esporta il segmento simile.
+ *Dati di formazione: i* dati del fornitore dei dati di formazione, utilizzati per generare un modello simile. I dati di addestramento vengono utilizzati per misurare la somiglianza nei comportamenti degli utenti.

  I dati di addestramento devono contenere un ID utente, un ID articolo e una colonna con timestamp. Facoltativamente, i dati di allenamento possono contenere altre interazioni come caratteristiche numeriche o categoriali. Esempi di interazioni sono un elenco di video guardati, articoli acquistati o articoli letti. 
+ *Dati di avviamento*: i dati del fornitore di dati iniziali, utilizzati per creare un segmento simile. I dati iniziali possono essere forniti direttamente o possono provenire dai risultati di un' AWS Clean Rooms interrogazione. L'output del segmento lookalike è un insieme di utenti tratto dai dati di addestramento che assomiglia di più agli utenti seed.
+ Modello *Lookalike: un modello* di apprendimento automatico dei dati di addestramento utilizzato per trovare utenti simili in altri set di dati.

  Quando si utilizza l'API, il termine modello di *audience viene utilizzato in modo equivalente al modello* lookalike. Ad esempio, si utilizza l'[CreateAudienceModel](https://docs.aws.amazon.com/cleanrooms-ml/latest/APIReference/API_CreateAudienceModel.html)API per creare un modello simile.
+ *Segmento simile*: un sottoinsieme dei dati di addestramento che più assomiglia ai dati iniziali.

  Quando si utilizza l'API, si crea un segmento simile con l'API. [StartAudienceGenerationJob](https://docs.aws.amazon.com/cleanrooms-ml/latest/APIReference/API_StartAudienceGenerationJob.html)

I dati del fornitore di dati di addestramento non vengono mai condivisi con il fornitore di dati di avviamento e i dati del fornitore di dati di avviamento non vengono mai condivisi con il fornitore di dati di formazione. L'output del segmento simile viene condiviso con il fornitore dei dati di addestramento, ma mai con il fornitore di dati iniziali.

## Come funziona AWS Clean Rooms ML con AWS i modelli
<a name="ml-how-it-works"></a>

![\[Una panoramica di come AWS Clean Rooms ML funziona con AWS i modelli.\]](http://docs.aws.amazon.com/it_it/clean-rooms/latest/userguide/images/howItWorksML.png)


Lavorare con modelli simili richiede che due parti, un fornitore di dati di formazione e un fornitore di dati iniziali, lavorino in sequenza AWS Clean Rooms per portare i propri dati in una collaborazione. Questo è il flusso di lavoro che il fornitore di dati di formazione deve completare per primo:

1. I dati del fornitore di dati di formazione devono essere archiviati in una tabella del catalogo AWS Glue dati contenente le interazioni tra utenti e elementi. Come minimo, i dati di addestramento devono contenere una colonna ID utente, una colonna ID interazione e una colonna timestamp.

1. Il fornitore di dati di formazione registra i dati di allenamento con. AWS Clean Rooms

1. Il fornitore di dati di formazione crea un modello simile che può essere condiviso con più fornitori di dati iniziali. Il modello Lookalike è una rete neurale profonda che può impiegare fino a 24 ore per addestrarsi. Non viene riaddestrato automaticamente e ti consigliamo di riaddestrare il modello settimanalmente.

1. Il fornitore di dati di formazione configura il modello lookalike, incluso se condividere i parametri di pertinenza e la posizione in Amazon S3 dei segmenti di output. Il fornitore di dati di formazione può creare più modelli simili configurati a partire da un unico modello simile.

1. Il fornitore di dati di formazione associa il modello di audience configurato a una collaborazione condivisa con un fornitore di dati iniziali.

Questo è il flusso di lavoro che il fornitore di dati iniziali deve completare successivamente:

1. I dati del fornitore di dati iniziali possono essere archiviati in un bucket Amazon S3 o possono provenire dai risultati di una query.

1. Il fornitore di dati iniziali avvia la collaborazione che condivide con il fornitore di dati di formazione.

1. Il fornitore di dati iniziali crea un segmento simile dalla scheda Clean Rooms ML della pagina di collaborazione. 

1. Il fornitore di dati iniziali può valutare le metriche di pertinenza, se sono state condivise, ed esportare il segmento simile per utilizzarlo all'esterno. AWS Clean Rooms

## Come funziona AWS Clean Rooms ML con modelli personalizzati
<a name="custML-how-it-works"></a>

Con Clean Rooms ML, i membri di una collaborazione possono utilizzare un algoritmo di modello personalizzato dockerizzato archiviato in Amazon ECR per analizzare congiuntamente i propri dati. A tale scopo, il *fornitore del modello* deve creare un'immagine e archiviarla in Amazon ECR. Segui i passaggi in [Amazon Elastic Container Registry User Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/) per creare un repository privato che conterrà il modello ML personalizzato. 

Qualsiasi membro di una collaborazione può essere il *fornitore del modello*, a condizione che disponga delle autorizzazioni corrette. Tutti i membri di una collaborazione possono contribuire al modello con dati di addestramento, dati di inferenza o entrambi. Ai fini di questa guida, i membri che forniscono dati sono indicati come *fornitori di dati*. Il membro che crea la collaborazione è l'*autore della collaborazione* e questo membro può essere il *fornitore del modello*, uno dei *fornitori di dati* o entrambi.

Al livello più alto, ecco i passaggi che devono essere completati per eseguire la modellazione ML personalizzata:

1. Il creatore della collaborazione crea una collaborazione e assegna a ciascun membro le abilità e la configurazione di pagamento appropriate. Il creatore della collaborazione deve assegnare la capacità del membro di ricevere gli output del modello o ricevere i risultati dell'inferenza al membro appropriato in questa fase, poiché non può essere aggiornata dopo la creazione della collaborazione. Per ulteriori informazioni, consulta [Creazione e partecipazione alla collaborazione in AWS Clean Rooms ML](create-custom-ml-collaboration.md).

1. Il fornitore del modello configura e associa il proprio modello ML containerizzato alla collaborazione e garantisce che i vincoli di privacy siano impostati per i dati esportati. Per ulteriori informazioni, consulta [Configurazione di un algoritmo modello in AWS Clean Rooms ML](configure-model-algorithm.md).

1. I fornitori di dati contribuiscono con i propri dati alla collaborazione e garantiscono che le loro esigenze di privacy siano specificate. I fornitori di dati devono consentire al modello di accedere ai propri dati. Per ulteriori informazioni, consultare [Contribuire ai dati di formazione in AWS Clean Rooms ML](custom-model-training-data.md) e [Associazione dell'algoritmo del modello configurato in AWS Clean Rooms ML](associate-model-algorithm.md).

1. Un membro della collaborazione crea la configurazione ML, che definisce dove vengono esportati gli artefatti del modello o i risultati dell'inferenza.

1. Un membro della collaborazione crea un canale di input ML che fornisce input al contenitore di formazione o al contenitore di inferenza. Il canale di input ML è una query che definisce i dati da utilizzare nel contesto dell'algoritmo del modello.

1. Un membro della collaborazione richiama l'addestramento del modello utilizzando il canale di input ML e l'algoritmo del modello configurato. Per ulteriori informazioni, consulta [Creazione di un modello addestrato in AWS Clean Rooms ML](create-trained-model.md).

1. (Facoltativo) Il model trainer richiama il processo di esportazione del modello e gli artefatti del modello vengono inviati al destinatario dei risultati del modello. Solo i membri con una configurazione ML valida e la capacità dei membri di ricevere l'output del modello possono ricevere gli artefatti del modello. Per ulteriori informazioni, consulta [Esportazione di artefatti del modello da AWS Clean Rooms ML](export-model-artifacts.md).

1. (Facoltativo) Un membro della collaborazione richiama l'inferenza del modello utilizzando il canale di input ML, l'ARN del modello addestrato e l'algoritmo del modello configurato per l'inferenza. I risultati dell'inferenza vengono inviati al ricevitore di uscita dell'inferenza. Solo i membri con una configurazione ML valida e la capacità dei membri di ricevere l'output di inferenza possono ricevere risultati di inferenza.

Ecco i passaggi che devono essere completati dal fornitore del *modello:*

1. Crea un'immagine docker Amazon ECR compatibile con l' SageMaker AI. Clean Rooms ML supporta solo immagini docker compatibili con SageMaker AI.

1. Dopo aver creato un'immagine docker compatibile con l' SageMaker AI, invia l'immagine ad Amazon ECR. Segui le istruzioni nella [Guida per l'utente di Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/) per creare un'immagine di formazione sui container.

1. Configura l'algoritmo del modello da utilizzare in Clean Rooms ML.

   1. Fornisci il link al repository Amazon ECR e tutti gli argomenti necessari per configurare l'algoritmo del modello.

   1. Fornisci un ruolo di accesso al servizio che consenta a Clean Rooms ML di accedere al repository Amazon ECR.

   1. Associa l'algoritmo del modello configurato alla collaborazione. Ciò include la fornitura di una politica sulla privacy che definisce i controlli per i registri dei contenitori, i registri degli errori, le CloudWatch metriche e i limiti sulla quantità di dati che possono essere esportati dai risultati del contenitore.

Ecco i passaggi che devono essere completati dal *fornitore di dati* per collaborare con un modello ML personalizzato:

1. Configura una AWS Glue tabella esistente con una regola di analisi personalizzata. Ciò consente a un insieme specifico di query preapprovate o account preapprovati di utilizzare i tuoi dati.

1. Associa la tabella configurata a una collaborazione e fornisci un ruolo di accesso al servizio che può accedere alle tue tabelle. AWS Glue 

1. [Aggiungi una regola di analisi della collaborazione](add-collaboration-analysis-rule.md) alla tabella che consente all'associazione degli algoritmi del modello configurato di accedere alla tabella configurata.

1. Dopo aver associato e configurato il modello e i dati in Clean Rooms ML, il membro con la capacità di eseguire query fornisce una query SQL e seleziona l'algoritmo del modello da utilizzare.

 Al termine dell'addestramento del modello, quel membro avvia l'esportazione degli artefatti di addestramento del modello o dei risultati dell'inferenza. Questi artefatti o risultati vengono inviati al membro con la possibilità di ricevere l'output del modello addestrato. Il destinatario dei risultati deve configurare il proprio modello `MachineLearningConfiguration` prima di poter ricevere l'output del modello.

# AWS modelli in Clean Rooms ML
<a name="aws-models"></a>

AWS Clean Rooms ML offre un metodo di tutela della privacy che consente a due parti di identificare utenti simili nei propri dati senza la necessità di condividerli tra loro. La prima parte fornisce i dati di formazione AWS Clean Rooms in modo che possano creare e configurare un modello simile e associarlo a una collaborazione. Quindi, i dati iniziali vengono trasferiti alla collaborazione per creare un segmento simile a quello dei dati di addestramento.

Per una spiegazione più dettagliata di come funziona, vedi. [Lavori su più account](ml-behaviors.md#ml-behaviors-cross-account-jobs)

I seguenti argomenti forniscono informazioni su come creare e configurare un AWS modello in Clean Rooms ML.

**Topics**
+ [Protezioni della privacy di AWS Clean Rooms ML](ml-privacy.md)
+ [Requisiti relativi ai dati di formazione per Clean Rooms ML](ml-training-data-requirements.md)
+ [Requisiti relativi ai dati di avviamento per Clean Rooms ML](ml-seed-data-requirements.md)
+ [Metriche di valutazione del modello AWS Clean Rooms ML](ml-metrics.md)

# Protezioni della privacy di AWS Clean Rooms ML
<a name="ml-privacy"></a>

Clean Rooms ML è progettato per ridurre il rischio di *attacchi di inferenza dei membri*, in cui il fornitore di dati di formazione può scoprire chi è presente nei dati iniziali e il fornitore di dati iniziali può scoprire chi c'è nei dati di formazione. Sono state adottate diverse misure per prevenire questo attacco.

Innanzitutto, i fornitori di dati di avviamento non osservano direttamente l'output di Clean Rooms ML e i fornitori di dati di formazione non possono mai osservare i dati iniziali. I fornitori di dati di semina possono scegliere di includere i dati di semina nel segmento di output.

Successivamente, il modello simile viene creato da un campione casuale dei dati di addestramento. Questo esempio include un numero significativo di utenti che non corrispondono al pubblico iniziale. Questo processo rende più difficile determinare se un utente non fosse presente nei dati, il che rappresenta un altro modo per inferire l'appartenenza.

Inoltre, è possibile utilizzare più clienti di seed per ogni parametro di addestramento basato su modelli simili specifici per ciascun seme. Ciò limita quanto il modello può sovra-adattarsi e quindi quanto si può dedurre su un utente. Di conseguenza, consigliamo che la dimensione minima dei dati iniziali sia di 500 utenti. 

Infine, le metriche a livello di utente non vengono mai fornite ai fornitori di dati di formazione, il che elimina un'altra possibilità per un attacco di inferenza dell'appartenenza.

# Requisiti relativi ai dati di formazione per Clean Rooms ML
<a name="ml-training-data-requirements"></a>

Per creare correttamente un modello simile, i dati di addestramento devono soddisfare i seguenti requisiti:
+ I dati di addestramento devono essere in formato Parquet, CSV o JSON.
**Nota**  
I dati compressi di Parquet Zstandard (ZSTD) non sono supportati.
+ I dati di allenamento devono essere catalogati in. AWS Glue Per ulteriori informazioni, consulta [Getting started with the AWS Glue Data Catalog](https://docs.aws.amazon.com//glue/latest/dg/start-data-catalog.html) nella AWS Glue Developer Guide. Ti consigliamo di utilizzare AWS Glue i crawler per creare le tabelle perché lo schema viene dedotto automaticamente.
+ Il bucket Amazon S3 che contiene i dati di addestramento e i dati iniziali si trova nella stessa AWS regione delle altre risorse Clean Rooms ML.
+ I dati di addestramento devono contenere almeno 100.000 utenti unici IDs con almeno due interazioni tra elementi ciascuno.
+ I dati di allenamento devono contenere almeno 1 milione di record.
+ Lo schema specificato nell'[CreateTrainingDataset](https://docs.aws.amazon.com/cleanrooms-ml/latest/APIReference/API_CreateTrainingDataset.html)azione deve essere allineato allo schema definito al momento della creazione della AWS Glue tabella.
+ I campi obbligatori, come definiti nella tabella fornita, sono definiti nell'[CreateTrainingDataset](https://docs.aws.amazon.com/cleanrooms-ml/latest/APIReference/API_CreateTrainingDataset.html)azione.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/clean-rooms/latest/userguide/ml-training-data-requirements.html)
+ Facoltativamente, puoi fornire fino a 10 funzioni categoriali o numeriche totali.

Ecco un esempio di un set di dati di addestramento valido in formato CSV

```
USER_ID,ITEM_ID,TIMESTAMP,EVENT_TYPE(CATEGORICAL FEATURE),EVENT_VALUE (NUMERICAL FEATURE)
196,242,881250949,click,15
186,302,891717742,click,13
22,377,878887116,click,10
244,51,880606923,click,20
166,346,886397596,click,10
```

# Requisiti relativi ai dati di avviamento per Clean Rooms ML
<a name="ml-seed-data-requirements"></a>

I dati iniziali per un modello simile possono provenire direttamente da un bucket Amazon S3 o dai risultati di una query SQL. 

I dati iniziali forniti direttamente devono soddisfare i seguenti requisiti:
+ I dati iniziali devono essere in formato JSON lines con un elenco di utenti IDs.
+ La dimensione del seed deve essere compresa tra 25 e 500.000 utenti unici. IDs
+ Il numero minimo di utenti iniziali deve corrispondere al valore minimo corrispondente alla dimensione del seme specificato al momento della creazione del modello di pubblico configurato.

Di seguito è riportato un esempio di un set di dati di addestramento valido in formato CSV

```
{"user_id": "abc"}
{"user_id": "def"}
{"user_id": "ghijkl"}
{"user_id": "123"}
{"user_id": "456"}
{"user_id": "7890"}
```

# Metriche di valutazione del modello AWS Clean Rooms ML
<a name="ml-metrics"></a>

Clean Rooms ML calcola il *punteggio di *richiamo* e pertinenza* per determinare le prestazioni del modello. Recall confronta la somiglianza tra i dati simili e i dati di addestramento. Il punteggio di pertinenza viene utilizzato per decidere quanto deve essere numeroso il pubblico, non se il modello ha buone prestazioni.

Il *richiamo* è una misura imparziale della somiglianza tra il segmento simile e i dati di addestramento. Il richiamo è la percentuale di utenti più simili (per impostazione predefinita, il 20%) tratta da un campione di dati di formazione inclusi nel gruppo di utenti iniziali in base alla funzione di generazione di audience. I valori vanno da 0 a 1, valori più alti indicano un pubblico migliore. Un valore di richiamo approssimativamente uguale alla percentuale massima di contenitori indica che il modello di pubblico è equivalente alla selezione casuale.

Riteniamo che questa sia una metrica di valutazione migliore rispetto all'accuratezza, alla precisione e ai punteggi F1, perché Clean Rooms ML non ha etichettato accuratamente gli utenti veri negativi durante la creazione del suo modello.

Il *punteggio di pertinenza a livello di segmento è una misura della somiglianza* con valori che vanno da -1 (meno simile) a 1 (più simile). Clean Rooms ML calcola una serie di punteggi di pertinenza per segmenti di varie dimensioni per aiutarti a determinare la dimensione del segmento migliore per i tuoi dati. I punteggi di pertinenza diminuiscono in modo monotono all'aumentare della dimensione del segmento, quindi all'aumentare della dimensione del segmento può essere meno simile ai dati iniziali. Quando il punteggio di pertinenza a livello di segmento raggiunge 0, il modello prevede che tutti gli utenti del segmento simile abbiano la stessa distribuzione dei dati iniziali. È probabile che l'aumento delle dimensioni dell'output includa utenti del segmento dei lookalike che non hanno la stessa distribuzione dei dati iniziali.

I punteggi di pertinenza sono normalizzati all'interno di una singola campagna e non devono essere utilizzati per effettuare confronti tra campagne diverse. I punteggi di pertinenza non devono essere utilizzati come elemento di prova univoco per qualsiasi risultato aziendale, in quanto oltre alla pertinenza, sono influenzati da molteplici fattori complessi, come la qualità dell'inventario, il tipo di inventario, la tempistica della pubblicità e così via.

I punteggi di pertinenza non devono essere utilizzati per giudicare la qualità del seme, ma piuttosto per stabilire se è possibile aumentarla o diminuirla. Considerare i seguenti esempi:
+ Tutti i punteggi positivi: ciò indica che ci sono più utenti di output che si prevede siano simili rispetto a quelli inclusi nel segmento dei lookalike. Questo è comune per i dati sulle sementi che fanno parte di un grande mercato, come tutti coloro che hanno acquistato dentifricio nel mese scorso. Consigliamo di esaminare i dati relativi ai semi più piccoli, ad esempio a tutti coloro che hanno acquistato il dentifricio più di una volta nell'ultimo mese.
+ Tutti i punteggi negativi o negativi per la dimensione desiderata del segmento simile: ciò indica che Clean Rooms ML prevede che non ci siano abbastanza utenti simili nella dimensione desiderata del segmento di riferimento. Ciò può essere dovuto al fatto che i dati iniziali sono troppo specifici o che il mercato è troppo piccolo. Consigliamo di applicare un minor numero di filtri ai dati relativi alle sementi o di ampliare il mercato. Ad esempio, se i dati iniziali erano relativi a clienti che avevano acquistato un passeggino e un seggiolino per auto, potresti espandere il mercato ai clienti che hanno acquistato più prodotti per bambini.

I fornitori di dati di formazione determinano se vengono esposti i punteggi di pertinenza e i contenitori in cui vengono calcolati i punteggi di pertinenza.

# Modelli personalizzati in Clean Rooms ML
<a name="custom-models"></a>

Con Clean Rooms ML, i membri di una collaborazione possono utilizzare un algoritmo di modello personalizzato dockerizzato archiviato in Amazon ECR per analizzare congiuntamente i propri dati. A tale scopo, il *fornitore del modello* deve creare un'immagine e archiviarla in Amazon ECR. Segui i passaggi in [Amazon Elastic Container Registry User Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/) per creare un repository privato che conterrà il modello ML personalizzato. 

Qualsiasi membro di una collaborazione può essere il *fornitore del modello*, a condizione che disponga delle autorizzazioni corrette. Tutti i membri di una collaborazione possono fornire dati al modello. Ai fini di questa guida, i membri che forniscono dati sono indicati come *fornitori di dati*. Il membro che crea la collaborazione è l'*autore della collaborazione* e questo membro può essere il *fornitore del modello*, uno dei *fornitori di dati* o entrambi.

I seguenti argomenti descrivono le informazioni necessarie per creare un modello ML personalizzato

**Topics**
+ [Prerequisiti per la modellazione ML personalizzata](custom-model-prerequisites.md)
+ [Linee guida per la creazione di modelli per il contenitore di formazione](custom-model-guidelines.md)
+ [Linee guida per la creazione di modelli per il contenitore di inferenza](inference-model-guidelines.md)
+ [Ricezione dei log e delle metriche del modello](custom-model-logs.md)

# Prerequisiti per la modellazione ML personalizzata
<a name="custom-model-prerequisites"></a>

Prima di eseguire la modellazione ML personalizzata, è necessario considerare quanto segue:
+ Determina se nell'ambito della collaborazione verranno eseguiti sia l'addestramento del modello che l'inferenza sul modello addestrato.
+ Determina il ruolo che ogni membro della collaborazione svolgerà e assegnagli le abilità appropriate.
  + Assegna l'`CAN_QUERY`abilità al membro che addestrerà il modello ed eseguirà l'inferenza sul modello addestrato.
  + Assegna il `CAN_RECEIVE_RESULTS` ad almeno un membro della collaborazione.
  + Assegna `CAN_RECEIVE_INFERENCE_OUTPUT` le `CAN_RECEIVE_MODEL_OUTPUT` nostre abilità al membro che riceverà rispettivamente le esportazioni di modelli addestrati o l'output di inferenza. Puoi scegliere di usare entrambe le abilità se richieste dal tuo caso d'uso.
+ Determina la dimensione massima degli artefatti del modello addestrato o dei risultati di inferenza che potrai esportare.
+ È consigliabile che tutti gli utenti abbiano le `CleanroomsMLFullAccess` politiche `CleanrooomsFullAccess` e associate al proprio ruolo. L'utilizzo di modelli ML personalizzati richiede l'utilizzo sia di AWS Clean Rooms ML che di AWS SDKs. AWS Clean Rooms 
+ Considera le seguenti informazioni sui ruoli IAM.
  + Tutti i fornitori di dati devono avere un ruolo di accesso al servizio che AWS Clean Rooms consenta di leggere i dati dai loro AWS Glue cataloghi e tabelle e dalle posizioni Amazon S3 sottostanti. Questi ruoli sono simili a quelli richiesti per le interrogazioni SQL. Ciò consente di utilizzare l'`CreateConfiguredTableAssociation`azione. Per ulteriori informazioni, consulta [Crea un ruolo di servizio per creare un'associazione di tabelle configurata](ml-roles.md#ml-roles-custom-configure-table). 
  + Tutti i membri che desiderano ricevere le metriche devono avere un ruolo di accesso al servizio che consenta loro di scrivere CloudWatch metriche e log. Questo ruolo viene utilizzato da Clean Rooms ML per scrivere tutte le metriche e i log del modello ai membri Account AWS durante l'addestramento e l'inferenza del modello. Forniamo inoltre controlli sulla privacy per determinare quali membri hanno accesso alle metriche e ai log. Ciò consente di utilizzare l'azione`CreateMLConfiguration`. Per ulteriori informazioni, consultare [Crea un ruolo di servizio per la modellazione ML personalizzata - Configurazione ML](ml-roles.md#ml-roles-custom-configure). 

    Il membro che riceve i risultati deve fornire un ruolo di accesso al servizio con le autorizzazioni di scrittura nel proprio bucket Amazon S3. Questo ruolo consente a Clean Rooms ML di esportare i risultati (artefatti del modello addestrati o risultati di inferenza) in un bucket Amazon S3. Ciò consente di utilizzare l'azione. `CreateMLConfiguration` Per ulteriori informazioni, consulta [Crea un ruolo di servizio per la modellazione ML personalizzata - Configurazione ML](ml-roles.md#ml-roles-custom-configure). 
  + Il fornitore del modello deve fornire un ruolo di accesso al servizio con le autorizzazioni per leggere l'archivio e l'immagine Amazon ECR. Ciò consente di utilizzare l'azione. `CreateConfigureModelAlgorithm` Per ulteriori informazioni, consulta [Crea un ruolo di servizio per fornire un modello di machine learning personalizzato](ml-roles.md#ml-roles-custom-model-provider). 
  + Il membro che crea i `MLInputChannel` set di dati per la formazione o l'inferenza deve fornire un ruolo di accesso al servizio che consenta a Clean Rooms ML di eseguire una query SQL in. AWS Clean Rooms Ciò consente di utilizzare le azioni `CreateTrainedModel` e`StartTrainedModelInferenceJob`. Per ulteriori informazioni, consulta [Crea un ruolo di servizio per interrogare un set di dati](ml-roles.md#ml-roles-custom-query-dataset). 
+ Gli autori del modello devono seguire [Linee guida per la creazione di modelli per il contenitore di formazione](custom-model-guidelines.md) e [Linee guida per la creazione di modelli per il contenitore di inferenzaRicezione dei log e delle metriche del modello](inference-model-guidelines.md) garantire che gli input e gli output del modello siano configurati come previsto da. AWS Clean Rooms

# Linee guida per la creazione di modelli per il contenitore di formazione
<a name="custom-model-guidelines"></a>

Questa sezione descrive in dettaglio le linee guida che i fornitori di modelli devono seguire durante la creazione di un algoritmo di modello ML personalizzato per Clean Rooms ML.
+ Utilizza l'immagine di base del contenitore appropriata supportata dalla formazione SageMaker AI, come descritto nella [SageMaker AI Developer Guide](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html). Il codice seguente consente di estrarre le immagini di base del contenitore supportate dagli endpoint SageMaker AI pubblici.

  ```
  ecr_registry_endpoint='763104351884.dkr.ecr.$REGION.amazonaws.com'
  base_image='pytorch-training:2.3.0-cpu-py311-ubuntu20.04-sagemaker'
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ecr_registry_endpoint
  docker pull $ecr_registry_endpoint/$base_image
  ```
+ Quando create il modello localmente, assicuratevi di quanto segue in modo da poter testare il modello localmente, su un'istanza di sviluppo, su SageMaker AI Training in your Account AWS e su Clean Rooms ML.
  + Ti consigliamo di scrivere uno script di formazione che acceda a proprietà utili sull'ambiente di addestramento tramite varie variabili di ambiente. Clean Rooms ML utilizza i seguenti argomenti per richiamare la formazione sul codice del modello:`SM_MODEL_DIR`, `SM_OUTPUT_DIR``SM_CHANNEL_TRAIN`, e. `FILE_FORMAT` Questi valori predefiniti vengono utilizzati da Clean Rooms ML per addestrare il modello ML nel proprio ambiente di esecuzione con i dati di tutte le parti.
  + Clean Rooms ML rende disponibili i canali di input per la formazione tramite `/opt/ml/input/data/channel-name` le directory nel contenitore docker. Ogni canale di input ML viene mappato in base al corrispondente `channel_name` fornito nella richiesta. `CreateTrainedModel`

    ```
    parser = argparse.ArgumentParser()# Data, model, and output directories
    
    parser.add_argument('--model_dir', type=str, default=os.environ.get('SM_MODEL_DIR', "/opt/ml/model"))
    parser.add_argument('--output_dir', type=str, default=os.environ.get('SM_OUTPUT_DIR', "/opt/ml/output/data"))
    parser.add_argument('--train_dir', type=str, default=os.environ.get('SM_CHANNEL_TRAIN', "/opt/ml/input/data/train"))
    parser.add_argument('--train_file_format', type=str, default=os.environ.get('FILE_FORMAT', "csv"))
    ```
  + Assicurati di essere in grado di generare un set di dati sintetico o di test basato sullo schema dei collaboratori che verrà utilizzato nel codice del modello.
  + Assicurati di poter eseguire autonomamente un processo di formazione sull' SageMaker intelligenza artificiale Account AWS prima di associare l'algoritmo del modello a una AWS Clean Rooms collaborazione.

    Il codice seguente contiene un file Docker di esempio compatibile con i test locali, i test dell'ambiente SageMaker AI Training e Clean Rooms ML

    ```
    FROM  763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.3.0-cpu-py311-ubuntu20.04-sagemaker
    MAINTAINER $author_name
    
    ENV PYTHONDONTWRITEBYTECODE=1 \
        PYTHONUNBUFFERED=1 \
        LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
    
    ENV PATH="/opt/ml/code:${PATH}"
    
    # this environment variable is used by the SageMaker PyTorch container to determine our user code directory
    ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code
    
    # copy the training script inside the container
    COPY train.py /opt/ml/code/train.py
    # define train.py as the script entry point
    ENV SAGEMAKER_PROGRAM train.py
    ENTRYPOINT ["python", "/opt/ml/code/train.py"]
    ```
+ Per monitorare al meglio gli errori dei container, consigliamo di esportare i log e di eseguire il debug per motivi di errore. In `GetTrainedModel` risposta, Clean Rooms ML restituisce i primi 1024 caratteri di questo file sotto. `StatusDetails` 
+ Dopo aver completato le modifiche al modello e essere pronto per testarlo nell'ambiente SageMaker AI, esegui i seguenti comandi nell'ordine fornito.

  ```
  export ACCOUNT_ID=xxx
  export REPO_NAME=xxx
  export REPO_TAG=xxx
  export REGION=xxx
  
  docker build -t $ACCOUNT_ID.dkr.ecr.us-west-2.amazonaws.com/$REPO_NAME:$REPO_TAG
  
  # Sign into AWS $ACCOUNT_ID/ Run aws configure
  # Check the account and make sure it is the correct role/credentials
  aws sts get-caller-identity
  aws ecr create-repository --repository-name $REPO_NAME --region $REGION
  aws ecr describe-repositories --repository-name $REPO_NAME --region $REGION
  
  # Authenticate Doker
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com
  
  # Push To ECR Images
  docker push  $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com$REPO_NAME:$REPO_TAG
  
  # Create Sagemaker Training job
  # Configure the training_job.json with
  # 1. TrainingImage
  # 2. Input DataConfig
  # 3. Output DataConfig
  aws sagemaker create-training-job --cli-input-json file://training_job.json --region $REGION
  ```

  Dopo aver completato il processo di SageMaker intelligenza artificiale e aver soddisfatto l'algoritmo del modello, puoi registrare il registro Amazon ECR con AWS Clean Rooms ML. Usa l'`CreateConfiguredModelAlgorithm`azione per registrare l'algoritmo del modello e poi `CreateConfiguredModelAlgorithmAssociation` per associarlo a una collaborazione.

# Linee guida per la creazione di modelli per il contenitore di inferenza
<a name="inference-model-guidelines"></a>

Questa sezione descrive in dettaglio le linee guida che i fornitori di modelli devono seguire durante la creazione di un algoritmo di inferenza per Clean Rooms ML.
+ [Utilizza l'immagine di base del contenitore appropriata supportata dall'inferenza SageMaker AI, come descritto nella Guida per sviluppatori AISageMaker .](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html) Il codice seguente consente di estrarre le immagini di base del contenitore supportate dagli endpoint AI pubblici SageMaker .

  ```
  ecr_registry_endpoint='763104351884.dkr.ecr.$REGION.amazonaws.com'
  base_image='pytorch-inference:2.3.0-cpu-py311-ubuntu20.04-sagemaker'
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ecr_registry_endpoint
  docker pull $ecr_registry_endpoint/$base_image
  ```
+ Quando crei il modello localmente, assicurati quanto segue in modo da poter testare il modello localmente, su un'istanza di sviluppo, su SageMaker AI Batch Transform nel tuo Account AWS e su Clean Rooms ML.
  + Clean Rooms ML rende gli artefatti del modello derivanti dall'inferenza disponibili per l'uso da parte del codice di inferenza tramite la directory `/opt/ml/model` nel contenitore docker.
  + Clean Rooms ML divide l'input per riga, utilizza una strategia `MultiRecord` batch e aggiunge un carattere di nuova riga alla fine di ogni record trasformato.
  + Assicurati di essere in grado di generare un set di dati di inferenza sintetico o di test basato sullo schema dei collaboratori che verrà utilizzato nel codice del modello.
  + Assicurati di poter eseguire autonomamente un processo di trasformazione in batch basato sull' SageMaker intelligenza artificiale Account AWS prima di associare l'algoritmo del modello a una collaborazione. AWS Clean Rooms 

    Il codice seguente contiene un file Docker di esempio compatibile con i test locali, i test dell'ambiente di trasformazione SageMaker AI e Clean Rooms ML

    ```
    FROM 763104351884.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.12.1-cpu-py38-ubuntu20.04-sagemaker
    
    ENV PYTHONUNBUFFERED=1
    
    COPY serve.py /opt/ml/code/serve.py
    COPY inference_handler.py /opt/ml/code/inference_handler.py
    COPY handler_service.py /opt/ml/code/handler_service.py
    COPY model.py /opt/ml/code/model.py
    
    RUN chmod +x /opt/ml/code/serve.py
    
    ENTRYPOINT ["/opt/ml/code/serve.py"]
    ```
+ Dopo aver completato le modifiche al modello e essere pronto per testarlo nell'ambiente SageMaker AI, esegui i seguenti comandi nell'ordine fornito.

  ```
  export ACCOUNT_ID=xxx
  export REPO_NAME=xxx
  export REPO_TAG=xxx
  export REGION=xxx
  
  docker build -t $ACCOUNT_ID.dkr.ecr.us-west-2.amazonaws.com/$REPO_NAME:$REPO_TAG
  
  # Sign into AWS $ACCOUNT_ID/ Run aws configure
  # Check the account and make sure it is the correct role/credentials
  aws sts get-caller-identity
  aws ecr create-repository --repository-name $REPO_NAME --region $REGION
  aws ecr describe-repositories --repository-name $REPO_NAME --region $REGION
  
  # Authenticate Docker
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com
  
  # Push To ECR Repository
  docker push $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com$REPO_NAME:$REPO_TAG
  
  # Create Sagemaker Model
  # Configure the create_model.json with
  # 1. Primary container - 
      # a. ModelDataUrl - S3 Uri of the model.tar from your training job
  aws sagemaker create-model --cli-input-json file://create_model.json --region $REGION
  
  # Create Sagemaker Transform Job
  # Configure the transform_job.json with
  # 1. Model created in the step above 
  # 2. MultiRecord batch strategy
  # 3. Line SplitType for TransformInput
  # 4. AssembleWith Line for TransformOutput
  aws sagemaker create-transform-job --cli-input-json file://transform_job.json --region $REGION
  ```

  Dopo aver completato il processo di SageMaker intelligenza artificiale e aver soddisfatto la trasformazione in batch, puoi registrare il registro Amazon ECR con AWS Clean Rooms ML. Usa l'`CreateConfiguredModelAlgorithm`azione per registrare l'algoritmo del modello e poi `CreateConfiguredModelAlgorithmAssociation` per associarlo a una collaborazione.

# Ricezione dei log e delle metriche del modello
<a name="custom-model-logs"></a>

Per ricevere log e metriche relativi alla formazione o all'inferenza di modelli personalizzati, i membri devono aver [creato una configurazione ML con un](https://docs.aws.amazon.com/clean-rooms/latest/userguide/create-custom-ml-collaboration.html) ruolo valido che fornisca CloudWatch le autorizzazioni necessarie (vedi [Creare un ruolo di servizio per la modellazione ML personalizzata - Configurazione ML](https://docs.aws.amazon.com/clean-rooms/latest/userguide/ml-roles.html#ml-roles-custom-configure)).

**Metrica di sistema**

Le metriche di sistema per l'addestramento e l'inferenza, come l'utilizzo della CPU e della memoria, vengono pubblicate a tutti i membri in collaborazione con configurazioni ML valide. Queste metriche possono essere visualizzate man mano che il lavoro procede tramite CloudWatch Metrics nei namespace o, rispettivamente. `/aws/cleanroomsml/TrainedModels` `/aws/cleanroomsml/TrainedModelInferenceJobs`

**Registri dei modelli**

L'accesso ai log del modello è fornito dalla politica di configurazione della privacy di ciascun algoritmo del modello configurato. L'autore del modello imposta la politica di configurazione della privacy quando associa un algoritmo del modello configurato (tramite la console o l'`CreateConfiguredModelAlgorithmAssociation`API) a una collaborazione. L'impostazione della politica di configurazione della privacy controlla quali membri possono ricevere i log del modello.

Inoltre, l'autore del modello può impostare uno schema di filtro nella politica di configurazione della privacy per filtrare gli eventi di registro. Tutti i log inviati da un container modello a `stdout` o `stderr` che corrispondono allo schema di filtro (se impostato) vengono inviati ad Amazon CloudWatch Logs. I log dei modelli sono disponibili in gruppi di CloudWatch log `/aws/cleanroomsml/TrainedModels` o`/aws/cleanroomsml/TrainedModelInferenceJobs`, rispettivamente.

**Metriche definite in modo personalizzato**

Quando configuri un algoritmo del modello (tramite la console o l'`CreateConfiguredModelAlgorithm`API), l'autore del modello può fornire nomi di metriche e istruzioni regex specifici da cercare nei log di output. Questi possono essere visualizzati man mano che il lavoro procede tramite CloudWatch Metrics nel namespace. `/aws/cleanroomsml/TrainedModels` Quando associa un algoritmo di modello configurato, l'autore del modello può impostare un livello di rumore opzionale nella configurazione della privacy delle metriche per evitare l'output di dati grezzi e allo stesso tempo fornire visibilità sulle tendenze delle metriche personalizzate. Se viene impostato un livello di rumore, le metriche vengono pubblicate alla fine del lavoro anziché in tempo reale.