Giới thiệu về các mô hình tạo sinh

Các mô hình trí tuệ nhân tạo (AI) tạo sinh, chẳng hạn như nhóm mô hình Gemini, có thể tạo nội dung từ nhiều loại dữ liệu đầu vào, bao gồm văn bản, hình ảnh và âm thanh. Ở cấp độ cơ bản nhất, các mô hình này hoạt động như các ứng dụng tự động hoàn thành tinh vi. Với văn bản đầu vào ("Bạn có thể dẫn ngựa đến nước"), mô hình tạo sinh có thể dự đoán văn bản đầu ra có khả năng tuân theo về mặt thống kê ("nhưng bạn không thể uống rượu"), dựa trên các mẫu học được từ dữ liệu huấn luyện của họ. Bạn có thể sử dụng thuộc tính cơ bản này của mô hình tạo sinh cho nhiều ứng dụng:

  • Tạo ra nội dung sáng tạo như thơ, truyện ngắn, ẩn dụ và bài đăng trên blog
  • Chuyển đổi dữ liệu có cấu trúc thành văn bản dạng tuỳ ý
  • Trích xuất và tóm tắt thông tin từ văn bản dạng tự do
  • Tạo mã
  • Dịch giữa các ngôn ngữ

Bạn không cần có chuyên môn về máy học (ML) để sử dụng các mô hình tạo sinh nhằm xây dựng các tính năng này. Bạn không cần thu thập một tập dữ liệu lớn hoặc huấn luyện mô hình. Để bắt đầu nguyên mẫu đầu tiên, bạn chỉ cần mô tả những gì bạn muốn mô hình thực hiện trong một vài câu.

Các mô hình tạo sinh chỉ xử lý dữ liệu đầu vào và đầu ra dạng văn bản còn được gọi là mô hình ngôn ngữ lớn (LLM). Nhóm mô hình Gemini có thể xử lý nhiều loại dữ liệu hơn văn bản. Mặc dù có thể thực hiện các chức năng của LLM, nhưng nhóm mô hình này được gọi chính xác hơn là mô hình tạo sinh.

Ứng dụng mẫu

Các ví dụ sau đây minh hoạ dữ liệu đầu vào văn bản điển hình cho và đầu ra từ một mô hình tạo sinh.

Tạo bài thơ

Dữ liệu do người dùng nhập: Write me a four-line poem about puppies and Android phones. Make sure it rhymes.

Đầu ra của mô hình:

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

Tạo danh sách

Dữ liệu đầu vào của người dùng: Generate a bulleted list of items I need to pack for a three-day camping trip.

Đầu ra của mô hình:

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

Bạn có thể sử dụng các mô hình tạo sinh để tạo ra mọi loại hành vi hữu ích như thế này, chỉ bằng cách tạo văn bản nhập phù hợp, còn gọi là lời nhắc. Nghệ thuật và khoa học của việc tìm ra cách diễn đạt phù hợp để các mô hình tạo sinh làm những gì bạn muốn được gọi là thiết kế câu lệnh (còn gọi là "kỹ thuật câu lệnh" hoặc đơn giản là "câu lệnh").

Kiến thức cơ bản về thiết kế lời nhắc

Phần trước đã đưa ra một số ví dụ về lời nhắc chứa hướng dẫn, chẳng hạn như "Viết cho tôi một bài thơ". Loại hướng dẫn này có thể hoạt động tốt đối với một số loại tác vụ. Tuy nhiên, đối với các ứng dụng khác, một kỹ thuật nhắc khác có tên là nhắc một vài lần có thể hoạt động hiệu quả hơn. Lời nhắc ít lần sử dụng tận dụng việc các mô hình ngôn ngữ lớn cực kỳ giỏi trong việc nhận dạng và sao chép các mẫu trong dữ liệu văn bản. Ý tưởng là gửi cho mô hình tạo sinh một mẫu văn bản mà mô hình này sẽ học để hoàn thành. Ví dụ: giả sử bạn muốn xây dựng một ứng dụng lấy tên quốc gia làm dữ liệu đầu vào và xuất ra tên thủ đô của quốc gia đó. Dưới đây là câu lệnh bằng văn bản được thiết kế để làm việc đó:

Italy : Rome
France : Paris
Germany :

Trong lời nhắc này, bạn thiết lập một mẫu: [country] : [capital]. Nếu bạn gửi lời nhắc này đến một mô hình ngôn ngữ lớn, thao tác sẽ tự động hoàn thành mẫu và trả về nội dung có dạng như sau:

     Berlin
Turkey : Ankara
Greece : Athens

Phản hồi của mô hình này có vẻ hơi lạ. Mô hình không chỉ trả về tên thủ đô của Đức (quốc gia cuối cùng trong câu lệnh viết tay của bạn), mà còn trả về toàn bộ danh sách các cặp quốc gia và thủ đô khác. Lý do là mô hình tạo sinh đang "tiếp tục theo mẫu". Nếu tất cả những gì bạn đang cố gắng làm là tạo một hàm cho biết thủ đô của một quốc gia đầu vào ("Đức: Berlin"), thì có thể bạn không thực sự quan tâm đến bất kỳ văn bản nào mà mô hình tạo ra sau "Berlin". Thật vậy, là nhà thiết kế ứng dụng, có lẽ bạn sẽ muốn cắt bớt các ví dụ không liên quan đó. Hơn nữa, bạn có thể muốn đặt tham số cho dữ liệu đầu vào để Đức không phải là một chuỗi cố định mà là một biến do người dùng cuối cung cấp:

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

Bạn vừa viết một câu lệnh có vài lần thực thi để tạo tên thủ đô của các quốc gia.

Bạn có thể thực hiện nhiều thao tác bằng cách làm theo mẫu lời nhắc một vài lần này. Dưới đây là một câu lệnh một lần có định dạng hơi khác để chuyển đổi Python sang 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:

Hoặc nhận câu lệnh "đảo ngược từ điển" này. Khi có một định nghĩa, hàm này sẽ trả về từ phù hợp với định nghĩa đó:

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:

Bạn có thể nhận thấy rằng mẫu chính xác của các câu lệnh ít lần chụp này thay đổi một chút. Ngoài việc chứa các ví dụ, việc cung cấp hướng dẫn trong câu lệnh là một chiến lược bổ sung cần cân nhắc khi viết câu lệnh của riêng bạn, vì điều này giúp truyền đạt ý định của bạn đến mô hình.

Đưa ra lời nhắc so với phát triển phần mềm truyền thống

Không giống như phần mềm truyền thống được thiết kế theo thông số kỹ thuật được viết cẩn thận, hành vi của mô hình tạo sinh phần lớn là không rõ ràng ngay cả đối với các trình huấn luyện mô hình. Do đó, bạn thường không thể dự đoán trước loại cấu trúc lời nhắc nào sẽ phù hợp nhất với một mô hình cụ thể. Hơn nữa, phần lớn hành vi của mô hình tạo sinh được xác định phần lớn dựa trên dữ liệu huấn luyện. Các mô hình được điều chỉnh liên tục trên các tập dữ liệu mới, nên đôi khi mô hình thay đổi đủ để vô tình thay đổi cấu trúc câu lệnh nào hoạt động hiệu quả nhất. Điều này có ý nghĩa gì đối với bạn? Thử nghiệm! Thử nhiều định dạng câu lệnh.

Tham số mô hình

Mỗi câu lệnh bạn gửi đến mô hình đều bao gồm các giá trị tham số kiểm soát cách mô hình tạo phản hồi. Mô hình có thể tạo ra nhiều kết quả cho các giá trị tham số khác nhau. Các tham số mô hình phổ biến nhất là:

  1. Mã thông báo đầu ra tối đa: Chỉ định số lượng mã thông báo tối đa có thể được tạo trong phản hồi. Mã thông báo có khoảng 4 ký tự. 100 mã thông báo tương ứng với khoảng 60 đến 80 từ.

  2. Nhiệt độ: Nhiệt độ kiểm soát mức độ ngẫu nhiên trong việc chọn mã thông báo. Nhiệt độ được dùng để lấy mẫu trong quá trình tạo phản hồi, xảy ra khi áp dụng topPtopK. Nhiệt độ thấp hơn phù hợp với các câu lệnh yêu cầu phản hồi có tính quyết định hơn hoặc ít mở hơn, trong khi nhiệt độ cao hơn có thể dẫn đến kết quả đa dạng hoặc sáng tạo hơn. Nhiệt độ 0 là nhiệt độ xác định, nghĩa là phản hồi có xác suất cao nhất luôn được chọn.

  3. topK: Tham số topK thay đổi cách mô hình chọn mã thông báo cho đầu ra. topK bằng 1 có nghĩa là mã thông báo được chọn là mã thông báo có nhiều khả năng nhất trong số tất cả các mã thông báo trong từ vựng của mô hình (còn gọi là giải mã tham lam), trong khi topK bằng 3 có nghĩa là mã thông báo tiếp theo được chọn trong số 3 mã thông báo có nhiều khả năng nhất bằng cách sử dụng nhiệt độ. Đối với mỗi bước lựa chọn mã thông báo, các mã thông báo topK có xác suất cao nhất sẽ được lấy mẫu. Sau đó, các mã thông báo được lọc thêm dựa trên topP, trong đó mã thông báo cuối cùng được chọn bằng cách lấy mẫu nhiệt độ.

  4. topP: Tham số topP thay đổi cách mô hình chọn mã thông báo cho đầu ra. Các mã thông báo được chọn từ xác suất cao nhất đến thấp nhất cho đến khi tổng xác suất của các mã thông báo bằng giá trị topP. Ví dụ: nếu mã thông báo A, B và C có xác suất là 0,3, 0,2 và 0,1 và giá trị topP là 0,5, thì mô hình sẽ chọn A hoặc B làm mã thông báo tiếp theo bằng cách sử dụng nhiệt độ và loại trừ C khỏi danh sách đề xuất. Giá trị topP mặc định là 0,95.

  5. stop_sequences: Đặt một trình tự dừng để yêu cầu mô hình ngừng tạo nội dung. Trình tự dừng có thể là bất kỳ trình tự ký tự nào. Cố gắng tránh sử dụng một chuỗi ký tự có thể xuất hiện trong nội dung được tạo.

Các loại câu lệnh

Tuỳ thuộc vào mức độ thông tin theo bối cảnh có trong câu lệnh, câu lệnh được phân loại rộng rãi thành 3 loại.

Lời nhắc nhập 0

Các câu lệnh này không chứa ví dụ để mô hình sao chép. Về cơ bản, câu lệnh không có ví dụ cho thấy khả năng của mô hình trong việc hoàn thành câu lệnh mà không cần thêm ví dụ hoặc thông tin nào. Điều đó có nghĩa là mô hình phải dựa vào kiến thức có sẵn để tạo ra một câu trả lời hợp lý.

Sau đây là một số mẫu câu lệnh không có ví dụ được dùng phổ biến:

  • Nội dung hướng dẫn
<Overall instruction>
<Content to operate on>

Ví dụ:

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.
  • Hướng dẫn-nội dung-hướng dẫn
<Overall instruction or context setting>
<Content to operate on>
<Final instruction>

Ví dụ:

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.
  • Tiếp tục. Đôi khi, bạn có thể yêu cầu mô hình tiếp tục văn bản mà không cần bất kỳ hướng dẫn nào. Ví dụ: đây là lời nhắc "zero-shot" trong đó mô hình dự định tiếp tục hoạt động nhập đã cung cấp:
Once upon a time, there was a little sparrow building a nest in a farmer's
barn. This sparrow

Sử dụng câu lệnh không có ví dụ để tạo các định dạng văn bản sáng tạo, chẳng hạn như thơ, mã, tập lệnh, bản nhạc, email hoặc thư.

Câu lệnh một lần

Các câu lệnh này cung cấp cho mô hình một ví dụ để sao chép và tiếp tục mẫu. Điều này cho phép tạo ra các phản hồi có thể dự đoán từ mô hình.

Ví dụ: bạn có thể tạo các món ăn đi kèm như:

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

Lời nhắc một vài cảnh

Các câu lệnh này cung cấp cho mô hình nhiều ví dụ để sao chép. Sử dụng các câu lệnh ít lần chụp để hoàn thành các nhiệm vụ phức tạp, chẳng hạn như tổng hợp dữ liệu dựa trên một mẫu.

Ví dụ về câu lệnh:

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

Mô hình tạo sinh

Phần này nhằm trả lời câu hỏi – Phản hồi của mô hình tạo sinh có ngẫu nhiên hay không, hay là có tính quyết định?

Câu trả lời ngắn gọn là có đối với cả hai. Khi bạn nhắc một mô hình tạo sinh, phản hồi văn bản sẽ được tạo theo hai giai đoạn. Trong giai đoạn đầu tiên, mô hình tạo sinh sẽ xử lý lời nhắc đầu vào và tạo phân phối xác suất so với các mã thông báo (từ) có thể có và có khả năng xuất hiện tiếp theo. Ví dụ: nếu bạn nhắc với nội dung nhập là "Chú chó đã nhảy qua ... ", mô hình tạo sinh sẽ đưa ra một loạt các từ tiếp theo có thể xuất hiện:

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

Quá trình này là xác định; mô hình tạo sinh sẽ tạo ra cùng một phân phối này mỗi khi nhập cùng một văn bản lời nhắc.

Ở giai đoạn thứ hai, mô hình tạo sinh chuyển đổi các phân phối này thành phản hồi văn bản thực tế thông qua một trong nhiều chiến lược giải mã. Một chiến lược giải mã đơn giản có thể chọn mã thông báo có nhiều khả năng nhất ở mỗi bước thời gian. Quá trình này sẽ luôn mang tính quyết định. Tuy nhiên, bạn có thể chọn tạo phản hồi bằng cách lấy mẫu ngẫu nhiên thay vì mức phân phối do mô hình trả về. Quá trình này sẽ ngẫu nhiên (ngẫu nhiên). Kiểm soát mức độ ngẫu nhiên được phép trong quá trình giải mã này bằng cách đặt nhiệt độ. Nhiệt độ là 0 có nghĩa là chỉ những mã thông báo có nhiều khả năng nhất được chọn và không có tính ngẫu nhiên. Ngược lại, nhiệt độ cao sẽ đưa mức độ ngẫu nhiên cao vào các mã thông báo do mô hình chọn, dẫn đến các phản hồi mô hình bất ngờ và thú vị hơn.

Tài liệu đọc thêm

  • Giờ đây, bạn đã hiểu rõ hơn về câu lệnh và mô hình tạo sinh, hãy thử viết câu lệnh của riêng bạn bằng Google AI Studio.
  • Tham khảo Nguyên tắc về câu lệnh để tìm hiểu thêm về các phương pháp hay nhất để tạo câu lệnh.