درباره مدل های مولد

مدل‌های هوش مصنوعی مولد (AI) مانند مدل‌های خانواده Gemini قادر به ایجاد محتوا از انواع مختلفی از ورودی داده‌ها از جمله متن، تصویر و صدا هستند. در ابتدایی ترین سطح خود، این مدل ها مانند برنامه های کاربردی تکمیل خودکار پیچیده عمل می کنند. با توجه به متن ورودی ("شما می توانید یک اسب را به سمت آب هدایت کنید")، یک مدل تولیدی می تواند پیش بینی کند که متن خروجی که از نظر آماری به احتمال زیاد دنبال می شود ("اما نمی توانید آن را بنوشید")، بر اساس الگوهای آموخته شده از آموزش آنها داده ها. می توانید از این ویژگی اولیه مدل های مولد برای برنامه های مختلف استفاده کنید:

  • نوشتن خلاقانه مانند شعر، داستان کوتاه، استعاره و پست های وبلاگ ایجاد کنید
  • تبدیل داده های ساخت یافته به متن آزاد
  • استخراج و خلاصه کردن اطلاعات از متن آزاد
  • کد تولید کنید
  • ترجمه بین زبانها

استفاده از مدل‌های مولد برای ساخت این ویژگی‌ها به تخصص یادگیری ماشینی (ML) نیاز ندارد. شما نیازی به جمع آوری مجموعه داده بزرگ یا آموزش یک مدل ندارید. تنها چیزی که برای شروع اولین نمونه اولیه خود لازم است این است که آنچه را که می خواهید مدل انجام دهد در چند جمله توصیف کنید.

مدل‌های تولیدی که فقط ورودی و خروجی متن را مدیریت می‌کنند، به عنوان مدل‌های زبان بزرگ (LLM) نیز شناخته می‌شوند. مدل‌های خانواده جمینی می‌توانند بیشتر از داده‌های متنی پردازش کنند، و در حالی که می‌توانند عملکردهای یک LLM را انجام دهند، به‌درستی به عنوان مدل‌های تولیدی شناخته می‌شوند.

نمونه برنامه های کاربردی

مثال‌های زیر ورودی‌های متنی معمولی و خروجی‌های یک مدل تولیدی را نشان می‌دهند.

شعر بساز

ورودی کاربر: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

خروجی مدل:

Puppies are cute,
Android phones are neat,
They both bring joy,
And make life complete.

یک لیست ایجاد کنید

ورودی کاربر: Generate a bulleted list of items I need to pack for a three-day camping trip.

خروجی مدل:

*   Tent
*   Sleeping bag
*   Sleeping pad
*   Camp stove
*   Pots and pans
*   Utensils
*   Food
*   Water
*   First-aid kit
*   Sunscreen
*   Insect repellent
*   ...

شما می توانید مدل های مولد را برای تولید انواع رفتارهای مفید مانند این، فقط با ایجاد متن ورودی مناسب، که به آن prompt نیز می گویند، دریافت کنید. هنر و علم یافتن جمله بندی مناسب برای به دست آوردن مدل های مولد برای انجام آنچه می خواهید ، طراحی سریع نامیده می شود (همچنین "مهندسی سریع" یا به سادگی "تشویق" نامیده می شود).

طراحی سریع 101

بخش قبلی چند نمونه از اعلان‌ها را نشان می‌دهد که حاوی دستورالعملی هستند، مانند «برایم شعر بنویس». این نوع دستورالعمل ممکن است برای انواع خاصی از وظایف به خوبی کار کند. با این حال، برای سایر برنامه‌ها، یکی دیگر از تکنیک‌های تحریک به نام چند شات ممکن است بهتر عمل کند. چند دستور شات از این واقعیت بهره می برند که مدل های زبان بزرگ در تشخیص و تکرار الگوها در داده های متنی فوق العاده خوب هستند. ایده این است که مدل مولد یک الگوی متنی ارسال شود که یاد می‌گیرد آن را تکمیل کند. برای مثال، فرض کنید می‌خواهید برنامه‌ای بسازید که نام کشور را به عنوان ورودی دریافت کرده و پایتخت آن را خروجی کند. در اینجا یک پیام متنی طراحی شده برای این کار وجود دارد:

Italy : Rome
France : Paris
Germany :

در این اعلان، شما یک الگو را ایجاد می کنید: [country] : [capital] . اگر این دستور را به یک مدل زبان بزرگ بفرستید، الگو را به طور خودکار تکمیل می کند و چیزی شبیه به زیر را برمی گرداند:

     Berlin
Turkey : Ankara
Greece : Athens

این پاسخ مدل ممکن است کمی عجیب به نظر برسد. این مدل نه تنها پایتخت آلمان (آخرین کشور در اعلان دست نویس شما)، بلکه یک لیست کامل از جفت‌های کشور و سرمایه اضافی را برگرداند. دلیلش این است که مدل مولد "ادامه الگو" است. اگر تمام تلاش شما این است که تابعی بسازید که پایتخت یک کشور ورودی را به شما بگوید ("آلمان: برلین")، احتمالاً به هیچ یک از متن هایی که مدل بعد از "برلین" تولید می کند اهمیتی نمی دهید. در واقع، به عنوان طراح برنامه، احتمالاً می خواهید آن نمونه های اضافی را کوتاه کنید. علاوه بر این، احتمالاً می خواهید ورودی را پارامتر کنید ، به طوری که آلمان یک رشته ثابت نیست بلکه متغیری است که کاربر نهایی ارائه می دهد:

Italy : Rome
France : Paris
<user input here> :

شما به تازگی یک دستور چند شات برای تولید پایتخت های کشور نوشته اید.

شما می توانید تعداد زیادی کار را با پیروی از این الگوی اعلان چند شات انجام دهید. در اینجا یک دستور چند شات با فرمت کمی متفاوت است که پایتون را به جاوا اسکریپت تبدیل می کند:

Convert Python to JavaScript.
Python: print("hello world")
JavaScript: console.log("hello world")
Python: for x in range(0, 100):
JavaScript: for(var i = 0; i < 100; i++) {
Python: ${USER INPUT HERE}
JavaScript:

یا، از این فرمان "فرهنگ لغت معکوس" استفاده کنید. با ارائه یک تعریف، کلمه ای را که با آن تعریف مطابقت دارد برمی گرداند:

Given a definition, return the word it defines.
Definition: When you're happy that other people are also sad.
Word: schadenfreude
Definition: existing purely in the mind, but not in physical reality
Word: abstract
Definition: ${USER INPUT HERE}
Word:

شاید متوجه شده باشید که الگوی دقیق این دستورات چند شات کمی متفاوت است. علاوه بر اینکه حاوی مثال‌هایی است، ارائه دستورالعمل‌ها در درخواست‌های شما یک استراتژی اضافی است که باید هنگام نوشتن درخواست‌های خود در نظر بگیرید، زیرا به انتقال هدف شما به مدل کمک می‌کند.

پیشنهاد در مقابل توسعه نرم افزار سنتی

بر خلاف نرم افزارهای سنتی که با مشخصات دقیق نوشته شده طراحی شده اند، رفتار مدل های مولد حتی برای مربیان مدل نیز تا حد زیادی مبهم است. در نتیجه، شما اغلب نمی توانید از قبل پیش بینی کنید که چه نوع ساختارهای سریع برای یک مدل خاص بهترین کارایی را دارند. علاوه بر این، رفتار یک مدل تولیدی تا حد زیادی توسط داده‌های آموزشی آن تعیین می‌شود، و از آنجایی که مدل‌ها به طور مداوم بر روی مجموعه داده‌های جدید تنظیم می‌شوند، گاهی اوقات مدل به اندازه‌ای تغییر می‌کند که به طور ناخواسته تغییر می‌کند که کدام ساختار سریع کار می‌کند. این برای شما چه معنایی دارد؟ آزمایش کنید! فرمت های مختلف سریع را امتحان کنید.

پارامترهای مدل

هر اعلانی که به مدل ارسال می کنید شامل مقادیر پارامتری است که نحوه تولید پاسخ مدل را کنترل می کند. مدل می تواند نتایج متفاوتی را برای مقادیر پارامترهای مختلف ایجاد کند. رایج ترین پارامترهای مدل عبارتند از:

  1. Max output tokens: حداکثر تعداد نشانه هایی را که می توان در پاسخ تولید کرد را مشخص می کند. یک نشانه تقریباً چهار کاراکتر است. 100 نشانه تقریباً با 60-80 کلمه مطابقت دارد.

  2. دما: دما درجه تصادفی بودن انتخاب نشانه را کنترل می کند. دما برای نمونه برداری در طول تولید پاسخ استفاده می شود، که زمانی اتفاق می افتد که topP و topK اعمال می شود. دماهای پایین‌تر برای دستورهایی که نیاز به پاسخ قطعی‌تر یا کمتر باز دارند، خوب است، در حالی که دمای بالاتر می‌تواند منجر به نتایج متنوع‌تر یا خلاقانه‌تر شود. دمای 0 قطعی است، به این معنی که بالاترین پاسخ احتمال همیشه انتخاب می شود.

  3. topK : پارامتر topK نحوه انتخاب مدل نشانه ها را برای خروجی تغییر می دهد. topK 1 به این معنی است که توکن انتخابی از بین همه توکن‌های موجود در واژگان مدل (که رمزگشایی حریص نیز نامیده می‌شود) محتمل‌تر است، در حالی که topK 3 به این معنی است که توکن بعدی از بین 3 مورد احتمالی با استفاده از دما انتخاب می‌شود. برای هر مرحله انتخاب توکن، توکن های topK با بیشترین احتمال نمونه برداری می شوند. سپس توکن‌ها بر اساس topP فیلتر می‌شوند و توکن نهایی با استفاده از نمونه‌گیری دما انتخاب می‌شود.

  4. topP : پارامتر topP نحوه انتخاب توکن‌ها را برای خروجی توسط مدل تغییر می‌دهد. توکن ها از بیشترین تا کمترین احتمال انتخاب می شوند تا زمانی که مجموع احتمالات آنها با مقدار topP برابر شود. به عنوان مثال، اگر نشانه های A، B، و C احتمال 0.3، 0.2، و 0.1 داشته باشند و مقدار topP 0.5 باشد، مدل A یا B را به عنوان نشانه بعدی با استفاده از دما انتخاب می کند و C را به عنوان علامت حذف می کند. نامزد مقدار topP پیش فرض 0.95 است.

  5. stop_sequences : یک توالی توقف تنظیم کنید تا به مدل بگویید تولید محتوا را متوقف کند. یک توالی توقف می تواند هر دنباله ای از کاراکترها باشد. سعی کنید از استفاده از توالی کاراکترهایی که ممکن است در محتوای تولید شده ظاهر شوند، خودداری کنید.

انواع دستورات

بسته به سطح اطلاعات زمینه ای موجود در آنها، درخواست ها به طور کلی به سه نوع طبقه بندی می شوند.

درخواست صفر شات

این درخواست‌ها شامل نمونه‌هایی برای تکرار مدل نیستند. دستورات صفر شات اساساً توانایی مدل را برای تکمیل درخواست بدون هیچ مثال یا اطلاعات اضافی نشان می دهد. این بدان معناست که مدل باید به دانش از قبل موجود خود برای ایجاد یک پاسخ قابل قبول تکیه کند.

برخی از الگوهای اعلان صفر شات که معمولا استفاده می شوند عبارتند از:

  • دستورالعمل-محتوا
<Overall instruction>
<Content to operate on>

مثلا،

Summarize the following into two sentences at the third-grade level:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds.

Hummingbirds are made up of three main parts: the head, the body, and the tail.
The head is small and round, and it contains the eyes, the beak, and the brain.
The body is long and slender, and it contains the wings, the legs, and the
heart. The tail is long and forked, and it helps the hummingbird to balance
while it is flying.

Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color!

Hummingbirds are very active creatures. They spend most of their time flying,
and they are also very good at hovering. Hummingbirds need to eat a lot of food
in order to maintain their energy, and they often visit flowers to drink nectar.

Hummingbirds are amazing creatures. They are small, but they are also very
powerful. They are beautiful, and they are very important to the ecosystem.
  • دستورالعمل-محتوا-دستورالعمل
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

مثلا،

Here is some text I'd like you to summarize:

Hummingbirds are the smallest birds in the world, and they are also one of the
most fascinating. They are found in North and South America, and they are known
for their long, thin beaks and their ability to fly at high speeds. Hummingbirds
are made up of three main parts: the head, the body, and the tail. The head is
small and round, and it contains the eyes, the beak, and the brain. The body is
long and slender, and it contains the wings, the legs, and the heart. The tail
is long and forked, and it helps the hummingbird to balance while it is flying.
Hummingbirds are also known for their coloration. They come in a variety of
colors, including green, blue, red, and purple. Some hummingbirds are even able
to change their color! Hummingbirds are very active creatures. They spend most
of their time flying, and they are also very good at hovering. Hummingbirds need
to eat a lot of food in order to maintain their energy, and they often visit
flowers to drink nectar. Hummingbirds are amazing creatures. They are small, but
they are also very powerful. They are beautiful, and they are very important to
the ecosystem.

Summarize it in two sentences at the third-grade reading level.
  • ادامه گاهی اوقات، می‌توانید بدون هیچ دستورالعملی، متن را ادامه دهید. برای مثال، در اینجا یک دستور صفر شات وجود دارد که در آن مدل برای ادامه ورودی ارائه شده در نظر گرفته شده است:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

از دستورات صفر شات برای تولید قالب‌های متن خلاقانه مانند شعر، کد، اسکریپت، قطعات موسیقی، ایمیل یا نامه‌ها استفاده کنید.

درخواست های یک شات

این دستورات یک مثال واحد را برای تکرار و ادامه الگو در اختیار مدل قرار می دهند. این اجازه می دهد تا پاسخ های قابل پیش بینی از مدل تولید شود.

به عنوان مثال، می توانید جفت های غذایی مانند:

Food: Apple
Pairs with: Cheese
Food: Pear
Pairs with:

چند شات اعلان

این اعلان‌ها نمونه‌های متعددی را برای تکرار در اختیار مدل قرار می‌دهند. برای تکمیل کارهای پیچیده، مانند ترکیب داده ها بر اساس یک الگو، از دستورات چند شات استفاده کنید.

یک مثال سریع ممکن است این باشد:

Generate a grocery shopping list for a week for one person. Use the JSON format
given below.
{"item": "eggs", "quantity": "6"}
{"item": "bread", "quantity": "one loaf"}

مدل های مولد زیر کاپوت

هدف این بخش پاسخ به این سوال است که آیا در پاسخ های مدل های مولد تصادفی وجود دارد یا قطعی هستند؟

پاسخ کوتاه - به هر دو بله. هنگامی که یک مدل تولیدی را درخواست می کنید، یک پاسخ متنی در دو مرحله ایجاد می شود. در مرحله اول، مدل مولد اعلان ورودی را پردازش می‌کند و توزیع احتمال را روی نشانه‌های ممکن (کلمات) که احتمالاً در مرحله بعدی قرار دارند، ایجاد می‌کند. به عنوان مثال، اگر با متن ورودی "سگ از روی ... پرید" درخواست کنید، مدل مولد آرایه ای از کلمات احتمالی بعدی را تولید می کند:

[("fence", 0.77), ("ledge", 0.12), ("blanket", 0.03), ...]

این فرآیند قطعی است. یک مدل مولد هر بار که متن درخواستی یکسانی را وارد می کند، توزیع مشابهی را تولید می کند.

در مرحله دوم، مدل مولد این توزیع ها را از طریق یکی از چندین استراتژی رمزگشایی به پاسخ های متنی واقعی تبدیل می کند. یک استراتژی رمزگشایی ساده ممکن است محتمل ترین نشانه را در هر مرحله انتخاب کند. این روند همیشه قطعی خواهد بود. با این حال، در عوض می‌توانید پاسخی را با نمونه‌گیری تصادفی از توزیعی که مدل برگردانده است، ایجاد کنید. این فرآیند تصادفی (تصادفی) خواهد بود. درجه تصادفی بودن مجاز در این فرآیند رمزگشایی را با تنظیم دما کنترل کنید. دمای 0 به این معنی است که فقط محتمل ترین نشانه ها انتخاب می شوند و هیچ تصادفی وجود ندارد. برعکس، دمای بالا درجه بالایی از تصادفی بودن را به توکن های انتخاب شده توسط مدل تزریق می کند که منجر به پاسخ های غیرمنتظره تر و شگفت انگیز مدل می شود.

بیشتر خواندن

  • اکنون که درک عمیق‌تری از درخواست‌ها و مدل‌های تولیدی دارید، سعی کنید درخواست‌های خود را با استفاده از Google AI Studio بنویسید.
  • برای کسب اطلاعات بیشتر در مورد بهترین روش‌ها برای ایجاد اعلان‌ها، به دستورالعمل‌های Prompt مراجعه کنید.