Office per tutti
  • Home
  • Office
    • Access
    • Excel
    • Outlook
    • PowerPoint
    • Teams
    • Word
  • Informatica
  • Internet
  • Tecnologia
  • News
  • Recensioni
No Result
View All Result
Office per tutti
  • Home
  • Office
    • Access
    • Excel
    • Outlook
    • PowerPoint
    • Teams
    • Word
  • Informatica
  • Internet
  • Tecnologia
  • News
  • Recensioni
No Result
View All Result
Office per tutti
No Result
View All Result
Home Tecnologia

SentenceTransformers: un framework Python per embeddings di frasi, testi e immagini

by Redazione Officepertutti
Marzo 30, 2023
in Tecnologia
Reading Time:5 mins read
0 0
0
Sentence transformes NLP

Sentence transformes NLP

0
CONDIVISIONI
22
VISTO
Share on FacebookShare on Twitter

I modelli di Processing del Linguaggio Naturale (NLP) hanno subito notevoli progressi negli ultimi anni, soprattutto grazie all’introduzione di reti neurali e architetture come BERT, RoBERTa e XLM-RoBERTa. 

Queste reti hanno portato a importanti miglioramenti nella traduzione automatica, nella risposta a domande e nella ricerca semantica. 

Tra le soluzioni emergenti che sfruttano queste architetture, Sentence-Transformers è un’opzione eccellente per calcolare embeddings di frasi, testi e immagini in Python.

Indice dei contenuti

  • Cos’è Sentence-Transformers?
    • Modelli pre-addestrati e fine-tuning
  • Installazione e utilizzo di SentenceTransformers
    • Installazione tramite pip
    • Installazione tramite conda
    • Installazione dal codice sorgente
  • Calcolare embeddings per frasi e testi
  • Confrontare embeddings tramite similarità coseno
  • Addestrare un modello personalizzato
  • Integrazione con Hugging Face e Weaviate
  • Conclusioni

Cos’è Sentence-Transformers?

SentenceTransformers è un framework Python basato su PyTorch e Transformers che permette di calcolare embeddings densi per frasi, paragrafi e immagini utilizzando reti neurali come BERT, RoBERTa e XLM-RoBERTa. 

Descritto nel paper Sentence-BERT, offre modelli pre-addestrati allo stato dell’arte per più di 100 lingue, ottimizzati per diverse applicazioni. 

Il framework consente inoltre di affinare facilmente modelli di embedding personalizzati per specifici compiti. È adatto per Python 3.6 o versioni successive, PyTorch 1.6.0 e transformers v4.6.0, e può essere installato tramite pip, conda o dal codice sorgente.

Leggi anche: Azure OpenAI: una soluzione cloud per potenziare le applicazioni con intelligenza artificiale

Modelli pre-addestrati e fine-tuning

SentenceTransformers offre una vasta gamma di modelli pre-addestrati per diverse lingue e casi d’uso. Alcuni di questi modelli includono:

  • BERT Base: un modello generico basato sull’architettura BERT con 110 milioni di parametri.
  • DistilBERT: una versione semplificata di BERT che conserva la maggior parte delle prestazioni del modello originale, ma con solo il 40% dei parametri.
  • RoBERTa: una variante di BERT ottimizzata per una maggiore accuratezza e velocità di addestramento.
  • XLM-RoBERTa: un’evoluzione di RoBERTa progettata per supportare più di 100 lingue.

Il framework supporta anche il fine-tuning per embeddings specifici di determinati compiti. Ciò significa che è possibile addestrare un modello preesistente su un nuovo dataset per ottenere prestazioni migliori in specifici scenari.

Installazione e utilizzo di SentenceTransformers

Per iniziare a utilizzare SentenceTransformers, è necessario installare il package tramite pip, conda o dal codice sorgente.

Installazione tramite pip

Per installare SentenceTransformers con pip, eseguire il seguente comando:

pip install sentence-transformers

 

Installazione tramite conda

Per installare SentenceTransformers con conda, eseguire il seguente comando:

conda install -c conda-forge sentence-transformers

 

Installazione dal codice sorgente

Per installare SentenceTransformers dal codice sorgente, eseguire i seguenti comandi:

git clone https://github.com/UKPLab/sentence-transformers.git
cd sentence-transformers
python setup.py install

 

Calcolare embeddings per frasi e testi

Una volta installato SentenceTransformers, è possibile iniziare a calcolare embeddings per frasi e testi. Di seguito è riportato un esempio di codice che dimostra come utilizzare il framework per calcolare gli embeddings per una lista di frasi:

from sentence_transformers import SentenceTransformer
 
# Load a pre-trained model
model = SentenceTransformer('bert-base-nli-mean-tokens')
 
# Define the list of sentences
sentences = [
    "Il cane corre nel parco.",
    "Una volta era una giovane ragazza.",
    "L'uomo suona il piano."
]
 
# Compute the embeddings
embeddings = model.encode(sentences)
 
# Print the embeddings
for sentence, embedding in zip(sentences, embeddings):
    print(f"Sentence: {sentence}")
    print(f"Embedding: {embedding}")

 

Confrontare embeddings tramite similarità coseno

Una delle principali applicazioni di SentenceTransformers è trovare frasi dal significato simile. Per fare ciò, è possibile confrontare gli embeddings calcolati utilizzando la similarità del coseno. Di seguito è riportato un esempio di codice che mostra come confrontare gli embeddings delle frasi per trovare la frase più simile a una frase target:

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
 
# Define the target sentence
target_sentence = "Il gatto corre nel parco."
 
# Compute the embedding for the target sentence
target_embedding = model.encode([target_sentence])[0]
 
# Compute the cosine similarity between embeddings
similarities = cosine_similarity([target_embedding], embeddings)[0]
 
# Find the index of the most similar sentence
most_similar_index = np.argmax(similarities)
 
# Print the most similar sentence
print(f"Most similar sentence: {sentences[most_similar_index]}")

 

Addestrare un modello personalizzato

SentenceTransformers consente di addestrare modelli personalizzati su nuovi dataset per specifici compiti. Di seguito è riportato un esempio di codice che mostra come addestrare un modello su un dataset di esempio:

from sentence_transformers import SentenceTransformer, InputExample, losses
from torch.utils.data import DataLoader
 
# Define training examples (pairs of sentences with a similarity score)
train_examples = [
    InputExample(texts=["Il cane corre nel parco.", "Il gatto gioca con la palla."], label=0.5),
    InputExample(texts=["Una volta era una giovane ragazza.", "La vecchia signora camminava al parco."], label=0.7),
    # ... more examples ...
]
 
# Create a DataLoader for the training examples
train_dataloader = DataLoader(train_examples, shuffle=True, batch_size=16)
 
# Define the loss function
train_loss = losses.CosineSimilarityLoss(model)
 
# Train the model
model.fit(train_objectives=[(train_dataloader, train_loss)], epochs=1, warmup_steps=100)

 

In questo esempio, il modello viene addestrato utilizzando esempi di input composti da coppie di frasi e un punteggio di similarità. Il modello apprende a generare embeddings che riflettono questi punteggi di similarità.

Integrazione con Hugging Face e Weaviate

SentenceTransformers può essere integrato con altre soluzioni NLP come Hugging Face e Weaviate. Ad esempio, Weaviate ha introdotto un nuovo modulo che consente agli utenti di integrare modelli Hugging Face per vettorizzare dati e query.

Con oltre 700 modelli disponibili, l’attenzione si è spostata dalle differenze architettoniche ai dati su cui sono stati addestrati e ad altri fattori sottili. Le reti neurali variano per dominio, dataset, lingua e altri dettagli. Per selezionare il modello giusto per la ricerca semantica, gli utenti dovrebbero considerare queste dimensioni e fare riferimento alle descrizioni dei modelli colorate di Hugging Face.

Conclusioni

SentenceTransformers è un framework Python flessibile e potente che rende facile calcolare embeddings densi per frasi, testi e immagini utilizzando reti neurali allo stato dell’arte. Grazie alla sua ampia gamma di modelli pre-addestrati, al supporto per il fine-tuning e alle sue integrazioni con altre soluzioni NLP, SentenceTransformers è una soluzione ideale per lo sviluppo di applicazioni di comprensione del linguaggio naturale e ricerca semantica.

condividiTweetPin
Previous Post

GPT-5: verso l’intelligenza artificiale generale entro il 2023?

Next Post

Fine Tuning dei Modelli OpenAI con Azure

Related Posts

web3
Internet

Cos’è il Web 3.0 e come funziona?

Settembre 14, 2023
Google Maps
Tecnologia

Come fa Google Maps a rilevare il traffico in tempo reale e a calcolare l’itinerario migliore?

Luglio 10, 2023
AI Act
News

AI Act: Che cos’è e cosa prevede il regolamento UE sull’Intelligenza Artificiale?

Giugno 27, 2023
Quantum computer
Tecnologia

Tecnologia Quantistica e AI: Rivoluzione o Pericolo?

Giugno 27, 2023
gpt5
News

Ecco perché GPT 5 cambierà il mondo (per sempre)

Maggio 25, 2023
Google AI
Tecnologia

PaLM 2: il nuovo modello linguistico di Google

Maggio 12, 2023
Next Post
Azure OpenAI

Fine Tuning dei Modelli OpenAI con Azure

Lascia un commento Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

jasper
seguici su Google News

Offerte del giorno

OffertaBestseller n. 1 Apple MagSafe Battery Pack (per iPhone 12 - iPhone 14) Apple MagSafe Battery Pack (per iPhone 12 - iPhone... 105,99 EUR
Bestseller n. 2 TXQULA magsafe caricatore, [certificato MFI]Caricabatterie magnetico rapido MagSafe da 15W compatibile con iPhone 14/14 Plus/14 Pro/14 Pro Max/13/12(senza adattatore) TXQULA magsafe caricatore, [certificato... 15,96 EUR
Bestseller n. 3 Apple Custodia MagSafe trasparente per iPhone 14 Pro ​​​​​​​ Apple Custodia MagSafe trasparente per... 59,00 EUR
Bestseller n. 4 Apple Custodia MagSafe trasparente per iPhone 14 ​​​​​​​ Apple Custodia MagSafe trasparente per iPhone 14... 59,00 EUR
Bestseller n. 5 JETech Cover Magnetica per iPhone 13 6,1 Pollici Compatibile con MagSafe, Custodia Traslucida Opaca Posteriore Sottile Antiurto (Nero) JETech Cover Magnetica per iPhone 13 6,1 Pollici... 14,99 EUR
OffertaBestseller n. 6 ESR Compatibile con Anello MagSafe 360, Universale Ring in metallo compatibile con iPhone 15/14/13/12/11/X Series, Galaxy S23/S22/S21/S20/S10 Series/MagSafe Accessories, 2 Pezzi,Nero-Argento ESR Compatibile con Anello MagSafe 360, Universale... 13,99 EUR
Bestseller n. 7 Apple Portafoglio MagSafe in pelle (per iPhone) - Mezzanotte Apple Portafoglio MagSafe in pelle (per iPhone) -... 78,76 EUR
Bestseller n. 8 Urbbalume MagSafe Caricatore, Certificato MFi Caricabatterie Veloce Magnetico Wireless USB C 15W, Caricatore a Induzione Compatibile con iPhone 14/14 Plus/14 Pro/14 Pro Max/13/13 Pro/12/12 Pro Urbbalume MagSafe Caricatore, Certificato MFi... 13,99 EUR
OffertaBestseller n. 9 Power Bank Wireless Magnetico 20000mAh Batteria Esterna Magsafe Caricatore Portatile PD 20W USB-A/Type-C 22.5W Ricarica Rapida Caricabatterie con Display LED per iPhone 14 13 12 Mini Pro Max Power Bank Wireless Magnetico 20000mAh Batteria... 34,19 EUR
Bestseller n. 10 Power Bank 5000mAh Magsafe LJL, Caricabatterie Portatile Magnetico Wireless, Batteria Esterna Ricarica Rapida, Powerbank con ingresso Lightning per iPhone 12/13/14 Power Bank 5000mAh Magsafe LJL, Caricabatterie... 24,97 EUR
  • Home
  • Chi Siamo
  • Disclaimer
  • Privacy Policy
  • Cookie Policy

DISCLAIMER
Officepertutti.com partecipa al Programma Affiliazione Amazon EU, un programma di affiliazione che consente ai siti di percepire una commissione pubblicitaria pubblicizzando e fornendo link al sito Amazon.it. Amazon e il logo Amazon sono marchi registrati di Amazon.com, Inc. o delle sue affiliate.

No Result
View All Result
  • Home
  • Office
    • Access
    • Excel
    • Outlook
    • PowerPoint
    • Teams
    • Word
  • Informatica
  • Internet
  • Tecnologia
  • Recensioni
  • News

© 2021 Officepertutti.com - Tutti i diritti riservati

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?