Gemma را با ترانسفورماتورهای صورت در آغوش بگیرید

مشاهده در ai.google.dev در گوگل کولب اجرا کنید دویدن در کاگل باز کردن در Vertex AI مشاهده منبع در گیت‌هاب

تولید متن، خلاصه‌سازی و تحلیل محتوا تنها برخی از کارهایی هستند که می‌توانید با مدل‌های باز Gemma انجام دهید. این آموزش به شما نشان می‌دهد که چگونه می‌توانید با استفاده از تبدیل‌کننده‌های چهره در آغوش گرفته (Hugging Face Transformers) و با استفاده از ورودی متن و تصویر برای تولید محتوای متنی، اجرای Gemma را شروع کنید. کتابخانه پایتون Transformers یک API برای دسترسی به مدل‌های هوش مصنوعی مولد از پیش آموزش‌دیده، از جمله Gemma، ارائه می‌دهد. برای اطلاعات بیشتر، به مستندات Transformers مراجعه کنید.

نصب بسته‌های پایتون

کتابخانه‌های Hugging Face مورد نیاز برای اجرای مدل Gemma و ارسال درخواست‌ها را نصب کنید.

# Install Pytorch
%pip install torch

# Install a transformers
%pip install transformers

تولید متن از متن

ساده‌ترین راه برای استفاده از Gemma، فراخوانی یک مدل Gemma با متن برای دریافت پاسخ متنی است و تقریباً با همه انواع Gemma کار می‌کند. این بخش نحوه استفاده از کتابخانه Hugging Face Transformers و پیکربندی یک مدل Gemma برای تولید متن به متن را نشان می‌دهد.

مدل بار

از کتابخانه‌های torch و transformers برای ایجاد نمونه‌ای از کلاس pipeline اجرای مدل با Gemma استفاده کنید. هنگام استفاده از یک مدل برای تولید خروجی یا دنبال کردن دستورالعمل‌ها، یک مدل تنظیم‌شده با دستورالعمل (IT) را انتخاب کنید، که معمولاً it در رشته شناسه مدل دارد. با استفاده از شیء pipeline ، نوع Gemma مورد نظر خود را برای استفاده، نوع وظیفه‌ای که می‌خواهید انجام دهید، به ویژه "any-to-any" برای تولید چندوجهی، همانطور که در مثال کد زیر نشان داده شده است، مشخص می‌کنید:

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 فقط از چند تنظیمات task برای تولید پشتیبانی می‌کند. برای اطلاعات بیشتر در مورد تنظیمات task موجود، به مستندات Hugging Face Pipelines task() مراجعه کنید. برای اطلاعات بیشتر در مورد استفاده از کلاس Pipeline، به مستندات Hugging Face Pipelines مراجعه کنید.

اجرای تولید متن

پس از اینکه مدل Gemma را در یک شیء pipeline بارگذاری و پیکربندی کردید، می‌توانید درخواست‌هایی را به مدل ارسال کنید. کد مثال زیر یک درخواست اولیه با استفاده از پارامتر 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?**'}]

از یک الگوی آماده استفاده کنید

هنگام تولید محتوا با دستورالعمل‌های پیچیده‌تر، از یک الگوی اعلان برای ساختاردهی درخواست خود استفاده کنید. الگوی اعلان به شما امکان می‌دهد ورودی را از نقش‌های خاص، مانند user یا model ، مشخص کنید و یک قالب مورد نیاز برای مدیریت تعاملات چت چند نوبتی با مدل‌های Gemma است. کد مثال زیر نحوه ساخت یک الگوی اعلان برای 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.'}]

تولید متن از داده‌های تصویر

با شروع از Gemma 3، برای مدل‌هایی با اندازه ۴B و بالاتر، می‌توانید از داده‌های تصویر به عنوان بخشی از اعلان خود استفاده کنید. این بخش نحوه استفاده از کتابخانه Transformers را برای بارگذاری و پیکربندی یک مدل Gemma برای استفاده از داده‌های تصویر و ورودی متن برای تولید خروجی متن نشان می‌دهد.

از یک الگوی آماده استفاده کنید

هنگام تولید محتوا با دستورالعمل‌های پیچیده‌تر، از یک الگوی اعلان برای ساختاردهی درخواست خود استفاده کنید. الگوی اعلان به شما امکان می‌دهد ورودی را از نقش‌های خاص، مانند user یا model ، مشخص کنید و یک قالب مورد نیاز برای مدیریت تعاملات چت چند نوبتی با مدل‌های Gemma است. کد مثال زیر نحوه ساخت یک الگوی اعلان برای 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."}]

شما می‌توانید با اضافه کردن ورودی‌های اضافی "type": "image", در لیست content ، چندین تصویر را در اعلان خود بگنجانید.

تولید متن از داده‌های صوتی

با Gemma 4 و Gemma 3n ، می‌توانید از داده‌های صوتی به عنوان بخشی از اعلان خود استفاده کنید. این بخش نحوه استفاده از کتابخانه Transformers را برای بارگذاری و پیکربندی یک مدل Gemma برای استفاده از داده‌های صوتی و ورودی متن برای تولید خروجی متن نشان می‌دهد.

از یک الگوی آماده استفاده کنید

هنگام تولید محتوا با صدا، از یک الگوی اعلان برای ساختاردهی درخواست خود استفاده کنید. الگوی اعلان به شما امکان می‌دهد ورودی را از نقش‌های خاص، مانند user یا model ، مشخص کنید و یک قالب مورد نیاز برای مدیریت تعاملات چت چند نوبتی با مدل‌های Gemma است. کد مثال زیر نحوه ساخت یک الگوی اعلان برای 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": "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.'}]

شما می‌توانید با اضافه کردن ورودی‌های اضافی "type": "audio", در لیست content ، چندین فایل صوتی را در اعلان خود بگنجانید.

مراحل بعدی

با مدل‌های Gemma بیشتر بسازید و کاوش کنید: