เกี่ยวกับโมเดล Generative

โมเดลปัญญาประดิษฐ์ (AI) แบบ Generative เช่น โมเดลตระกูล Gemini สามารถสร้างเนื้อหาจากการป้อนข้อมูลประเภทต่างๆ ได้แก่ ข้อความ รูปภาพ และเสียง ในระดับพื้นฐานที่สุด โมเดลเหล่านี้ทำงานเหมือน แอปพลิเคชันเติมข้อความอัตโนมัติที่ซับซ้อน เมื่อได้ข้อความอินพุต ("คุณสามารถนำม้าไปดื่มน้ำได้") โมเดล Generative สามารถคาดการณ์ข้อความเอาต์พุตที่มีแนวโน้มว่าจะเป็นไปตามสถิติ ("แต่คุณไม่สามารถดื่มน้ำได้") โดยอิงจากรูปแบบที่ได้เรียนรู้จากข้อมูลการฝึก คุณสามารถใช้พร็อพเพอร์ตี้พื้นฐานของโมเดล Generative นี้สำหรับแอปพลิเคชันต่างๆ ได้

  • สร้างงานเขียนเชิงสร้างสรรค์ เช่น บทกวี เรื่องสั้น การเปรียบเทียบ และบล็อกโพสต์
  • แปลงข้อมูลที่มีโครงสร้างเป็นข้อความรูปแบบอิสระ
  • ดึงและสรุปข้อมูลจากข้อความรูปแบบอิสระ
  • สร้างโค้ด
  • แปลไปมาระหว่างภาษา

การใช้โมเดล Generative เพื่อสร้างฟีเจอร์เหล่านี้ไม่จำเป็นต้องใช้ความเชี่ยวชาญใดๆ ของแมชชีนเลิร์นนิง (ML) คุณไม่จำเป็นต้องรวบรวมชุดข้อมูลขนาดใหญ่หรือฝึกโมเดล สิ่งที่จำเป็นในการเริ่มต้นแบบแรกคืออธิบายสิ่งที่คุณต้องการให้โมเดลทำใน 2-3 ประโยค

โมเดล Generative ที่จัดการเฉพาะอินพุตและเอาต์พุตข้อความเรียกอีกอย่างว่าโมเดลภาษาขนาดใหญ่ (LLM) โมเดลตระกูล Gemini สามารถประมวลผลข้อมูลได้มากกว่าข้อมูลข้อความ และแม้ว่าจะทำหน้าที่ต่างๆ ของ LLM ได้ แต่ก็รู้จักกันในชื่อโมเดล Generative มากกว่า

แอปพลิเคชันตัวอย่าง

ตัวอย่างต่อไปนี้แสดงอินพุตข้อความทั่วไปไปยังและเอาต์พุตจากโมเดล Generative

สร้างบทกวี

ข้อมูลจากผู้ใช้: 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
*   ...

คุณสามารถใช้โมเดล Generative เพื่อสร้างลักษณะการทํางานที่เป็นประโยชน์ได้ทุกประเภทเช่นนี้ เพียงแค่สร้างข้อความอินพุตที่ถูกต้อง หรือที่เรียกว่าข้อความแจ้ง ศาสตร์และศาสตร์แห่งการระบุถ้อยคำที่เหมาะสมเพื่อให้โมเดล Generative ทำในสิ่งที่คุณต้องการเรียกว่าการออกแบบข้อความแจ้ง (หรือที่เรียกว่า "พรอมต์วิศวกรรม" หรือเรียกง่ายๆ ว่า "ข้อความแจ้ง")

การออกแบบพรอมต์ 101

ส่วนก่อนหน้านี้แสดงตัวอย่างพรอมต์บางส่วนที่มี วิธีการ เช่น "เขียนกลอนให้ฉัน" วิธีการเหล่านี้อาจทำงานได้ดี กับงานบางประเภท อย่างไรก็ตาม สำหรับแอปพลิเคชันอื่นๆ เทคนิคการแสดงข้อความแจ้งอีกแบบหนึ่งที่เรียกว่า การแสดงข้อความแจ้งเพียงไม่กี่ช็อตอาจมีประสิทธิภาพดีกว่า ข้อความแจ้งเพียงไม่กี่ขั้นตอนใช้ประโยชน์จากข้อเท็จจริงที่ว่าโมเดลภาษาขนาดใหญ่จะจดจำและจำลองรูปแบบในข้อมูลข้อความได้เป็นอย่างดี แนวคิดคือการส่งรูปแบบข้อความที่ โมเดล Generative เรียนรู้จนเสร็จ ตัวอย่างเช่น สมมติว่าคุณต้องการสร้างแอปพลิเคชันที่ใช้ป้อนชื่อประเทศและใช้เป็นเมืองหลวง นี่คือพรอมต์ข้อความที่ออกแบบมาเพื่อทำเช่นนั้น

Italy : Rome
France : Paris
Germany :

ในพรอมต์นี้ คุณสร้างรูปแบบ: [country] : [capital] ถ้าคุณส่งพรอมต์นี้ไปยังโมเดลภาษาขนาดใหญ่ จะมีการเติมรูปแบบอัตโนมัติและแสดงผลแบบนี้

     Berlin
Turkey : Ankara
Greece : Athens

การตอบกลับโมเดลนี้อาจดูแปลกเล็กน้อย โมเดลนี้ไม่ได้แสดงผลแค่อักษรตัวพิมพ์ใหญ่ของเยอรมนี (ประเทศสุดท้ายในพรอมต์ที่เขียนด้วยมือของคุณ) แต่ยังแสดงรายชื่อประเทศและคู่เมืองหลวงอื่นๆ ทั้งหมดด้วย นั่นเป็นเพราะโมเดล Generative กำลัง "ใช้รูปแบบนั้นต่อ" หากสิ่งที่คุณพยายามทำคือสร้างฟังก์ชันที่บอกเมืองหลวงของประเทศอินพุต ("เยอรมนี : เบอร์ลิน") คุณอาจไม่สนใจข้อความที่โมเดลสร้างขึ้นหลังจาก "เบอร์ลิน" มากนัก อันที่จริง ในฐานะนักออกแบบแอปพลิเคชัน คุณอาจต้องการตัด ตัวอย่างส่วนเกินออก ยิ่งไปกว่านั้น คุณอาจต้องทำให้อินพุตเป็นพารามิเตอร์ เพื่อให้เยอรมนีไม่ใช่สตริงคงที่ แต่เป็นตัวแปรที่ผู้ใช้ปลายทางมีให้

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

คุณเพิ่งเขียนข้อความแจ้งไปสักเล็กน้อยสำหรับการสร้างเมืองหลวงของประเทศ

คุณทำงานจำนวนมากได้โดยทำตามเทมเพลตข้อความแจ้ง 2-3 ช็อตนี้ ต่อไปนี้คือพรอมต์ตัวอย่างเล็กๆ น้อยๆ ที่มีรูปแบบต่างไปเล็กน้อยที่แปลง Python เป็น JavaScript

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:

คุณอาจสังเกตเห็นว่ารูปแบบที่แน่นอนของข้อความแจ้ง 2-3 ช็อตเหล่านี้จะแตกต่างกันไปเล็กน้อย นอกเหนือจากตัวอย่างแล้ว การให้คำแนะนำในข้อความแจ้งเป็นกลยุทธ์เพิ่มเติมที่ควรพิจารณาเมื่อเขียนพรอมต์ของคุณเอง เนื่องจากจะช่วยสื่อสารความตั้งใจของคุณให้กับโมเดล

การพรอมต์กับการพัฒนาซอฟต์แวร์แบบดั้งเดิม

ลักษณะการทำงานของโมเดล Generative นั้นไม่ชัดเจนแม้แต่กับโมเดลผู้ฝึกสอน ซึ่งต่างจากซอฟต์แวร์แบบดั้งเดิมที่ออกแบบมาให้เป็นไปตามข้อกำหนดที่เขียนมาอย่างละเอียด ส่งผลให้คุณมักจะไม่สามารถคาดการณ์ล่วงหน้าได้ว่าโครงสร้างพรอมต์ประเภทใดจะทำงานได้ดีที่สุดสำหรับโมเดลหนึ่งๆ ยิ่งไปกว่านั้น ลักษณะการทำงานของโมเดล Generative จะกำหนดโดยข้อมูลส่วนใหญ่ที่ฝึก และเนื่องจากโมเดลจะได้รับการปรับแต่งอย่างต่อเนื่องในชุดข้อมูลใหม่ บางครั้งโมเดลก็มีการเปลี่ยนแปลงมากพอจนเกิดการเปลี่ยนแปลงโดยไม่ตั้งใจ ซึ่งผลลัพธ์ของโครงสร้างข้อความแจ้งจะทำงานได้ดีที่สุด สิ่งนี้มีผลต่อคุณอย่างไร ลองทดสอบ! ลองใช้พรอมต์รูปแบบต่างๆ

พารามิเตอร์โมเดล

ทุกพรอมต์ที่คุณส่งไปยังโมเดลจะมีค่าพารามิเตอร์ที่ควบคุมวิธีที่โมเดลสร้างการตอบสนอง โมเดลนี้สามารถสร้างผลลัพธ์ที่แตกต่างกัน สำหรับค่าพารามิเตอร์ที่ต่างกัน พารามิเตอร์รูปแบบที่พบบ่อยที่สุดมีดังนี้

  1. โทเค็นเอาต์พุตสูงสุด: ระบุจำนวนโทเค็นสูงสุดที่สร้างได้ในการตอบสนอง โดยโทเค็นจะมีอักขระประมาณ 4 ตัว โทเค็น 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: ตั้งค่าลำดับการหยุดเพื่อบอกให้โมเดลหยุดสร้างเนื้อหา ลำดับหยุดอาจเป็น ลำดับอักขระใดก็ได้ พยายามหลีกเลี่ยงการใช้ลำดับอักขระที่ อาจปรากฏในเนื้อหาที่สร้างขึ้น

ประเภทของพรอมต์

ข้อความแจ้งจะแบ่งออกเป็น 3 ประเภท ขึ้นอยู่กับระดับของข้อมูลบริบทที่มีอยู่

พรอมต์แบบ Zero-shot

พรอมต์เหล่านี้ไม่มีตัวอย่างสำหรับโมเดลที่จะจำลอง โดยพื้นฐานแล้ว Zero-shot จะแสดงความสามารถของโมเดลในการทำตามพรอมต์โดยไม่มีตัวอย่างหรือข้อมูลเพิ่มเติม ซึ่งหมายความว่าโมเดลจะต้องใช้ความรู้ที่มีอยู่แล้วเพื่อสร้างคำตอบที่เป็นไปได้

ตัวอย่างรูปแบบพรอมต์แบบ Zero- Shot ที่ใช้กันโดยทั่วไปมีดังนี้

  • เนื้อหาวิธีการ
<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.
  • Continuation บางครั้งคุณอาจแสดงข้อความต่อโมเดลได้โดยไม่ต้องมีวิธีการ ตัวอย่างเช่น นี่คือข้อความแจ้งแบบ Zero-shot ซึ่งโมเดลตั้งใจจะใส่อินพุตที่ระบุต่อไป
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:

ข้อความแจ้งแบบ 2-3 ช็อต

พรอมต์เหล่านี้จะมีตัวอย่างให้จำลองหลายรายการแก่โมเดล ใช้ข้อความแจ้ง 2-3 ช่วงเพื่อทำงานที่ซับซ้อนให้เสร็จสิ้น เช่น การสังเคราะห์ข้อมูลตามรูปแบบ

ตัวอย่างพรอมต์อาจมีดังนี้

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"}

โมเดล Generative ขั้นสูง

ส่วนนี้มีจุดประสงค์เพื่อตอบคำถาม คำตอบของโมเดล Generative (Generative Model) มีการสุ่มหรือการตัดสินใจหรือไม่

คำตอบสั้นๆ คือ "ใช่" ทั้ง 2 ข้อ เมื่อคุณพรอมต์โมเดล Generative ระบบจะสร้างคำตอบที่เป็นข้อความไว้ใน 2 ขั้นตอน ในขั้นแรก โมเดล Generative จะประมวลผลพรอมต์อินพุตและสร้างการกระจายความน่าจะเป็นผ่านโทเค็น (คำ) ที่เป็นไปได้ซึ่งมีแนวโน้มที่จะเกิดขึ้นถัดไป เช่น หากคุณใส่ข้อความอินพุต "สุนัขกระโดดข้าม ... " โมเดล Generative จะสร้างอาร์เรย์ของคำที่น่าจะเกิดขึ้นถัดไป

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

กระบวนการนี้เป็นกระบวนการเชิงกำหนด โมเดล Generative จะสร้างการแจกแจงแบบเดียวกันนี้ทุกครั้งที่ป้อนข้อความพรอมต์เดียวกัน

ในขั้นตอนที่ 2 โมเดล Generative จะแปลงการกระจายเหล่านี้ให้เป็นข้อความตอบกลับจริงผ่านหนึ่งในกลยุทธ์การถอดรหัสหลายๆ กลยุทธ์ กลยุทธ์การถอดรหัสอย่างง่ายอาจเลือกโทเค็นที่เป็นไปได้มากที่สุดในทุกขั้นตอน กระบวนการนี้มักขึ้นอยู่กับการตัดสินใจเสมอ อย่างไรก็ตาม คุณอาจเลือกสร้างการตอบสนองโดยการสุ่มตัวอย่างสำหรับการกระจายที่โมเดลส่งคืนมาแทนได้ กระบวนการนี้อาจเป็นโรคทางสมอง (แบบสุ่ม) ควบคุมระดับความสุ่มที่อนุญาตในกระบวนการถอดรหัสนี้โดยการตั้งค่าอุณหภูมิ อุณหภูมิเป็น 0 หมายความว่าจะเลือกเฉพาะโทเค็นที่เป็นไปได้มากที่สุดและไม่มีการสุ่ม ในทางกลับกัน อุณหภูมิสูงจะแทรกการสุ่มในระดับสูงลงในโทเค็นที่โมเดลเลือกไว้ ทำให้ได้คำตอบของโมเดลที่ไม่คาดคิดและน่าประหลาดใจยิ่งขึ้น

อ่านเพิ่มเติม

  • ตอนนี้คุณเข้าใจพรอมต์และโมเดล Generative อย่างลึกซึ้งมากขึ้นแล้ว ลองเขียนพรอมต์ของคุณเองโดยใช้ Google AI Studio
  • ดูข้อมูลเพิ่มเติมเกี่ยวกับแนวทางปฏิบัติแนะนำในการสร้างข้อความแจ้งได้ในหลักเกณฑ์ของข้อความแจ้ง