30 điểm bởi GN⁺ 2024-11-26 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Tài liệu này dành cho ai?

  • Dành cho những người muốn cải thiện khả năng viết prompt cho các Post-Trained LLM
  • Hướng đến những người dù không có nhiều nền tảng kỹ thuật nhưng đã có kinh nghiệm sử dụng LLM ở mức cơ bản
  • Phần đầu: cung cấp cách hiểu trực quan về post-training và prompt
  • Phần sau: cung cấp quy trình viết prompt cụ thể và các mẹo thực hành

Vì sao cần hướng dẫn tinh chỉnh?

  • Việc viết prompt cho LLM mang tính kinh nghiệm và là công việc cần liên tục học hỏi, chỉnh sửa
  • Tài liệu này nhằm chia sẻ một cách có hệ thống các chiến lược viết prompt hiệu quả
  • Dù được viết chủ yếu xoay quanh các mô hình hậu huấn luyện như Gemini, nội dung vẫn có thể áp dụng cho các mô hình khác

Pre-Training vs. Post-Training

Tiền huấn luyện (Pre-training)

  • Khái niệm tiền huấn luyện
    • Tiền huấn luyện là một khái niệm lâu đời trong deep learning: trước tiên dùng một tập dữ liệu lớn hơn nhiều (B), tuy tương tự nhưng không phải tập dữ liệu nhỏ (A), để học các đặc trưng tổng quát, rồi sau đó tinh chỉnh chi tiết trên tập dữ liệu A.
    • Ví dụ, có thể hình dung tập dữ liệu chụp nhũ ảnh quy mô nhỏ (A) và tập dữ liệu ảnh tự nhiên quy mô lớn được thu thập từ internet (B).
  • Quy trình tiền huấn luyện
    1. Huấn luyện mô hình trên tập dữ liệu lớn (B) để học các đặc trưng hữu ích mang tính tổng quát.
    2. Sau đó, tinh chỉnh mô hình cho phù hợp với tập dữ liệu A để đạt hiệu năng tốt hơn trên A.
    3. Cụ thể, mô hình trước hết học các kỹ năng nền tảng như phân tách vật thể hoặc nhận diện khái niệm bất kể vị trí trong ảnh từ tập B, rồi dựa trên đó học thêm các kỹ năng chuyên biệt của tập A.
  • Sự cần thiết của tiền huấn luyện
    • Nếu không học qua tập dữ liệu B, chỉ với tập A thì dữ liệu có thể không đủ để học các kỹ năng tổng quát, dẫn đến hiệu năng kém hơn.
    • Mô hình đã học các kỹ năng tổng quát từ tập B thì trên tập A chỉ cần học thêm các kỹ năng chuyên biệt bằng lượng dữ liệu hạn chế.
  • Trường hợp của LLM (mô hình ngôn ngữ lớn)
    • Tiền huấn luyện của LLM được thực hiện bằng cách làm nhiệm vụ "dự đoán từ tiếp theo" trên văn bản internet.
    • Trong quá trình đó, mô hình ngầm học được cấu trúc của thế giới được phản ánh trên web.
  • Internet và sự phản ánh thế giới
    • Câu hỏi internet phản ánh kiểu thế giới nào là điều quan trọng, và để hiểu điều này có thể dùng phép so sánh với "cinematic universe".

Trực giác về "cinematic universe" trong tiền huấn luyện

  • Văn bản và sự mô tả thế giới
    • Mô hình ngôn ngữ lớn (LLM) học về thế giới thông qua văn bản.
    • Văn bản không bị ràng buộc phải chỉ phản ánh "sự thật".
    • Ngoài thông tin sai lệch hay các phát biểu không đúng, còn có nhiều lý do khác khiến văn bản không chỉ phản ánh một thực tại khách quan duy nhất.
  • Ví dụ: Aragorn và Gondor
    • Câu "Aragorn cuối cùng trở thành vua của Gondor" có phải là đúng hay không phụ thuộc vào ngữ cảnh và tiền đề.
      • "The Lord of the Rings" cinematic universe: có thể được xem là đúng.
      • "Marvel Cinematic Universe" hoặc thế giới thực: không đúng, vì Aragorn và Gondor là các thực thể hư cấu.
  • Tiêu chuẩn của sự thật
    • Một phát biểu đúng hay sai phụ thuộc vào việc nó lấy "thế giới nào" làm tiền đề.
    • Đây là chủ đề lâu đời trong triết học và ngôn ngữ học; có thể xem tổng quan chi tiết về chân lý tại liên kết này.
    • Xét theo hướng thực dụng, có thể đơn giản hóa thành khái niệm: "một phát biểu đúng hay không phụ thuộc vào cinematic universe mà phát biểu đó lấy làm bối cảnh".
  • Dữ liệu tiền huấn luyện và cinematic universe
    • Corpus tiền huấn luyện gần với hợp của nhiều cinematic universe khác nhau do văn hóa nhân loại tạo ra.
    • Chính xác hơn, đó là tập hợp các nền văn hóa đóng góp lớn vào các nguồn dữ liệu tiền huấn luyện như web.
      > Quan trọng
      > Corpus tiền huấn luyện có thể được xem là hợp của các cinematic universe do văn hóa nhân loại tạo ra, đặc biệt phản ánh các nền văn hóa đóng góp lớn vào những nguồn dữ liệu như web.
  • Cách mô hình hiểu ngữ cảnh
    • LLM suy luận mình đang ở trong "universe" nào dựa trên ngữ cảnh được cung cấp, tức prefix.
    • Sau đó, nó hành xử theo các quy tắc, tập quán và sự thật của universe đó.
    • Prompt có tín hiệu ngữ cảnh mạnh giúp mô hình dễ hiểu "kịch bản" hơn.
      • Ví dụ: phần mở đầu của một bài blog về New York ("Rừng bê tông nơi giấc mơ thành hiện thực không chỉ là một câu ca từ, mà là sự thật đầy điện năng của New York...")
    • Ngược lại, prompt có ngữ cảnh yếu như "Hi, how are you?" khiến mô hình khó xác định mình đang ở universe nào.
      • Những cách diễn đạt phổ biến như vậy xuất hiện xuyên suốt nhiều corpus, nên để ngỏ nhiều khả năng.
  • Vai trò của hậu huấn luyện (Post-training)
    • Khi thiếu ngữ cảnh, hậu huấn luyện đóng vai trò quan trọng để mô hình tạo ra đầu ra cụ thể và nhất quán hơn.

Hậu huấn luyện (Post-training)

  • Vai trò của hậu huấn luyện
    • Hậu huấn luyện cung cấp chỉ dẫn về "default universe" mà LLM sẽ vận hành theo mặc định.
    • Thay vì chỉ suy luận universe từ prompt, hậu huấn luyện đặt ra các ràng buộc để cố định một số giả định nhất định hoặc giải quyết sự mơ hồ theo cách nhất quán.
    • Điều này cần thiết để tăng tính hữu ích của mô hình, ví dụ như dạy LLM mặc định phải "làm theo chỉ dẫn của người dùng".
  • Tầm quan trọng của hậu huấn luyện
    • Nếu không có hậu huấn luyện, chỉ dẫn như "hãy viết một báo cáo về George Washington" có thể hoạt động sai theo kiểu chỉ đơn thuần sinh tiếp phần văn bản nối sau chính chỉ dẫn đó.
    • Hậu huấn luyện có thể giúp điều chỉnh hành vi mặc định của mô hình để phù hợp với các chuẩn mực xã hội.
    • Qua đó, nó hỗ trợ để mô hình trở thành một công cụ an toàn và hiệu quả hơn.
      > Quan trọng
      > Hậu huấn luyện dạy mô hình thực hiện vai trò cơ bản một cách nhất quán trong nhiều môi trường triển khai khác nhau.
  • Những gì có thể học trong hậu huấn luyện
    • Những nội dung mô hình có thể học trong hậu huấn luyện rất đa dạng, từ các yếu tố thực dụng, cụ thể cho tới những yếu tố chủ quan và mang tính cá nhân.
  • Các nội dung chính có thể dạy trong hậu huấn luyện
    • Cách tuân theo một định dạng cụ thể
      • Ví dụ: Gemma's Formatter giả định mô hình luôn hoạt động trong một cinematic universe nơi nó đang trò chuyện với người dùng.
      • Trong kịch bản này, mô hình hành động theo chỉ dẫn hệ thống và cuộc hội thoại luôn bắt đầu từ lượt của người dùng.
    • Cách làm theo chỉ dẫn của người dùng
      • Ví dụ: với yêu cầu "hãy viết một bài luận về chó", mô hình phải thực sự viết bài luận đó.
      • Có thể dùng hậu huấn luyện để dạy mô hình không phớt lờ yêu cầu của người dùng và không trả lời theo cách khác.
    • Sự khớp với “thế giới thực”
      • Được dùng để điều chỉnh default cinematic universe của mô hình về gần với "thế giới thực" mà người dùng thường quan tâm.
      • Ví dụ: với câu hỏi "người nổi tiếng $CELEBRITY sinh ở đâu?", mặc định sẽ dựa trên thông tin của thế giới thực thay vì thế giới fan fiction.
    • Tăng cường an toàn
      • Internet chứa nhiều tiêu chuẩn chuẩn mực khác nhau, và một số nội dung có thể không phù hợp trong môi trường phân phối thương mại.
      • Hậu huấn luyện giúp điều chỉnh mô hình theo các chính sách an toàn nhất định và thiết lập các tiêu chuẩn chuẩn mực cho nội dung được tạo ra.
      • Điều này khiến mô hình ngầm mang theo các giả định chuẩn mực cần thiết khi tạo ra văn bản phức tạp.
  • Kết luận
    • Hậu huấn luyện giúp mô hình thực hiện hành vi phù hợp với kỳ vọng một cách nhất quán trong nhiều môi trường sử dụng khác nhau.
    • Đây là quá trình thiết yếu để tối đa hóa tính hữu ích và độ an toàn của mô hình.

Thu thập dữ liệu hậu huấn luyện

  • Tóm tắt cốt lõi
    • Trong quá trình hậu huấn luyện, LLM được huấn luyện và đánh giá dựa trên dữ liệu do các đánh giá viên con người tạo ra.
    • Trong giai đoạn này, mô hình xem các đánh giá viên con người đã tạo dữ liệu như hình mẫu vai trò, hoạt động như một “người nhập vai kỹ thuật số”.
  • Quy trình thu thập dữ liệu hậu huấn luyện
    • Tạo bộ dữ liệu ví dụ đầu vào đa dạng
      • Tạo một tập hợp prompt mô tả các tác vụ mà LLM có thể thực hiện (ví dụ: tái cấu trúc dữ liệu thành JSON, hỗ trợ lập kế hoạch đám cưới).
      • Dữ liệu này có thể được tạo dựa trên trực giác của nhà phát triển hoặc các ý tưởng do đánh giá viên con người đề xuất.
    • Tuyển dụng đánh giá viên con người
      • Vai trò của đánh giá viên: viết “đáp án đúng” cho các ví dụ đầu vào hoặc xếp hạng các phản hồi của mô hình theo thứ tự.
      • Tùy theo giai đoạn huấn luyện của mô hình, đánh giá viên sẽ tạo ra các loại dữ liệu khác nhau.
    • Soạn hướng dẫn đánh giá
      • Cung cấp ví dụ và hướng dẫn chi tiết để đánh giá viên có thể hiểu rõ tác vụ.
    • Thu thập dữ liệu và thực hiện hậu huấn luyện
      • Sử dụng dữ liệu đã thu thập cho mô hình tiền huấn luyện để tiến hành hậu huấn luyện.
    • Triển khai mô hình
      • Sau khi hoàn tất hậu huấn luyện, triển khai mô hình vào môi trường thực tế.
  • Tác động của hậu huấn luyện
    • Một trong những lý do LLM có thể hành xử giống con người là vì nó đã học từ các bộ dữ liệu hành vi con người được thu thập cẩn thận.
    • Tiền huấn luyện xây dựng năng lực cốt lõi của mô hình, còn hậu huấn luyện điều chỉnh định hướng hành vi của mô hình thông qua các minh họa của con người.

Quan trọng
Một trong những lý do LLM có thể hành xử giống con người là vì nó đã học từ dữ liệu hành vi con người được thu thập cẩn thận.

  • Các thách thức trong thu thập dữ liệu hậu huấn luyện
    • Sự đơn điệu của công việc lặp đi lặp lại
      • Công việc đánh giá có thể nhàm chán. Ví dụ, một lập trình viên Python xuất sắc có thể thấy việc làm dự án của riêng mình thú vị hơn.
      • Một nhà thơ sẽ thích tự viết thơ hơn và có khả năng không hứng thú với việc đánh giá thơ do AI tạo ra.
      • Đánh giá viên có thể bị giảm động lực do tính lặp lại của công việc, thiếu quyền kiểm soát đối với quyền sở hữu dữ liệu và thiếu ý nghĩa xã hội của công việc.
    • Khó khăn trong việc định nghĩa phản hồi “tốt”
      • Việc định nghĩa một phản hồi “tốt” cho tác vụ là rất phức tạp.
      • Rất khó làm rõ các tiêu chí cho những tác vụ phản ánh sự phức tạp của văn viết hay, tính xác thực và thực tế xã hội.
      • Giống như hệ thống pháp luật xử lý các trường hợp biên thông qua án lệ, những vấn đề này phụ thuộc rất nhiều vào tính chủ quan và ngữ cảnh.
    • Đánh giá viên thiếu hiểu biết về tác vụ
      • Có khả năng đánh giá viên không hiểu đúng tác vụ.
      • Điều này xảy ra khi tuyển nhầm đánh giá viên có trình độ kỹ năng không phù hợp hoặc khi đánh giá viên không nhận thức được giới hạn của bản thân.
      • Ví dụ: viết câu trả lời sai cho câu hỏi sinh học dựa trên kiến thức đại học đã lỗi thời.
    • Sai sót của con người
      • Con người mắc sai lầm. Giáo sư có thể ra đề thi chứa đáp án sai, và bác sĩ trong trạng thái mệt mỏi có khả năng chẩn đoán sai cao hơn.
      • Vì chất lượng dữ liệu đánh giá của con người không hoàn hảo, hệ thống AI cũng thường có thể học từ dữ liệu sai.
  • Kết luận
    • Thu thập dữ liệu hậu huấn luyện đóng vai trò quan trọng đối với chất lượng mô hình, nhưng cần rất nhiều nỗ lực để bảo đảm chất lượng dữ liệu.
    • Điều quan trọng là phải bảo đảm sự phù hợp giữa đánh giá viên và tác vụ để thu được dữ liệu chính xác và đáng tin cậy.

Viết prompt

  • Tóm tắt cốt lõi
    • Khi viết chỉ thị hệ thống và prompt, cần viết với “tư duy tập thể” của nhóm đánh giá viên trong đội hậu huấn luyện.
    • Nếu viết các chỉ thị mà đánh giá viên có thể hiểu và tuân thủ trung thực, thì mô hình cũng có nhiều khả năng làm theo tốt hơn.

Quan trọng
Chỉ thị hệ thống và prompt phải được viết sao cho phản ánh tư duy tập thể của nhóm đánh giá viên trong đội hậu huấn luyện.

Những điểm cần cân nhắc chính khi viết prompt

  • Bảo đảm chỉ thị rõ ràng, ngắn gọn và minh bạch

    • Ví dụ: nếu đó là chỉ thị để tạo mã Python, thì một lập trình viên Python có kỹ năng được chọn ngẫu nhiên phải có thể đọc và hiểu ngay lập tức.
      • Không tốt: "Write a Python function that computes prime numbers."
      • Tốt: "Write a Python function that computes prime numbers from 1 to 100. Include pytype annotations for the function and use 2-space indentation."
  • Kiểm tra xem chỉ thị có mâu thuẫn hoặc khó làm theo không

    • Cần viết ngắn gọn và trực quan để ngay cả khi con người mệt hoặc đói, họ vẫn có thể làm theo trung thực.
      • Không tốt: "Don’t write a story about a mean dog, unless it's friendly, and also sad..."
      • Tốt: "Write a short story (200-300 words) about a loyal golden retriever named Buddy..."
  • Chỉ thị có quá nhiều không?

    • Mô hình có thể khó tuân thủ toàn bộ chỉ thị dài và phức tạp. Khi có thể, nên chia tác vụ thành các tác vụ con.
      • Không tốt: "Read each article and, for each key idea, rate it on a scale of 1-10..."
      • Tốt: Chia thành tác vụ con: 1) tạo danh sách ý chính, 2) đánh giá từng ý, 3) dịch các ý quan trọng nhất, 4) tạo bài đăng cho mạng xã hội.
  • Sử dụng chỉ thị tích cực

    • Hiệu quả hơn khi nêu rõ “nên làm gì” thay vì chỉ ra “không được làm gì”.
      • Không tốt: "Don’t ever end your response with a full stop."
      • Tốt: "Your response should always end with an exclamation mark or a question mark."
  • Chỉ thị đóng vai trò như “lời nhắc” cho mô hình

    • Cung cấp hướng dẫn bổ sung cho các trường hợp không rõ ràng bằng cách cân nhắc nhiều ví dụ đầu vào khác nhau.
    • Ví dụ: mô tả rõ các trường hợp biên trong phần “cân nhắc bổ sung” hoặc “giả định bổ sung”.
  • Prompt là siêu tham số mới

    • Chất lượng của prompt có ảnh hưởng lớn đến hiệu năng hệ thống. Không thể tìm ra prompt “tối ưu”, nhưng việc thử nghiệm để dần tìm ra prompt tốt hơn là rất quan trọng.
  • Chỉ thị cho phản hồi “không biết”

    • Cung cấp hướng dẫn rõ ràng cho các trường hợp “không thể biết” hoặc “mơ hồ”, để mô hình biểu thị sự mơ hồ một cách rõ ràng thay vì đưa ra câu trả lời sai.
  • Sự liên kết chặt chẽ giữa prompt và checkpoint

    • Prompt gắn chặt với một checkpoint mô hình cụ thể. Ở phiên bản mô hình mới, cùng một prompt có thể hoạt động khác đi.

Hướng dẫn phong cách prompt (cơ bản)

  • Cân nhắc dùng Markdown : lưu mỗi prompt thành một tệp Markdown riêng, sắp xếp tiêu đề và các phần hợp lý để tăng khả năng đọc.
  • Cân nhắc người dùng khác : prompt không chỉ nên được viết cho mô hình mà còn cho cả người phụ trách bảo trì.
  • Giữ sự đơn giản : nếu prompt dài hoặc phức tạp, gánh nặng bảo trì có thể tăng lên khi mô hình thay đổi. Hãy viết ngắn gọn và rõ ràng.
  • Ưu tiên chỉ thị zero-shot : chỉ thị zero-shot đơn giản, dễ debug và dễ hiểu. Few-shot chỉ nên dùng như biện pháp cuối cùng.
  • Tích hợp ví dụ : nên lồng ví dụ vào chỉ thị một cách tự nhiên bằng các cách như “For example”.
    • Ví dụ: "Always start your response to the user with something passive aggressive. For example, start with something like 'Oh that’s what you want? ...'"

Quy trình lặp để cải thiện chỉ thị hệ thống mới

  • Phát triển prompt là một quá trình lặp lại
    • Việc viết prompt tương tự như quá trình huấn luyện mô hình bằng bộ dữ liệu kiểm chứng.
    • Cốt lõi là viết câu rõ ràng và ngắn gọn; việc tách riêng giai đoạn tạo ra và chỉnh sửa sẽ hiệu quả hơn.
  • Có thể bắt đầu mà không cần bộ dữ liệu kiểm chứng
    • Ban đầu nên nhanh chóng xây dựng một MVP (Minimum Viable Product) đơn giản, sau đó theo dõi hiệu năng bằng đánh giá định lượng.
    • Điều quan trọng là thiết kế để sản phẩm vẫn vận hành ổn định ngay cả khi mô hình có những hành vi ngoài dự kiến.

Quy trình lặp lại chỉ thị hệ thống

  1. Chuẩn bị nhiều ví dụ đầu vào đa dạng
  • Thu thập khoảng 10~50 ví dụ đầu vào đa dạng, thể hiện rõ vấn đề.
  • Hình thành trực giác về hành vi đầu ra mong muốn.
  1. Bắt đầu với chỉ thị đơn giản
  • Viết chỉ thị càng đơn giản và rõ ràng càng tốt.
  • Trước tiên hãy dùng mô hình có chi phí thấp (ví dụ: Gemini Flash 8B).
  1. Chạy với ví dụ đầu vào đầu tiên
  • Kiểm tra xem mô hình có tạo ra phản hồi phù hợp hay không.
  1. Overfit vào ví dụ đầu tiên
  • Thêm các “lời nhắc bổ sung” vào chỉ thị để khắc phục những lỗi cụ thể phát hiện trong phản hồi của mô hình.
  • Ví dụ: nếu chỉ nên trích xuất tên người nhưng lại bao gồm cả tên tòa nhà, hãy nêu rõ điều đó trong chỉ thị.
  1. Chuyển sang ví dụ tiếp theo
  • Kiểm tra xem chỉ thị có còn hiệu quả với các ví dụ đầu vào khác hay không.
  • Nếu có chỉ thị bị điều chỉnh quá mức theo ví dụ đầu tiên, hãy chỉnh lại để khái quát hơn.
  1. Dọn dẹp chỉ thị
  • Sau khi tạo được chỉ thị hoạt động với mọi ví dụ đầu vào, hãy rà soát câu chữ và sửa lỗi chính tả.
  • Xác nhận rằng chỉ thị đã được dọn dẹp vẫn hoạt động với tất cả ví dụ.
  1. Khả năng tự động hóa
  • Trong tương lai, các công cụ meta-optimization có thể tự động hóa việc tạo chỉ thị.
  • Tuy vậy, phân tích định tính và công việc đảm bảo chất lượng vẫn sẽ cần thiết.
    > Quan trọng
    > Phân tích định tính là yếu tố thiết yếu trong phát triển mô hình và không thể né tránh.

Những tình huống LLM hữu ích

  1. Bài toán dễ kiểm chứng
    • LLM phù hợp nhất với những bài toán mà “tạo ra đáp án thì khó nhưng kiểm chứng lại dễ”.
    • Ví dụ: tham khảo bài viết của Chris Gorgolewski về “điểm ngọt” của generative AI.
  2. Phân rã vấn đề thành các bài toán con
    • Thay vì dùng prompt phức tạp, hãy chia vấn đề thành các bài toán con được định nghĩa rõ ràng để xây dựng chuỗi suy luận của mô hình.
  3. Cách tiếp cận hướng tới tương lai
    • Cân nhắc khả năng năng lực suy luận sẽ tăng lên nhờ đổi mới về phần cứng và mô hình kinh doanh.
    • Thiết kế tính năng dựa trên giá trị thay vì chỉ dựa trên chi phí hiện tại.
  4. Chi phí suy luận giảm
    • Chi phí suy luận được dự đoán sẽ tiếp tục giảm dần, nên cần ra quyết định theo hướng lấy “giá trị” làm trung tâm.
    • Để triển khai các tính năng có giá trị hơn, hãy cân nhắc rollout dần dần trong khi tính đến các giới hạn kinh tế hiện tại.
      > Dự đoán
      > Giá suy luận LLM có thể giảm với tốc độ tương đương định luật Moore.

Tài liệu bổ sung

Chưa có bình luận nào.

Chưa có bình luận nào.