Drejtoni Gemma me transformatorë të fytyrës përqafuar

Shiko në ai.google.dev Ekzekuto në Google Colab Vraponi në Kaggle Hap në Vertex AI Shiko burimin në GitHub

Gjenerimi i tekstit, përmbledhja dhe analizimi i përmbajtjes janë vetëm disa nga detyrat që mund të kryeni me modelet e hapura të Gemma. Ky tutorial ju tregon se si të filloni të ekzekutoni Gemma duke përdorur Hugging Face Transformers duke përdorur si tekst ashtu edhe imazh për të gjeneruar përmbajtje teksti. Biblioteka Python e Transformers ofron një API për të aksesuar modele të IA-së gjeneruese të para-trajnuara, duke përfshirë Gemma-n. Për më shumë informacion, shihni dokumentacionin e Transformers .

Instaloni paketat Python

Instaloni bibliotekat Hugging Face të nevojshme për të ekzekutuar modelin Gemma dhe për të bërë kërkesa.

# Install Pytorch
%pip install torch

# Install a transformers
%pip install transformers

Gjeneroni tekst nga teksti

Nxitja e një modeli Gemma me tekst për të marrë një përgjigje me tekst është mënyra më e thjeshtë për të përdorur Gemma dhe funksionon me pothuajse të gjitha variantet e Gemma. Ky seksion tregon se si të përdoret biblioteka Hugging Face Transformers, të ngarkohet dhe të konfigurohet një model Gemma për gjenerimin e tekstit në tekst.

Modeli i ngarkesës

Përdorni bibliotekat torch dhe transformers për të krijuar një instancë të një klase pipeline ekzekutimi modeli me Gemma. Kur përdorni një model për gjenerimin e rezultateve ose ndjekjen e udhëzimeve, zgjidhni një model të akorduar me udhëzime (IT), i cili zakonisht e ka it në vargun ID të modelit. Duke përdorur objektin pipeline , ju specifikoni variantin Gemma që dëshironi të përdorni, llojin e detyrës që dëshironi të kryeni, konkretisht "any-to-any" për gjenerimin multimodal, siç tregohet në shembullin e mëposhtëm të kodit:

from transformers import pipeline

MODEL_ID = "google/gemma-4-E2B-it"

pipe = pipeline(
    task="any-to-any",
    model=MODEL_ID,
    device_map="auto",
    dtype="auto"
)
config.json: 0.00B [00:00, ?B/s]
model.safetensors:   0%|          | 0.00/10.2G [00:00<?, ?B/s]
Loading weights:   0%|          | 0/2011 [00:00<?, ?it/s]
generation_config.json:   0%|          | 0.00/208 [00:00<?, ?B/s]
processor_config.json: 0.00B [00:00, ?B/s]
chat_template.jinja: 0.00B [00:00, ?B/s]
tokenizer_config.json: 0.00B [00:00, ?B/s]
tokenizer.json:   0%|          | 0.00/32.2M [00:00<?, ?B/s]

Gemma mbështet vetëm disa cilësime task për gjenerimin. Për më shumë informacion mbi cilësimet e disponueshme task , shihni dokumentacionin e task() të Hugging Face Pipelines. Për më shumë informacion rreth përdorimit të klasës Pipeline, shihni dokumentacionin e Hugging Face Pipelines .

Ekzekutoni gjenerimin e tekstit

Pasi të keni ngarkuar dhe konfiguruar modelin Gemma në një objekt pipeline , mund të dërgoni kërkesa te modeli. Kodi shembullor i mëposhtëm tregon një kërkesë bazë duke përdorur parametrin text :

pipe(text="<|turn>user\nroses are red<turn|>\n<|turn>model\n")
Both `max_new_tokens` (=256) and `max_length`(=20) seem to have been set. `max_new_tokens` will take precedence. Please refer to the documentation for more information. (https://huggingface.co/docs/transformers/main/en/main_classes/text_generation)
[{'input_text': '<|turn>user\nroses are red<turn|>\n<|turn>model\n',
  'generated_text': '<|turn>user\nroses are red<turn|>\n<|turn>model\nThat\'s a classic phrase, often used to highlight a contrast or a truth.\n\n**"Roses are red"** is a very popular, simple, and sweet arrangement.\n\nWhat would you like to do with this phrase? Are you looking for:\n\n1. **More rhymes or phrases?**\n2. **A continuation of a thought?**\n3. **Just appreciating the simplicity?**'}]

Përdorni një shabllon të shpejtë

Kur gjeneroni përmbajtje me kërkesa më komplekse, përdorni një shabllon kërkesash për të strukturuar kërkesën tuaj. Një shabllon kërkesash ju lejon të specifikoni të dhëna nga role specifike, të tilla si user ose model , dhe është një format i kërkuar për menaxhimin e ndërveprimeve të bisedave me shumë kthesa me modelet Gemma. Kodi shembullor i mëposhtëm tregon se si të ndërtoni një shabllon kërkesash për Gemma:

from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)

messages = [
    {
        "role": "system",
        "content": [{"type": "text", "text": "You are a helpful assistant."}]
    },
    {
        "role": "user",
        "content": [{"type": "text", "text": "Roses are red..."}]
    },
]

pipe(messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'system',
    'content': [{'type': 'text', 'text': 'You are a helpful assistant.'}]},
   {'role': 'user',
    'content': [{'type': 'text', 'text': 'Roses are red...'}]}],
  'generated_text': 'Roses are red,\nViolets are blue,\nHow lovely to see\nA beautiful view.'}]

Gjeneroni tekst nga të dhënat e imazhit

Duke filluar me Gemma 3, për madhësitë e modelit 4B e lart, mund të përdorni të dhënat e imazhit si pjesë të njoftimit tuaj. Ky seksion tregon se si të përdorni bibliotekën Transformers për të ngarkuar dhe konfiguruar një model Gemma për të përdorur të dhënat e imazhit dhe hyrjen e tekstit për të gjeneruar daljen e tekstit.

Përdorni një shabllon të shpejtë

Kur gjeneroni përmbajtje me kërkesa më komplekse, përdorni një shabllon kërkesash për të strukturuar kërkesën tuaj. Një shabllon kërkesash ju lejon të specifikoni të dhëna nga role specifike, të tilla si user ose model , dhe është një format i kërkuar për menaxhimin e ndërveprimeve të bisedave me shumë kthesa me modelet Gemma. Kodi shembullor i mëposhtëm tregon se si të ndërtoni një shabllon kërkesash për Gemma:

from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "image", "url": "https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg"},
            {"type": "text", "text": "What is shown in this image?"},
        ]
    },
    {
        "role": "assistant",
        "content": [
            {"type": "text", "text": "This image shows"},
        ],
    },
]

pipe(text=messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'user',
    'content': [{'type': 'image',
      'url': 'https://ai.google.dev/static/gemma/docs/images/thali-indian-plate.jpg'},
     {'type': 'text', 'text': 'What is shown in this image?'}]},
   {'role': 'assistant',
    'content': [{'type': 'text', 'text': 'This image shows'}]}],
  'generated_text': " a platter of Indian food, likely a meal or an assortment of dishes.\n\nHere's a breakdown of what is visible:\n\n*   **Flatbread:** There is a large, golden-brown flatbread (possibly naan or roti) dominating the center of the platter.\n*   **Dips/Sides:** There are several small bowls containing various accompaniments:\n    *   A bowl of **yellow/mustard-colored dip** (perhaps a chutney or sauce).\n    *   A bowl of **white creamy dip** (like raita or yogurt sauce).\n    *   A portion of **white rice**.\n    *   Several bowls of **curries or sauces** in different colors:\n        *   An **orange/brown curry**.\n        *   A **deep yellow/orange sauce**.\n        *   A **green sauce** (likely a chutney).\n*   **Garnish/Side Item:** In the upper right corner, there appears to be some darker, textured items, possibly fried pieces or spices.\n*   **Platter:** The food is served on a metal platter.\n\nOverall, it looks like a traditional Indian meal setup featuring bread, rice, and various flavorful sauces/curries."}]

Mund të përfshish imazhe të shumta në kërkesën tënde duke përfshirë hyrje shtesë "type": "image", në listën content .

Gjeneroni tekst nga të dhënat audio

Me Gemma 4 dhe Gemma 3n , mund të përdorni të dhëna audio si pjesë të njoftimit tuaj. Ky seksion tregon se si të përdorni bibliotekën Transformers për të ngarkuar dhe konfiguruar një model Gemma për të përdorur të dhëna audio dhe hyrje teksti për të gjeneruar dalje teksti.

Përdorni një shabllon të shpejtë

Kur gjeneroni përmbajtje me audio, përdorni një shabllon kërkese për të strukturuar kërkesën tuaj. Një shabllon kërkese ju lejon të specifikoni të dhëna nga role specifike, të tilla si user ose model , dhe është një format i kërkuar për menaxhimin e ndërveprimeve të bisedës me shumë kthesa me modelet Gemma. Kodi shembullor i mëposhtëm tregon se si të ndërtohet një shabllon kërkese për Gemma me të dhëna audio:

from transformers import GenerationConfig
config = GenerationConfig.from_pretrained(MODEL_ID)
config.max_new_tokens = 512
gen_kwargs = dict(generation_config=config)

messages = [
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "Transcribe the following speech segment in its original language. Follow these specific instructions for formatting the answer:\n* Only output the transcription, with no newlines.\n* When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three."},
            {"type": "audio", "audio": "https://ai.google.dev/gemma/docs/audio/roses-are.wav"},
        ]
    }
]

pipe(text=messages, return_full_text=False, generate_kwargs=gen_kwargs)
[{'input_text': [{'role': 'user',
    'content': [{'type': 'text',
      'text': 'Transcribe the following speech segment in its original language. Follow these specific instructions for formatting the answer:\n* Only output the transcription, with no newlines.\n* When transcribing numbers, write the digits, i.e. write 1.7 and not one point seven, and write 3 instead of three.'},
     {'type': 'audio',
      'audio': 'https://ai.google.dev/gemma/docs/audio/roses-are.wav'}]}],
  'generated_text': 'Roses are red, violets are blue.'}]

Mund të përfshish skedarë të shumtë audio në kërkesën tënde duke përfshirë hyrje shtesë "type": "audio", në listën content .

Hapat e ardhshëm

Ndërtoni dhe eksploroni më shumë me modelet Gemma: