Last chance! 50% off DataCamp Premium
Sale ends in
Các mô hình ngôn ngữ lớn có thể hiểu và viết văn bản nghe rất giống con người. Nhưng khi muốn chúng thực hiện đúng theo cách chúng ta mong muốn, điều đó không hề đơn giản. Cần lựa chọn kỹ thuật phù hợp để có được câu trả lời thỏa đáng.
Một trong những kỹ thuật đó là few-shot prompting. Đây là một phương pháp khéo léo giúp kết nối những gì mô hình đã biết với việc chúng ta cần nó làm cho một nhiệm vụ cụ thể—bạn đưa cho mô hình một vài ví dụ ngắn để chỉ ra yêu cầu, giúp nó dễ hiểu hơn và thực hiện đúng nhiệm vụ.
Trong hướng dẫn này, bạn sẽ học được:
Hướng dẫn này là một phần trong loạt bài “Prompt Engineering: Từ Zero đến Hero” của tôi:
Few-shot prompting là kỹ thuật cung cấp cho mô hình ngôn ngữ một số ít ví dụ để dẫn dắt phản hồi cho một nhiệm vụ cụ thể. Phương pháp này nằm giữa zero-shot learning (không đưa ví dụ) và tinh chỉnh có giám sát đầy đủ (yêu cầu lượng lớn dữ liệu gán nhãn). Bài viết trên blog về few-shot learning giải thích chi tiết kỹ thuật máy học này.
Nói cách khác, few-shot prompting là quá trình đưa cho mô hình ngôn ngữ một vài màn trình diễn hoặc ví dụ ngay trong chính prompt. Những ví dụ này đóng vai trò như hướng dẫn, cho thấy mô hình nên tiếp cận và phản hồi một loại nhiệm vụ hoặc câu hỏi cụ thể như thế nào. Khi bạn cung cấp các ví dụ này, về bản chất bạn đang nói với mô hình: "Đây là cách bạn nên phản hồi trong các tình huống tương tự."
Hãy xem một ví dụ.
Giả sử chúng ta muốn mô hình phân loại cảm xúc của các bài đánh giá phim. Một few-shot prompt có thể như sau:
Prompt:
Classify the sentiment of the third movie review. Use the information from the first two examples:Review: "This movie was a waste of time."Sentiment: NegativeReview: "I couldn't stop laughing throughout the film!"Sentiment: PositiveReview: "The special effects were amazing, but the plot was confusing."Sentiment:```markdownIf we input this prompt to the LLM, and if it understands the task correctly, it will output:```markdownSentiment: MixedTrong ví dụ này, LLM sử dụng các ví dụ trong prompt để hiểu cách phân loại cảm xúc của bài đánh giá thứ ba và tạo đầu ra tương ứng.
Few-shot prompting quan trọng vì nó làm cho LLM hữu ích và dễ tiếp cận hơn. Thứ nhất, nó tiết kiệm thời gian và công sức vì bạn không cần huấn luyện lại mô hình hoàn toàn hoặc thu thập lượng dữ liệu khổng lồ.
Thứ hai, nó rất linh hoạt—bạn có thể nhanh chóng điều chỉnh mô hình cho các nhiệm vụ khác nhau chỉ bằng cách thay đổi ví dụ đưa vào. Thứ ba, nó thường giúp LLM thực hiện tốt hơn trên các nhiệm vụ cụ thể hoặc phức tạp so với khi yêu cầu làm việc mà không có chỉ dẫn. Phương pháp này cũng giúp nhiều người tiếp cận các công cụ AI mạnh mẽ hơn, không chỉ những chuyên gia công nghệ có nhiều nguồn lực.
Cốt lõi của few-shot prompting nằm ở việc cung cấp cho LLM một tập nhỏ các ví dụ hoặc minh họa phù hợp ngay trong prompt. Những ví dụ này định hướng mô hình, minh họa cách tiếp cận và phản hồi cho một loại nhiệm vụ hoặc câu hỏi cụ thể. Các minh họa thường có cấu trúc như sau:
Ví dụ, nếu chúng ta muốn mô hình tạo các cặp câu thơ vần điệu, một few-shot prompt có thể như sau:
Generate a rhyming couplet about a tree:Input: "cat"Output: The curious cat, so sleek and fat, Curled up cozy on the welcome mat.Input: "sky"Output: Look up high into the endless sky, Where birds and clouds go drifting by.Input: "tree"Output:Khi được cung cấp các minh họa này, mô hình ngôn ngữ thực hiện một quá trình thường gọi là "học trong ngữ cảnh" hoặc "học qua ví dụ." Cách hoạt động như sau:
![]()
Quy trình này cho phép mô hình điều chỉnh kiến thức và khả năng của mình cho một nhiệm vụ cụ thể mà không cần thay đổi bất kỳ tham số nền tảng nào.
Cần lưu ý rằng hiệu quả của few-shot prompting có thể khác nhau tùy thuộc vào các yếu tố như độ phức tạp của nhiệm vụ, chất lượng và mức độ liên quan của các ví dụ được cung cấp, cũng như năng lực của mô hình ngôn ngữ nền tảng. Tuy nhiên, khi sử dụng đúng cách, few-shot prompting có thể giúp các mô hình ngôn ngữ thực hiện rất nhiều nhiệm vụ khác nhau với độ chính xác và tính linh hoạt ấn tượng.
Few-shot prompting mang lại một số lợi ích. Hãy xem vì sao phương pháp này hữu ích.
Một trong những ưu điểm đáng chú ý nhất của few-shot prompting là cải thiện hiệu suất đáng kể so với cách tiếp cận zero-shot.
Chẳng hạn, xét kịch bản chúng ta muốn mô hình tạo mô tả sản phẩm với tông giọng và định dạng cụ thể.
Generate product descriptions:Product: Wireless EarbudsDescription: Immerse yourself in crystal-clear audio with our sleek wireless earbuds. Featuring noise-cancellation technology and a comfortable fit, these earbuds are perfect for music lovers on the go.Product: Smart WatchDescription: Stay connected and track your fitness with our advanced smart watch. With heart rate monitoring, GPS, and a vibrant touch screen, it's your perfect companion for an active lifestyle.Product: Ergonomic Office ChairDescription:Với các ví dụ này, mô hình có khả năng tạo ra mô tả phù hợp và đúng phong cách cho ghế văn phòng hơn, so với cách zero-shot có thể cho kết quả chung chung hoặc thiếu trọng tâm.
Một đầu ra tiềm năng có thể là:```markdown
Description: Nâng tầm không gian làm việc của bạn với ghế văn phòng công thái học tối tân của chúng tôi. Thiết kế tối ưu cho sự thoải mái và nâng đỡ, chiếc ghế này có tựa lưng hỗ trợ thắt lưng điều chỉnh, lưng lưới thoáng khí và tay vịn tùy chỉnh. Dù bạn làm việc tại nhà hay văn phòng, đây là sự kết hợp hoàn hảo giữa phong cách và chức năng cho người chuyên nghiệp hiện đại.
Faster adaptationFew-shot prompting helps the LLM to quickly learn new tasks or topics, making it fast and easy to switch between different jobs.Quick task learning: Models can quickly grasp new tasks with just a handful of examples, allowing for rapid prototyping and testing of new applications.Domain adaptation: It's easy to shift the model's focus to different domains or styles by simply changing the examples in the prompt.Iterative refinement: Users can quickly iterate and refine their prompts based on initial results, leading to a more agile development process.For example, if we wanted to adapt the model to generate different types of poetry, we could quickly switch between haikus, limericks, or sonnets just by changing the examples in our prompt:```markdownGenerate poetry based on the given theme and format.Theme: SpringHaiku: Cherry blossoms bloom Soft petals dance in the breeze Nature awakensTheme: SummerHaiku:Theme: A funny catLimerick: There once was a cat named Lou Who always knew just what to do He'd climb up a tree Then meow with glee And slide down as if on a chuteTheme: A clumsy dogLimerick:Một đầu ra tiềm năng sẽ là:
Haiku:Scorching sun aboveCicadas sing endlesslyBeach waves cool bare feetLimerick:There once was a dog quite unsteadyHis paws were not quite readyHe'd trip on his tailKnock over the mailBut his smile kept his owner steadyFew-shot prompting giúp giảm đáng kể nhu cầu về lượng dữ liệu gán nhãn lớn, đây là lợi thế lớn so với các phương pháp tinh chỉnh truyền thống.
Few-shot prompting có thể áp dụng trong nhiều lĩnh vực. Sự linh hoạt và hiệu quả khiến nó đặc biệt hữu ích cho các nhiệm vụ đòi hỏi kiến thức chuyên sâu hoặc đầu ra sáng tạo. Hãy khám phá một số ứng dụng chính:
Few-shot prompting có thể cải thiện đáng kể khả năng của LLM trong việc xử lý các nhiệm vụ liên quan đến suy luận nhiều bước, suy diễn logic hoặc kiến thức theo miền.
Hãy xem cách dùng few-shot prompting cho một nhiệm vụ chẩn đoán y khoa:
Provide a possible diagnosis and explain your reasoning:Symptoms: Fever, cough, fatigueDiagnosis: Common coldExplanation: The combination of fever, cough, and fatigue is typical of a common cold. No severe symptoms are present, suggesting a mild viral infection.Symptoms: Chest pain, shortness of breath, dizzinessDiagnosis: Possible heart attackExplanation: The combination of chest pain, shortness of breath, and dizziness are warning signs of a possible heart attack. Immediate medical attention is required.Symptoms: Headache, sensitivity to light, nauseaDiagnosis:Explanation: Prompt này định hướng mô hình không chỉ đưa ra chẩn đoán mà còn giải thích lập luận phía sau, thể hiện suy luận y khoa phức tạp.
LLM sẽ xuất ra:```markdown
Diagnosis: Migraine
Explanation: Bộ triệu chứng này điển hình cho chứng đau nửa đầu (migraine). Đau đầu kèm nhạy cảm với ánh sáng (sợ ánh sáng) là chỉ dấu mạnh cho migraine, và buồn nôn thường đi kèm. Dù có thể còn những nguyên nhân khác, tổ hợp này gợi ý mạnh mẽ đến cơn đau nửa đầu.
Creative writingFew-shot prompting is particularly effective in guiding LLMs to generate text in specific styles, formats, or genres.Let’s see how to generate movie synopsis in different genres using few-shot prompting:```markdownGenerate movie synopsis:Genre: Sci-FiSynopsis: In a world where dreams can be shared, a skilled "dream thief" is tasked with the impossible: planting an idea in someone's mind. As he delves deeper into the target's subconscious, the lines between reality and dreams blur, threatening to trap him forever.Genre: RomanceSynopsis: A chance encounter on a rainy day in Paris leads two strangers on a whirlwind 24-hour adventure. As they explore the city and each other's hearts, they must decide if their connection is strong enough to overcome the ocean that will separate them come morning.Genre: HorrorSynopsis: Prompt này định hướng mô hình tạo phần tóm tắt phim nắm bắt các yếu tố then chốt và tông giọng của thể loại đã chỉ định.
Đầu ra:
Synopsis: A remote mountain town is plagued by a series of mysterious disappearances. As a skeptical detective investigates, she uncovers an ancient cult that awakens every hundred years to feed on the town's inhabitants. With time running out and the cult's power growing, she must confront her own dark past to save the remaining townspeople and herself from a terrifying fate.Few-shot prompting cực kỳ hữu ích trong việc giúp LLM tạo mã tuân theo quy ước cụ thể, bám sát thực hành tốt hoặc đáp ứng yêu cầu nhất định. Các ví dụ có thể minh họa cú pháp và cấu trúc đúng cho một ngôn ngữ lập trình.
Hãy xem cách dùng few-shot prompting để tạo hàm Python có docstring và type hint:
def calculate_area(length: float, width: float) -> float: """ Calculate the area of a rectangle. Args: length (float): The length of the rectangle. width (float): The width of the rectangle. Returns: float: The area of the rectangle. """ return length * widthdef celsius_to_fahrenheit(celsius: float) -> float: """ Convert temperature from Celsius to Fahrenheit. Args: celsius (float): Temperature in Celsius. Returns: float: Temperature in Fahrenheit. """ return (celsius * 9/5) + 32def calculate_bmi(weight: float, height: float) -> float: """ [Generate a docstring for this function] """ # [Generate the function body]Prompt này định hướng mô hình để tạo hàm có type hint đầy đủ và docstring chi tiết, theo đúng mẫu đã thiết lập.
Đầu ra sẽ là:
def calculate_bmi(weight: float, height: float) -> float: """ Calculate the Body Mass Index (BMI) of a person. Args: weight (float): The weight of the person in kilograms. height (float): The height of the person in meters. Returns: float: The calculated BMI value. Note: BMI is calculated as weight (kg) divided by height squared (m^2). This function assumes weight is in kilograms and height is in meters. """ return weight / (height ** 2)Dù few-shot prompting hoạt động tốt trong nhiều trường hợp, nó cũng có những thách thức riêng. Hiểu các thách thức này và tuân theo thực hành tốt sẽ giúp chúng ta tối đa hóa hiệu quả của prompt và đạt kết quả tốt hơn.
Chất lượng và mức độ liên quan của ví dụ bạn chọn là yếu tố then chốt để few-shot prompting thành công. Một vài gợi ý:
Tạo prompt hiệu quả là một nghệ thuật đòi hỏi cân nhắc kỹ cách trình bày ví dụ và cách đặt vấn đề. Một số chiến lược bạn có thể làm theo:
Một rủi ro của few-shot prompting là mô hình có thể overfit vào các ví dụ đã cung cấp, dẫn đến đầu ra quá giống ví dụ hoặc không khái quát tốt cho đầu vào mới. Để tránh điều này:
Tuân theo các thực hành tốt này sẽ giúp bạn tạo few-shot prompt hiệu quả hơn, định hướng mô hình thực hiện nhiệm vụ mong muốn một cách chính xác và hiệu quả.

Few-shot prompting là một kỹ thuật giúp LLM áp dụng kiến thức của mình cho các nhiệm vụ cụ thể.
Nó cho phép thích ứng nhanh với nhiệm vụ mới mà không cần huấn luyện lại nhiều. Nó tăng độ chính xác cho các nhiệm vụ phức tạp bằng cách cung cấp ví dụ liên quan. Nó hữu ích trên nhiều lĩnh vực, từ suy luận đến viết sáng tạo và lập trình, đồng thời giúp các mô hình ngôn ngữ tiên tiến dễ tiếp cận và linh hoạt hơn.
Tuy nhiên, hiệu quả của nó phụ thuộc vào việc lựa chọn ví dụ và thiết kế prompt cẩn thận. Chất lượng và mức độ liên quan của ví dụ là rất quan trọng để đạt hiệu suất tối ưu.
Nhìn về phía trước, tôi rất hào hứng với hướng đi tiếp theo. Hãy tưởng tượng những hệ thống có thể tự động chọn ví dụ hoàn hảo hoặc thích ứng theo thời gian thực dựa trên hiệu quả của chúng.
Vậy là xong! Few-shot prompting trong một nốt nhạc. Tiếp tục thử nghiệm, tiếp tục học hỏi, hẹn gặp bạn ở bài tiếp theo!
Có, có thể đo lường cải thiện bằng các chỉ số máy học tiêu chuẩn, tùy theo nhiệm vụ. Với bài toán phân loại, có thể dùng accuracy, precision, recall và F1. Với nhiệm vụ sinh, có thể dùng các thước đo như BLEU, ROUGE hoặc đánh giá bởi con người.
Few-shot prompting đã thành công trong nhiều lĩnh vực, bao gồm chăm sóc khách hàng (tạo phản hồi), sáng tạo nội dung (hỗ trợ viết) và phát triển phần mềm (sinh mã). Nó cũng tỏ ra hữu ích trong y tế cho các tác vụ như tóm tắt hồ sơ bệnh án và trong tài chính cho phân tích thị trường và tạo báo cáo.
Few-shot prompting có thể dân chủ hóa việc phát triển ứng dụng AI, cho phép người không chuyên dễ dàng tạo giải pháp AI chuyên biệt. Điều này có thể chuyển trọng tâm của nhà khoa học dữ liệu và kỹ sư ML sang các nhiệm vụ phức tạp hơn, kỹ thuật prompt, và phát triển các hệ thống AI tiên tiến. Nó cũng có thể tạo ra những vai trò mới tập trung vào việc xây dựng prompt và ví dụ hiệu quả cho nhiều ứng dụng.
Trong các lĩnh vực chuyên môn cao, few-shot prompting có thể gặp khó khăn nếu mô hình thiếu kiến thức nền tảng trong lĩnh vực đó. Cũng có thể thách thức khi chỉ bằng vài ví dụ mà nắm bắt được các quy tắc hay quy trình chuyên sâu. Trong những trường hợp này, có thể cần tinh chỉnh sâu hơn hoặc huấn luyện theo miền.
Có, có những lo ngại đạo đức. Few-shot prompting có thể bị dùng để hướng dẫn mô hình AI tạo nội dung thiên lệch hoặc gây hại nếu ví dụ không được chọn cẩn thận. Cũng có nguy cơ rò rỉ dữ liệu vô tình nếu thông tin nhạy cảm được đưa vào prompt.
Ana Rojo Echeburúa là chuyên gia AI và dữ liệu, có bằng Tiến sĩ Toán Ứng dụng. Cô yêu thích việc biến dữ liệu thành những insight có thể hành động và có nhiều kinh nghiệm lãnh đạo các nhóm kỹ thuật. Ana thích làm việc chặt chẽ với khách hàng để giải quyết các vấn đề kinh doanh và tạo ra những giải pháp AI sáng tạo. Được biết đến với kỹ năng giải quyết vấn đề và giao tiếp rõ ràng, cô đam mê AI, đặc biệt là AI tạo sinh. Ana luôn theo đuổi việc học tập không ngừng và phát triển AI có đạo đức, cũng như đơn giản hóa các vấn đề phức tạp và giải thích công nghệ theo cách dễ tiếp cận.
Học AI với các khóa học này!
Khóa học
Khóa học
Lộ trình
blog
Matt Crabtree
10 phút