0 / 0
Torna alla versione inglese della documentazione
Integrazioni
Ultimo aggiornamento: 12 dic 2024
Integrazioni

Utilizzare i modelli di embedding per creare embedding di testo che catturino il significato di una frase o di un brano. È possibile utilizzare questi modelli con classificatori come le macchine vettoriali di supporto. L'incorporazione di modelli può essere utile anche per le attività di generazione aumentata dal reperimento.

Il diagramma seguente illustra il modello di generazione con supporto al recupero e all'incorporazione.

Diagramma che mostra l'aggiunta di risultati di ricerca derivati da un archivio vettoriale all'input per la generazione aumentata del reperimento

Il modello di generazione con supporto al recupero e all'incorporazione prevede le seguenti fasi:

  1. Convertire i contenuti in incorporazioni di testo e memorizzarli in un archivio di dati vettoriali.
  2. Utilizzare lo stesso modello di embedding per convertire l'input dell'utente in embedding di testo.
  3. Eseguite una ricerca per similarità o semantica nella vostra base di conoscenza per trovare i contenuti correlati alla domanda dell'utente.
  4. Inserite i risultati di ricerca più rilevanti nel vostro prompt come contesto e aggiungete un'istruzione, come "Rispondete alla seguente domanda utilizzando solo le informazioni contenute nei seguenti passaggi"
  5. Inviare il testo combinato del prompt (istruzione + risultati della ricerca + domanda) al foundation model.
  6. Il foundation model utilizza le informazioni contestuali del prompt per generare una risposta fattuale.

Per ulteriori informazioni, vedere:

Utilizzare le incorporazioni

Le incorporazioni USE sono dei wrapper attorno alle incorporazioni di Google Universal Sentence Encoder, disponibili in TFHub. Queste incorporazioni vengono utilizzate nell'algoritmo SVM di classificazione dei documenti. Per un elenco di embeddings USE pre-addestrati e delle loro lingue supportate, vedere Embeddings USE pre-addestrati inclusi

Quando si utilizzano le incorporazioni USE, considerare quanto segue:

  • Scegliere " embedding_use_en_stock se il compito prevede un testo in inglese.

  • Scegliere una delle incorporazioni USE multilingue se il compito prevede un testo in una lingua diversa dall'inglese o se si desidera addestrare modelli multilingue.

  • Le incorporazioni USE presentano diversi compromessi tra la qualità del modello addestrato e il throughput al momento dell'inferenza, come descritto di seguito. Provate diverse incorporazioni per decidere il compromesso tra qualità del risultato e velocità di inferenza più adatto al vostro caso d'uso.

    • embedding_use_multi_small ha una qualità ragionevole, ma è veloce nel momento dell'inferenza
    • embedding_use_en_stock è una versione solo inglese di 'embedding_embedding_use_multi_small, quindi è più piccola e presenta un throughput di inferenza più elevato
    • embedding_use_multi_large è basato sull'architettura Transformer e quindi fornisce una qualità di risultato più elevata, con un throughput inferiore al momento dell'inferenza

Esempio di codice

import watson_nlp

syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_use_en_stock")

text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)

Output dell'esempio di codice:

{
  "data": {
    "data": [
      -0.01909315399825573,
      -0.009827353060245514,
...
      0.008978910744190216,
      -0.0702751949429512
    ],
    "rows": 1,
    "cols": 512,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": null
}

Inclusi embeddings USE pretrainati

La tabella seguente elenca i blocchi preaddestrati per le incorporazioni USE disponibili e le lingue supportate. Per un elenco dei codici lingua e della lingua corrispondente, vedere Codici lingua.

Elenco delle incorporazioni USE pretrainate con le loro lingue supportate
Nome blocco Nome modello Lingue supportate
use embedding_use_en_stock Solo in lingua inglese
use embedding_use_multi_small ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh
use embedding_use_multi_large ar, de, el, en, es, fr, it, ja, ko, nb, nl, pl, pt, ru, th, tr, zh_tw, zh

Incorporazioni GloVe

Le incorporazioni GloVe sono utilizzate dal classificatore CNN.

Nome del blocco: " embedding_glove__stock

Lingue supportate: ar, de, en, es, fr, it, ja, ko, nl, pt, zh-cn

Esempio di codice

import watson_nlp

syntax_model = watson_nlp.load("syntax_izumo_en_stock")
embeddings_model = watson_nlp.load("embedding_glove_en_stock")

text = "python"
syntax_doc = syntax_model.run(text)
embedding = embeddings_model.run(syntax_doc)
print(embedding)

Output dell'esempio di codice:

{
  "data": {
    "data": [
      -0.01909315399825573,
      -0.009827353060245514,
...
      0.008978910744190216,
      -0.0702751949429512
    ],
    "rows": 1,
    "cols": 512,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": null
}

Incorporazione di trasformatori

Nomi dei blocchi

  • embedding_transformer_en_slate.125m
  • embedding_transformer_en_slate.30m

Lingue supportate

Solo in lingua inglese

Esempio di codice

import watson_nlp

# embeddings_model = watson_nlp.load("embedding_transformer_en_slate.125m")
embeddings_model = watson_nlp.load("embedding_transformer_en_slate.30m")
text = "python"

embedding = embeddings_model.run(text)
print(embedding)

Output dell'esempio di codice

{
  "data": {
    "data": [
      -0.055536773055791855,
      0.008286023512482643,
      ...
      -0.3202415108680725,
      5.000295277568512e-05
    ],
    "rows": 1,
    "cols": 384,
    "dtype": "float32"
  },
  "offsets": null,
  "producer_id": {
    "name": "Transformer Embeddings",
    "version": "0.0.1"
  }
}

Argomento principale: Catalogo delle attività di elaborazione del linguaggio naturaleWatson

Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni