Aggiunta di automazione con Liquid - Amazon SageMaker

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

Aggiunta di automazione con Liquid

Il sistema di modello personalizzato utilizza Liquid per l'automazione. Si tratta di un linguaggio di markup inline open-source. In Liquid, il testo compreso tra parentesi graffe singole e simboli di percentuale è un'istruzione o un tag che svolge un’operazione come un flusso di controllo o un'iterazione. Il testo racchiuso tra parentesi graffe doppie è una variabile o oggetto che genera il suo valore.

Liquid è comunemente utilizzato per analizzare i dati provenienti da pre-annotation Lambda (Lambda di pre-annotazione) ed estrarre le variabili pertinenti per creare l'attività. L'oggetto taskInput restituito da Lambda di pre-annotazione sarà disponibile come oggetto task.input nei tuoi modelli.

Le proprietà negli oggetti dati del tuo manifest vengono passate a Lambda di pre-annotazione come event.dataObject. Un semplice script pass-through restituisce quell'oggetto come oggetto taskInput. I valori dal manifest possono essere rappresentati come variabili nel modo seguente.

Esempio Oggetto dati del manifest
{ "source": "This is a sample text for classification", "labels": [ "angry" , "sad" , "happy" , "inconclusive" ], "header": "What emotion is the speaker feeling?" }
Esempio di HTML utilizzo di variabili
<crowd-classifier name='tweetFeeling' categories='{{ task.input.labels | to_json }}' header='{{ task.input.header }}' > <classification-target> {{ task.input.source }} </classification-target>

Nota l'aggiunta di " | to_json" alla proprietà labels qui sopra. Questo è un filtro per trasformare l'array in una JSON rappresentazione dell'array. Nella sezione successiva sono descritti i filtri variabili.

L'elenco seguente include due tipi di tag Liquid che potresti trovare utili per automatizzare l'elaborazione dei dati di input dei modelli. Se selezioni uno dei seguenti tipi di tag, verrai reindirizzato alla documentazione di Liquid.

Per ulteriori informazioni e la documentazione, visita la home page Liquid.

Filtri variabili

Oltre alle operazioni e ai filtri Liquid standard, Ground Truth offre alcuni filtri aggiuntivi. I filtri vengono applicati posizionando un carattere barra verticale (|) dopo il nome di variabile e quindi specificando un nome filtro. I filtri possono essere concatenati nel formato seguente:

{{ <content> | <filter> | <filter> }}

Escape automatico ed escape esplicito

Per impostazione predefinita, gli input verranno HTML ignorati per evitare confusione tra il testo variabile e. HTML Puoi aggiungere in maniera esplicita il filtro escape per rendere più evidente agli utenti che leggono il codice sorgente il modello su cui si esegue l'escape.

escape_once

escape_once garantisce che se hai già eseguito l'escape del codice, questo non viene nuovamente sottoposto a escape. Ad esempio, &amp; non diventa &amp;amp;.

skip_autoescape

skip_autoescapeè utile quando i tuoi contenuti sono pensati per essere usati come. HTML Ad esempio, le istruzioni complete per un riquadro di delimitazione potrebbero contenere qualche paragrafo di testo e alcune immagini.

Usa skip_autoescape con parsimonia

La best practice nei modelli è evitare di passare codice funzionale o markup con skip_autoescape a meno che non sei assolutamente certo di avere il controllo rigoroso di ciò che viene passato. Se stai passando input utente, potresti esporre i worker a un attacco Cross Site Scripting.

to_json

to_jsoncodificherà ciò a cui lo invii JSON (JavaScript Object Notation). Se fornisci un oggetto, verrà serializzato.

grant_read_access

grant_read_accessprende un S3 URI e lo codifica in un token di accesso HTTPS URL di breve durata per quella risorsa. Questo consente di visualizzare ai worker oggetti foto, audio o video archiviati in bucket S3 che non sono altrimenti accessibili pubblicamente.

Esempio dei filtri

Input

auto-escape: {{ "Have you read 'James & the Giant Peach'?" }} explicit escape: {{ "Have you read 'James & the Giant Peach'?" | escape }} explicit escape_once: {{ "Have you read 'James &amp; the Giant Peach'?" | escape_once }} skip_autoescape: {{ "Have you read 'James & the Giant Peach'?" | skip_autoescape }} to_json: {{ jsObject | to_json }} grant_read_access: {{ "s3://amzn-s3-demo-bucket/myphoto.png" | grant_read_access }}

Output

auto-escape: Have you read &#39;James &amp; the Giant Peach&#39;? explicit escape: Have you read &#39;James &amp; the Giant Peach&#39;? explicit escape_once: Have you read &#39;James &amp; the Giant Peach&#39;? skip_autoescape: Have you read 'James & the Giant Peach'? to_json: { "point_number": 8, "coords": [ 59, 76 ] } grant_read_access: https://s3.amazonaws.com/amzn-s3-demo-bucket/myphoto.png?<access token and other params>
Esempio di un modello di classificazione automatico.

Per automatizzare l'esempio di classificazione del testo semplice, sostituisci il testo del tweet con una variabile.

Il modello di classificazione del testo è riportato di seguito con automazione aggiunta. Le modifiche/aggiunte sono evidenziate in grassetto.

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-classifier name="tweetFeeling" categories="['positive', 'negative', 'neutral', 'cannot determine']" header="Which term best describes this tweet?" > <classification-target> {{ task.input.source }} </classification-target> <full-instructions header="Analyzing a sentiment"> Try to determine the feeling the author of the tweet is trying to express. If none seem to match, choose "other." </full-instructions> <short-instructions> Pick the term best describing the sentiment of the tweet. </short-instructions> </crowd-classifier> </crowd-form>

Il testo del tweet che si trovava nell'esempio precedente è stato ora sostituito con un oggetto. L'entry.taskInputoggetto utilizza source (o un altro nome specificato nella Lambda di pre-annotazione) come nome della proprietà per il testo e viene inserito direttamente nella in HTML virtù del fatto di trovarsi tra doppie parentesi graffe.