Κοινή χρήση τεχνολογίας

Gemma2 - Ένας πλήρης οδηγός εφαρμογών για το νέο γλωσσικό μοντέλο ανοιχτού κώδικα μεγάλης κλίμακας της Google

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

0 Πρόλογος

Gemma 2 Βασισμένο στον προκάτοχό του, προσφέρει βελτιωμένη απόδοση και αποτελεσματικότητα, καθώς και μια σειρά καινοτόμων χαρακτηριστικών, καθιστώντας το ιδιαίτερα ελκυστικό τόσο για έρευνα όσο και για πρακτικές εφαρμογές. Αυτό που ξεχωρίζει το Gemma 2 είναι ότι προσφέρει απόδοση συγκρίσιμη με μεγαλύτερα ιδιόκτητα μοντέλα, αλλά μεπακέτο λογισμικούΣχεδιασμένο για ευρύτερη προσβασιμότητα και χρήση σε πιο μέτριες ρυθμίσεις υλικού.

Καθώς εμβαθύνω στις τεχνικές προδιαγραφές και την αρχιτεκτονική του Gemma 2, εντυπωσιάζομαι όλο και περισσότερο από την πολυπλοκότητα του σχεδιασμού του.Το μοντέλο ενσωματώνει μια ποικιλία προηγμένων τεχνολογιών, συμπεριλαμβανομένων των νέωνμηχανισμός προσοχήςκαι καινοτόμες μεθόδους προπόνησης σταθερότητας, που όλα συμβάλλουν στην εξαιρετική απόδοση του.

Σε αυτόν τον περιεκτικό οδηγό, το Gemma 2 θα εξερευνηθεί σε βάθος, εξετάζοντας την αρχιτεκτονική, τα βασικά χαρακτηριστικά και τις πρακτικές εφαρμογές του. Είτε είστε έμπειρος επαγγελματίας τεχνητής νοημοσύνης είτε ενθουσιώδης αρχάριος στον τομέα, αυτό το άρθρο στοχεύει να παρέχει πολύτιμες πληροφορίες για το πώς λειτουργεί το Gemma 2 και πώς μπορείτε να αξιοποιήσετε τις δυνατότητές του στα δικά σας έργα.

1. Τι είναι το Gemma 2;

Το Gemma 2 είναι το πιο πρόσφατο ανοιχτού κώδικα μεγάλης κλίμακας της Googleγλωσσικό μοντέλο , εξαιρετικά σχεδιασμένο αλλά ισχυρό. Είναι βασισμένο στην ίδια έρευνα και τεχνολογία που χρησιμοποιήθηκε για τη δημιουργία μοντέλων Google Gemini, προσφέροντας επιδόσεις αιχμής σε ένα πιο προσιτό πακέτο. Το Gemma 2 διατίθεται σε δύο μεγέθη:

Gemma 2 9B: Ένα μοντέλο παραμέτρων 9 δισεκατομμυρίων
Gemma 2 27B: Ένα μεγαλύτερο μοντέλο παραμέτρων 27 δισεκατομμυρίων

Κάθε μέγεθος διατίθεται σε δύο στυλ:

βασικό μοντέλο: Προεκπαίδευση σε μεγάλες ποσότητες δεδομένων κειμένου
Μοντέλο συντονισμού οδηγιών (IT).: Προσαρμοσμένο για καλύτερη απόδοση σε συγκεκριμένες εργασίες

Πρόσβαση σε μοντέλα στο Google AI StudioGoogle AI Studio – Gemma 2
Διαβάστε την εφημερίδα εδώ: Τεχνική Έκθεση Gemma 2

2.Κύρια χαρακτηριστικά και βελτιώσεις

Το Gemma 2 εισάγει αρκετές σημαντικές βελτιώσεις σε σχέση με τον προκάτοχό του:

2.1 Προσθήκη δεδομένων εκπαίδευσης

Αυτά τα μοντέλα έχουν εκπαιδευτεί σε περισσότερα δεδομένα:

Gemma 2 27B: Μετά από προπόνηση με 13 τρισεκατομμύρια μάρκες
Gemma 2 9B: Μετά από προπόνηση με 8 τρισεκατομμύρια μάρκες

Αυτό το εκτεταμένο σύνολο δεδομένων αποτελείται κυρίως από δεδομένα δικτύου (κυρίως στα αγγλικά), κώδικα και μαθηματικά, συμβάλλοντας στη βελτίωση της απόδοσης και της ευελιξίας των μοντέλων σας.

2.2 Προσοχή συρόμενου παραθύρου

Το Gemma 2 εφαρμόζει μια νέα μέθοδο μηχανισμού προσοχής:

Κάθε άλλο επίπεδο χρησιμοποιεί έναν μηχανισμό προσοχής συρόμενου παραθύρου και το τοπικό πλαίσιο είναι 4096 διακριτικά.
Το εναλλασσόμενο επίπεδο υιοθετεί έναν πλήρως τετραγωνικό μηχανισμό συνολικής προσοχής για ολόκληρο το πλαίσιο διακριτικών 8192.

Αυτή η υβριδική προσέγγιση στοχεύει να εξισορροπήσει την αποτελεσματικότητα με την ικανότητα να συλλαμβάνει εξαρτήσεις μεγάλης εμβέλειας στην είσοδο.

2.3 Μαλακό καπάκι

Προκειμένου να βελτιωθεί η σταθερότητα και η απόδοση της προπόνησης, το Gemma 2 εισάγει έναν μαλακό μηχανισμό ανώτερου ορίου:

def soft_cap(x, cap):
    return cap * torch.tanh(x / cap)
# Applied to attention logits
attention_logits = soft_cap(attention_logits, cap=50.0)
# Applied to final layer logits
final_logits = soft_cap(final_logits, cap=30.0)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Αυτή η τεχνική εμποδίζει τα logit να γίνουν πολύ μεγάλα χωρίς σκληρή περικοπή, διατηρώντας έτσι περισσότερες πληροφορίες σταθεροποιώντας παράλληλα τη διαδικασία εκπαίδευσης.

  1. Gemma 2 9B: Μοντέλο παραμέτρων 9 δισεκατομμυρίων
  2. Gemma 2 27B: Μεγαλύτερο μοντέλο παραμέτρων 27 δισεκατομμυρίων

Κάθε μέγεθος διατίθεται σε δύο στυλ:

  • Βασικό μοντέλο: προεκπαιδευμένο σε μεγάλες ποσότητες δεδομένων κειμένου
  • Μοντέλο Instruction Tuning (IT): τελειοποιημένο για καλύτερη απόδοση σε συγκεκριμένες εργασίες

2.4. Απόσταξη γνώσης

Για το μοντέλο 9B, το Gemma 2 χρησιμοποιεί τεχνολογία εξαγωγής γνώσης:

  • Προεκπαίδευση: Το μοντέλο 9Β μαθαίνει από ένα μεγαλύτερο μοντέλο δασκάλου κατά την αρχική εκπαίδευση
  • Μετά την εκπαίδευση: Και τα δύο μοντέλα 9B και 27B χρησιμοποιούν διαδικτυακή απόσταξη πολιτικής για να βελτιώσουν την απόδοσή τους

Αυτή η διαδικασία βοηθά το μικρότερο μοντέλο να αποτυπώσει πιο αποτελεσματικά τη λειτουργικότητα του μεγαλύτερου μοντέλου.

2.5 Συγχώνευση μοντέλων

Το Gemma 2 χρησιμοποιεί μια νέα τεχνολογία συγχώνευσης μοντέλων που ονομάζεται Warp, η οποία συνδυάζει πολλά μοντέλα σε τρία στάδια:

  1. Εκθετικός κινούμενος μέσος όρος (EMA) κατά τη βελτιστοποίηση της ενίσχυσης της εκμάθησης
  2. Σφαιρική γραμμική παρεμβολή (SLERP) μετά από μικρορύθμιση με πολλαπλές στρατηγικές
  3. Αρχικοποίηση γραμμικής παρεμβολής (LITI) ως τελικό βήμα

Αυτή η προσέγγιση στοχεύει στη δημιουργία ενός πιο στιβαρού και στιβαρού τελικού μοντέλου.

3. Σημεία αναφοράς απόδοσης

Το Gemma 2 επιδεικνύει εντυπωσιακές επιδόσεις σε μια ποικιλία σημείων αναφοράς:

Το Gemma 2 διαθέτει μια επανασχεδιασμένη αρχιτεκτονική σχεδιασμένη για ανώτερη απόδοση και αποτελεσματικότητα συμπερασμάτων

6. Ξεκινώντας με το Gemma 2

Για να αρχίσετε να χρησιμοποιείτε το Gemma 2 στα έργα σας, έχετε τις ακόλουθες επιλογές:

6.1 Google Artificial Intelligence Studio

Η πρόσβαση στο Gemma 2 είναι δυνατή μέσω του Google AI Studio,Google Artificial Intelligence Studio.

6.2. Αγκαλιασμένο πρόσωπο

Gemma 2 και Αγκαλιασμένο πρόσωπο Ενσωμάτωση βιβλιοθήκης μετασχηματιστών. Δείτε πώς να το χρησιμοποιήσετε:

<div class="relative flex flex-col rounded-lg">
<div class="text-text-300 absolute pl-3 pt-2.5 text-xs">
from transformers import AutoTokenizer, AutoModelForCausalLM
# Load the model and tokenizer
model_name = "google/gemma-2-27b-it" # or "google/gemma-2-9b-it" for the smaller version
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Prepare input
prompt = "Explain the concept of quantum entanglement in simple terms."
inputs = tokenizer(prompt, return_tensors="pt")
# Generate text
outputs = model.generate(**inputs, max_length=200)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

6.3.TensorFlow/Keras

Για τους χρήστες του TensorFlow, το Gemma 2 είναι διαθέσιμο μέσω του Keras:

import tensorflow as tf
from keras_nlp.models import GemmaCausalLM
# Load the model
model = GemmaCausalLM.from_preset("gemma_2b_en")
# Generate text
prompt = "Explain the concept of quantum entanglement in simple terms."
output = model.generate(prompt, max_length=200)
print(output)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

7. Προηγμένη χρήση: Χρησιμοποιήστε το Gemma 2 για να δημιουργήσετε ένα τοπικό σύστημα RAG

Μια ισχυρή εφαρμογή του Gemma 2 είναι η δημιουργία συστημάτων επαυξημένης παραγωγής ανάκτησης (RAG). Ας δημιουργήσουμε ένα απλό, πλήρως εγγενές σύστημα RAG χρησιμοποιώντας ενσωματώσεις Gemma 2 και Nomic.

Βήμα 1: Ρυθμίστε το περιβάλλον

Πρώτα, βεβαιωθείτε ότι έχετε εγκαταστήσει τις απαραίτητες βιβλιοθήκες:

pip install langchain ollama nomic chromadb
  • 1

Βήμα 2: Καταχωρίστε έγγραφα ευρετηρίου

Δημιουργήστε ένα ευρετήριο για την επεξεργασία των εγγράφων:

import os
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.document_loaders import DirectoryLoader
from langchain.vectorstores import Chroma
from langchain.embeddings import HuggingFaceEmbeddings
class Indexer:
    def __init__(self, directory_path):
    self.directory_path = directory_path
    self.text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
    self.embeddings = HuggingFaceEmbeddings(model_name="nomic-ai/nomic-embed-text-v1")
  
def load_and_split_documents(self):
    loader = DirectoryLoader(self.directory_path, glob="**/*.txt")
    documents = loader.load()
    return self.text_splitter.split_documents(documents)
def create_vector_store(self, documents):
    return Chroma.from_documents(documents, self.embeddings, persist_directory="./chroma_db")
def index(self):
    documents = self.load_and_split_documents()
    vector_store = self.create_vector_store(documents)
    vector_store.persist()
    return vector_store
# Usage
indexer = Indexer("path/to/your/documents")
vector_store = indexer.index()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

Βήμα 3: Ρυθμίστε το σύστημα RAG

Τώρα, δημιουργήστε το σύστημα RAG χρησιμοποιώντας το Gemma 2:

from langchain.llms import Ollama
from langchain.chains import RetrievalQA
from langchain.prompts import PromptTemplate
class RAGSystem:
    def __init__(self, vector_store):
        self.vector_store = vector_store
        self.llm = Ollama(model="gemma2:9b")
        self.retriever = self.vector_store.as_retriever(search_kwargs={"k": 3})
self.template = """Use the following pieces of context to answer the question at the end.
If you don't know the answer, just say that you don't know, don't try to make up an answer.
{context}
Question: {question}
Answer: """
self.qa_prompt = PromptTemplate(
template=self.template, input_variables=["context", "question"]
)
self.qa_chain = RetrievalQA.from_chain_type(
llm=self.llm,
chain_type="stuff",
retriever=self.retriever,
return_source_documents=True,
chain_type_kwargs={"prompt": self.qa_prompt}
)
def query(self, question):
return self.qa_chain({"query": question})
# Usage
rag_system = RAGSystem(vector_store)
response = rag_system.query("What is the capital of France?")
print(response["result"])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

Αυτό το σύστημα RAG χρησιμοποιεί Gemma 2 to Ollama ως μοντέλο γλώσσας και Nomic embedding για ανάκτηση εγγράφων. Σας επιτρέπει να κάνετε ερωτήσεις με βάση τα ευρετηριασμένα έγγραφα και να παρέχετε απαντήσεις από σχετικές πηγές.

Βελτιστοποίηση Gemma 2

Για συγκεκριμένες εργασίες ή τομείς, ίσως χρειαστεί να ρυθμίσετε με ακρίβεια το Gemma 2. Ακολουθεί ένα βασικό παράδειγμα χρησιμοποιώντας τη βιβλιοθήκη Hugging Face Transformers:

from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer
from datasets import load_dataset
# Load model and tokenizer
model_name = "google/gemma-2-9b-it"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# Prepare dataset
dataset = load_dataset("your_dataset")
def tokenize_function(examples):
return tokenizer(examples["text"], padding="max_length", truncation=True)
tokenized_datasets = dataset.map(tokenize_function, batched=True)
# Set up training arguments
training_args = TrainingArguments(
output_dir="./results",
num_train_epochs=3,
per_device_train_batch_size=4,
per_device_eval_batch_size=4,
warmup_steps=500,
weight_decay=0.01,
logging_dir="./logs",
)
# Initialize Trainer
trainer = Trainer(
model=model,
args=training_args,
train_dataset=tokenized_datasets["train"],
eval_dataset=tokenized_datasets["test"],
)
# Start fine-tuning
trainer.train()
# Save the fine-tuned model
model.save_pretrained("./fine_tuned_gemma2")
tokenizer.save_pretrained("./fine_tuned_gemma2")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

Προσαρμόστε τις παραμέτρους εκπαίδευσης με βάση συγκεκριμένες απαιτήσεις και υπολογιστικούς πόρους.

Ηθικές Θεωρήσεις και Περιορισμοί

Ενώ το Gemma 2 προσφέρει εντυπωσιακή λειτουργικότητα, πρέπει κανείς να γνωρίζει τους περιορισμούς και τα ηθικά του ζητήματα:

  • προκατάληψη : Όπως όλα τα μοντέλα γλώσσας, το Gemma 2 μπορεί να αντικατοπτρίζει προκαταλήψεις που υπάρχουν στα δεδομένα εκπαίδευσης του. Πάντα να αξιολογείτε την απόδοσή του κριτικά.
  • πραγματική ακρίβεια : Αν και το Gemma 2 είναι ισχυρό, μερικές φορές παράγει εσφαλμένες ή ασυνεπείς πληροφορίες. Επαληθεύστε σημαντικά γεγονότα από αξιόπιστες πηγές.
  • μήκος περιβάλλοντος : Το μήκος περιβάλλοντος του Gemma 2 είναι 8192 μάρκες. Για μεγαλύτερα έγγραφα ή συνομιλίες, ίσως χρειαστεί να εφαρμόσετε στρατηγικές για την αποτελεσματική διαχείριση του περιβάλλοντος.
  • Υπολογιστικοί πόροι: Ειδικά για μοντέλα 27Β, ενδέχεται να απαιτούνται σημαντικοί υπολογιστικοί πόροι για αποτελεσματική εξαγωγή συμπερασμάτων και λεπτομέρεια.
  • Υπεύθυνη χρήση: Συμμορφωθείτε με τις πρακτικές Υπεύθυνης τεχνητής νοημοσύνης της Google και βεβαιωθείτε ότι η χρήση του Gemma 2 ευθυγραμμίζεται με τις ηθικές αρχές τεχνητής νοημοσύνης.

8. Συμπέρασμα

Οι προηγμένες δυνατότητες του Gemma 2, όπως η προσοχή στο συρόμενο παράθυρο, τα μαλακά άνω όρια και οι νέες τεχνικές συγχώνευσης μοντέλων, το καθιστούν ένα ισχυρό εργαλείο για ένα ευρύ φάσμα εργασιών επεξεργασίας φυσικής γλώσσας.

Αξιοποιώντας το Gemma 2 στα έργα σας, είτε μέσω απλών συμπερασμάτων, σύνθετων συστημάτων RAG ή μοντέλων προσαρμοσμένων σε συγκεκριμένο τομέα, μπορείτε να αξιοποιήσετε τη δύναμη του SOTA AI διατηρώντας παράλληλα τον έλεγχο των δεδομένων και των διαδικασιών σας.

Αρχική διεύθυνση:https://www.unite.ai/complete-guide-on-gemma-2-googles-new-open-large-language-model/