Gemma è una famiglia di modelli aperti, leggeri e all'avanguardia, costruiti della ricerca e della tecnologia usate per creare i modelli Gemini. Puoi utilizzare i modelli Gemma nelle pipeline di inferenza di Apache Beam. Il termine peso aperto indica che i parametri preaddestrati di un modello, o ponderazioni, vengono rilasciate. Dettagli come il set di dati originale, l'architettura del modello e l'addestramento non è stato fornito.
Per un elenco dei modelli disponibili e i dettagli di ciascun modello, vedi Panoramica dei modelli Gemma.
Per scoprire come scaricare e utilizzare i modelli, consulta Inizia a utilizzare Gemma con KerasNLP.
Per scaricare un modello, vedi Modelli Gemma.
Casi d'uso
Puoi utilizzare i modelli Gemma con Dataflow per analisi del sentiment. Con Dataflow e i modelli Gemma, puoi elaborare eventi, come come recensioni dei clienti, man mano che arrivano. Esegui le revisioni attraverso il modello analizzarli per poi generare suggerimenti. Combinando Gemma con Apache Beam, puoi completare questo flusso di lavoro senza problemi.
Supporto e limitazioni
I modelli aperti Gemma sono supportati con Apache Beam e Dataflow con i seguenti requisiti:
- Disponibile per pipeline in modalità flusso e batch che utilizzano Apache Beam SDK Python 2.46.0 e versioni successive.
- I job Dataflow devono utilizzare Runner v2.
- I job Dataflow devono utilizzare GPU. Per un elenco dei tipi di GPU supportati con Dataflow, consulta Disponibilità. Il T4 e Sono consigliati i tipi di GPU L4.
- Il modello deve essere scaricato e salvato nel formato file
.keras
. - Il gestore del modello TensorFlow è consigliato ma non obbligatorio.
Prerequisiti
- Accedi ai modelli Gemma tramite Kaggle.
- Compila il modulo per il consenso. e accettare i Termini e condizioni.
- Scarica il modello Gemma. Salvalo nel formato file
.keras
in una posizione in cui Può accedere un job Dataflow, ad esempio un bucket Cloud Storage. Quando specifichi un valore per di percorso del modello, utilizza il percorso di questa posizione di archiviazione. - Per eseguire il job su Dataflow, crea un container personalizzato
dell'immagine. Questo passaggio consente di eseguire la pipeline con GPU
dal servizio Dataflow.
- Per visualizzare un flusso di lavoro completo che include la creazione di un'immagine Docker, consulta RunInference on Dataflow in modalità flusso con Gemma in GitHub.
- Per ulteriori informazioni sulla creazione l'immagine Docker, consulta Creare un'immagine container personalizzata in "Esegui una pipeline con GPU".
- Per eseguire il push del container in Artifact Registry utilizzando Docker, consulta Crea l'immagine ed eseguine il push in "Creare immagini container personalizzate per Dataflow".
Usa Gemma nella tua pipeline
Per utilizzare un modello Gemma nella pipeline Apache Beam, segui questi passaggi.
Nel codice Apache Beam, dopo aver importato le dipendenze della pipeline, includi un percorso al modello salvato:
model_path = "MODEL_PATH"
Sostituisci
MODEL_PATH
con il percorso in cui hai salvato l'elemento scaricato il modello. Ad esempio, se salvi il modello in un Cloud Storage bucket, il percorso ha il formatogs://STORAGE_PATH/FILENAME.keras
.L'implementazione Keras dei modelli Gemma utilizza un metodo
generate()
che genera testo basato su un prompt. Per passare elementigenerate()
, utilizza una funzione di inferenza personalizzata.def gemma_inference_function(model, batch, inference_args, model_id): vectorized_batch = np.stack(batch, axis=0) # The only inference_arg expected here is a max_length parameter to # determine how many words are included in the output. predictions = model.generate(vectorized_batch, **inference_args) return utils._convert_to_result(batch, predictions, model_id)
Esegui la pipeline, specificando il percorso del modello addestrato. Questo utilizza un gestore di modelli TensorFlow.
class FormatOutput(beam.DoFn): def process(self, element, *args, **kwargs): yield "Input: {input}, Output: {output}".format(input=element.example, output=element.inference) # Instantiate a NumPy array of string prompts for the model. examples = np.array(["Tell me the sentiment of the phrase 'I like pizza': "]) # Specify the model handler, providing a path and the custom inference function. model_handler = TFModelHandlerNumpy(model_path, inference_fn=gemma_inference_function) with beam.Pipeline() as p: _ = (p | beam.Create(examples) # Create a PCollection of the prompts. | RunInference(model_handler, inference_args={'max_length': 32}) # Send the prompts to the model and get responses. | beam.ParDo(FormatOutput()) # Format the output. | beam.Map(print) # Print the formatted output. )
Passaggi successivi
- Crea una pipeline di flusso Dataflow che utilizza RunInference e Gemma.
- Esegui l'inferenza con un modello aperto Gemma in Google Colab (richiede Colab Enterprise).
- Esegui una pipeline con GPU.
- Ottimizza il tuo modello.