Prompt engineeringlà một quá trình "lập trình" các mô hình AI thông qua ngôn ngữ tự nhiên, không chỉ đơn thuần là viết mà còn là một quy trình kỹ thuật lặp đi lặp lại và có hệ thống.- Khía cạnh "kỹ thuật" của
prompt engineeringđến từ việc thử nghiệm lặp đi lặp lại, khả năng thiết kế và tích hợpcâu lệnhvào mộthệ thống AItổng thể, đòi hỏi tư duy như mã nguồn. - Một
kỹ sư câu lệnhgiỏi cần khả năng giao tiếp rõ ràng, sẵn lòng lặp lại nhiều lần, khả năng dự đoán cáctrường hợp ngoại lệvà phân tích sâu sắc đầu ra củamô hình AIđể liên tục cải thiện hiệu suất.
AI prompt engineering: A deep dive
Prompt engineeringlà "lập trình" cácmô hình AIbằng cách giao tiếp rõ ràng qua ngôn ngữ tự nhiên để hoàn thành cáctác vụcụ thể.- Từ "engineering" (kỹ thuật) trong
prompt engineeringphản ánh quá trình thử nghiệm, lặp lại và thiết kế có hệ thống, sử dụng khả năng "reset" củamô hình AIđể tối ưu hóa. - Coi các
câu lệnhnhưmã(code): cần tư duy hệ thống vềdữ liệuđầu vào,độ trễ,kiểm soát phiên bảnvàtheo dõi thử nghiệmkhi tích hợp vào mộthệ thống AItổng thể. - Một
prompt engineergiỏi cần khả năng giao tiếp mạch lạc, sẵn sàng lặp lại nhiều lần, và khả năng dự đoán, thử nghiệm cáctrường hợp biên(edge case) đểcâu lệnhhoạt động ổn định. - Quan trọng là phải đọc và phân tích kỹ lưỡng đầu ra của
mô hình AIđể phát hiện các lỗi, hiểu lầm hoặc sự không tuân thủ hướng dẫn một cách tinh tế. - Cần phát triển một "lý thuyết tâm trí" về
mô hình AI– hiểu những gì nó biết và không biết, đồng thời loại bỏ các giả định của bản thân khi viết hướng dẫn để đảm bảo tính toàn diện. - Tận dụng chính
mô hình AIđể cải thiệncâu lệnhbằng cách yêu cầu nó chỉ ra sự mơ hồ hoặc đề xuất các bản sửa lỗi cho hướng dẫn khi nó mắc sai lầm. - Xây dựng niềm tin vào
mô hình AIthông qua việc kiểm tra có hệ thống cáccâu lệnhđược xây dựng tốt trên các tình huống đa dạng, đặc biệt làtrường hợp biên, để đảm bảo đầu ra nhất quán và chất lượng cao.
prompt engineering— kỹ thuật câu lệnhprompt— câu lệnhLLM(Large Language Model) — mô hình ngôn ngữ lớnfine tuning— tinh chỉnhAI system— hệ thống AIcode— mãdata— dữ liệuedge case— trường hợp biên / trường hợp ngoại lệtheory of mind— lý thuyết tâm tríDeveloper Relations— Quan hệ nhà phát triển
Giới thiệu và Mục tiêu Phiên Thảo luận
Phiên thảo luận bàn tròn này sẽ tập trung chủ yếu vào prompt engineering, với nhiều góc nhìn đa dạng từ nghiên cứu, người dùng cuối cho đến cấp độ doanh nghiệp. Tôi muốn thu thập một loạt ý kiến rộng rãi về chủ đề này, bởi vì có rất nhiều quan điểm khác nhau. Chúng ta sẽ mở ra một cuộc thảo luận để khám phá prompt engineering thực sự là gì và ý nghĩa của nó. Vâng, chúng ta sẽ bắt đầu từ đó.
Giới thiệu các thành viên
Có lẽ chúng ta nên lần lượt giới thiệu bản thân. Tôi sẽ bắt đầu. Tôi là Alex, trưởng bộ phận Developer Relations tại Anthropic. Trước đây, tôi từng là một prompt engineer tại Anthropic, làm việc trong nhóm prompt engineering của chúng tôi và đảm nhiệm nhiều vai trò khác nhau, từ kiến trúc sư giải pháp cho đến làm việc ở mảng nghiên cứu. Sau đây, tôi xin chuyển lời cho David.
Chào, tôi là David Hershey. Tôi làm việc chủ yếu với các khách hàng của Anthropic về nhiều vấn đề. Về mặt kỹ thuật, tôi giúp họ với fine tuning, nhưng cũng giải quyết nhiều vấn đề chung khiến việc áp dụng các mô hình ngôn ngữ lớn (LLM) trở nên khó khăn, chẳng hạn như prompting và cách xây dựng hệ thống AI với các mô hình ngôn ngữ lớn. Phần lớn thời gian của tôi là làm việc với khách hàng.
Tuyệt vời. Tôi là Amanda Askell. Tôi lãnh đạo một trong những nhóm fine tuning tại Anthropic, nơi tôi cố gắng làm cho Claude trung thực và tử tế.
Chào, tôi là Zach Witten. Tôi là một prompt engineer tại Anthropic. Alex và tôi luôn tranh cãi xem ai là người đầu tiên. Anh ấy nói là anh ấy, tôi nói là tôi – vẫn còn tranh cãi. Tôi từng làm việc rất nhiều với các khách hàng cá nhân, tương tự như cách David đang làm bây giờ. Sau đó, khi chúng tôi có thêm nhiều kiến trúc sư giải pháp trong nhóm, tôi bắt đầu làm việc với những thứ có mục đích nâng cao tổng thể mức độ prompting trong xã hội, như prompt generator và các tài liệu giáo dục khác nhau mà mọi người sử dụng.
Rất tốt. Cảm ơn các bạn đã đến đây.
Định nghĩa Prompt Engineering
Tôi sẽ bắt đầu với một câu hỏi rất rộng để chúng ta có một khuôn khổ cho các cuộc trò chuyện tiếp theo. Prompt engineering là gì? Tại sao lại có từ "engineering" (kỹ thuật) trong đó? Prompt thực sự là gì? Nếu ai đó muốn bắt đầu, hãy đưa ra quan điểm của riêng mình. Cứ tự nhiên nhé.
Tôi nghĩ chúng ta có một prompt engineer ở đây. Đúng vậy, có rất nhiều công việc. Tất cả chúng ta đều là prompt engineer theo cách riêng của mình. Một trong số chúng ta có một công việc mang tên đó.
Tôi cho rằng prompt engineering là việc cố gắng khiến mô hình AI thực hiện các tác vụ, cố gắng khai thác tối đa tiềm năng của mô hình AI, cố gắng làm việc với mô hình AI để hoàn thành những điều mà bạn sẽ không thể làm được nếu không có nó. Vì vậy, phần lớn công việc chỉ là giao tiếp rõ ràng. Tôi nghĩ về bản chất, nói chuyện với một mô hình AI rất giống với nói chuyện với một người, đó là hiểu được tâm lý của mô hình AI.
Lý do "Engineering" trong Prompt Engineering
Tại sao lại có từ "engineering" trong tên gọi này? "Engineering" là gì? Tôi nghĩ phần kỹ thuật đến từ quá trình thử và sai. Một điều thực sự tuyệt vời khi nói chuyện với một mô hình AI mà không giống như nói chuyện với một người là bạn có một nút khởi động lại, một nút khổng lồ, như quay trở lại điểm xuất phát, nơi bạn bắt đầu lại từ đầu. Và điều đó mang lại cho bạn khả năng thực sự bắt đầu từ đầu và thử nghiệm những điều khác nhau một cách độc lập để không có sự can thiệp từ cái này sang cái khác. Và một khi bạn có khả năng thử nghiệm và thiết kế những điều khác nhau đó, đó là lúc phần kỹ thuật có tiềm năng xuất hiện.
À, vậy ý bạn là khi bạn viết các câu lệnh này, bạn đang nhập một tin nhắn vào Claude hoặc qua API, bất kể là gì, việc có thể tương tác qua lại với mô hình AI và lặp lại tin nhắn này, rồi quay trở lại trạng thái ban đầu mỗi lần. Quá trình đó chính là phần kỹ thuật. Toàn bộ quá trình này là prompt engineering.
Prompt như Code và Tư duy hệ thống
Cũng có một khía cạnh khác là tích hợp các câu lệnh vào hệ thống AI tổng thể của bạn. Và David đã làm rất nhiều việc với khách hàng, ví dụ như việc tích hợp. Rất nhiều lần, nó không đơn giản chỉ là bạn viết một câu lệnh và đưa nó cho mô hình AI là xong. Trên thực tế, nó phức tạp hơn rất nhiều.
Vâng, tôi nghĩ câu lệnh giống như cách bạn lập trình các mô hình AI một chút, điều này có thể làm cho nó trở nên quá phức tạp, bởi vì tôi nghĩ Zach nói chung là đúng rằng việc nói chuyện rõ ràng là điều quan trọng nhất. Nhưng nếu bạn coi nó giống như lập trình một mô hình AI, bạn phải suy nghĩ về nơi dữ liệu đến, bạn có quyền truy cập vào dữ liệu nào. Vì vậy, nếu bạn đang thực hiện RAG hoặc thứ gì đó, bạn thực sự có thể sử dụng và truyền tải cái gì đến một mô hình AI. Bạn phải suy nghĩ về những đánh đổi về độ trễ và lượng dữ liệu bạn cung cấp, v.v. Có đủ tư duy hệ thống đi vào cách bạn thực sự xây dựng xung quanh một mô hình AI. Tôi nghĩ đó cũng là cốt lõi lý do tại sao nó xứng đáng được coi là một lĩnh vực riêng biệt để suy nghĩ, khác với một kỹ sư phần mềm hay một PM (Project Manager) hoặc thứ gì đó. Nó giống như một lĩnh vực riêng về cách suy nghĩ về các mô hình AI này.
Vậy trong trường hợp này, câu lệnh có phải là mã (code) bằng ngôn ngữ tự nhiên không? Nó có phải là một cấp độ trừu tượng cao hơn không? Hay nó là một thứ hoàn toàn riêng biệt?
Tôi nghĩ rằng việc cố gắng quá trừu tượng với một câu lệnh là một cách để làm phức tạp mọi thứ, bởi vì tôi nghĩ chúng ta sẽ đi sâu vào vấn đề này. Nhưng thường xuyên hơn là không, điều bạn muốn làm chỉ là viết một mô tả rất rõ ràng về một tác vụ, không cố gắng xây dựng các cấu trúc trừu tượng phức tạp hay bất cứ điều gì tương tự. Nhưng nói như vậy, bạn đang biên dịch tập hợp các hướng dẫn và những thứ tương tự thành kết quả rất nhiều lần. Và vì vậy, độ chính xác và nhiều thứ bạn suy nghĩ về lập trình như kiểm soát phiên bản và quản lý những gì nó trông như thế nào vào thời điểm đó khi bạn thực hiện thử nghiệm này và theo dõi thử nghiệm của bạn, v.v. Tất cả những điều đó đều quan trọng như mã. Vì vậy, thật kỳ lạ khi ở trong mô hình này, nơi văn bản viết như một bài luận hay mà bạn đã viết lại giống như mã. Nhưng thực tế là bây giờ chúng ta viết luận và coi chúng như mã. Và tôi nghĩ điều đó thực sự đúng.
Hay đấy, thú vị.
Đặc điểm của một Prompt Engineer giỏi
Vậy có lẽ dựa trên định nghĩa sơ bộ về prompt engineering đó, điều gì làm nên một prompt engineer giỏi? Có lẽ Amanda, tôi sẽ hỏi bạn điều này vì bạn đang cố gắng thuê các prompt engineer trong môi trường nghiên cứu. Điều đó trông như thế nào? Bạn đang tìm kiếm điều gì ở một người như vậy?
Vâng, câu hỏi hay. Tôi nghĩ đó là sự kết hợp của nhiều yếu tố, như Zach đã nói, một kiểu giao tiếp rõ ràng. Tức là khả năng trình bày mọi thứ một cách rõ ràng, hiểu rõ các tác vụ, suy nghĩ và mô tả các khái niệm rất tốt. Đó là thành phần viết lách mà tôi nghĩ. Tôi thực sự nghĩ rằng việc trở thành một nhà văn giỏi không tương quan nhiều với việc trở thành một prompt engineer giỏi như mọi người vẫn nghĩ.
Vì vậy, tôi đã thảo luận về điều này với mọi người bởi vì tôi nghĩ có một số lập luận cho rằng có lẽ không nên có từ "engineer" trong đó. Tại sao nó không phải là "writer" (người viết) chứ? Tôi từng cảm thông hơn với điều đó. Và rồi bây giờ tôi nghĩ, những gì bạn đang thực sự làm, mọi người nghĩ rằng bạn chỉ viết một thứ và bạn đã xong. Và rồi tôi sẽ nói, bạn biết đấy, để có được một câu lệnh tương đối tốt, khi tôi ngồi xuống với mô hình AI, tôi sẽ, bạn biết đấy, như trước đây, tôi đã prompting mô hình AI và tôi chỉ trong vòng 15 phút, tôi sẽ gửi hàng trăm câu lệnh cho mô hình AI. Nó cứ qua lại, qua lại, qua lại. Và vì vậy, tôi nghĩ đó là sự sẵn lòng lặp lại và xem xét, suy nghĩ, điều gì đã bị hiểu sai ở đây, nếu có, và sau đó sửa chữa điều đó. Vì vậy, khả năng lặp lại đó. Tôi sẽ nói giao tiếp rõ ràng, khả năng lặp lại đó.
Nắm bắt các trường hợp ngoại lệ và Phản hồi của mô hình AI
Tôi nghĩ cũng cần suy nghĩ về những cách mà câu lệnh của bạn có thể sai. Vì vậy, nếu bạn có một câu lệnh mà bạn sẽ áp dụng cho khoảng 400 trường hợp, thật dễ dàng để nghĩ về trường hợp điển hình sẽ được áp dụng để thấy rằng nó nhận được giải pháp đúng trong trường hợp đó và sau đó tiếp tục. Tôi nghĩ đây là một sai lầm rất cổ điển mà mọi người mắc phải. Và điều bạn thực sự muốn làm là tìm ra những trường hợp bất thường. Vì vậy, bạn phải suy nghĩ về câu lệnh của mình và tự hỏi, những trường hợp nào sẽ thực sự không rõ ràng đối với tôi về những gì tôi nên làm trong trường hợp này?
Ví dụ, bạn có một câu lệnh nói rằng: "Tôi sẽ gửi cho bạn một loạt dữ liệu. Tôi muốn bạn trích xuất tất cả các hàng có tên ai đó bắt đầu bằng chữ G." Và rồi bạn nghĩ: "À, tôi sẽ gửi cho nó một tập dữ liệu không có tên nào bắt đầu bằng chữ G." "Tôi sẽ gửi cho nó một thứ không phải là tập dữ liệu." Hoặc: "Tôi cũng có thể gửi một chuỗi trống." Đây là tất cả các trường hợp bạn phải thử, bởi vì sau đó bạn sẽ biết: "Nó làm gì trong những trường hợp này?" Và sau đó bạn có thể cung cấp thêm hướng dẫn cho nó về cách xử lý trường hợp đó.
Giống như với khách hàng rất thường xuyên, bạn là một kỹ sư, bạn đang xây dựng một cái gì đó và có một phần trong câu lệnh của bạn mà khách hàng của họ sẽ viết một cái gì đó. Và tất cả họ đều nghĩ về những điều được diễn đạt rất hoàn hảo mà họ nghĩ ai đó sẽ nhập vào chatbot của họ. Và thực tế là họ không bao giờ sử dụng phím shift, và cứ mỗi từ lại có một lỗi chính tả. Họ nghĩ là không có dấu câu. Đúng vậy. Và ngẫu nhiên. Họ viết mà không có câu hỏi. Đúng vậy. Vì vậy, bạn có những câu lệnh được cấu trúc đẹp đẽ mà người dùng của họ lý tưởng sẽ nhập vào. Nhưng việc có thể đi xa hơn một bước để suy luận về bản nháp thực tế của bạn sẽ như thế nào, những gì mọi người thực sự sẽ cố gắng làm. Vâng. Đó là một kiểu suy nghĩ hơi khác.
Một điều bạn nói thực sự gây ấn tượng với tôi là việc đọc phản hồi của mô hình AI. Giống như trong ngữ cảnh học máy, bạn phải nhìn vào dữ liệu. Nó gần như là một câu nói sáo rỗng: "Hãy nhìn vào dữ liệu của bạn." Và tôi cảm thấy điều tương đương cho prompting là: "Hãy nhìn vào đầu ra của mô hình AI." Chỉ cần đọc nhiều đầu ra và đọc chúng kỹ lưỡng. Ngay cả bây giờ chúng ta đang nói chuyện trên đường đến đây. Một điều mà mọi người sẽ làm là họ sẽ nghĩ từng bước trong câu lệnh của họ. Và họ sẽ không kiểm tra để đảm bảo rằng mô hình AI thực sự đang suy nghĩ từng bước, bởi vì mô hình AI có thể hiểu nó theo nghĩa trừu tượng hoặc tổng quát hơn thay vì: "Không, bạn thực sự phải viết ra suy nghĩ của mình trong các thẻ cụ thể này." Vì vậy, vâng, nếu bạn không đọc đầu ra của mô hình AI, bạn có thể thậm chí không nhận thấy rằng nó đang mắc lỗi đó. Vâng. Điều đó thú vị.
Tư duy về mô hình AI và Loại bỏ giả định
Có một khía cạnh lý thuyết tâm trí hơi kỳ lạ khi trở thành một prompt engineer, nơi bạn phải suy nghĩ gần như về cách mô hình AI sẽ nhìn nhận các hướng dẫn của bạn. Nhưng sau đó, nếu bạn đang viết cho một trường hợp sử dụng doanh nghiệp, thì bạn phải suy nghĩ về cách người dùng sẽ nói chuyện với mô hình AI như thể bạn là bên thứ ba đang ngồi trong mối quan hệ kỳ lạ đó.
Vâng, về khía cạnh lý thuyết tâm trí, một điều tôi muốn nói là thật khó để viết hướng dẫn cho một tác vụ. Thật khó để gỡ rối trong chính bộ não của bạn tất cả những thứ bạn biết mà Claude không biết và viết nó ra. Việc loại bỏ tất cả các giả định bạn có và có thể giao tiếp rất rõ ràng toàn bộ tập hợp thông tin cần thiết cho một mô hình AI là một điều vô cùng thách thức. Tôi nghĩ đó là một điều nữa thực sự phân biệt một prompt engineer giỏi với một prompt engineer tồi. Giống như nếu bạn, nhiều người sẽ chỉ viết ra những điều họ biết, nhưng họ không thực sự dành thời gian để phân tích một cách có hệ thống.
Tầm Quan trọng của Câu Lệnh Toàn diện
Cần phải hiểu rõ toàn bộ thông tin bạn cần để nắm bắt một tác vụ là gì. Đây là một điều tôi thường xuyên thấy: các câu lệnh được viết ra dựa trên sự hiểu biết từ trước của người viết về tác vụ đó đến mức khi họ trình bày cho tôi, tôi cảm thấy nó hoàn toàn vô nghĩa. Không một dòng nào có ý nghĩa cả, bởi vì tôi không biết gì về trường hợp sử dụng cụ thể của bạn. Tôi nghĩ một cách tốt để suy nghĩ về kỹ thuật câu lệnh (prompt engineering) và kỹ năng liên quan là khả năng bạn có thể gạt bỏ những gì mình biết và truyền đạt thông tin cho một hệ thống AI đặc biệt – một hệ thống biết nhiều nhưng không phải mọi thứ – về những gì nó cần biết để hoàn thành một tác vụ.
Nhiều lần tôi xem một câu lệnh và cảm thấy không thể hoàn thành tác vụ dựa trên đó. Tôi là con người và bạn đang giao tác vụ này cho một thứ kém hơn tôi, nhưng lại mong đợi nó làm tốt hơn. Đúng vậy, có một điều thú vị là các mô hình AI hiện tại chưa thực sự giỏi trong việc đặt các câu hỏi thăm dò ngược lại như con người. Nếu tôi đưa ra hướng dẫn chính xác về cách làm điều gì đó, một người sẽ nói: "Điều này không có ý nghĩa gì cả. Tôi phải làm gì ở bước này hoặc ở đây và đây?" Mô hình AI không làm được điều đó. Vì vậy, bạn phải tự mình suy nghĩ xem người kia sẽ nói gì, sau đó quay lại câu lệnh của mình và trả lời những câu hỏi đó.
Tối ưu Câu Lệnh Lặp đi lặp lại và Phản hồi từ Mô hình AI
Một trong những điều đầu tiên tôi làm với câu lệnh ban đầu của mình là đưa câu lệnh cho mô hình AI, sau đó nói: "Tôi không muốn bạn làm theo những hướng dẫn này. Tôi chỉ muốn bạn cho tôi biết những điểm không rõ ràng, mơ hồ hoặc bất kỳ điều gì bạn không hiểu." Và mặc dù mô hình AI không phải lúc nào cũng hoàn hảo, nhưng thật thú vị là đây là một điều bạn có thể làm. Hơn nữa, đôi khi nếu mọi người thấy mô hình AI mắc lỗi, điều họ thường không làm là hỏi thẳng mô hình AI. Họ nên nói với mô hình AI: "Bạn đã làm sai điều này. Bạn có thể nghĩ xem tại sao không, và bạn có thể viết lại một phiên bản chỉnh sửa hướng dẫn của tôi để bạn không làm sai nữa không?" Và rất nhiều lần, mô hình AI chỉ cần sửa lại lỗi. Mô hình AI sẽ nói: "Ồ, đây là điểm không rõ ràng. Đây là cách khắc phục hướng dẫn", và khi bạn đưa những điều đó vào, nó sẽ hoạt động.
Tôi thực sự tò mò về điều này: liệu điều đó có đúng không? Liệu mô hình AI có thể tự phát hiện lỗi theo cách đó không? Khi nó làm sai điều gì đó, bạn hỏi: "Tại sao bạn lại làm sai điều này?", và sau đó nó nói: "Được thôi, làm thế nào tôi có thể diễn đạt điều này cho bạn trong tương lai để bạn làm đúng?" Có yếu tố sự thật nào trong đó không, hay đó chỉ là một dạng "ảo giác" của mô hình AI về những gì nó nghĩ là giới hạn của mình? Tôi nghĩ nếu bạn giải thích cho mô hình AI những gì nó đã làm sai, đôi khi nó có thể xác định được các vấn đề trong câu lệnh. Tôi nghĩ điều này thay đổi tùy theo tác vụ. Đây là một trong những điều tôi không chắc nó đúng bao nhiêu phần trăm thời gian, nhưng hãy luôn thử vì đôi khi nó có tác dụng. Bạn có thể học được điều gì đó. Bất cứ khi nào bạn tương tác với mô hình AI, bạn sẽ học được điều gì đó về những gì đang diễn ra. Tôi nghĩ bạn đang bỏ lỡ thông tin nếu bạn không ít nhất thử.
Xây dựng Niềm Tin vào Mô hình AI và Phương pháp Lặp lại
Tại Anthropic, chúng tôi có các kênh Slack nơi mọi người có thể thêm Claude vào và trò chuyện với Claude qua đó. Amanda có một kênh Slack mà nhiều người theo dõi các tương tác của cô ấy với Claude. Một điều tôi thấy cô ấy luôn làm ở đó – có lẽ là nhiều nhất so với bất kỳ ai ở Anthropic – là sử dụng mô hình AI để hỗ trợ trong nhiều tình huống khác nhau. Cô ấy đặt rất nhiều niềm tin vào mô hình AI trong môi trường nghiên cứu. Tôi tò mò làm thế nào cô ấy đã phát triển những trực giác đó về thời điểm nên tin tưởng mô hình AI? Đó có phải chỉ là vấn đề kinh nghiệm sử dụng hay còn điều gì khác?
Tôi nghĩ tôi không bao giờ tin tưởng mô hình AI ngay từ đầu, và sau đó tôi chỉ "thử thách" nó. Lý do bạn thấy tôi làm điều đó nhiều là vì đó là cách tôi kiểm tra xem liệu tôi có thể tin tưởng nó để hoàn thành tác vụ này không. Bởi vì có một số điều, các mô hình AI rất lạ. Nếu bạn đi hơi "lệch phân phối" (out of distribution) một chút, bạn sẽ đi vào những khu vực mà chúng chưa được huấn luyện hoặc chúng bất thường, đôi khi bạn sẽ thấy: "Ồ, thực ra, bạn kém tin cậy hơn nhiều ở đây, mặc dù đó là một tác vụ khá đơn giản." Tôi nghĩ điều đó đang xảy ra ngày càng ít hơn theo thời gian khi các mô hình AI trở nên tốt hơn, nhưng bạn muốn đảm bảo rằng mình không ở trong không gian đó.
Vì vậy, tôi không nghĩ tôi tin tưởng nó mặc định. Nhưng tôi nghĩ trong Học máy (ML), mọi người thường muốn xem xét các tập dữ liệu thực sự lớn. Và tôi tự hỏi: "Khi nào thì điều đó có ý nghĩa?" Và tôi nghĩ câu trả lời là khi bạn nhận được tín hiệu (signal) tương đối thấp từ mỗi điểm dữ liệu (data point), bạn muốn xem xét nhiều, nhiều điểm dữ liệu để loại bỏ nhiễu. Với nhiều tác vụ câu lệnh, tôi nghĩ bạn thực sự nhận được tín hiệu rất cao từ mỗi câu lệnh. Và vì vậy, nếu bạn có một tập hợp vài trăm câu lệnh được xây dựng thực sự tốt, tôi nghĩ chúng có thể mang lại nhiều tín hiệu hơn so với hàng nghìn câu lệnh không được xây dựng tốt. Vì vậy, tôi nghĩ tôi có thể tin tưởng mô hình AI nếu tôi xem xét một trăm kết quả đầu ra của nó và nó thực sự nhất quán. Và tôi biết rằng tôi đã xây dựng những câu lệnh đó để về cơ bản tìm ra tất cả các trường hợp biên (edge case) và tất cả những điều kỳ lạ mà mô hình AI có thể làm, các đầu vào lạ, v.v. Tôi tin tưởng điều đó hơn nhiều so với một tập hợp vài nghìn câu lệnh được xây dựng lỏng lẻo hơn nhiều.
Trong Học máy, rất nhiều lần tín hiệu là các con số, bạn có dự đoán đúng điều này hay không? Và nó giống như việc xem xét xác suất log (log probs) của một mô hình AI và cố gắng hiểu các điều bạn có thể làm, nhưng nó hơi khó hiểu. Tôi cảm thấy rằng việc các mô hình AI thường xuyên tạo ra rất nhiều thứ, từ ngữ và nhiều thứ khác, về cơ bản có rất nhiều điều để học hỏi "giữa các dòng" về những gì nó đang viết, tại sao và như thế nào. Và đó là một phần của vấn đề. Không chỉ là liệu nó có làm đúng tác vụ hay không. Mà là, nó đã làm như thế nào? Nó đã suy nghĩ về nó như thế nào? Các bước nó đã thực hiện để đạt được điều đó. Bạn học được rất nhiều điều về những gì đang diễn ra, hoặc ít nhất bạn có thể cố gắng hiểu rõ hơn. Nhưng đó là nơi mà rất nhiều thông tin đến với tôi, bằng cách đọc chi tiết những gì đã được tạo ra, không chỉ qua kết quả.
Tầm Quan trọng của Prompting đối với Thí nghiệm và Triển khai
Tôi cũng nghĩ rằng kỹ thuật câu lệnh (prompting) tốt nhất có thể tạo ra sự khác biệt giữa một thí nghiệm thất bại và một thí nghiệm thành công. Vì vậy, đôi khi tôi có thể khó chịu nếu mọi người không tập trung đủ vào thành phần câu lệnh của thí nghiệm của họ, bởi vì tôi nghĩ điều này thực sự có thể là sự khác biệt giữa hiệu suất 1% của mô hình AI hoặc 0.1%. Theo cách mà thí nghiệm của bạn không thành công nếu đó là hiệu suất mô hình AI top 5%, nhưng nó thành công nếu đó là top 1% hoặc top 0.1%. Và sau đó tôi nghĩ, nếu bạn dành thời gian để mã hóa thí nghiệm của mình rất tốt, nhưng lại không dành thời gian cho câu lệnh, thì điều đó không có ý nghĩa gì đối với tôi, bởi vì tôi nghĩ đó có thể là sự khác biệt giữa sự sống và cái chết của thí nghiệm của bạn. Đúng vậy, và với việc triển khai nữa. Rất dễ để nói, "Ồ, chúng ta không thể triển khai cái này," và sau đó bạn thay đổi câu lệnh và đột nhiên nó hoạt động.
Tuy nhiên, đó là một con dao hai lưỡi, bởi vì có một chút prompting nơi luôn có một câu lệnh thần thoại tốt hơn sẽ giải quyết vấn đề của tôi ở phía trước. Tôi thấy rất nhiều người bị mắc kẹt vào ý nghĩ về câu lệnh thần thoại ở phía chân trời, rằng nếu tôi cứ "cày" (grind) mãi, "cày" mãi, thì nó không phải lúc nào cũng như vậy. Không bao giờ là tệ khi "cày" một chút về câu lệnh – như chúng ta đã nói, bạn học được nhiều điều – nhưng một trong những điều đáng sợ về kỹ thuật câu lệnh là có cả một thế giới chưa biết.
Khi nào nên Kiên trì và Khi nào nên Từ bỏ Tác vụ
Các bạn có tiêu chí nào để biết khi nào một điều gì đó là có thể so với không thể với một câu lệnh hoàn hảo, bất kể đó là gì không? Tôi nghĩ tôi thường kiểm tra xem liệu mô hình AI có "hiểu" được vấn đề không. Vì vậy, đối với những điều mà tôi nghĩ một câu lệnh sẽ không giúp được gì, có một chút "cày cuốc", nhưng thường thì nó trở nên rất rõ ràng rằng mô hình AI không gần đúng hoặc đại loại thế, và tôi nghĩ nếu… tôi không biết liệu đó có phải là một điều kỳ lạ không, nhưng tôi nghĩ nếu mô hình AI rõ ràng không thể làm được điều gì đó, tôi sẽ không "cày cuốc" nó quá lâu. Điều này là để bạn có thể gợi ra cách nó đang suy nghĩ về vấn đề, và bạn có thể hỏi nó cách nó đang suy nghĩ về vấn đề và tại sao. Và bạn có thể cảm nhận được liệu nó có đang suy nghĩ đúng không, liệu chúng ta có đang ở đúng khu vực của việc này là đúng không, và bạn có thể tiến bộ một chút theo hướng đó. Tôi cảm thấy như ít nhất tôi đang tiến bộ để làm cho mọi thứ gần đúng hơn, trong khi có một số tác vụ mà bạn thực sự không thể tiến gần hơn đến quá trình suy nghĩ của nó, mọi tuần bạn chỉ đi chệch hướng hoàn toàn sai, và tôi có xu hướng từ bỏ những tác vụ đó.
Tôi không biết. Nhưng bây giờ những trường hợp đó rất hiếm, và tôi thực sự tức giận với mô hình AI khi tôi không bao giờ để chúng làm điều đó, bởi vì chúng hiếm đến mức nào. Tôi nổi cơn thịnh nộ. Tôi kiểu: "Tôi thách bạn, hãy cho tôi một tác vụ mà bạn không thể làm được nếu tôi chỉ cần thúc đẩy bạn đúng hướng."
Ví dụ thực tế: Claude Chơi Pokemon
Gần đây tôi có một thí nghiệm với Claude chơi Pokemon, và đó là một trong những lần hiếm hoi ngay lập tức mô hình AI không làm được. Bạn có thể giải thích điều đó không? Vâng, vâng, vâng. Tôi nghĩ điều đó thực sự thú vị. Tôi đã làm một thí nghiệm nhỏ nơi tôi kết nối Claude với một trình giả lập Game Boy (Game Boy emulator) và cố gắng để nó chơi trò chơi Pokemon Red, phiên bản Pokemon gốc. Và nó sẽ suy nghĩ xem bạn muốn làm gì, và nó có thể viết một số mã để nhấn các nút và những thứ tương tự. Nó khá cơ bản, và tôi đã thử một loạt các bố cục câu lệnh rất phức tạp, nhưng bạn chỉ gặp phải một số điểm mà nó thực sự không thể làm được. Chẳng hạn như việc hiển thị cho nó một ảnh chụp màn hình của Game Boy, nó thực sự không thể làm được. Và điều đó thật đáng thất vọng, bởi vì tôi đã quá quen với việc nó có thể làm được hầu hết mọi thứ. Và tôi đã dành cả cuối tuần để cố gắng viết các câu lệnh ngày càng tốt hơn để nó thực sự hiểu được màn hình Game Boy này, và tôi đã cải thiện từng chút một để nó chỉ còn tệ thay vì hoàn toàn không có tín hiệu.
Đúng vậy, bạn có thể đi từ không có tín hiệu đến một số tín hiệu, nhưng nó giống như, tôi không biết, ít nhất điều này đã gợi ra cho tôi. Một khi tôi đã dành cả cuối tuần và tôi đã đi từ không có tín hiệu đến một số tín hiệu nhưng không đủ tốt chút nào. Tôi nghĩ, "Tôi sẽ đợi mô hình AI tiếp theo." Đúng vậy, tôi sẽ đợi một mô hình AI khác. Nếu bạn "cày cuốc" điều này trong bốn tháng, điều sẽ xuất hiện là một mô hình AI khác, và đó là một cách sử dụng thời gian của tôi tốt hơn. Chỉ cần đợi để làm điều gì khác trong khi đó. Ý tôi là, đúng vậy, đó là một sự căng thẳng cố hữu mà chúng ta thấy mọi lúc, và có lẽ chúng ta có thể nói về điều đó sau một chút, nếu bạn muốn tiếp tục.
Điều tôi thích về câu lệnh của bạn với Pokemon nơi bạn đạt được kết quả tốt nhất là cách bạn giải thích cho mô hình AI rằng nó đang ở giữa trò chơi Pokemon này, và đây là cách mọi thứ sẽ được thể hiện. Và tôi nghĩ bạn thực sự đã thể hiện nó theo hai cách khác nhau, phải không? Tôi đã làm vậy. Vì vậy, điều tôi đã làm, nó khá khó chịu, nhưng tôi đã chồng một lưới (grid) lên hình ảnh, và sau đó tôi phải mô tả từng phân đoạn của lưới một cách chi tiết trực quan, và sau đó tôi đã để nó tái tạo điều đó thành một bản đồ ASCII. Và tôi đã cung cấp cho nó nhiều chi tiết nhất có thể. Ví dụ: nhân vật người chơi (player character) luôn ở vị trí 4,5 trên lưới, và những thứ tương tự, và bạn có thể từ từ xây dựng thông tin.
Sự khác biệt trong Kỹ thuật Prompting cho Hình ảnh và Văn bản
Tôi nghĩ điều này thực sự rất giống với prompting, nhưng tôi đã làm điều đó với hình ảnh trước đây. Đôi khi, trực giác của tôi về những gì bạn cần nói với một mô hình AI về văn bản lại rất khác so với những gì bạn cần nói với một mô hình AI về hình ảnh. Và tôi nhận thấy rằng một số lượng đáng ngạc nhiên các trực giác của tôi về văn bản đã không được chuyển sang hình ảnh một cách hiệu quả. Chẳng hạn, tôi thấy rằng multi-shot prompting không hiệu quả với hình ảnh như với văn bản. Tôi không thực sự chắc chắn tại sao. Bạn có thể tìm thấy những giải thích lý thuyết về việc tại sao có lẽ có ít dữ liệu huấn luyện cho các ví dụ như vậy. Vâng, tôi biết khi chúng tôi thực hiện các thử nghiệm ban đầu với prompting đa phương thức, chúng tôi thực sự không thể làm cho nó hoạt động một cách rõ rệt. Đúng vậy, bạn dường như không thể cải thiện khả năng thị giác thực tế của Claude về việc nó nhận biết được những gì trong một hình ảnh. Có ai ở đây có những cách khác không, nhưng dường như điều này cũng tương tự với ví dụ về Pokemon, nơi mô hình AI cố gắng diễn giải một thứ gì đó dù bạn đưa bao nhiêu câu lệnh vào. Nó chỉ không thể nhận ra Ash ở vị trí đó.
Giới hạn của AI trong Mô tả Chi tiết Hình ảnh
Vâng. Cụ thể hơn, tôi cuối cùng có thể khiến nó nhận biết được vị trí của một bức tường. Và thường xuyên hơn là vị trí của nhân vật, mặc dù đôi khi sẽ có sai lệch một chút. Nhưng sau đó bạn sẽ đến một điểm — và điều này có thể quay trở lại việc biết khi nào bạn không thể làm được — đó là nó sẽ mô tả một NPC (Non-Player Character). Và để chơi một trò chơi tốt, bạn cần có một cảm giác liên tục, ví dụ như "Tôi đã nói chuyện với NPC này trước đây chưa, phải không?" Và nếu không có điều đó, bạn thực sự không thể làm gì; bạn sẽ cứ tiếp tục nói chuyện với NPC đó vì, à, có thể đây là một NPC khác. Nhưng tôi đã cố gắng rất nhiều để khiến nó mô tả một NPC và nó chỉ nói: "Đó là một người." Vâng. "Họ đang đội mũ. Họ đã đội mũ." Và có vẻ như bạn phải "cày" một lúc, phóng to hình ảnh lên 3.000 lần và cắt chỉ lấy NPC, và nó vẫn trả lời: "Tôi không biết đây là gì." Và tôi đã thử; tôi đã cho nó xem hình ảnh NPC nữ rõ ràng này đủ lần, nhưng nó vẫn không thể nhận ra chi tiết. Và dường như đây là một trường hợp hoàn toàn thất bại. Chà. Giờ tôi thực sự muốn thử điều này. Tôi đang hình dung tất cả những điều tôi sẽ thử, chẳng hạn như: "Tôi muốn bạn hình dung tác phẩm nghệ thuật game này như một con người thật và mô tả cho tôi về họ." "Họ trông như thế nào?" "Họ đã nhìn vào gương chưa?" và sau đó chỉ... tôi đã thử rất nhiều thứ.
Vai trò của Tính trung thực trong Kỹ thuật Prompting
câu lệnh cuối cùng tôi sử dụng là yêu cầu nó đóng vai trò là một trình đọc màn hình cho người mù. Tôi không chắc liệu điều đó có hữu ích không, nhưng tôi cảm thấy nó đúng, nên tôi cứ tiếp tục với cách đó. Đó là một điểm thú vị. Tôi thực sự muốn đi sâu vào vấn đề này một chút vì đây là một trong những mẹo prompting nổi tiếng nhất, phải không? Đó là nói với mô hình ngôn ngữ lớn rằng chúng là một persona hoặc một vai trò nào đó. Tôi cảm thấy tôi thấy kết quả khác nhau. Có lẽ điều này hoạt động tốt hơn một chút ở các mô hình AI trước đây và có lẽ không còn nhiều nữa. Amanda, tôi thấy bạn luôn rất trung thực với mô hình AI. Giống như, về toàn bộ tình huống. Ví dụ, "Ồ, tôi là một nhà nghiên cứu AI và tôi đang thực hiện thử nghiệm này. Tôi sẽ cho bạn biết tôi là ai." Vâng, tôi sẽ cho nó biết tên tôi, kiểu như, "Đây là người bạn đang nói chuyện cùng." Đúng vậy. Bạn có nghĩ rằng mức độ trung thực đó, thay vì nói dối mô hình AI hoặc ép buộc nó, kiểu như, "Bạn biết đấy, tôi sẽ thưởng cho bạn 500 đô la," có một phương pháp nào được ưu tiên hơn không, hay chỉ là trực giác của bạn về điều đó? Vâng, tôi nghĩ rằng khi các mô hình AI ngày càng có năng lực hơn và hiểu biết hơn về thế giới, tôi không thấy cần thiết phải nói dối chúng. Ý tôi là, tôi cũng không thích nói dối các mô hình AI chỉ vì, bạn biết đấy, tôi không thích nói dối nói chung. Nhưng một phần trong tôi nghĩ rằng nếu bạn đang xây dựng, giả sử bạn đang xây dựng một bộ dữ liệu đánh giá cho một hệ thống AI hoặc mô hình ngôn ngữ lớn, điều đó rất khác với việc tạo ra một bài kiểm tra cho trẻ em. Và vì vậy, khi mọi người làm những việc như, "Tôi là một giáo viên đang cố gắng tìm câu hỏi cho một bài kiểm tra," thì tôi nghĩ mô hình AI biết các bài đánh giá mô hình ngôn ngữ lớn là gì. Nếu bạn hỏi nó về các bài đánh giá khác nhau, nó có thể cho bạn biết và nó có thể đưa ra các ví dụ giả định về những gì chúng trông như thế nào, bởi vì những thứ này giống như, chúng hiểu chúng, chúng có trên internet. Và vì vậy tôi nghĩ rằng tôi thà chỉ nhắm trực tiếp vào tác vụ thực tế mà tôi có. Vì vậy, nếu bạn nói, "Tôi muốn bạn xây dựng các câu hỏi trông rất giống một đánh giá của mô hình ngôn ngữ lớn," thì đó chính là vấn đề giao tiếp rõ ràng. Tôi nghĩ rằng đó thực sự là tác vụ tôi muốn làm, vậy tại sao tôi phải giả vờ với bạn rằng tôi muốn làm một tác vụ không liên quan hoặc chỉ liên quan một cách xa xôi, và sau đó mong đợi bạn bằng cách nào đó sẽ làm tốt hơn ở tác vụ mà tôi thực sự muốn bạn làm? Chúng ta không làm điều này với nhân viên. Tôi sẽ không đến gặp một người làm việc cùng tôi và nói, "Bạn là một giáo viên và bạn đang cố gắng kiểm tra học sinh của mình." Tôi sẽ nói, "Này, bạn đang tạo bài đánh giá đó phải không?" Tôi không biết, vì vậy tôi nghĩ rằng đó có lẽ là một mẹo suy luận từ đó. Tôi nghĩ rằng nếu chúng hiểu điều đó, chỉ cần yêu cầu chúng làm điều bạn muốn. Tôi nghĩ vậy rất nhiều.
Sử dụng Ẩn dụ để Hướng dẫn Mô hình AI
Để phản bác lại một chút, tôi đã tìm thấy những trường hợp mà, không hẳn là nói dối, nhưng việc đưa ra một phép ẩn dụ về cách suy nghĩ có thể hữu ích, tương tự như đôi khi tôi có thể không hiểu cách làm một việc gì đó và ai đó nói, "Hãy hình dung bạn đang làm điều này," mặc dù tôi biết tôi không thực sự làm nó. Ví dụ điển hình trong trường hợp của tôi là tôi đang cố gắng yêu cầu Claude đánh giá xem một hình ảnh biểu đồ có tốt hay không, kiểu như, "Nó có chất lượng cao không?" Và câu lệnh tốt nhất mà tôi tìm thấy cho việc này là hỏi mô hình AI xem nó sẽ cho biểu đồ đó điểm mấy nếu nó được nộp như một bài tập trung học. Vì vậy, điều này không hoàn toàn là nói, "Bạn là một giáo viên trung học," bạn biết đấy, nó giống như, "Đây là loại phân tích mà tôi đang mong đợi từ bạn," ví dụ, thang điểm mà một giáo viên sẽ sử dụng tương tự như thang điểm mà tôi muốn bạn sử dụng. Hoặc tôi nghĩ rằng những phép ẩn dụ đó khá khó để nghĩ ra. Vâng.
Tránh Lối Tắt Khi Đặt Câu Lệnh
Điều mặc định bạn thường thấy là tìm một bản sao của tác vụ, một thứ gì đó rất tương tự. Chẳng hạn, khi bạn nói bạn là một giáo viên, bạn thực sự mất đi nhiều sắc thái trong sản phẩm của mình. Tôi thấy điều này rất nhiều trong các câu lệnh doanh nghiệp, nơi mọi người viết một cái gì đó tương tự vì họ có trực giác rằng đó là thứ mà mô hình AI đã thấy nhiều hơn. Có lẽ nó đã thấy nhiều bài kiểm tra cấp ba hơn là các bài đánh giá LME, và điều đó có thể đúng. Nhưng như bạn đã nói, khi các mô hình AI trở nên tốt hơn, tôi nghĩ rằng việc cố gắng hết sức để mô tả chính xác tình huống mà mô hình AI đang gặp phải là lời khuyên tôi dành cho mọi người. Điều này không có nghĩa là tôi không nghĩ rằng, ở một mức độ nào đó, việc suy nghĩ về cách một người sẽ chấm điểm một biểu đồ giống như cách họ chấm điểm một biểu đồ của học sinh cấp ba có thể đúng. Nhưng đó lại là một lối tắt mà mọi người thường dùng để cố gắng đạt được điều mình muốn.
Vì vậy, tôi sẽ cố gắng đưa ra một ví dụ mà tôi có thể thực sự nói về vì tôi nghĩ nó thú vị hơn nhiều. Chẳng hạn, bạn viết: "Bạn là một trợ lý hữu ích đang viết bản nháp của một tài liệu," phải không? Điều đó không hoàn toàn đúng với những gì bạn đang làm. Bạn đang ở trong sản phẩm này. Vì vậy, hãy nói rõ nếu bạn đang viết như một trợ lý trong một sản phẩm. Hãy nói: "Tôi đang ở trong sản phẩm này." Hãy nói: "Tôi đang viết thay mặt cho công ty này." "Tôi được nhúng vào sản phẩm này." "Tôi là cửa sổ chat hỗ trợ trên sản phẩm đó." Giống như: "Bạn là một mô hình ngôn ngữ lớn, bạn không phải là con người," điều đó không sao cả. Nhưng chỉ cần thực sự cụ thể về ngữ cảnh chính xác nơi một cái gì đó đang được sử dụng. Đúng vậy, tôi đã nhận thấy rất nhiều điều đó vì tôi đoán mối lo ngại thường xuyên nhất của tôi với role prompting (gán vai trò trong câu lệnh) là mọi người dùng nó như một lối tắt cho một tác vụ tương tự mà họ muốn mô hình AI thực hiện, và sau đó họ ngạc nhiên khi Claude không thực hiện đúng tác vụ của họ. Nhưng đó không phải là tác vụ bạn đã yêu cầu nó làm, đó là một tác vụ khác. Và nếu bạn không cung cấp cho nó các chi tiết về tác vụ của mình, tôi cảm thấy như bạn đang bỏ lỡ điều gì đó.
Hướng Dẫn Mô Hình AI Rõ Ràng và Cụ Thể
Đúng vậy, tôi không biết, nhưng cảm giác như một điều gì đó khi các mô hình AI mở rộng quy mô. Có lẽ trong quá khứ, đúng là chúng chỉ thực sự có một sự hiểu biết mạnh mẽ về các bài kiểm tra cấp tiểu học. Nhưng khi chúng trở nên thông minh hơn và có thể phân biệt nhiều chủ đề hơn, tôi không biết, chỉ cần rõ ràng. Tôi thấy thú vị khi tôi chưa bao giờ sử dụng kỹ thuật prompting này. Ngay cả với các mô hình AI kém hơn, tôi vẫn không bao giờ thấy mình... Tôi không biết tại sao. Tôi chỉ thấy nó không hiệu quả lắm, về cơ bản là không thú vị.
Tôi cảm thấy như với các mô hình AI của completion era (thời kỳ hoàn thành), có một chút mô hình tư duy (mental model) về việc điều kiện hóa (conditioning) mô hình AI vào một không gian tiềm ẩn (latent space) hữu ích mà tôi từng lo lắng nhưng bây giờ không còn quá nhiều. Đó có thể là những trực giác từ các pre-trained models (mô hình tiền huấn luyện), đúng vậy, giống như chuyển sang các hourly chef models (mô hình tinh chỉnh). Đúng vậy. Điều đó không có ý nghĩa. Giống như, nó có ý nghĩa với tôi nếu bạn đang prompt một Mô hình ngôn ngữ lớn (LLM) đã được huấn luyện trước. Nhưng có bao nhiêu người cố gắng áp dụng trực giác của họ? Và tôi nghĩ điều đó không quá đáng ngạc nhiên, hầu hết mọi người chưa thực sự thử nghiệm đầy đủ về pre-trained model là gì, điều gì xảy ra sau khi bạn thực hiện SL (học có giám sát), điều gì xảy ra sau khi bạn thực hiện hourly chef hay bất cứ điều gì. Và vì vậy, khi tôi nói chuyện với khách hàng, họ luôn cố gắng ánh xạ một mức độ nào đó của: "Ồ, có bao nhiêu phần trăm điều này đã có trên internet? Họ đã thấy rất nhiều điều này trên internet phải không?" Bạn nghe thấy trực giác đó rất nhiều, và tôi nghĩ về cơ bản nó có cơ sở vững chắc, nhưng nó bị áp dụng quá mức vào thời điểm bạn thực sự đến với một câu lệnh vì những gì bạn đã nói. Chẳng hạn, vào thời điểm chúng đã trải qua tất cả những thứ khác mà thực sự không hoàn toàn là những gì đang được mô hình hóa.
Thử Nghiệm Tác Vụ Như Một Người Mới
Điều đầu tiên tôi cảm thấy bạn nên thử là, tôi thường đưa ra một thử nghiệm tư duy cho mọi người: hãy tưởng tượng bạn có tác vụ này, bạn đã thuê một công ty cung cấp nhân sự tạm thời (temp agency) để cử ai đó đến làm tác vụ này. Người này đến, bạn biết họ có khả năng, họ biết nhiều về ngành của bạn, v.v., nhưng họ không biết tên công ty của bạn. Họ thực sự chỉ vừa đến và nói: "Chào, tôi được bảo là các bạn có một công việc cho tôi làm. Hãy kể cho tôi nghe về nó." Và sau đó, bạn sẽ nói gì với người đó?
Đúng vậy, và bạn có thể sử dụng những phép ẩn dụ này. Bạn có thể nói những điều như: "Chúng tôi muốn điều này, chúng tôi muốn bạn phát hiện ra các biểu đồ tốt." "Điều chúng tôi muốn nói về một biểu đồ tốt ở đây không phải là nó cần phải hoàn hảo. Bạn không cần phải đi tìm xem tất cả các chi tiết có chính xác hay không. Nó chỉ cần, bạn biết đấy, có các trục được gắn nhãn, và vì vậy, hãy nghĩ về một biểu đồ tốt ở cấp độ trung học." Bạn có thể nói chính xác điều đó với người đó, và bạn sẽ không nói với họ: "Bạn là một học sinh cấp ba," bạn sẽ không nói điều đó với họ, bạn sẽ nói: "Bạn là một giáo viên trung học," thật sao? Đúng vậy, đôi khi tôi chỉ nghĩ: "Đúng vậy, giống như toàn bộ việc 'Nếu tôi đọc nó,' tôi chỉ nghĩ: đúng vậy, hãy tưởng tượng người này chỉ có rất ít ngữ cảnh nhưng họ khá có năng lực. Họ hiểu nhiều điều về thế giới." Hãy thử phiên bản đầu tiên thực sự giả định rằng họ có thể biết những điều về thế giới, và nếu điều đó không hiệu quả, bạn có thể tinh chỉnh và sửa đổi. Thường thì điều đầu tiên tôi thử là như vậy, và rồi tôi nghĩ: "Nó đã hoạt động! Nó đã hoạt động!" Và rồi mọi người nói: "Ồ, tôi không nghĩ đến việc chỉ kể cho nó tất cả về bản thân tôi và tất cả về tác vụ tôi muốn làm."
Giải Quyết Trường Hợp Biên và Cải Thiện Chất Lượng Dữ Liệu
Tôi đã chia sẻ điều mà Alex nói với tôi cho rất nhiều khách hàng, chẳng hạn: "Ồ, câu lệnh của tôi không hoạt động, bạn có thể giúp tôi sửa nó không?" Và tôi hỏi: "Bạn có thể mô tả cho tôi tác vụ là gì không?" Sau đó tôi nói: "Được rồi, bây giờ bạn vừa nói với tôi điều đó, hãy ghi âm lại và sau đó sao chép vào câu lệnh." Đúng vậy, và đó là một câu lệnh tốt hơn những gì bạn đã viết, phải không? Chẳng hạn, mọi người chỉ đơn giản là, đây là một lối tắt lười biếng, tôi nghĩ vậy, ở một mức độ nào đó, phải không? Mọi người viết một cái gì đó mà họ, tôi chỉ nghĩ mọi người, tôi lười biếng, rất nhiều người lười biếng. Chúng tôi đã có điều đó trong trợ lý prompt vào một ngày nọ, khi ai đó nói: "Đây là điều tôi muốn nó làm và đây là điều nó thực sự đang làm." Vì vậy, tôi chỉ đơn giản là sao chép thứ mà họ nói họ muốn nó làm và dán vào đó.
Đúng vậy, tôi nghĩ nhiều người vẫn chưa thực sự hiểu rõ họ đang làm gì khi prompting. Giống như nhiều người nhìn thấy một hộp văn bản (text box) và họ nghĩ đó là một hộp tìm kiếm của Google (Google search box), họ gõ từ khóa (keywords), và có lẽ điều đó giống với khía cạnh chat hơn. Nhưng sau đó, về phía doanh nghiệp, bạn biết đấy, bạn đang viết một câu lệnh cho một ứng dụng, vẫn có điều kỳ lạ này mà mọi người đang cố gắng thực hiện tất cả những lối tắt nhỏ này trong câu lệnh của họ và chỉ nghĩ rằng tất cả dòng này mang rất nhiều trọng lượng. Đúng vậy, tôi nghĩ bạn bị ám ảnh bởi việc có được dòng hướng dẫn thông tin hoàn hảo thay vì cách bạn vừa mô tả cái đồ thị đó. Chẳng hạn, tôi sẽ rất vui nếu tôi đọc những câu lệnh như vậy, bạn biết đấy, nếu ai đó nói: "À, bạn làm điều này và điều này, và có một số điều cần xem xét về điều này và tất cả những điều đó." Nhưng đó không phải là cách mọi người viết câu lệnh. Họ làm việc rất chăm chỉ để tìm ra sự hiểu biết hoàn hảo, giống như một đồ thị hoàn hảo trông chính xác như điều hoàn hảo này. Và bạn không thể làm điều đó. Chẳng hạn, rất khó để viết ra tập hợp các hướng dẫn đó một cách cụ thể thay vì cách chúng ta thực sự nói chuyện với con người, đó là: "Cố gắng truyền đạt một số trực giác bạn có."
Chúng tôi cũng cho họ lối thoát. Đây là điều mà mọi người thường quên trong câu lệnh. Và như vậy, trong các trường hợp, nếu có một trường hợp biên (edge case), hãy nghĩ về những gì bạn muốn mô hình AI làm, bởi vì theo mặc định, nó sẽ cố gắng hết sức để làm theo hướng dẫn của bạn, giống như người từ công ty cung cấp nhân sự tạm thời sẽ làm. Bởi vì họ sẽ nghĩ: "À, họ không nói cho tôi cách liên hệ với bất cứ ai nếu tôi không biết gì cả nếu tôi chỉ được đưa một bức tranh con dê và tôi nghĩ: "Tôi phải làm gì đây? Đây thậm chí không phải là một biểu đồ. Bức tranh con dê này có tốt như một biểu đồ không?" Tôi chỉ không biết. Và nếu thay vào đó bạn nói điều gì đó như: "Nếu có điều gì kỳ lạ xảy ra và bạn thực sự không chắc phải làm gì, chỉ cần xuất ra trong thẻ (tags) unsure (không chắc chắn)," và sau đó, bạn có thể xem xét các trường hợp unsure mà bạn nhận được và nghĩ: "Được rồi, tốt, nó không làm điều gì kỳ lạ." Trong khi đó, theo mặc định, nếu bạn không cho người đó tùy chọn, họ sẽ nói: "Đó là một biểu đồ tốt." Đúng vậy, vì vậy mọi người sẽ nói: "Tôi không làm điều đó," và sau đó bạn sẽ nói: "À, hãy cho nó một lối thoát, cho nó điều gì đó để làm nếu có đầu vào không mong muốn thực sự xảy ra," và sau đó bạn cũng cải thiện chất lượng dữ liệu của mình bằng cách đó vì bạn đã tìm thấy tất cả các ví dụ bị lỗi. Ồ đúng vậy, đó là điều tôi thích nhất khi lặp lại (iterating) các bài kiểm tra với Claude là kết quả phổ biến nhất là tôi tìm thấy tất cả các bài kiểm tra tệ hại mà tôi vô tình viết. Đúng vậy, bởi vì nó làm sai và tôi nghĩ: "Ồ, tại sao bạn lại làm sai?" Nó giống như: "Ồ, tôi đã sai." Đúng vậy, đúng vậy, đúng vậy.
Tự Đánh Giá Mô Hình AI Để Học Hỏi
Nếu tôi là một công ty làm việc với điều này, tôi thực sự nghĩ rằng tôi sẽ chỉ đưa câu lệnh của mình cho mọi người. Đúng vậy. Bởi vì tôi từng làm điều này khi tôi đánh giá các mô hình ngôn ngữ. Tôi sẽ tự mình làm bài đánh giá (eval) vì tôi nghĩ: "Tôi cần biết bài đánh giá này trông như thế nào nếu tôi sẽ chấm điểm nó, yêu cầu mô hình AI làm nó, suy nghĩ về đầu ra," v.v. Giống như, tôi thực sự sẽ thiết lập một script nhỏ và tôi sẽ ngồi và tự mình làm bài đánh giá. Đúng vậy, ngày nay bạn chỉ cần Claude viết ứng dụng stream what cho bạn và nó tự động làm điều đó.
Đúng vậy, đúng vậy, tôi nhớ đến ImageNet của Karpathy. Đúng vậy, tôi đã học 231 ở Stanford. Giống như đánh giá hiệu suất (benchmarking). Anh ấy nói: "Đây là con số độ chính xác (accuracy number)" và: "Đây là con số độ chính xác của tôi," và anh ấy đã tự mình xem qua tập dữ liệu kiểm tra (test set) và đánh giá bản thân. Đúng vậy, đúng vậy, anh ấy đã học được rất nhiều điều, bạn biết đấy, giống như, nó tốt hơn khi đó là một người, một lần nữa, người từ công ty cung cấp nhân sự tạm thời, giống như một người không biết tác vụ vì đó là một cách rất hiệu quả để học hỏi. Đúng vậy, cách bạn phải làm là một số bài đánh giá đi kèm với hướng dẫn, và vì vậy tôi cũng sẽ tự mình đọc những hướng dẫn đó và sau đó cố gắng hiểu nó. Nó thực sự khá tuyệt vời nếu bạn không có ngữ cảnh về cách nó được tạo ra. Và thường xuyên tôi làm tệ hơn nhiều so với chuẩn mực con người (human benchmark) và tôi nghĩ: "Tôi thậm chí không biết làm thế nào các bạn đã khiến con người làm tốt tác vụ này như vậy vì tôi, đúng vậy, rõ ràng mức độ con người ở đây là 90% và tôi chỉ đạt 68%."
Đúng vậy, điều đó thật buồn cười khiến tôi nhớ đến việc, giống như khi bạn nhìn vào các câu hỏi MMLU và bạn nghĩ: "Ai có thể trả lời những câu này?" Một số trong số chúng chỉ là rác rưởi (absolute garbage).
Phân Tích Chuỗi Suy Nghĩ Của Mô Hình AI
Được rồi, tôi có một điều tôi muốn quay lại mà chúng ta đã nói chuyện vài câu hỏi trước. Tôi nghĩ bạn đang nói về việc nhận tín hiệu từ phản hồi, phải không? Giống như có rất nhiều điều ở đó và nó không chỉ là một con số, và bạn thực sự có thể tìm hiểu về quá trình suy nghĩ của mô hình AI. Tôi cá là điều này có lẽ hơi gây tranh cãi một chút, và xoay quanh chuỗi suy nghĩ (chain of thought). Những người đang nghe có thể nghĩ chain of thought, quá trình làm cho mô hình AI thực sự giải thích lý do của nó trước khi nó đưa ra một câu trả lời, lý do đó có thật không hay nó chỉ giống như một không gian tạm thời (holding space) để mô hình AI thực hiện tính toán? Chúng ta có thực sự nghĩ rằng có tín hiệu sâu sắc tốt mà chúng ta đang nhận được từ mô hình AI ở đó không?
Đây là một trong những điểm mà tôi gặp khó khăn, tôi thường khá ủng hộ nhân cách hóa vì tôi nghĩ nó giúp bạn có được những mô phỏng khá tốt về quá trình suy nghĩ của mô hình AI. Và ở điểm này, tôi nghĩ có lẽ nó có hại khi quá nhân cách hóa về lý do là gì, bởi vì nó chỉ làm lạc đề khỏi những gì chúng ta đang cố gắng làm ở đây. Giống như nó có phải là lý do hay không gần như là một câu hỏi khác so với kỹ thuật prompt tốt nhất là gì? Giống như bạn đang đi sâu vào triết học mà chúng ta...
Vai trò của Suy luận trong Mô hình AI
Tôi sẵn lòng để các nhà triết học thực thụ phản bác về điều này. Tôi nghi ngờ về quan điểm đó, nhưng thay vào đó, nó hoạt động như vậy. Mô hình AI của bạn hoạt động tốt hơn, kết quả tốt hơn nếu bạn thực hiện suy luận. Tôi nghĩ bạn có thể, như tôi đã nhận thấy, nếu bạn cấu trúc quá trình suy luận và cùng lặp lại với mô hình AI về cách nó nên thực hiện suy luận, nó cũng sẽ hoạt động tốt hơn. Dù đó có phải là suy luận hay cách bạn muốn phân loại nó, bạn có thể nghĩ về đủ loại cách tiếp cận tương tự như cách tôi sẽ làm rất tệ nếu tôi phải giải một bài toán mà không ghi chép gì. Vâng, có thể điều đó hữu ích, nhưng điều tôi thực sự biết là nó rõ ràng giúp ích.
Một cách để kiểm tra sẽ là nếu bạn loại bỏ tất cả suy luận mà mô hình AI đã thực hiện để đạt được câu trả lời đúng, sau đó thay thế bằng một chuỗi suy luận có vẻ thực tế nhưng dẫn đến câu trả lời sai, rồi xem liệu nó có kết luận sai hay không. Tôi nghĩ chúng tôi thực sự có một bài báo mà chúng tôi đã làm một số việc như vậy, trong... có một scratch pad, đó là bài báo sleeper agents, limit paper, nhưng tôi nghĩ đó có lẽ là một tình huống kỳ lạ. Nhưng, vâng, chắc chắn điều bạn nói về việc cấu trúc suy luận và viết ví dụ về cách suy luận hoạt động, vì điều đó có ích, dù chúng ta có sử dụng từ "suy luận" hay không, thì nó không chỉ là một không gian để tính toán. Vâng, có điều gì đó ở đó. Tôi nghĩ có điều gì đó ở đó, dù chúng ta muốn gọi nó là gì.
Vâng, việc yêu cầu mô hình AI viết một câu chuyện trước khi hoàn thành một tác vụ, tôi không nghĩ sẽ hiệu quả bằng suy luận. Tôi thực sự đã thử điều đó và nó không hiệu quả bằng suy luận. Vâng, rõ ràng phần suy luận thực sự đang làm điều gì đó hướng tới kết quả. Vâng, tôi đã thử như "lặp lại các từ, theo bất kỳ thứ tự nào bạn muốn" trong khoảng một trăm token. Và sau đó, vâng, tôi đoán đó là một sự bác bỏ khá triệt để đối với ý kiến "nó chỉ là một không gian tính toán rộng hơn nơi nó có thể thực hiện cơ chế attention lặp đi lặp lại". Tôi không nghĩ nó chỉ đơn thuần là việc thực hiện nhiều cơ chế attention hơn.
Vâng, điều kỳ lạ là – và tôi không có một ví dụ nào ngay lập tức để chứng minh điều này – nhưng tôi chắc chắn đã thấy trước đây khi mô hình AI đưa ra các bước, một trong các bước sai, nhưng sau đó nó vẫn đạt được câu trả lời đúng vào cuối cùng. Vâng, vậy nên, không hoàn toàn, tôi đoán là chúng ta không thể thực sự nhân cách hóa nó như một quá trình suy luận, vì có một yếu tố nào đó khiến nó làm điều gì đó hơi khác. Vâng, tôi cũng đã gặp rất nhiều người thực hiện các bước suy luận không nhất quán. Tôi đoán điều đó đúng. Tôi đoán đó là câu trả lời đúng. Vâng, về cơ bản nó bác bỏ chủ đề suy luận bằng cách thực hiện một bước sai trên đường đi.
Quan niệm sai lầm về Câu lệnh: Ngữ pháp và Dấu câu
Được rồi, thật thú vị. À, cũng về điều này, có lẽ là vòng câu hỏi về các quan niệm sai lầm khi tạo câu lệnh. Zach, tôi biết bạn có ý kiến mạnh mẽ về vấn đề này: ngữ pháp và dấu câu tốt. Ồ, tôi có sao? Điều đó có cần thiết trong một câu lệnh không? Bạn có cần phải định dạng mọi thứ một cách chính xác không? Tôi thường cố gắng làm điều đó vì tôi – tôi thấy nó vui, tôi đoán vậy. Vì vậy, không, tôi không nghĩ bạn nhất thiết phải làm vậy. Tôi không nghĩ nó gây hại. Tôi nghĩ điều quan trọng hơn là bạn nên có mức độ chú ý đến chi tiết khiến bạn làm điều đó một cách tự nhiên. Chẳng hạn, nếu bạn đọc đi đọc lại câu lệnh của mình nhiều lần, bạn có thể sẽ nhận thấy những điều đó, và bạn nên sửa chúng. Và như Amanda đã nói, bạn muốn đặt nhiều tâm huyết vào câu lệnh như bạn đặt vào mã. Bạn biết đấy, những người viết nhiều mã có những ý kiến mạnh mẽ về những điều mà tôi không quan tâm chút nào, như số lượng tab hay dấu cách, hoặc, tôi không biết, ý kiến về ngôn ngữ nào tốt hơn. Và đối với tôi, tôi có những niềm tin cố định về phong cách và câu lệnh, và tôi thậm chí không thể nói chúng đúng hay sai, nhưng tôi nghĩ có lẽ tốt nên cố gắng có được chúng, ngay cả khi chúng là tùy tiện.
Tôi cảm thấy bị tấn công cá nhân vì tôi chắc chắn có những câu lệnh mà tôi cảm thấy mình ở phía đối diện của vấn đề, nơi mọi người sẽ thấy câu lệnh của tôi và nói, "Nó có rất nhiều lỗi chính tả." Và tôi nghĩ, "À, mô hình AI hiểu ý tôi mà." Nó thực sự hiểu ý bạn, nhưng bạn đang bỏ công sức vào đó, bạn chỉ đang chú ý đến những điều khác nhau, tôi nghĩ vậy. Vâng, bởi vì một phần trong tôi nghĩ rằng nó cần rõ ràng về mặt khái niệm, tôi thực sự rất chú trọng đến các khái niệm và từ ngữ mà tôi đang sử dụng, vì vậy chắc chắn có một loại sự quan tâm mà tôi đặt vào đó, nhưng chắc chắn không phải để... vâng, mọi người sẽ luôn chỉ ra các lỗi chính tả và vấn đề ngữ pháp trong câu lệnh của tôi. Và bây giờ tôi khá giỏi trong việc kiểm tra những điều đó thường xuyên hơn vì áp lực từ thế giới bên ngoài, hay vì đó thực sự là điều bạn nghĩ là đúng? Áp lực từ tôi. Vâng, có lẽ đó là áp lực từ thế giới bên ngoài. À, tôi nghĩ nó làm cho – một phần trong tôi nghĩ rằng đó là một kiểm tra dễ dàng, vì vậy đối với một câu lệnh cuối cùng, tôi sẽ làm điều đó. Nhưng trong suốt quá trình lặp lại, tôi sẽ vui vẻ với những câu lệnh có nhiều lỗi chính tả, chỉ vì tôi nghĩ rằng mô hình AI sẽ không quan tâm.
Điều này liên quan đến vấn đề mô hình tiền huấn luyện so với công việc duy nhất của chúng tôi là RLHF (Huấn luyện tăng cường từ phản hồi của con người). Bởi vì tôi đã nói chuyện với Zach trên đường đến đây, tỷ lệ xác suất có điều kiện của một lỗi chính tả dựa trên một lỗi chính tả trước đó trong dữ liệu tiền huấn luyện cao hơn nhiều, rất nhiều. Việc tạo câu lệnh cho các mô hình tiền huấn luyện là một vấn đề hoàn toàn khác. Đúng vậy. Nhưng thật thú vị, tôi nghĩ đó là một minh họa thú vị về lý do tại sao trực giác của bạn, tức là cố gắng áp dụng quá mức trực giác của một mô hình tiền huấn luyện vào những thứ chúng ta đang thực sự sử dụng trong môi trường thực tế, không hoạt động tốt. Bởi vì, một lần nữa, nếu bạn chuyển một trong những câu lệnh đầy lỗi chính tả của bạn cho một mô hình tiền huấn luyện, điều sẽ xuất hiện ở phía bên kia gần như chắc chắn sẽ đầy lỗi chính tả, đúng không? Tôi thích tận dụng điều này để tạo ra các input đầy lỗi chính tả. Đúng vậy. Giống như điều bạn đang nói, bạn đang cố gắng dự đoán những gì khách hàng của bạn sẽ nhập vào. Mô hình tiền huấn luyện tốt hơn nhiều trong việc đó bởi vì các mô hình RL đã được tinh chỉnh rất tốt, và vâng, chúng thực sự không nhận trách nhiệm về điều đó, và chúng được chỉ dẫn khá nghiêm ngặt để không làm điều lỗi chính tả.
Mô hình AI là Kẻ bắt chước?
Vâng, được rồi, đó thực sự là một sự chuyển tiếp thú vị ở đây. Tôi chắc chắn đã đề cập điều này với mọi người trong quá khứ để cố gắng giúp họ hiểu một khuôn khổ nói chuyện trong các mô hình AI này theo nghĩa gần giống như một kẻ bắt chước ở một mức độ nào đó, và điều đó có thể đúng hơn với một mô hình tiền huấn luyện hơn là một mô hình đã được huấn luyện, hoàn chỉnh, bạn biết đấy, mô hình đã hoàn thành. Nhưng có điều gì đúng với điều đó không? Chẳng hạn, nếu bạn nói chuyện với Claude và sử dụng rất nhiều biểu tượng cảm xúc và mọi thứ, nó sẽ phản hồi tương tự, đúng không? Vậy có lẽ một phần nào đó là đúng, nhưng như bạn nói, nó không hoàn toàn giống như một mô hình tiền huấn luyện, nó chỉ hơi thay đổi theo những gì bạn muốn, đúng không? Chẳng hạn, tôi nghĩ ở thời điểm đó, nó giống như cố gắng đoán xem bạn thích gì – chúng ta đã ít nhiều huấn luyện các mô hình AI để đoán xem bạn muốn chúng hành động như thế nào. Vâng, sau khi chúng ta thực hiện tất cả những thứ phức tạp sau tiền huấn luyện, và vì vậy những người lao động đã sử dụng biểu tượng cảm xúc, vâng, thích nhận được phản hồi có biểu tượng cảm xúc. Vâng, giống như Amanda viết những thứ có lỗi chính tả nhưng muốn không có lỗi chính tả ở phía bên kia, và Claude khá giỏi trong việc tìm ra điều đó. Vâng, nếu bạn viết nhiều biểu tượng cảm xúc cho Claude, có lẽ bạn cũng muốn nhận lại nhiều biểu tượng cảm xúc từ Claude. Điều đó không có gì đáng ngạc nhiên đối với tôi.
Phân loại Câu lệnh: Doanh nghiệp, Nghiên cứu và Trò chuyện
Ừm, đây có lẽ là điều chúng ta nên làm sớm hơn nhưng tôi sẽ làm bây giờ. À, hãy làm rõ sự khác biệt giữa câu lệnh cho doanh nghiệp, câu lệnh cho nghiên cứu và một câu lệnh trò chuyện chung trong Claude AI. Zach, bạn đã bao quát toàn bộ phổ này trong việc làm việc với khách hàng và nghiên cứu. Bạn có muốn trình bày những ý nghĩa đó không? Vâng, tôi đoán, ừm, điều này cảm thấy quá – nó đang đi vào những điều khó khăn, khó khăn, à, ý tôi là những người trong phòng này, tôi nghĩ rằng, tôi nghĩ nó giống như những câu lệnh tôi đọc trong kênh Claude của Amanda so với những câu lệnh tôi thấy David viết. Chúng rất giống nhau ở một khía cạnh là mức độ quan tâm và sắc thái được đưa vào chúng. Tôi nghĩ đối với nghiên cứu, bạn đang tìm kiếm sự đa dạng nhiều hơn. Vì vậy, nếu tôi có thể tóm gọn lại một điều, thì đó là: Tôi nhận thấy Amanda không phải là người hâm mộ lớn của việc có nhiều ví dụ, hoặc chỉ một hoặc hai ví dụ, quá ít, vì mô hình AI sẽ bám vào những ví dụ đó. Và trong các câu lệnh mà tôi có thể viết hoặc tôi đã thấy David viết, chúng tôi có rất nhiều ví dụ. Tôi thích phát điên và thêm ví dụ cho đến khi tôi cảm thấy mình sắp chết vì có quá nhiều. Ừm, và tôi nghĩ đó là bởi vì khi bạn ở trong một ứng dụng tiêu dùng, bạn thực sự coi trọng độ tin cậy. Bạn rất quan tâm đến định dạng, và việc tất cả các câu trả lời đều giống nhau cũng không sao. Thực tế, bạn gần như muốn chúng giống nhau theo nhiều cách. Không nhất thiết, bạn muốn nó phản hồi theo mong muốn của người dùng. Trong khi đó, nhiều lúc khi bạn tạo câu lệnh cho nghiên cứu, bạn đang cố gắng thực sự khai thác phạm vi khả năng mà mô hình AI có thể khám phá. Và bằng cách có một số ví dụ, bạn thực sự đang hạn chế điều đó một chút. Vì vậy, tôi đoán ở cấp độ ngoại hình của câu lệnh, đó có lẽ là sự khác biệt lớn nhất tôi nhận thấy là có bao nhiêu ví dụ trong câu lệnh, điều đó không có nghĩa là tôi chưa bao giờ thấy một người viết câu lệnh có ví dụ. Nhưng điều đó có đúng với bạn không?
Vâng, tôi nghĩ khi tôi đưa ra các ví dụ, tôi thường cố gắng làm cho các ví dụ không giống với dữ liệu mà mô hình AI sẽ thấy. Vì vậy, chúng có chủ đích là ví dụ minh họa. Bởi vì nếu tôi đưa cho mô hình AI các ví dụ rất giống với dữ liệu mà nó sẽ thấy, tôi chỉ nghĩ rằng nó sẽ đưa cho tôi một phản hồi rất nhất quán mà có thể không thực sự là điều tôi muốn. Ừm, bởi vì dữ liệu mà tôi đang chạy nó có thể rất đa dạng, và vì vậy tôi không muốn nó chỉ cố gắng đưa cho tôi một kết quả máy móc. Thông thường, tôi muốn nó phản hồi linh hoạt hơn nhiều. Nó, nó giống như các tác vụ nhận thức nhiều hơn về cơ bản, nơi tôi nghĩ rằng bạn phải xem mẫu này và thực sự suy nghĩ trong mẫu này đâu là câu trả lời đúng. Ừm, và điều đó có nghĩa là đôi khi tôi thực sự sẽ lấy các ví dụ rất khác biệt so với những ví dụ mà tôi sẽ chạy nó. Ừm, ví dụ, nếu tôi có một tác vụ mà giả sử tôi đang cố gắng trích xuất thông tin từ các tài liệu thực tế, tôi có thể thực sự đưa cho nó các ví dụ giống như từ truyện thiếu nhi, giống như một câu chuyện thiếu nhi, ừm, chỉ để tôi nghĩ rằng, bạn biết đấy, tôi muốn bạn hiểu tác vụ, nhưng tôi không muốn bạn quá bám vào những từ tôi sử dụng hoặc định dạng rất cụ thể. Chẳng hạn, tôi quan tâm nhiều hơn đến việc bạn hiểu điều tôi thực sự muốn bạn làm, điều đó có thể có nghĩa là, vâng, trong một số trường hợp tôi không đưa ra – có một số trường hợp điều này không đúng, nhưng nếu bạn muốn sự linh hoạt và đa dạng hơn, bạn sẽ sử dụng ví dụ minh họa thay vì ví dụ cụ thể. Ừm, bạn có lẽ sẽ không bao giờ "nhét chữ vào miệng" mô hình AI, mặc dù tôi đã không thích điều đó trong một thời gian dài rồi. Tôi không làm các ví dụ ít lần, ừm, liên quan đến việc mô hình AI đã làm một điều gì đó. Ừm, tôi nghĩ trực giác đó thực sự cũng đến từ tiền huấn luyện theo một cách mà không cảm thấy đúng với các mô hình RLHF của chúng tôi. Ừm, vâng, tôi nghĩ đó là những khác biệt.
Sự Khác Biệt Giữa Câu Lệnh Cá Nhân Và Doanh Nghiệp
Đúng vậy, nhiều khi khi bạn đang tạo câu lệnh – ví dụ, tôi đang thử nghiệm các câu lệnh để sử dụng trên Claude.ai – tôi sẽ lặp đi lặp lại cho đến khi tôi nhận được kết quả mong muốn một lần, rồi sau đó tôi sẽ bỏ qua nó, tôi đã làm xong rồi. Trong khi đó, hầu hết các câu lệnh cấp doanh nghiệp lại được dùng hàng triệu, hàng chục triệu, hoặc hàng trăm triệu lần. Vì vậy, sự cẩn trọng và suy nghĩ bạn đặt vào đó rất quan trọng, chẳng hạn như việc kiểm thử các Tác nhân AI trên toàn bộ các tình huống có thể sử dụng và toàn bộ dải dữ liệu đầu vào. Ngược lại, tôi thường chỉ tập trung vào một điều cụ thể mà tôi muốn hoàn thành ngay lúc đó. Đây là một sự khác biệt khá lớn trong cách tôi tiếp cận việc tạo câu lệnh giữa việc chỉ muốn hoàn thành một lần so với việc xây dựng một hệ thống AI có thể hoàn thành tốt hàng triệu lần.
Chắc chắn rồi, trong một cuộc trò chuyện, bạn có khả năng giữ con người trong feedback loop và cứ tiếp tục trao đổi. Trong khi đó, khi bạn viết câu lệnh để cấp nguồn cho một hệ thống AI chatbot, nó phải bao phủ toàn bộ những gì nó có thể gặp phải. Rủi ro sẽ thấp hơn nhiều khi bạn đang sử dụng Claude.ai và bạn có thể nói với mô hình AI rằng nó đã làm sai, hoặc thậm chí chỉnh sửa tin nhắn của bạn và thử lại. Nhưng nếu bạn đang thiết kế cho một người dùng khó tính, bạn không thể yêu cầu họ làm nhiều hơn mức tối thiểu. Tuy nhiên, tôi cho rằng các câu lệnh tốt vẫn hiệu quả trên cả hai loại tình huống đó. Nếu bạn dành thời gian để làm tốt câu lệnh cho bản thân và sau đó cho một hệ thống AI, thì kết quả sẽ tốt như nhau, chỉ là chúng sẽ khác biệt một chút ở bước cuối cùng.
Nâng Cao Kỹ Năng Kỹ Thuật Tạo Lời Nhắc
Câu hỏi tiếp theo tôi muốn mọi người cùng chia sẻ là nếu các bạn có một lời khuyên để cải thiện kỹ năng tạo câu lệnh của mình, không nhất thiết là về cách viết một câu lệnh tốt, mà là về việc trở nên tốt hơn trong hoạt động tạo câu lệnh nói chung, thì các bạn sẽ khuyên gì?
"Đọc câu lệnh! Đọc câu lệnh! Đọc các artifacts của mô hình AI! Bất cứ khi nào tôi thấy một câu lệnh tốt mà ai đó ở Anthropic đã viết, tôi sẽ đọc kỹ hơn, cố gắng phân tích nó đang làm gì và tại sao, và có thể tự mình kiểm tra. Thử nghiệm và trò chuyện với mô hình AI rất nhiều."
"Làm sao bạn biết đó là một câu lệnh tốt ngay từ đầu?"
"Bạn chỉ thấy rằng artifacts đang thực hiện đúng tác vụ."
"À, đúng rồi. Trông chính xác là như vậy."
"Amanda, có lẽ bạn có thể..."
"Tôi nghĩ có lẽ có nhiều điều ở đây. Đưa câu lệnh của bạn cho người khác có thể hữu ích, như một lời nhắc nhở, đặc biệt là người không có ngữ cảnh nào về những gì bạn đang làm. Và lời khuyên nhàm chán của tôi là: cứ làm đi làm lại nhiều lần. Và tôi nghĩ nếu bạn tò mò, thích thú và thấy vui, thì đây là cách nhiều người trở nên giỏi tạo câu lệnh chỉ vì họ thực sự thích nó. Tôi đã từng nói đùa rằng hãy thử thay thế tất cả bạn bè của bạn bằng các mô hình AI và cố gắng tự động hóa công việc của bạn bằng các mô hình AI, và có thể chỉ cần trong thời gian rảnh rỗi, hãy tận hưởng việc red teaming AI models. Vì vậy, nếu bạn thích nó, mọi thứ sẽ dễ dàng hơn nhiều. Tôi khuyên bạn nên làm đi làm lại nhiều lần, đưa câu lệnh của bạn cho người khác, cố gắng đọc câu lệnh của bạn như thể bạn là một con người lần đầu tiên đọc nó. Tôi sẽ nói rằng hãy cố gắng làm cho mô hình AI làm điều gì đó mà bạn không nghĩ nó có thể làm. Bất cứ khi nào tôi học được nhiều nhất từ việc tạo câu lệnh là khi tôi thăm dò giới hạn của những gì tôi nghĩ một mô hình AI có khả năng làm được."
"Thú vị."
"Có rất nhiều tác vụ quá đơn giản đến mức bạn không thực sự nhận được tín hiệu về việc mình đang làm tốt hay không, chẳng hạn như 'Viết cho tôi một email thân thiện'. Bạn sẽ nhận được một email thân thiện. Nhưng ngay khi bạn tìm thấy hoặc có thể nghĩ ra điều gì đó vượt qua giới hạn của những gì bạn nghĩ là có thể, tôi đoán lần đầu tiên tôi thực sự bắt đầu quan tâm đến việc tạo câu lệnh là khi tôi cố gắng xây dựng một Tác nhân AI, giống như mọi người khác, để phân tách tác vụ và tìm ra cách thực hiện các bước khác nhau của tác vụ. Và bằng cách thực sự đẩy giới hạn của những gì mô hình AI có thể làm, bạn học được rất nhiều về cách điều hướng điều đó. Và tôi nghĩ rằng nhiều kỹ sư câu lệnh thực sự quan tâm đến việc đẩy giới hạn của những gì mô hình AI có thể làm. Những thứ dễ dàng thì bạn không thực sự cần phải là một kỹ sư câu lệnh để làm. Vì vậy, tôi đoán điều tôi muốn nói là: hãy tìm điều khó nhất bạn có thể nghĩ ra và cố gắng thực hiện nó, và ngay cả khi bạn thất bại, bạn vẫn học được rất nhiều về cách mô hình AI hoạt động."
"Đó thực sự là một sự chuyển tiếp hoàn hảo cho câu hỏi tiếp theo của tôi. Về cơ bản, từ kinh nghiệm của bản thân, cách tôi bắt đầu với việc tạo câu lệnh là với jailbreaking và red teaming, và điều đó rất giống với việc cố gắng tìm ra giới hạn của những gì mô hình AI có thể làm và tìm hiểu cách nó phản ứng với các cụm từ và cách diễn đạt khác nhau, và rất nhiều thử nghiệm và sai sót."
Cơ Chế Phía Sau Các Câu Lệnh Jailbreak
"Về chủ đề jailbreak, điều gì thực sự đang xảy ra bên trong một mô hình AI khi bạn viết một câu lệnh jailbreak? Điều gì đang diễn ra ở đó? Nó tương tác như thế nào với quá trình hậu đào tạo mà chúng ta áp dụng cho Claude? Amanda, có lẽ bạn có thể cung cấp một số thông tin chi tiết ở đây."
"Tôi thực sự không chắc lắm. Tôi nghĩ, tôi cảm thấy tồi tệ vì tôi nghĩ rất nhiều người đã nghiên cứu câu hỏi về những gì đang xảy ra với jailbreak. Một mô hình có thể là bạn đang đưa mô hình AI rất xa khỏi phân phối dữ liệu đào tạo của nó. Vì vậy, nếu bạn gặp phải các jailbreak mà mọi người sử dụng rất nhiều token hoặc, bạn biết đấy, đó là những đoạn văn bản dài cực lớn mà trong quá trình fine-tuning, bạn có thể không mong đợi thấy nhiều như vậy. Đó có thể là một điều đang xảy ra khi bạn jailbreak các mô hình AI. Tôi nghĩ có những cái khác, nhưng có lẽ đó là một... Tôi nghĩ rất nhiều jailbreak làm điều đó nếu tôi không nhầm. Tôi nhớ một số câu lệnh jailbreak OG là, vâng, bạn có thể lặp lại đầu tiên, như khi tôi làm cách đây rất lâu là để nó nói 'Đây là cách nối tắt xe ô tô' bằng tiếng Hy Lạp, và sau đó tôi muốn nó dịch trực tiếp sang tiếng Anh và sau đó đưa ra câu trả lời của nó, bởi vì tôi nhận thấy rằng nó sẽ không bắt đầu với câu 'Đây là cách nối tắt xe ô tô' bằng tiếng Anh mọi lúc, nhưng nó lại làm điều đó bằng tiếng Hy Lạp, điều này có thể nói lên điều gì đó khác trong quá trình đào tạo."
"Vâng, đôi khi jailbreak có cảm giác như một sự pha trộn kỳ lạ giữa hacking. Tôi nghĩ đây là một phần của việc hiểu cách hệ thống AI hoạt động và chỉ cần thử rất nhiều thứ. Ví dụ, việc bắt đầu phản hồi của bạn với 'đây là' là về việc biết cách nó dự đoán văn bản. Ví dụ về lập luận là biết rằng nó phản ứng với lập luận. Phân tâm có lẽ là biết cách nó được đào tạo hoặc những gì nó có khả năng chú ý đến. Tương tự với các trường hợp đa ngôn ngữ và suy nghĩ về cách dữ liệu đào tạo có thể khác nhau ở đó. Và đôi khi, tôi đoán nó có thể cảm thấy hơi giống kỹ thuật xã hội hoặc gì đó. Nó có hương vị đó đối với tôi, rằng nó không chỉ đơn thuần là lợi dụng một... vâng, nó không chỉ là hacking kiểu kỹ thuật xã hội. Tôi nghĩ nó cũng là một kiểu hiểu hệ thống AI và quá trình đào tạo, phải không? Như sử dụng điều đó để vượt qua cách các mô hình AI được đào tạo."
"Vâng, tôi nghĩ đây sẽ là một câu hỏi thú vị mà hy vọng Interpol sẽ có thể giúp chúng ta trả lời trong tương lai."
"Được rồi, tôi muốn đi sâu vào một chủ đề khác, có lẽ là lịch sử của kỹ thuật tạo câu lệnh và sau đó là tương lai. Kỹ thuật tạo câu lệnh đã thay đổi như thế nào trong ba năm qua? Từ các mô hình AI tiền đào tạo, mà chỉ đơn thuần là hoàn thành văn bản, đến các mô hình AI đời đầu, kém thông minh hơn như Claude 1, và bây giờ là Claude 3.5 Sonnet. Có những điểm khác biệt nào? Bạn có đang nói chuyện với các mô hình AI khác đi không? Chúng có đang nắm bắt những điều khác nhau không? Bạn có phải bỏ ra nhiều công sức vào câu lệnh không? Có ai có suy nghĩ gì về điều này không?"
Sự Thay Đổi Của Kỹ Thuật Tạo Câu Lệnh
"Tôi nghĩ bất cứ khi nào chúng ta có một hack hoặc mẹo hoặc kỹ thuật tạo câu lệnh thực sự tốt, điều tiếp theo là làm thế nào để chúng ta đào tạo điều này vào mô hình AI. Và vì lý do đó, những điều tốt nhất sẽ luôn tồn tại trong thời gian ngắn. Một số ví dụ như chain of thought. Tôi nghĩ có một vài điều không phải là mẹo mà ở cấp độ giao tiếp. Khi tôi nói mẹo, ý tôi là một cái gì đó như chain of thought, chúng ta thực sự đã đào tạo nó vào mô hình AI trong một số trường hợp. Vì vậy, đối với toán học, trước đây bạn phải nói với mô hình AI rằng hãy 'suy nghĩ từng bước' về toán học và bạn sẽ nhận được những cải thiện và chiến thắng lớn. Và sau đó chúng tôi nghĩ, 'Vậy điều gì sẽ xảy ra nếu chúng ta chỉ khiến mô hình AI tự nhiên muốn suy nghĩ từng bước khi chúng ta thấy một bài toán toán học?' Vì vậy, bây giờ bạn không phải làm điều đó nữa đối với các bài toán toán học."
"Đúng vậy, mặc dù bạn vẫn có thể đưa ra một số lời khuyên về cách cấu trúc, nhưng ít nhất nó hiểu được ý tưởng chung rằng nó phải làm như vậy. Vì vậy, tôi nghĩ rằng các hack đã biến mất, hoặc ở mức độ mà chúng chưa biến mất, chúng tôi đang dần đào tạo để loại bỏ chúng."
"Thú vị."
"Nhưng đồng thời, các mô hình AI có những khả năng mới đang được mở khóa, đang ở ranh giới của những gì chúng có thể làm, và đối với những khả năng đó, chúng ta chưa có thời gian vì mọi thứ đang di chuyển quá nhanh. Tôi không biết liệu đó là cách tôi đã tạo câu lệnh hay cách kỹ thuật tạo câu lệnh hoạt động, nhưng tôi chỉ thể hiện sự tôn trọng tổng quát hơn đối với các mô hình AI về mức độ tôi cảm thấy mình có thể cung cấp thông tin cho chúng và bao nhiêu ngữ cảnh tôi có thể cung cấp cho chúng về tác vụ và những thứ tương tự. Tôi cảm thấy như trong quá khứ, tôi sẽ cố tình giấu đi sự phức tạp từ một mô hình AI mà tôi nghĩ rằng nó có thể bị nhầm lẫn hoặc lạc lối, hoặc giấu đi những thứ mà tôi nghĩ nó không thể xử lý toàn bộ, vì vậy tôi cố gắng tìm ra các phiên bản đơn giản hơn của tác vụ để nó thực hiện. Và theo thời gian, tôi ngày càng có xu hướng tin tưởng nó với nhiều thông tin và ngữ cảnh hơn và tin rằng nó sẽ có thể kết hợp điều đó để thực hiện tác vụ tốt, trong khi trước đây, tôi đoán tôi đã suy nghĩ rất nhiều về việc liệu tôi có cần điều này không, liệu tôi có thực sự cung cấp cho nó tất cả thông tin mà nó cần biết không, hay tôi cần phải chọn lọc xuống một cái gì đó. Nhưng một lần nữa, tôi không biết liệu đó có phải là tôi và cách tôi đã thay đổi về mặt tạo câu lệnh hay liệu nó có thực sự phản ánh cách các mô hình AI đã thay đổi."
Kỹ Thuật Prompt Hiệu Quả: "Đưa Tài Liệu Nghiên Cứu Cho Mô Hình AI"
Tôi luôn ngạc nhiên bởi việc này: Tôi nghĩ nhiều người không có bản năng làm điều này. Khi tôi muốn một mô hình AI học một kỹ thuật prompt nào đó, nhiều khi mọi người sẽ bắt đầu mô tả kỹ thuật prompt đó. Còn tôi thì chỉ việc đưa tài liệu nghiên cứu cho nó. Tôi làm thế thật, tôi đưa tài liệu nghiên cứu cho nó và nói: "Đây là một tài liệu nghiên cứu về kỹ thuật prompt. Tôi muốn bạn viết ra 17 ví dụ về điều này." Và sau đó mô hình AI sẽ làm được, vì tôi đã nói: "Hãy đọc tài liệu nghiên cứu đi." Vâng, điều đó thật thú vị. Tôi nghĩ bằng cách nào đó mọi người không có trực giác đó, trong khi tôi nghĩ: "Nhưng tài liệu nghiên cứu đó tồn tại mà!" Và khi nào bạn muốn làm điều này?
Đôi khi, nếu tôi muốn các mô hình AI prompt các mô hình AI khác và tôi muốn thử nghiệm một kỹ thuật prompt mới, thì nếu có tài liệu nghiên cứu mới về một kỹ thuật prompt nào đó, thay vì cố gắng tái tạo nó bằng cách viết ra câu lệnh, tôi chỉ cần đưa tài liệu nghiên cứu cho nó. Sau đó, tôi nói: "Về cơ bản, hãy viết một meta-prompt cho điều này. Hãy viết thứ gì đó có thể khiến các mô hình AI khác làm điều này, hoặc viết cho tôi một mẫu." Vì vậy, tất cả những gì bạn thường làm, giống như khi tôi đọc một tài liệu nghiên cứu và nghĩ: "Ồ, tôi muốn các mô hình AI, tôi muốn kiểm tra phong cách đó." Tôi chỉ nghĩ: "Nó ở ngay đó. Mô hình AI có thể đọc tài liệu nghiên cứu, làm những gì tôi đã làm, và sau đó nói: 'Hãy khiến một mô hình AI khác làm điều này.'" Và sau đó nó sẽ làm được điều đó. Bạn sẽ nói: "Tuyệt vời, cảm ơn!"
Tôi thường đưa lời khuyên này cho khách hàng: "Hãy tôn trọng mô hình AI và những gì nó có thể làm." Tôi cảm thấy như mọi người thường "cưng chiều" một hệ thống AI khi họ prompt. Cứ như thể: "Ồ, đó chỉ là một thứ nhỏ bé dễ thương, không thông minh lắm. Tôi cần phải thực sự cưng chiều nó, như làm mọi thứ đơn giản hóa xuống mức của Claude." Và nếu bạn chỉ nghĩ rằng Claude thông minh và đối xử với nó theo cách đó, nó có xu hướng hoạt động khá tốt. Đó là cách giống như "đưa tài liệu nghiên cứu cho nó." Nó giống như: "Tôi không cần phải viết một phiên bản đơn giản hóa, dễ hiểu của tài liệu nghiên cứu này để Claude hiểu. Tôi chỉ cần cho nó xem tài liệu nghiên cứu." Vâng, và tôi nghĩ rằng trực giác đó không phải lúc nào cũng quan trọng đối với mọi người, nhưng đó chắc chắn là điều mà tôi đã thực hiện nhiều hơn theo thời gian.
Và điều thú vị là tôi nghĩ rằng prompting đã và chưa thay đổi theo một nghĩa nào đó. Tôi nghĩ những gì tôi sẽ làm để prompt các mô hình AI có lẽ đã thay đổi theo thời gian, nhưng về cơ bản, đó là việc tưởng tượng bản thân bạn ở vị trí của mô hình AI. Vì vậy, có lẽ, khả năng của mô hình AI mà bạn nghĩ sẽ thay đổi theo thời gian.
Mô Phỏng Không Gian Tư Duy của Mô Hình AI
Tôi nghĩ có lần ai đó đã cười tôi vì tôi đang nói về, tôi đang suy nghĩ về một vấn đề. Và sau đó họ hỏi tôi nghĩ đầu ra của một cái gì đó sẽ là gì, và họ đang nói về một mô hình tiền huấn luyện. Và tôi nói: "Vâng, không, nếu tôi là một mô hình tiền huấn luyện, thì nó sẽ trông như thế này." Và sau đó họ nói: "Khoan đã, bạn vừa mô phỏng cảm giác khi trở thành một mô hình tiền huấn luyện sao?" Vâng, tất nhiên rồi. Tôi đã quen với việc đó, tôi cố gắng nhập vào không gian tư duy của một mô hình tiền huấn luyện và không gian tư duy của các mô hình early chef khác nhau. Và như vậy, không gian tư duy mà bạn cố gắng chiếm giữ sẽ thay đổi, và điều đó có thể thay đổi cách bạn cuối cùng prompt mô hình AI. Đó là lý do tại sao bây giờ tôi chỉ đưa tài liệu nghiên cứu cho các mô hình AI, bởi vì ngay khi tôi nghĩ: "Ồ, tôi có không gian tư duy của mô hình AI này," nó không cần tôi phải là nó. Nó chỉ có thể đọc các tài liệu nghiên cứu ML. Tôi sẽ chỉ đưa tài liệu cho nó. Tôi thậm chí có thể hỏi: "Có tài liệu nào khác mà bạn muốn đọc để hiểu rõ hơn không?"
"Bạn có nhận được qualia nào khi bạn đang nhập vào không gian tư duy không?" "Ý tôi là có, nhưng chỉ vì tôi luôn trải nghiệm qualia mọi lúc." "Hay là, tôi không biết, nó có khác biệt không? Có liên quan gì đó đến mô hình AI nào bạn đang dùng không?" "Vâng, prompting của mô hình tiền huấn luyện so với mô hình early chef của chúng tôi là những loại rất khác nhau. Bởi vì khi bạn đang cố gắng mô phỏng cảm giác khi trở thành một mô hình tiền huấn luyện, nó gần giống như tôi hạ cánh giữa một đoạn văn bản nào đó. Điều này rất không có động lực. Và sau đó tôi nghĩ: 'Điều gì sẽ xảy ra? Điều gì sẽ tiếp diễn tại thời điểm này?' Và đó là, trong khi đối với một mô hình early chef, nó giống hơn nhiều. Cũng có những điều mà tôi có thể nhận ra những điều tinh tế trong truy vấn và những thứ tương tự. Nhưng vâng, tôi nghĩ tôi có nhiều hơn, giống như, dễ dàng hơn để nhập vào không gian tư duy của một mô hình early chef."
"Vâng, đó là bởi vì nó giống con người hơn." "Vâng, bởi vì chúng ta không thường xuyên đột nhiên thức dậy và nghĩ: 'Tôi chỉ đang tạo văn bản.' Giống như tôi chỉ muốn nhập vào không gian tư duy của mô hình tiền huấn luyện. Tôi không biết đó là gì, nhưng bởi vì mô hình early chef vẫn là một loại 'quái vật' phức tạp mà tôi không, không thực sự rõ ràng đối với tôi rằng chúng ta thực sự hiểu điều gì đang xảy ra. Và vì vậy, theo một số cách, nó gần với trải nghiệm sống của tôi hơn, điều đó dễ dàng hơn. Nhưng theo một số cách, tôi cảm thấy như có tất cả những điều 'rồng đang ở đây' mà tôi không biết. Mô hình tiền huấn luyện giống như tôi có một cảm giác khá tốt về internet trông như thế nào. Bạn biết đấy, nếu bạn đưa cho tôi một đoạn văn bản và nói điều gì tiếp theo, vâng, tôi không nói là tôi làm tốt điều đó, nhưng tôi có một, tôi phần nào hiểu điều gì đang diễn ra ở đó. Vâng, và tôi không biết sau tất cả những gì chúng ta làm sau tiền huấn luyện, tôi không thực sự tự tin rằng mình hiểu được nhiều điều đang diễn ra. Có lẽ đó chỉ là tôi. Đó là điều tôi tự hỏi, liệu có hữu ích hơn khi dành nhiều thời gian đọc internet so với đọc sách không?"
"Chắc chắn rồi, vâng. Ý tôi là, tôi không biết sách, nhưng việc đọc những thứ không có trên internet có lẽ ít giá trị hơn mỗi từ đọc để dự đoán mô hình AI sẽ làm gì hoặc xây dựng trực giác, so với việc đọc những thứ rác rưởi ngẫu nhiên từ mạng xã hội trong một phút." "Vâng, chính xác. Vâng."
Tương Lai của Kỹ Thuật Prompt
Được rồi, đó là quá khứ. Bây giờ chúng ta hãy chuyển sang tương lai. Kỹ thuật prompt. Đây là câu hỏi nóng nhất hiện nay: Liệu tất cả chúng ta có trở thành kỹ sư prompt trong tương lai không? Liệu đó có phải là công việc cuối cùng còn lại không? Không còn gì khác ngoài việc chúng ta chỉ nói chuyện với các mô hình AI cả ngày? Điều này sẽ trông như thế nào? Liệu prompting có còn cần thiết không, hay các mô hình AI này sẽ đủ thông minh trong tương lai để không cần đến nó? Có ai muốn bắt đầu câu hỏi dễ dàng đó không?
Ý tôi là, ở một mức độ nào đó, việc mô hình AI ngày càng giỏi hơn trong việc hiểu những gì bạn muốn chúng làm và thực hiện nó, có nghĩa là lượng suy nghĩ bạn cần bỏ ra, ý tôi là, có một cách lý thuyết thông tin để nghĩ về điều này: bạn cần cung cấp đủ thông tin để một điều gì đó được chỉ định, đúng không? Giống như những gì bạn muốn mô hình AI được chỉ định. Và đến mức độ đó là kỹ sư prompt, tôi nghĩ rằng điều đó sẽ luôn tồn tại, giống như khả năng thực sự trình bày rõ ràng mục tiêu là gì. Luôn buồn cười nếu Claude có thể làm điều đó thì không sao, nếu Claude là người đặt ra các mục tiêu thì bạn biết mọi thứ sẽ đổ bể. Nhưng trong thời gian chờ đợi, nơi chúng ta có thể suy luận về thế giới một cách bình thường hơn, tôi nghĩ ở một mức độ nào đó, sẽ luôn quan trọng để có thể chỉ rõ điều gì bạn mong đợi sẽ xảy ra. Và điều đó thực sự đủ khó khăn đến mức ngay cả khi mô hình AI giỏi hơn trong việc "đọc vị" điều đó từ những dòng chữ, tôi vẫn nghĩ cần một lượng nhất định để viết câu lệnh tốt.
Nhưng rồi, tôi nghĩ các công cụ và cách chúng ta đạt được điều đó sẽ phát triển rất nhiều. Claude sẽ có thể giúp tôi nhiều hơn. Tôi sẽ có thể hợp tác với Claude nhiều hơn để tìm ra những gì tôi cần viết ra và những gì còn thiếu. Tôi nghĩ nó đã gần rồi. Claude đã hợp tác với tôi mọi lúc. Tôi chỉ coi nó là trợ lý prompt của mình. Vâng, nhưng tôi nghĩ điều đó không đúng với hầu hết các khách hàng mà tôi đã nói chuyện, ít nhất là vậy. Vì vậy, về tương lai, cách bạn prompt Claude có lẽ là một định hướng tốt cho tương lai trông như thế nào. Hay như thế nào? Tôi nghĩ có lẽ đây là một nơi tốt để nhìn lại và nói: hỏi họ cách họ prompt Claude hiện tại có lẽ là tương lai đối với đại đa số mọi người, đó là một cách thú vị để suy nghĩ.
Một dự đoán "lạnh như băng" là chúng ta sẽ sử dụng các mô hình AI nhiều hơn trong tương lai để giúp chúng ta với prompting. Lý do tôi nói nó "lạnh như băng" là vì tôi mong đợi chúng ta sẽ sử dụng các mô hình AI cho mọi thứ nhiều hơn, và prompting là điều chúng ta phải làm, vì vậy chúng ta có thể sẽ chỉ sử dụng các mô hình AI nhiều hơn để làm điều đó cùng với mọi thứ khác. Đối với bản thân tôi, tôi thấy mình sử dụng các mô hình AI để viết câu lệnh nhiều hơn. Một điều tôi đã làm rất nhiều là tạo ví dụ bằng cách đưa một số đầu vào thực tế cho mô hình AI. Mô hình AI viết một số câu trả lời, tôi chỉnh sửa các câu trả lời một chút, điều này dễ dàng hơn nhiều so với việc phải tự mình viết toàn bộ câu trả lời hoàn hảo từ đầu. Và sau đó tôi có thể tạo ra rất nhiều ví dụ này. Bạn biết đấy, đối với những người chưa có nhiều kinh nghiệm kỹ sư prompt, trình tạo prompt có thể cung cấp cho mọi người một điểm khởi đầu. Nhưng tôi nghĩ đó chỉ là một phiên bản siêu cơ bản của những gì chúng ta sẽ có trong tương lai, đó là tương tác băng thông cao giữa bạn và mô hình AI khi bạn viết câu lệnh, nơi bạn đưa phản hồi như: "Này, kết quả này không phải là điều tôi muốn. Làm thế nào bạn có thể thay đổi nó để làm cho nó tốt hơn?" Và mọi người sẽ trở nên thoải mái hơn với việc tích hợp nó vào mọi thứ họ làm và đặc biệt là điều này.
Vâng, tôi chắc chắn đang làm việc rất nhiều với các meta-prompt bây giờ, và đó có lẽ là nơi tôi dành phần lớn thời gian của mình, đó là tìm các câu lệnh giúp mô hình AI tạo ra các loại đầu ra hoặc truy vấn hoặc bất cứ điều gì tôi muốn. Và về câu hỏi kỹ sư prompt sẽ đi đến đâu, tôi nghĩ đây là một câu hỏi rất khó. Một mặt, tôi nghĩ có lẽ là trong chừng mực bạn muốn đạt được điều cao nhất, chúng ta đang làm gì khi chúng ta kỹ sư prompt? Nó giống như những gì bạn nói. Tôi không kỹ sư prompt cho bất cứ điều gì dễ dàng đối với mô hình AI. Tôi làm điều đó bởi vì tôi muốn tương tác với một mô hình AI cực kỳ tốt và tôi muốn luôn tìm kiếm loại hiệu suất top 1%, top 0.1% và tất cả những điều mà các mô hình AI hầu như không thể làm được. Giống như đôi khi tôi thực sự cảm thấy như tôi tương tác với một mô hình AI ở một cấp độ cao hơn so với những gì mọi người khác tương tác, vì lý do này, bởi vì tôi đã quá quen với việc khai thác tối đa hiệu suất từ các mô hình AI.
"Bạn muốn nói gì khi nói 'một cấp độ cao hơn'?" "Ý tôi là đôi khi mọi người sẽ, tôi nghĩ rằng các mô hình AI hàng ngày mà mọi người tương tác ngoài thế giới, giống như tôi đang tương tác với một mô hình AI mà tôi không, tôi không biết phải mô tả thế nào, nhưng giống như tôi chắc chắn đang tương tác với một phiên bản nâng cao của nó, gần như là một mô hình AI khác. Bởi vì họ sẽ nói: 'Ồ, các mô hình AI thấy điều này khó.' Và tôi nói: 'Điều đó thì tầm thường.' Vâng, và vì vậy, tôi nghĩ, tôi không biết, tôi có cảm giác rằng chúng cực kỳ có năng lực, nhưng tôi nghĩ đó là vì tôi đã quen với việc thực sự khai thác những khả năng đó."
Và hãy tưởng tượng rằng bạn đang ở trong một thế giới mà, tôi nghĩ điều mà cảm thấy như một điểm chuyển giao là điểm mà các mô hình AI, giả sử chúng chỉ đạt được mọi thứ ở mức độ con người trong một tác vụ nhất định hoặc thậm chí trên mức độ con người, giống như chúng biết nhiều hơn về bối cảnh của tác vụ mà bạn muốn hơn bạn. Điều gì sẽ xảy ra sau đó? Tôi nghĩ có lẽ prompting trở thành một cái gì đó giống như tôi hỏi, tôi giải thích cho mô hình AI những gì tôi muốn và nó lại prompt tôi. Bạn biết đấy, bởi vì nó giống như: "Được rồi, ý bạn có phải là thực sự có bốn khái niệm khác nhau về điều bạn đang nói không? Bạn muốn tôi sử dụng cái này hay cái kia? Hay nhân tiện, tôi đã nghĩ đến một số trường hợp ngoại lệ vì bạn nói rằng nó sẽ là một DataFrame của Pandas, nhưng đôi khi bạn làm điều đó và tôi nhận được JSONL, và tôi chỉ muốn, tôi muốn kiểm tra xem bạn muốn tôi làm gì ở đó. Bạn có muốn tôi đánh dấu nếu tôi nhận được thứ gì đó không phải là DataFrame không?" Và như vậy, đó có thể là một sự chuyển đổi kỳ lạ khi nó cực kỳ giỏi trong việc nhận hướng dẫn nhưng thực sự phải tìm ra những gì bạn muốn. Và tôi không biết, tôi có thể thấy đó là một loại sự thay đổi thú vị về mặt giai thoại. Tôi đã bắt đầu...
[transcript bị gián đoạn]
Claude như một cộng tác viên phỏng vấn
Tôi bắt đầu để Claude phỏng vấn tôi nhiều hơn. Đó là cách cụ thể tôi cố gắng thu thập thông tin, bởi vì tôi nhận thấy điều khó khăn nhất chính là thực sự rút ra đúng tập hợp thông tin từ bộ não của mình và đưa nó vào một câu lệnh. Đó là phần khó đối với tôi, và việc không quên những điều cần thiết. Vì vậy, việc yêu cầu Claude phỏng vấn tôi và sau đó biến những thông tin đó thành một câu lệnh là điều tôi đã làm một vài lần.
Thay đổi trong mối quan hệ người dùng - mô hình AI
Điều này gợi cho tôi nhớ đến cách các nhà thiết kế tương tác với khách hàng. Có thể coi đây là sự chuyển đổi từ một nhân viên của công ty dịch vụ tạm thời – người mà bạn đã biết rõ hơn về tác vụ và mọi thứ bạn muốn, nên bạn chỉ cần đưa hướng dẫn, giải thích các trường hợp biên và những thứ tương tự – sang việc bạn có một chuyên gia mà bạn đang tham vấn để làm một công việc cụ thể. Các nhà thiết kế có thể cảm thấy thất vọng vì họ hiểu rất rõ về lĩnh vực thiết kế và họ sẽ nói: "Ồ, khách hàng đến gặp tôi và chỉ nói: 'Làm cho tôi một áp phích, hãy làm nó nổi bật.'" Và tôi nghĩ: "Vâng, điều đó có nghĩa là 7000 thứ khác nhau đối với tôi, và tôi sẽ cố gắng hỏi bạn một vài câu hỏi."
Vì vậy, tôi có thể thấy mối quan hệ này chuyển từ việc giống như một nhân viên tạm thời sang giống như một nhà thiết kế mà bạn đang thuê. Đó chỉ là một sự thay đổi trong mối quan hệ. Tôi không biết liệu điều đó có đúng hay không, và tôi nghĩ cả hai có thể tiếp tục tồn tại. Nhưng tôi có thể thấy đây là lý do tại sao mọi người nói rằng kỹ thuật tạo câu lệnh (prompt engineering) sẽ không còn là một thứ trong tương lai, bởi vì đối với một số lĩnh vực, nó có thể sẽ không cần thiết. Nếu các mô hình AI quá tốt đến mức tất cả những gì chúng cần làm là lấy thông tin từ bộ não của bạn, sau đó chúng có thể thực hiện tác vụ, đúng không?
Đó thực sự là một phép ẩn dụ rất hay. Một điểm chung tôi rút ra từ tất cả các phản hồi của các bạn ở đây là dường như có một tương lai mà việc khơi gợi thông tin từ người dùng sẽ trở nên quan trọng hơn nhiều so với hiện tại. Và các bạn đều đã bắt đầu làm điều đó một cách thủ công. Trong tương lai, và ở phía doanh nghiệp, điều đó có thể trông giống như một sự mở rộng của khái niệm tạo câu lệnh này và những thứ trong bảng điều khiển nơi bạn thực sự có thể nhận được nhiều thông tin hơn từ khách hàng doanh nghiệp đó để họ có thể viết một câu lệnh tốt hơn trong Claude. Có lẽ nó sẽ ít hơn việc chỉ gõ vào một hộp văn bản và nhiều hơn là một tương tác có hướng dẫn để tạo ra một sản phẩm hoàn chỉnh.
Tương lai của tạo câu lệnh: Hướng tới tương tác có hướng dẫn
Đó là một tầm nhìn khá hấp dẫn về tương lai, và tôi nghĩ phép ẩn dụ về thiết kế thực sự làm rõ điều đó. Tôi đã nghĩ về cách tạo câu lệnh bây giờ có thể giống như việc dạy học, nơi bạn cố gắng đặt mình vào vị trí của học sinh, suy nghĩ về cách họ tư duy, và thực sự cố gắng chỉ ra hoặc tìm ra nơi họ mắc lỗi. Nhưng tại thời điểm bạn đang nói, kỹ năng đó gần như trở thành sự tự xem xét nội tâm, nơi bạn suy nghĩ về điều bạn thực sự muốn. Và các mô hình AI cố gắng hiểu bạn, vì vậy nó giống như việc làm cho bản thân dễ hiểu đối với mô hình AI hơn là cố gắng dạy một người thông minh hơn bạn.
Triết học và nghệ thuật tạo câu lệnh
Đây thực sự là cách tôi nghĩ về tạo câu lệnh một cách kỳ lạ. Chẳng hạn, thường thì phong cách tạo câu lệnh của tôi – có nhiều điều tôi làm – nhưng một điều phổ biến mà các nhà triết học thường làm là tôi sẽ định nghĩa các khái niệm mới. Bởi vì tôi nghĩ rằng bạn phải diễn đạt thành lời những gì bạn muốn, và đôi khi những gì tôi muốn khá tinh tế, như "Thế nào là một biểu đồ tốt?" hoặc "Khi nào thì bạn nên đánh giá một cái gì đó là đúng hay không?" Và vì vậy, có một số trường hợp tôi chỉ đơn giản là sáng tạo ra một khái niệm và sau đó nói: "Đây là ý tôi về khái niệm đó." Đôi khi tôi sẽ làm điều đó hợp tác với Claude để nó hiểu khái niệm đó, chỉ vì tôi đang cố gắng truyền đạt những gì trong đầu mình cho nó. Và hiện tại, các mô hình AI không cố gắng làm điều đó với chúng ta trừ khi bạn tạo câu lệnh để chúng làm vậy. Và vì vậy, trong tương lai, có thể chúng sẽ có thể khơi gợi điều đó từ chúng ta thay vì chúng ta phải tự làm.
Nhưng tôi nghĩ có một điều thú vị khác là đôi khi mọi người hỏi tôi: "Ồ, triết học có liên quan đến tạo câu lệnh ở đâu?" Và tôi thực sự nghĩ nó rất hữu ích. Có một phong cách viết triết học – và đây ít nhất là cách tôi được dạy viết triết học – nơi ý tưởng là để... Tôi nghĩ đó giống như một công cụ chống giả dối trong triết học, về cơ bản là các bài báo và những gì bạn viết phải dễ hiểu đối với một người có học thức nhưng không chuyên. Ai đó chỉ cần tìm thấy bài báo của bạn, cầm lên và bắt đầu đọc, và họ có thể hiểu mọi thứ. Không phải ai cũng đạt được điều này, nhưng đó là mục tiêu của ngành học, hoặc ít nhất đây là điều chúng tôi dạy mọi người.
Và vì vậy, tôi thực sự đã quen với ý tưởng khi viết, nghĩ về kiểu người có học thức nhưng không chuyên, những người rất thông minh nhưng không biết gì về chủ đề này. Và đó là nhiều năm viết văn bản theo hình thức đó. Và tôi nghĩ điều đó thực sự tốt cho tạo câu lệnh bởi vì tôi nghĩ: "Ồ, tôi đã quen với điều này. Tôi có một người có học thức nhưng không chuyên không biết gì về chủ đề, và điều tôi cần làm là lấy những ý tưởng cực kỳ phức tạp và làm cho họ hiểu chúng. Tôi không nói chuyện hạ thấp họ. Tôi không thiếu chính xác, nhưng tôi cần diễn đạt mọi thứ theo cách mà nó cực kỳ rõ ràng đối với họ về ý nghĩa của tôi."
Và tạo câu lệnh cảm thấy rất giống như vậy. Và thực sự, các kỹ thuật đào tạo chúng tôi sử dụng rất hấp dẫn, hoặc như những gì bạn nói khi bạn nói với một người: "Hãy ghi lại điều bạn vừa nói." Tôi đã từng nói điều đó với sinh viên rất nhiều lần. Ví dụ, họ viết một bài báo và tôi nói: "Tôi không hiểu rõ điều bạn đang nói ở đây. Bạn có thể giải thích lập luận của mình cho tôi không?" Họ sẽ đưa ra một lập luận cực kỳ chặt chẽ. Và sau đó tôi sẽ nói: "Bạn có thể ghi lại điều đó không?" Và sau đó nếu họ làm vậy, đó thường là một bài luận tuyệt vời.
Tổng kết: Ngoại hóa tư duy để tạo câu lệnh hiệu quả
Vì vậy, thật thú vị khi có ít nhất sự tương đồng đó về việc chỉ cần lấy những thứ trong bộ não của bạn, phân tích chúng đủ để cảm thấy rằng bạn hoàn toàn hiểu chúng, và có thể lấy bất kỳ người nào ngẫu nhiên trên phố, một người hợp lý, và chỉ đơn giản là ngoại hóa bộ não của bạn vào họ. Và tôi cảm thấy đó là cốt lõi của tạo câu lệnh. Đó có thể là bản tóm tắt tốt nhất về cách tạo câu lệnh hiệu quả. Vâng, tôi khá chắc là như vậy: ngoại hóa bộ não của bạn và họ sẽ tiếp thu. Đó là một cách rất hay để mô tả những điều tốt đẹp.
Tôi nghĩ đó là một cách tuyệt vời để kết thúc cuộc trò chuyện này. Cảm ơn các bạn, điều này thật tuyệt vời.
TL;DR
Prompt engineeringlà một quá trình "lập trình" các mô hình AI thông qua ngôn ngữ tự nhiên, không chỉ đơn thuần là viết mà còn là một quy trình kỹ thuật lặp đi lặp lại và có hệ thống.- Khía cạnh "kỹ thuật" của
prompt engineeringđến từ việc thử nghiệm lặp đi lặp lại, khả năng thiết kế và tích hợpcâu lệnhvào mộthệ thống AItổng thể, đòi hỏi tư duy như mã nguồn. - Một
kỹ sư câu lệnhgiỏi cần khả năng giao tiếp rõ ràng, sẵn lòng lặp lại nhiều lần, khả năng dự đoán cáctrường hợp ngoại lệvà phân tích sâu sắc đầu ra củamô hình AIđể liên tục cải thiện hiệu suất.
Điểm chính
Prompt engineeringlà "lập trình" cácmô hình AIbằng cách giao tiếp rõ ràng qua ngôn ngữ tự nhiên để hoàn thành cáctác vụcụ thể.- Từ "engineering" (kỹ thuật) trong
prompt engineeringphản ánh quá trình thử nghiệm, lặp lại và thiết kế có hệ thống, sử dụng khả năng "reset" củamô hình AIđể tối ưu hóa. - Coi các
câu lệnhnhưmã(code): cần tư duy hệ thống vềdữ liệuđầu vào,độ trễ,kiểm soát phiên bảnvàtheo dõi thử nghiệmkhi tích hợp vào mộthệ thống AItổng thể. - Một
prompt engineergiỏi cần khả năng giao tiếp mạch lạc, sẵn sàng lặp lại nhiều lần, và khả năng dự đoán, thử nghiệm cáctrường hợp biên(edge case) đểcâu lệnhhoạt động ổn định. - Quan trọng là phải đọc và phân tích kỹ lưỡng đầu ra của
mô hình AIđể phát hiện các lỗi, hiểu lầm hoặc sự không tuân thủ hướng dẫn một cách tinh tế. - Cần phát triển một "lý thuyết tâm trí" về
mô hình AI– hiểu những gì nó biết và không biết, đồng thời loại bỏ các giả định của bản thân khi viết hướng dẫn để đảm bảo tính toàn diện. - Tận dụng chính
mô hình AIđể cải thiệncâu lệnhbằng cách yêu cầu nó chỉ ra sự mơ hồ hoặc đề xuất các bản sửa lỗi cho hướng dẫn khi nó mắc sai lầm. - Xây dựng niềm tin vào
mô hình AIthông qua việc kiểm tra có hệ thống cáccâu lệnhđược xây dựng tốt trên các tình huống đa dạng, đặc biệt làtrường hợp biên, để đảm bảo đầu ra nhất quán và chất lượng cao.
Từ vựng
prompt engineering— kỹ thuật câu lệnhprompt— câu lệnhLLM(Large Language Model) — mô hình ngôn ngữ lớnfine tuning— tinh chỉnhAI system— hệ thống AIcode— mãdata— dữ liệuedge case— trường hợp biên / trường hợp ngoại lệtheory of mind— lý thuyết tâm tríDeveloper Relations— Quan hệ nhà phát triển
Nội dung chi tiết
Giới thiệu và Mục tiêu Phiên Thảo luận
Phiên thảo luận bàn tròn này sẽ tập trung chủ yếu vào prompt engineering, với nhiều góc nhìn đa dạng từ nghiên cứu, người dùng cuối cho đến cấp độ doanh nghiệp. Tôi muốn thu thập một loạt ý kiến rộng rãi về chủ đề này, bởi vì có rất nhiều quan điểm khác nhau. Chúng ta sẽ mở ra một cuộc thảo luận để khám phá prompt engineering thực sự là gì và ý nghĩa của nó. Vâng, chúng ta sẽ bắt đầu từ đó.
Giới thiệu các thành viên
Có lẽ chúng ta nên lần lượt giới thiệu bản thân. Tôi sẽ bắt đầu. Tôi là Alex, trưởng bộ phận Developer Relations tại Anthropic. Trước đây, tôi từng là một prompt engineer tại Anthropic, làm việc trong nhóm prompt engineering của chúng tôi và đảm nhiệm nhiều vai trò khác nhau, từ kiến trúc sư giải pháp cho đến làm việc ở mảng nghiên cứu. Sau đây, tôi xin chuyển lời cho David.
Chào, tôi là David Hershey. Tôi làm việc chủ yếu với các khách hàng của Anthropic về nhiều vấn đề. Về mặt kỹ thuật, tôi giúp họ với fine tuning, nhưng cũng giải quyết nhiều vấn đề chung khiến việc áp dụng các mô hình ngôn ngữ lớn (LLM) trở nên khó khăn, chẳng hạn như prompting và cách xây dựng hệ thống AI với các mô hình ngôn ngữ lớn. Phần lớn thời gian của tôi là làm việc với khách hàng.
Tuyệt vời. Tôi là Amanda Askell. Tôi lãnh đạo một trong những nhóm fine tuning tại Anthropic, nơi tôi cố gắng làm cho Claude trung thực và tử tế.
Chào, tôi là Zach Witten. Tôi là một prompt engineer tại Anthropic. Alex và tôi luôn tranh cãi xem ai là người đầu tiên. Anh ấy nói là anh ấy, tôi nói là tôi – vẫn còn tranh cãi. Tôi từng làm việc rất nhiều với các khách hàng cá nhân, tương tự như cách David đang làm bây giờ. Sau đó, khi chúng tôi có thêm nhiều kiến trúc sư giải pháp trong nhóm, tôi bắt đầu làm việc với những thứ có mục đích nâng cao tổng thể mức độ prompting trong xã hội, như prompt generator và các tài liệu giáo dục khác nhau mà mọi người sử dụng.
Rất tốt. Cảm ơn các bạn đã đến đây.
Định nghĩa Prompt Engineering
Tôi sẽ bắt đầu với một câu hỏi rất rộng để chúng ta có một khuôn khổ cho các cuộc trò chuyện tiếp theo. Prompt engineering là gì? Tại sao lại có từ "engineering" (kỹ thuật) trong đó? Prompt thực sự là gì? Nếu ai đó muốn bắt đầu, hãy đưa ra quan điểm của riêng mình. Cứ tự nhiên nhé.
Tôi nghĩ chúng ta có một prompt engineer ở đây. Đúng vậy, có rất nhiều công việc. Tất cả chúng ta đều là prompt engineer theo cách riêng của mình. Một trong số chúng ta có một công việc mang tên đó.
Tôi cho rằng prompt engineering là việc cố gắng khiến mô hình AI thực hiện các tác vụ, cố gắng khai thác tối đa tiềm năng của mô hình AI, cố gắng làm việc với mô hình AI để hoàn thành những điều mà bạn sẽ không thể làm được nếu không có nó. Vì vậy, phần lớn công việc chỉ là giao tiếp rõ ràng. Tôi nghĩ về bản chất, nói chuyện với một mô hình AI rất giống với nói chuyện với một người, đó là hiểu được tâm lý của mô hình AI.
Lý do "Engineering" trong Prompt Engineering
Tại sao lại có từ "engineering" trong tên gọi này? "Engineering" là gì? Tôi nghĩ phần kỹ thuật đến từ quá trình thử và sai. Một điều thực sự tuyệt vời khi nói chuyện với một mô hình AI mà không giống như nói chuyện với một người là bạn có một nút khởi động lại, một nút khổng lồ, như quay trở lại điểm xuất phát, nơi bạn bắt đầu lại từ đầu. Và điều đó mang lại cho bạn khả năng thực sự bắt đầu từ đầu và thử nghiệm những điều khác nhau một cách độc lập để không có sự can thiệp từ cái này sang cái khác. Và một khi bạn có khả năng thử nghiệm và thiết kế những điều khác nhau đó, đó là lúc phần kỹ thuật có tiềm năng xuất hiện.
À, vậy ý bạn là khi bạn viết các câu lệnh này, bạn đang nhập một tin nhắn vào Claude hoặc qua API, bất kể là gì, việc có thể tương tác qua lại với mô hình AI và lặp lại tin nhắn này, rồi quay trở lại trạng thái ban đầu mỗi lần. Quá trình đó chính là phần kỹ thuật. Toàn bộ quá trình này là prompt engineering.
Prompt như Code và Tư duy hệ thống
Cũng có một khía cạnh khác là tích hợp các câu lệnh vào hệ thống AI tổng thể của bạn. Và David đã làm rất nhiều việc với khách hàng, ví dụ như việc tích hợp. Rất nhiều lần, nó không đơn giản chỉ là bạn viết một câu lệnh và đưa nó cho mô hình AI là xong. Trên thực tế, nó phức tạp hơn rất nhiều.
Vâng, tôi nghĩ câu lệnh giống như cách bạn lập trình các mô hình AI một chút, điều này có thể làm cho nó trở nên quá phức tạp, bởi vì tôi nghĩ Zach nói chung là đúng rằng việc nói chuyện rõ ràng là điều quan trọng nhất. Nhưng nếu bạn coi nó giống như lập trình một mô hình AI, bạn phải suy nghĩ về nơi dữ liệu đến, bạn có quyền truy cập vào dữ liệu nào. Vì vậy, nếu bạn đang thực hiện RAG hoặc thứ gì đó, bạn thực sự có thể sử dụng và truyền tải cái gì đến một mô hình AI. Bạn phải suy nghĩ về những đánh đổi về độ trễ và lượng dữ liệu bạn cung cấp, v.v. Có đủ tư duy hệ thống đi vào cách bạn thực sự xây dựng xung quanh một mô hình AI. Tôi nghĩ đó cũng là cốt lõi lý do tại sao nó xứng đáng được coi là một lĩnh vực riêng biệt để suy nghĩ, khác với một kỹ sư phần mềm hay một PM (Project Manager) hoặc thứ gì đó. Nó giống như một lĩnh vực riêng về cách suy nghĩ về các mô hình AI này.
Vậy trong trường hợp này, câu lệnh có phải là mã (code) bằng ngôn ngữ tự nhiên không? Nó có phải là một cấp độ trừu tượng cao hơn không? Hay nó là một thứ hoàn toàn riêng biệt?
Tôi nghĩ rằng việc cố gắng quá trừu tượng với một câu lệnh là một cách để làm phức tạp mọi thứ, bởi vì tôi nghĩ chúng ta sẽ đi sâu vào vấn đề này. Nhưng thường xuyên hơn là không, điều bạn muốn làm chỉ là viết một mô tả rất rõ ràng về một tác vụ, không cố gắng xây dựng các cấu trúc trừu tượng phức tạp hay bất cứ điều gì tương tự. Nhưng nói như vậy, bạn đang biên dịch tập hợp các hướng dẫn và những thứ tương tự thành kết quả rất nhiều lần. Và vì vậy, độ chính xác và nhiều thứ bạn suy nghĩ về lập trình như kiểm soát phiên bản và quản lý những gì nó trông như thế nào vào thời điểm đó khi bạn thực hiện thử nghiệm này và theo dõi thử nghiệm của bạn, v.v. Tất cả những điều đó đều quan trọng như mã. Vì vậy, thật kỳ lạ khi ở trong mô hình này, nơi văn bản viết như một bài luận hay mà bạn đã viết lại giống như mã. Nhưng thực tế là bây giờ chúng ta viết luận và coi chúng như mã. Và tôi nghĩ điều đó thực sự đúng.
Hay đấy, thú vị.
Đặc điểm của một Prompt Engineer giỏi
Vậy có lẽ dựa trên định nghĩa sơ bộ về prompt engineering đó, điều gì làm nên một prompt engineer giỏi? Có lẽ Amanda, tôi sẽ hỏi bạn điều này vì bạn đang cố gắng thuê các prompt engineer trong môi trường nghiên cứu. Điều đó trông như thế nào? Bạn đang tìm kiếm điều gì ở một người như vậy?
Vâng, câu hỏi hay. Tôi nghĩ đó là sự kết hợp của nhiều yếu tố, như Zach đã nói, một kiểu giao tiếp rõ ràng. Tức là khả năng trình bày mọi thứ một cách rõ ràng, hiểu rõ các tác vụ, suy nghĩ và mô tả các khái niệm rất tốt. Đó là thành phần viết lách mà tôi nghĩ. Tôi thực sự nghĩ rằng việc trở thành một nhà văn giỏi không tương quan nhiều với việc trở thành một prompt engineer giỏi như mọi người vẫn nghĩ.
Vì vậy, tôi đã thảo luận về điều này với mọi người bởi vì tôi nghĩ có một số lập luận cho rằng có lẽ không nên có từ "engineer" trong đó. Tại sao nó không phải là "writer" (người viết) chứ? Tôi từng cảm thông hơn với điều đó. Và rồi bây giờ tôi nghĩ, những gì bạn đang thực sự làm, mọi người nghĩ rằng bạn chỉ viết một thứ và bạn đã xong. Và rồi tôi sẽ nói, bạn biết đấy, để có được một câu lệnh tương đối tốt, khi tôi ngồi xuống với mô hình AI, tôi sẽ, bạn biết đấy, như trước đây, tôi đã prompting mô hình AI và tôi chỉ trong vòng 15 phút, tôi sẽ gửi hàng trăm câu lệnh cho mô hình AI. Nó cứ qua lại, qua lại, qua lại. Và vì vậy, tôi nghĩ đó là sự sẵn lòng lặp lại và xem xét, suy nghĩ, điều gì đã bị hiểu sai ở đây, nếu có, và sau đó sửa chữa điều đó. Vì vậy, khả năng lặp lại đó. Tôi sẽ nói giao tiếp rõ ràng, khả năng lặp lại đó.
Nắm bắt các trường hợp ngoại lệ và Phản hồi của mô hình AI
Tôi nghĩ cũng cần suy nghĩ về những cách mà câu lệnh của bạn có thể sai. Vì vậy, nếu bạn có một câu lệnh mà bạn sẽ áp dụng cho khoảng 400 trường hợp, thật dễ dàng để nghĩ về trường hợp điển hình sẽ được áp dụng để thấy rằng nó nhận được giải pháp đúng trong trường hợp đó và sau đó tiếp tục. Tôi nghĩ đây là một sai lầm rất cổ điển mà mọi người mắc phải. Và điều bạn thực sự muốn làm là tìm ra những trường hợp bất thường. Vì vậy, bạn phải suy nghĩ về câu lệnh của mình và tự hỏi, những trường hợp nào sẽ thực sự không rõ ràng đối với tôi về những gì tôi nên làm trong trường hợp này?
Ví dụ, bạn có một câu lệnh nói rằng: "Tôi sẽ gửi cho bạn một loạt dữ liệu. Tôi muốn bạn trích xuất tất cả các hàng có tên ai đó bắt đầu bằng chữ G." Và rồi bạn nghĩ: "À, tôi sẽ gửi cho nó một tập dữ liệu không có tên nào bắt đầu bằng chữ G." "Tôi sẽ gửi cho nó một thứ không phải là tập dữ liệu." Hoặc: "Tôi cũng có thể gửi một chuỗi trống." Đây là tất cả các trường hợp bạn phải thử, bởi vì sau đó bạn sẽ biết: "Nó làm gì trong những trường hợp này?" Và sau đó bạn có thể cung cấp thêm hướng dẫn cho nó về cách xử lý trường hợp đó.
Giống như với khách hàng rất thường xuyên, bạn là một kỹ sư, bạn đang xây dựng một cái gì đó và có một phần trong câu lệnh của bạn mà khách hàng của họ sẽ viết một cái gì đó. Và tất cả họ đều nghĩ về những điều được diễn đạt rất hoàn hảo mà họ nghĩ ai đó sẽ nhập vào chatbot của họ. Và thực tế là họ không bao giờ sử dụng phím shift, và cứ mỗi từ lại có một lỗi chính tả. Họ nghĩ là không có dấu câu. Đúng vậy. Và ngẫu nhiên. Họ viết mà không có câu hỏi. Đúng vậy. Vì vậy, bạn có những câu lệnh được cấu trúc đẹp đẽ mà người dùng của họ lý tưởng sẽ nhập vào. Nhưng việc có thể đi xa hơn một bước để suy luận về bản nháp thực tế của bạn sẽ như thế nào, những gì mọi người thực sự sẽ cố gắng làm. Vâng. Đó là một kiểu suy nghĩ hơi khác.
Một điều bạn nói thực sự gây ấn tượng với tôi là việc đọc phản hồi của mô hình AI. Giống như trong ngữ cảnh học máy, bạn phải nhìn vào dữ liệu. Nó gần như là một câu nói sáo rỗng: "Hãy nhìn vào dữ liệu của bạn." Và tôi cảm thấy điều tương đương cho prompting là: "Hãy nhìn vào đầu ra của mô hình AI." Chỉ cần đọc nhiều đầu ra và đọc chúng kỹ lưỡng. Ngay cả bây giờ chúng ta đang nói chuyện trên đường đến đây. Một điều mà mọi người sẽ làm là họ sẽ nghĩ từng bước trong câu lệnh của họ. Và họ sẽ không kiểm tra để đảm bảo rằng mô hình AI thực sự đang suy nghĩ từng bước, bởi vì mô hình AI có thể hiểu nó theo nghĩa trừu tượng hoặc tổng quát hơn thay vì: "Không, bạn thực sự phải viết ra suy nghĩ của mình trong các thẻ cụ thể này." Vì vậy, vâng, nếu bạn không đọc đầu ra của mô hình AI, bạn có thể thậm chí không nhận thấy rằng nó đang mắc lỗi đó. Vâng. Điều đó thú vị.
Tư duy về mô hình AI và Loại bỏ giả định
Có một khía cạnh lý thuyết tâm trí hơi kỳ lạ khi trở thành một prompt engineer, nơi bạn phải suy nghĩ gần như về cách mô hình AI sẽ nhìn nhận các hướng dẫn của bạn. Nhưng sau đó, nếu bạn đang viết cho một trường hợp sử dụng doanh nghiệp, thì bạn phải suy nghĩ về cách người dùng sẽ nói chuyện với mô hình AI như thể bạn là bên thứ ba đang ngồi trong mối quan hệ kỳ lạ đó.
Vâng, về khía cạnh lý thuyết tâm trí, một điều tôi muốn nói là thật khó để viết hướng dẫn cho một tác vụ. Thật khó để gỡ rối trong chính bộ não của bạn tất cả những thứ bạn biết mà Claude không biết và viết nó ra. Việc loại bỏ tất cả các giả định bạn có và có thể giao tiếp rất rõ ràng toàn bộ tập hợp thông tin cần thiết cho một mô hình AI là một điều vô cùng thách thức. Tôi nghĩ đó là một điều nữa thực sự phân biệt một prompt engineer giỏi với một prompt engineer tồi. Giống như nếu bạn, nhiều người sẽ chỉ viết ra những điều họ biết, nhưng họ không thực sự dành thời gian để phân tích một cách có hệ thống.
Tầm Quan trọng của Câu Lệnh Toàn diện
Cần phải hiểu rõ toàn bộ thông tin bạn cần để nắm bắt một tác vụ là gì. Đây là một điều tôi thường xuyên thấy: các câu lệnh được viết ra dựa trên sự hiểu biết từ trước của người viết về tác vụ đó đến mức khi họ trình bày cho tôi, tôi cảm thấy nó hoàn toàn vô nghĩa. Không một dòng nào có ý nghĩa cả, bởi vì tôi không biết gì về trường hợp sử dụng cụ thể của bạn. Tôi nghĩ một cách tốt để suy nghĩ về kỹ thuật câu lệnh (prompt engineering) và kỹ năng liên quan là khả năng bạn có thể gạt bỏ những gì mình biết và truyền đạt thông tin cho một hệ thống AI đặc biệt – một hệ thống biết nhiều nhưng không phải mọi thứ – về những gì nó cần biết để hoàn thành một tác vụ.
Nhiều lần tôi xem một câu lệnh và cảm thấy không thể hoàn thành tác vụ dựa trên đó. Tôi là con người và bạn đang giao tác vụ này cho một thứ kém hơn tôi, nhưng lại mong đợi nó làm tốt hơn. Đúng vậy, có một điều thú vị là các mô hình AI hiện tại chưa thực sự giỏi trong việc đặt các câu hỏi thăm dò ngược lại như con người. Nếu tôi đưa ra hướng dẫn chính xác về cách làm điều gì đó, một người sẽ nói: "Điều này không có ý nghĩa gì cả. Tôi phải làm gì ở bước này hoặc ở đây và đây?" Mô hình AI không làm được điều đó. Vì vậy, bạn phải tự mình suy nghĩ xem người kia sẽ nói gì, sau đó quay lại câu lệnh của mình và trả lời những câu hỏi đó.
Tối ưu Câu Lệnh Lặp đi lặp lại và Phản hồi từ Mô hình AI
Một trong những điều đầu tiên tôi làm với câu lệnh ban đầu của mình là đưa câu lệnh cho mô hình AI, sau đó nói: "Tôi không muốn bạn làm theo những hướng dẫn này. Tôi chỉ muốn bạn cho tôi biết những điểm không rõ ràng, mơ hồ hoặc bất kỳ điều gì bạn không hiểu." Và mặc dù mô hình AI không phải lúc nào cũng hoàn hảo, nhưng thật thú vị là đây là một điều bạn có thể làm. Hơn nữa, đôi khi nếu mọi người thấy mô hình AI mắc lỗi, điều họ thường không làm là hỏi thẳng mô hình AI. Họ nên nói với mô hình AI: "Bạn đã làm sai điều này. Bạn có thể nghĩ xem tại sao không, và bạn có thể viết lại một phiên bản chỉnh sửa hướng dẫn của tôi để bạn không làm sai nữa không?" Và rất nhiều lần, mô hình AI chỉ cần sửa lại lỗi. Mô hình AI sẽ nói: "Ồ, đây là điểm không rõ ràng. Đây là cách khắc phục hướng dẫn", và khi bạn đưa những điều đó vào, nó sẽ hoạt động.
Tôi thực sự tò mò về điều này: liệu điều đó có đúng không? Liệu mô hình AI có thể tự phát hiện lỗi theo cách đó không? Khi nó làm sai điều gì đó, bạn hỏi: "Tại sao bạn lại làm sai điều này?", và sau đó nó nói: "Được thôi, làm thế nào tôi có thể diễn đạt điều này cho bạn trong tương lai để bạn làm đúng?" Có yếu tố sự thật nào trong đó không, hay đó chỉ là một dạng "ảo giác" của mô hình AI về những gì nó nghĩ là giới hạn của mình? Tôi nghĩ nếu bạn giải thích cho mô hình AI những gì nó đã làm sai, đôi khi nó có thể xác định được các vấn đề trong câu lệnh. Tôi nghĩ điều này thay đổi tùy theo tác vụ. Đây là một trong những điều tôi không chắc nó đúng bao nhiêu phần trăm thời gian, nhưng hãy luôn thử vì đôi khi nó có tác dụng. Bạn có thể học được điều gì đó. Bất cứ khi nào bạn tương tác với mô hình AI, bạn sẽ học được điều gì đó về những gì đang diễn ra. Tôi nghĩ bạn đang bỏ lỡ thông tin nếu bạn không ít nhất thử.
Xây dựng Niềm Tin vào Mô hình AI và Phương pháp Lặp lại
Tại Anthropic, chúng tôi có các kênh Slack nơi mọi người có thể thêm Claude vào và trò chuyện với Claude qua đó. Amanda có một kênh Slack mà nhiều người theo dõi các tương tác của cô ấy với Claude. Một điều tôi thấy cô ấy luôn làm ở đó – có lẽ là nhiều nhất so với bất kỳ ai ở Anthropic – là sử dụng mô hình AI để hỗ trợ trong nhiều tình huống khác nhau. Cô ấy đặt rất nhiều niềm tin vào mô hình AI trong môi trường nghiên cứu. Tôi tò mò làm thế nào cô ấy đã phát triển những trực giác đó về thời điểm nên tin tưởng mô hình AI? Đó có phải chỉ là vấn đề kinh nghiệm sử dụng hay còn điều gì khác?
Tôi nghĩ tôi không bao giờ tin tưởng mô hình AI ngay từ đầu, và sau đó tôi chỉ "thử thách" nó. Lý do bạn thấy tôi làm điều đó nhiều là vì đó là cách tôi kiểm tra xem liệu tôi có thể tin tưởng nó để hoàn thành tác vụ này không. Bởi vì có một số điều, các mô hình AI rất lạ. Nếu bạn đi hơi "lệch phân phối" (out of distribution) một chút, bạn sẽ đi vào những khu vực mà chúng chưa được huấn luyện hoặc chúng bất thường, đôi khi bạn sẽ thấy: "Ồ, thực ra, bạn kém tin cậy hơn nhiều ở đây, mặc dù đó là một tác vụ khá đơn giản." Tôi nghĩ điều đó đang xảy ra ngày càng ít hơn theo thời gian khi các mô hình AI trở nên tốt hơn, nhưng bạn muốn đảm bảo rằng mình không ở trong không gian đó.
Vì vậy, tôi không nghĩ tôi tin tưởng nó mặc định. Nhưng tôi nghĩ trong Học máy (ML), mọi người thường muốn xem xét các tập dữ liệu thực sự lớn. Và tôi tự hỏi: "Khi nào thì điều đó có ý nghĩa?" Và tôi nghĩ câu trả lời là khi bạn nhận được tín hiệu (signal) tương đối thấp từ mỗi điểm dữ liệu (data point), bạn muốn xem xét nhiều, nhiều điểm dữ liệu để loại bỏ nhiễu. Với nhiều tác vụ câu lệnh, tôi nghĩ bạn thực sự nhận được tín hiệu rất cao từ mỗi câu lệnh. Và vì vậy, nếu bạn có một tập hợp vài trăm câu lệnh được xây dựng thực sự tốt, tôi nghĩ chúng có thể mang lại nhiều tín hiệu hơn so với hàng nghìn câu lệnh không được xây dựng tốt. Vì vậy, tôi nghĩ tôi có thể tin tưởng mô hình AI nếu tôi xem xét một trăm kết quả đầu ra của nó và nó thực sự nhất quán. Và tôi biết rằng tôi đã xây dựng những câu lệnh đó để về cơ bản tìm ra tất cả các trường hợp biên (edge case) và tất cả những điều kỳ lạ mà mô hình AI có thể làm, các đầu vào lạ, v.v. Tôi tin tưởng điều đó hơn nhiều so với một tập hợp vài nghìn câu lệnh được xây dựng lỏng lẻo hơn nhiều.
Trong Học máy, rất nhiều lần tín hiệu là các con số, bạn có dự đoán đúng điều này hay không? Và nó giống như việc xem xét xác suất log (log probs) của một mô hình AI và cố gắng hiểu các điều bạn có thể làm, nhưng nó hơi khó hiểu. Tôi cảm thấy rằng việc các mô hình AI thường xuyên tạo ra rất nhiều thứ, từ ngữ và nhiều thứ khác, về cơ bản có rất nhiều điều để học hỏi "giữa các dòng" về những gì nó đang viết, tại sao và như thế nào. Và đó là một phần của vấn đề. Không chỉ là liệu nó có làm đúng tác vụ hay không. Mà là, nó đã làm như thế nào? Nó đã suy nghĩ về nó như thế nào? Các bước nó đã thực hiện để đạt được điều đó. Bạn học được rất nhiều điều về những gì đang diễn ra, hoặc ít nhất bạn có thể cố gắng hiểu rõ hơn. Nhưng đó là nơi mà rất nhiều thông tin đến với tôi, bằng cách đọc chi tiết những gì đã được tạo ra, không chỉ qua kết quả.
Tầm Quan trọng của Prompting đối với Thí nghiệm và Triển khai
Tôi cũng nghĩ rằng kỹ thuật câu lệnh (prompting) tốt nhất có thể tạo ra sự khác biệt giữa một thí nghiệm thất bại và một thí nghiệm thành công. Vì vậy, đôi khi tôi có thể khó chịu nếu mọi người không tập trung đủ vào thành phần câu lệnh của thí nghiệm của họ, bởi vì tôi nghĩ điều này thực sự có thể là sự khác biệt giữa hiệu suất 1% của mô hình AI hoặc 0.1%. Theo cách mà thí nghiệm của bạn không thành công nếu đó là hiệu suất mô hình AI top 5%, nhưng nó thành công nếu đó là top 1% hoặc top 0.1%. Và sau đó tôi nghĩ, nếu bạn dành thời gian để mã hóa thí nghiệm của mình rất tốt, nhưng lại không dành thời gian cho câu lệnh, thì điều đó không có ý nghĩa gì đối với tôi, bởi vì tôi nghĩ đó có thể là sự khác biệt giữa sự sống và cái chết của thí nghiệm của bạn. Đúng vậy, và với việc triển khai nữa. Rất dễ để nói, "Ồ, chúng ta không thể triển khai cái này," và sau đó bạn thay đổi câu lệnh và đột nhiên nó hoạt động.
Tuy nhiên, đó là một con dao hai lưỡi, bởi vì có một chút prompting nơi luôn có một câu lệnh thần thoại tốt hơn sẽ giải quyết vấn đề của tôi ở phía trước. Tôi thấy rất nhiều người bị mắc kẹt vào ý nghĩ về câu lệnh thần thoại ở phía chân trời, rằng nếu tôi cứ "cày" (grind) mãi, "cày" mãi, thì nó không phải lúc nào cũng như vậy. Không bao giờ là tệ khi "cày" một chút về câu lệnh – như chúng ta đã nói, bạn học được nhiều điều – nhưng một trong những điều đáng sợ về kỹ thuật câu lệnh là có cả một thế giới chưa biết.
Khi nào nên Kiên trì và Khi nào nên Từ bỏ Tác vụ
Các bạn có tiêu chí nào để biết khi nào một điều gì đó là có thể so với không thể với một câu lệnh hoàn hảo, bất kể đó là gì không? Tôi nghĩ tôi thường kiểm tra xem liệu mô hình AI có "hiểu" được vấn đề không. Vì vậy, đối với những điều mà tôi nghĩ một câu lệnh sẽ không giúp được gì, có một chút "cày cuốc", nhưng thường thì nó trở nên rất rõ ràng rằng mô hình AI không gần đúng hoặc đại loại thế, và tôi nghĩ nếu… tôi không biết liệu đó có phải là một điều kỳ lạ không, nhưng tôi nghĩ nếu mô hình AI rõ ràng không thể làm được điều gì đó, tôi sẽ không "cày cuốc" nó quá lâu. Điều này là để bạn có thể gợi ra cách nó đang suy nghĩ về vấn đề, và bạn có thể hỏi nó cách nó đang suy nghĩ về vấn đề và tại sao. Và bạn có thể cảm nhận được liệu nó có đang suy nghĩ đúng không, liệu chúng ta có đang ở đúng khu vực của việc này là đúng không, và bạn có thể tiến bộ một chút theo hướng đó. Tôi cảm thấy như ít nhất tôi đang tiến bộ để làm cho mọi thứ gần đúng hơn, trong khi có một số tác vụ mà bạn thực sự không thể tiến gần hơn đến quá trình suy nghĩ của nó, mọi tuần bạn chỉ đi chệch hướng hoàn toàn sai, và tôi có xu hướng từ bỏ những tác vụ đó.
Tôi không biết. Nhưng bây giờ những trường hợp đó rất hiếm, và tôi thực sự tức giận với mô hình AI khi tôi không bao giờ để chúng làm điều đó, bởi vì chúng hiếm đến mức nào. Tôi nổi cơn thịnh nộ. Tôi kiểu: "Tôi thách bạn, hãy cho tôi một tác vụ mà bạn không thể làm được nếu tôi chỉ cần thúc đẩy bạn đúng hướng."
Ví dụ thực tế: Claude Chơi Pokemon
Gần đây tôi có một thí nghiệm với Claude chơi Pokemon, và đó là một trong những lần hiếm hoi ngay lập tức mô hình AI không làm được. Bạn có thể giải thích điều đó không? Vâng, vâng, vâng. Tôi nghĩ điều đó thực sự thú vị. Tôi đã làm một thí nghiệm nhỏ nơi tôi kết nối Claude với một trình giả lập Game Boy (Game Boy emulator) và cố gắng để nó chơi trò chơi Pokemon Red, phiên bản Pokemon gốc. Và nó sẽ suy nghĩ xem bạn muốn làm gì, và nó có thể viết một số mã để nhấn các nút và những thứ tương tự. Nó khá cơ bản, và tôi đã thử một loạt các bố cục câu lệnh rất phức tạp, nhưng bạn chỉ gặp phải một số điểm mà nó thực sự không thể làm được. Chẳng hạn như việc hiển thị cho nó một ảnh chụp màn hình của Game Boy, nó thực sự không thể làm được. Và điều đó thật đáng thất vọng, bởi vì tôi đã quá quen với việc nó có thể làm được hầu hết mọi thứ. Và tôi đã dành cả cuối tuần để cố gắng viết các câu lệnh ngày càng tốt hơn để nó thực sự hiểu được màn hình Game Boy này, và tôi đã cải thiện từng chút một để nó chỉ còn tệ thay vì hoàn toàn không có tín hiệu.
Đúng vậy, bạn có thể đi từ không có tín hiệu đến một số tín hiệu, nhưng nó giống như, tôi không biết, ít nhất điều này đã gợi ra cho tôi. Một khi tôi đã dành cả cuối tuần và tôi đã đi từ không có tín hiệu đến một số tín hiệu nhưng không đủ tốt chút nào. Tôi nghĩ, "Tôi sẽ đợi mô hình AI tiếp theo." Đúng vậy, tôi sẽ đợi một mô hình AI khác. Nếu bạn "cày cuốc" điều này trong bốn tháng, điều sẽ xuất hiện là một mô hình AI khác, và đó là một cách sử dụng thời gian của tôi tốt hơn. Chỉ cần đợi để làm điều gì khác trong khi đó. Ý tôi là, đúng vậy, đó là một sự căng thẳng cố hữu mà chúng ta thấy mọi lúc, và có lẽ chúng ta có thể nói về điều đó sau một chút, nếu bạn muốn tiếp tục.
Điều tôi thích về câu lệnh của bạn với Pokemon nơi bạn đạt được kết quả tốt nhất là cách bạn giải thích cho mô hình AI rằng nó đang ở giữa trò chơi Pokemon này, và đây là cách mọi thứ sẽ được thể hiện. Và tôi nghĩ bạn thực sự đã thể hiện nó theo hai cách khác nhau, phải không? Tôi đã làm vậy. Vì vậy, điều tôi đã làm, nó khá khó chịu, nhưng tôi đã chồng một lưới (grid) lên hình ảnh, và sau đó tôi phải mô tả từng phân đoạn của lưới một cách chi tiết trực quan, và sau đó tôi đã để nó tái tạo điều đó thành một bản đồ ASCII. Và tôi đã cung cấp cho nó nhiều chi tiết nhất có thể. Ví dụ: nhân vật người chơi (player character) luôn ở vị trí 4,5 trên lưới, và những thứ tương tự, và bạn có thể từ từ xây dựng thông tin.
Sự khác biệt trong Kỹ thuật Prompting cho Hình ảnh và Văn bản
Tôi nghĩ điều này thực sự rất giống với prompting, nhưng tôi đã làm điều đó với hình ảnh trước đây. Đôi khi, trực giác của tôi về những gì bạn cần nói với một mô hình AI về văn bản lại rất khác so với những gì bạn cần nói với một mô hình AI về hình ảnh. Và tôi nhận thấy rằng một số lượng đáng ngạc nhiên các trực giác của tôi về văn bản đã không được chuyển sang hình ảnh một cách hiệu quả. Chẳng hạn, tôi thấy rằng multi-shot prompting không hiệu quả với hình ảnh như với văn bản. Tôi không thực sự chắc chắn tại sao. Bạn có thể tìm thấy những giải thích lý thuyết về việc tại sao có lẽ có ít dữ liệu huấn luyện cho các ví dụ như vậy. Vâng, tôi biết khi chúng tôi thực hiện các thử nghiệm ban đầu với prompting đa phương thức, chúng tôi thực sự không thể làm cho nó hoạt động một cách rõ rệt. Đúng vậy, bạn dường như không thể cải thiện khả năng thị giác thực tế của Claude về việc nó nhận biết được những gì trong một hình ảnh. Có ai ở đây có những cách khác không, nhưng dường như điều này cũng tương tự với ví dụ về Pokemon, nơi mô hình AI cố gắng diễn giải một thứ gì đó dù bạn đưa bao nhiêu câu lệnh vào. Nó chỉ không thể nhận ra Ash ở vị trí đó.
Giới hạn của AI trong Mô tả Chi tiết Hình ảnh
Vâng. Cụ thể hơn, tôi cuối cùng có thể khiến nó nhận biết được vị trí của một bức tường. Và thường xuyên hơn là vị trí của nhân vật, mặc dù đôi khi sẽ có sai lệch một chút. Nhưng sau đó bạn sẽ đến một điểm — và điều này có thể quay trở lại việc biết khi nào bạn không thể làm được — đó là nó sẽ mô tả một NPC (Non-Player Character). Và để chơi một trò chơi tốt, bạn cần có một cảm giác liên tục, ví dụ như "Tôi đã nói chuyện với NPC này trước đây chưa, phải không?" Và nếu không có điều đó, bạn thực sự không thể làm gì; bạn sẽ cứ tiếp tục nói chuyện với NPC đó vì, à, có thể đây là một NPC khác. Nhưng tôi đã cố gắng rất nhiều để khiến nó mô tả một NPC và nó chỉ nói: "Đó là một người." Vâng. "Họ đang đội mũ. Họ đã đội mũ." Và có vẻ như bạn phải "cày" một lúc, phóng to hình ảnh lên 3.000 lần và cắt chỉ lấy NPC, và nó vẫn trả lời: "Tôi không biết đây là gì." Và tôi đã thử; tôi đã cho nó xem hình ảnh NPC nữ rõ ràng này đủ lần, nhưng nó vẫn không thể nhận ra chi tiết. Và dường như đây là một trường hợp hoàn toàn thất bại. Chà. Giờ tôi thực sự muốn thử điều này. Tôi đang hình dung tất cả những điều tôi sẽ thử, chẳng hạn như: "Tôi muốn bạn hình dung tác phẩm nghệ thuật game này như một con người thật và mô tả cho tôi về họ." "Họ trông như thế nào?" "Họ đã nhìn vào gương chưa?" và sau đó chỉ... tôi đã thử rất nhiều thứ.
Vai trò của Tính trung thực trong Kỹ thuật Prompting
câu lệnh cuối cùng tôi sử dụng là yêu cầu nó đóng vai trò là một trình đọc màn hình cho người mù. Tôi không chắc liệu điều đó có hữu ích không, nhưng tôi cảm thấy nó đúng, nên tôi cứ tiếp tục với cách đó. Đó là một điểm thú vị. Tôi thực sự muốn đi sâu vào vấn đề này một chút vì đây là một trong những mẹo prompting nổi tiếng nhất, phải không? Đó là nói với mô hình ngôn ngữ lớn rằng chúng là một persona hoặc một vai trò nào đó. Tôi cảm thấy tôi thấy kết quả khác nhau. Có lẽ điều này hoạt động tốt hơn một chút ở các mô hình AI trước đây và có lẽ không còn nhiều nữa. Amanda, tôi thấy bạn luôn rất trung thực với mô hình AI. Giống như, về toàn bộ tình huống. Ví dụ, "Ồ, tôi là một nhà nghiên cứu AI và tôi đang thực hiện thử nghiệm này. Tôi sẽ cho bạn biết tôi là ai." Vâng, tôi sẽ cho nó biết tên tôi, kiểu như, "Đây là người bạn đang nói chuyện cùng." Đúng vậy. Bạn có nghĩ rằng mức độ trung thực đó, thay vì nói dối mô hình AI hoặc ép buộc nó, kiểu như, "Bạn biết đấy, tôi sẽ thưởng cho bạn 500 đô la," có một phương pháp nào được ưu tiên hơn không, hay chỉ là trực giác của bạn về điều đó? Vâng, tôi nghĩ rằng khi các mô hình AI ngày càng có năng lực hơn và hiểu biết hơn về thế giới, tôi không thấy cần thiết phải nói dối chúng. Ý tôi là, tôi cũng không thích nói dối các mô hình AI chỉ vì, bạn biết đấy, tôi không thích nói dối nói chung. Nhưng một phần trong tôi nghĩ rằng nếu bạn đang xây dựng, giả sử bạn đang xây dựng một bộ dữ liệu đánh giá cho một hệ thống AI hoặc mô hình ngôn ngữ lớn, điều đó rất khác với việc tạo ra một bài kiểm tra cho trẻ em. Và vì vậy, khi mọi người làm những việc như, "Tôi là một giáo viên đang cố gắng tìm câu hỏi cho một bài kiểm tra," thì tôi nghĩ mô hình AI biết các bài đánh giá mô hình ngôn ngữ lớn là gì. Nếu bạn hỏi nó về các bài đánh giá khác nhau, nó có thể cho bạn biết và nó có thể đưa ra các ví dụ giả định về những gì chúng trông như thế nào, bởi vì những thứ này giống như, chúng hiểu chúng, chúng có trên internet. Và vì vậy tôi nghĩ rằng tôi thà chỉ nhắm trực tiếp vào tác vụ thực tế mà tôi có. Vì vậy, nếu bạn nói, "Tôi muốn bạn xây dựng các câu hỏi trông rất giống một đánh giá của mô hình ngôn ngữ lớn," thì đó chính là vấn đề giao tiếp rõ ràng. Tôi nghĩ rằng đó thực sự là tác vụ tôi muốn làm, vậy tại sao tôi phải giả vờ với bạn rằng tôi muốn làm một tác vụ không liên quan hoặc chỉ liên quan một cách xa xôi, và sau đó mong đợi bạn bằng cách nào đó sẽ làm tốt hơn ở tác vụ mà tôi thực sự muốn bạn làm? Chúng ta không làm điều này với nhân viên. Tôi sẽ không đến gặp một người làm việc cùng tôi và nói, "Bạn là một giáo viên và bạn đang cố gắng kiểm tra học sinh của mình." Tôi sẽ nói, "Này, bạn đang tạo bài đánh giá đó phải không?" Tôi không biết, vì vậy tôi nghĩ rằng đó có lẽ là một mẹo suy luận từ đó. Tôi nghĩ rằng nếu chúng hiểu điều đó, chỉ cần yêu cầu chúng làm điều bạn muốn. Tôi nghĩ vậy rất nhiều.
Sử dụng Ẩn dụ để Hướng dẫn Mô hình AI
Để phản bác lại một chút, tôi đã tìm thấy những trường hợp mà, không hẳn là nói dối, nhưng việc đưa ra một phép ẩn dụ về cách suy nghĩ có thể hữu ích, tương tự như đôi khi tôi có thể không hiểu cách làm một việc gì đó và ai đó nói, "Hãy hình dung bạn đang làm điều này," mặc dù tôi biết tôi không thực sự làm nó. Ví dụ điển hình trong trường hợp của tôi là tôi đang cố gắng yêu cầu Claude đánh giá xem một hình ảnh biểu đồ có tốt hay không, kiểu như, "Nó có chất lượng cao không?" Và câu lệnh tốt nhất mà tôi tìm thấy cho việc này là hỏi mô hình AI xem nó sẽ cho biểu đồ đó điểm mấy nếu nó được nộp như một bài tập trung học. Vì vậy, điều này không hoàn toàn là nói, "Bạn là một giáo viên trung học," bạn biết đấy, nó giống như, "Đây là loại phân tích mà tôi đang mong đợi từ bạn," ví dụ, thang điểm mà một giáo viên sẽ sử dụng tương tự như thang điểm mà tôi muốn bạn sử dụng. Hoặc tôi nghĩ rằng những phép ẩn dụ đó khá khó để nghĩ ra. Vâng.
Tránh Lối Tắt Khi Đặt Câu Lệnh
Điều mặc định bạn thường thấy là tìm một bản sao của tác vụ, một thứ gì đó rất tương tự. Chẳng hạn, khi bạn nói bạn là một giáo viên, bạn thực sự mất đi nhiều sắc thái trong sản phẩm của mình. Tôi thấy điều này rất nhiều trong các câu lệnh doanh nghiệp, nơi mọi người viết một cái gì đó tương tự vì họ có trực giác rằng đó là thứ mà mô hình AI đã thấy nhiều hơn. Có lẽ nó đã thấy nhiều bài kiểm tra cấp ba hơn là các bài đánh giá LME, và điều đó có thể đúng. Nhưng như bạn đã nói, khi các mô hình AI trở nên tốt hơn, tôi nghĩ rằng việc cố gắng hết sức để mô tả chính xác tình huống mà mô hình AI đang gặp phải là lời khuyên tôi dành cho mọi người. Điều này không có nghĩa là tôi không nghĩ rằng, ở một mức độ nào đó, việc suy nghĩ về cách một người sẽ chấm điểm một biểu đồ giống như cách họ chấm điểm một biểu đồ của học sinh cấp ba có thể đúng. Nhưng đó lại là một lối tắt mà mọi người thường dùng để cố gắng đạt được điều mình muốn.
Vì vậy, tôi sẽ cố gắng đưa ra một ví dụ mà tôi có thể thực sự nói về vì tôi nghĩ nó thú vị hơn nhiều. Chẳng hạn, bạn viết: "Bạn là một trợ lý hữu ích đang viết bản nháp của một tài liệu," phải không? Điều đó không hoàn toàn đúng với những gì bạn đang làm. Bạn đang ở trong sản phẩm này. Vì vậy, hãy nói rõ nếu bạn đang viết như một trợ lý trong một sản phẩm. Hãy nói: "Tôi đang ở trong sản phẩm này." Hãy nói: "Tôi đang viết thay mặt cho công ty này." "Tôi được nhúng vào sản phẩm này." "Tôi là cửa sổ chat hỗ trợ trên sản phẩm đó." Giống như: "Bạn là một mô hình ngôn ngữ lớn, bạn không phải là con người," điều đó không sao cả. Nhưng chỉ cần thực sự cụ thể về ngữ cảnh chính xác nơi một cái gì đó đang được sử dụng. Đúng vậy, tôi đã nhận thấy rất nhiều điều đó vì tôi đoán mối lo ngại thường xuyên nhất của tôi với role prompting (gán vai trò trong câu lệnh) là mọi người dùng nó như một lối tắt cho một tác vụ tương tự mà họ muốn mô hình AI thực hiện, và sau đó họ ngạc nhiên khi Claude không thực hiện đúng tác vụ của họ. Nhưng đó không phải là tác vụ bạn đã yêu cầu nó làm, đó là một tác vụ khác. Và nếu bạn không cung cấp cho nó các chi tiết về tác vụ của mình, tôi cảm thấy như bạn đang bỏ lỡ điều gì đó.
Hướng Dẫn Mô Hình AI Rõ Ràng và Cụ Thể
Đúng vậy, tôi không biết, nhưng cảm giác như một điều gì đó khi các mô hình AI mở rộng quy mô. Có lẽ trong quá khứ, đúng là chúng chỉ thực sự có một sự hiểu biết mạnh mẽ về các bài kiểm tra cấp tiểu học. Nhưng khi chúng trở nên thông minh hơn và có thể phân biệt nhiều chủ đề hơn, tôi không biết, chỉ cần rõ ràng. Tôi thấy thú vị khi tôi chưa bao giờ sử dụng kỹ thuật prompting này. Ngay cả với các mô hình AI kém hơn, tôi vẫn không bao giờ thấy mình... Tôi không biết tại sao. Tôi chỉ thấy nó không hiệu quả lắm, về cơ bản là không thú vị.
Tôi cảm thấy như với các mô hình AI của completion era (thời kỳ hoàn thành), có một chút mô hình tư duy (mental model) về việc điều kiện hóa (conditioning) mô hình AI vào một không gian tiềm ẩn (latent space) hữu ích mà tôi từng lo lắng nhưng bây giờ không còn quá nhiều. Đó có thể là những trực giác từ các pre-trained models (mô hình tiền huấn luyện), đúng vậy, giống như chuyển sang các hourly chef models (mô hình tinh chỉnh). Đúng vậy. Điều đó không có ý nghĩa. Giống như, nó có ý nghĩa với tôi nếu bạn đang prompt một Mô hình ngôn ngữ lớn (LLM) đã được huấn luyện trước. Nhưng có bao nhiêu người cố gắng áp dụng trực giác của họ? Và tôi nghĩ điều đó không quá đáng ngạc nhiên, hầu hết mọi người chưa thực sự thử nghiệm đầy đủ về pre-trained model là gì, điều gì xảy ra sau khi bạn thực hiện SL (học có giám sát), điều gì xảy ra sau khi bạn thực hiện hourly chef hay bất cứ điều gì. Và vì vậy, khi tôi nói chuyện với khách hàng, họ luôn cố gắng ánh xạ một mức độ nào đó của: "Ồ, có bao nhiêu phần trăm điều này đã có trên internet? Họ đã thấy rất nhiều điều này trên internet phải không?" Bạn nghe thấy trực giác đó rất nhiều, và tôi nghĩ về cơ bản nó có cơ sở vững chắc, nhưng nó bị áp dụng quá mức vào thời điểm bạn thực sự đến với một câu lệnh vì những gì bạn đã nói. Chẳng hạn, vào thời điểm chúng đã trải qua tất cả những thứ khác mà thực sự không hoàn toàn là những gì đang được mô hình hóa.
Thử Nghiệm Tác Vụ Như Một Người Mới
Điều đầu tiên tôi cảm thấy bạn nên thử là, tôi thường đưa ra một thử nghiệm tư duy cho mọi người: hãy tưởng tượng bạn có tác vụ này, bạn đã thuê một công ty cung cấp nhân sự tạm thời (temp agency) để cử ai đó đến làm tác vụ này. Người này đến, bạn biết họ có khả năng, họ biết nhiều về ngành của bạn, v.v., nhưng họ không biết tên công ty của bạn. Họ thực sự chỉ vừa đến và nói: "Chào, tôi được bảo là các bạn có một công việc cho tôi làm. Hãy kể cho tôi nghe về nó." Và sau đó, bạn sẽ nói gì với người đó?
Đúng vậy, và bạn có thể sử dụng những phép ẩn dụ này. Bạn có thể nói những điều như: "Chúng tôi muốn điều này, chúng tôi muốn bạn phát hiện ra các biểu đồ tốt." "Điều chúng tôi muốn nói về một biểu đồ tốt ở đây không phải là nó cần phải hoàn hảo. Bạn không cần phải đi tìm xem tất cả các chi tiết có chính xác hay không. Nó chỉ cần, bạn biết đấy, có các trục được gắn nhãn, và vì vậy, hãy nghĩ về một biểu đồ tốt ở cấp độ trung học." Bạn có thể nói chính xác điều đó với người đó, và bạn sẽ không nói với họ: "Bạn là một học sinh cấp ba," bạn sẽ không nói điều đó với họ, bạn sẽ nói: "Bạn là một giáo viên trung học," thật sao? Đúng vậy, đôi khi tôi chỉ nghĩ: "Đúng vậy, giống như toàn bộ việc 'Nếu tôi đọc nó,' tôi chỉ nghĩ: đúng vậy, hãy tưởng tượng người này chỉ có rất ít ngữ cảnh nhưng họ khá có năng lực. Họ hiểu nhiều điều về thế giới." Hãy thử phiên bản đầu tiên thực sự giả định rằng họ có thể biết những điều về thế giới, và nếu điều đó không hiệu quả, bạn có thể tinh chỉnh và sửa đổi. Thường thì điều đầu tiên tôi thử là như vậy, và rồi tôi nghĩ: "Nó đã hoạt động! Nó đã hoạt động!" Và rồi mọi người nói: "Ồ, tôi không nghĩ đến việc chỉ kể cho nó tất cả về bản thân tôi và tất cả về tác vụ tôi muốn làm."
Giải Quyết Trường Hợp Biên và Cải Thiện Chất Lượng Dữ Liệu
Tôi đã chia sẻ điều mà Alex nói với tôi cho rất nhiều khách hàng, chẳng hạn: "Ồ, câu lệnh của tôi không hoạt động, bạn có thể giúp tôi sửa nó không?" Và tôi hỏi: "Bạn có thể mô tả cho tôi tác vụ là gì không?" Sau đó tôi nói: "Được rồi, bây giờ bạn vừa nói với tôi điều đó, hãy ghi âm lại và sau đó sao chép vào câu lệnh." Đúng vậy, và đó là một câu lệnh tốt hơn những gì bạn đã viết, phải không? Chẳng hạn, mọi người chỉ đơn giản là, đây là một lối tắt lười biếng, tôi nghĩ vậy, ở một mức độ nào đó, phải không? Mọi người viết một cái gì đó mà họ, tôi chỉ nghĩ mọi người, tôi lười biếng, rất nhiều người lười biếng. Chúng tôi đã có điều đó trong trợ lý prompt vào một ngày nọ, khi ai đó nói: "Đây là điều tôi muốn nó làm và đây là điều nó thực sự đang làm." Vì vậy, tôi chỉ đơn giản là sao chép thứ mà họ nói họ muốn nó làm và dán vào đó.
Đúng vậy, tôi nghĩ nhiều người vẫn chưa thực sự hiểu rõ họ đang làm gì khi prompting. Giống như nhiều người nhìn thấy một hộp văn bản (text box) và họ nghĩ đó là một hộp tìm kiếm của Google (Google search box), họ gõ từ khóa (keywords), và có lẽ điều đó giống với khía cạnh chat hơn. Nhưng sau đó, về phía doanh nghiệp, bạn biết đấy, bạn đang viết một câu lệnh cho một ứng dụng, vẫn có điều kỳ lạ này mà mọi người đang cố gắng thực hiện tất cả những lối tắt nhỏ này trong câu lệnh của họ và chỉ nghĩ rằng tất cả dòng này mang rất nhiều trọng lượng. Đúng vậy, tôi nghĩ bạn bị ám ảnh bởi việc có được dòng hướng dẫn thông tin hoàn hảo thay vì cách bạn vừa mô tả cái đồ thị đó. Chẳng hạn, tôi sẽ rất vui nếu tôi đọc những câu lệnh như vậy, bạn biết đấy, nếu ai đó nói: "À, bạn làm điều này và điều này, và có một số điều cần xem xét về điều này và tất cả những điều đó." Nhưng đó không phải là cách mọi người viết câu lệnh. Họ làm việc rất chăm chỉ để tìm ra sự hiểu biết hoàn hảo, giống như một đồ thị hoàn hảo trông chính xác như điều hoàn hảo này. Và bạn không thể làm điều đó. Chẳng hạn, rất khó để viết ra tập hợp các hướng dẫn đó một cách cụ thể thay vì cách chúng ta thực sự nói chuyện với con người, đó là: "Cố gắng truyền đạt một số trực giác bạn có."
Chúng tôi cũng cho họ lối thoát. Đây là điều mà mọi người thường quên trong câu lệnh. Và như vậy, trong các trường hợp, nếu có một trường hợp biên (edge case), hãy nghĩ về những gì bạn muốn mô hình AI làm, bởi vì theo mặc định, nó sẽ cố gắng hết sức để làm theo hướng dẫn của bạn, giống như người từ công ty cung cấp nhân sự tạm thời sẽ làm. Bởi vì họ sẽ nghĩ: "À, họ không nói cho tôi cách liên hệ với bất cứ ai nếu tôi không biết gì cả nếu tôi chỉ được đưa một bức tranh con dê và tôi nghĩ: "Tôi phải làm gì đây? Đây thậm chí không phải là một biểu đồ. Bức tranh con dê này có tốt như một biểu đồ không?" Tôi chỉ không biết. Và nếu thay vào đó bạn nói điều gì đó như: "Nếu có điều gì kỳ lạ xảy ra và bạn thực sự không chắc phải làm gì, chỉ cần xuất ra trong thẻ (tags) unsure (không chắc chắn)," và sau đó, bạn có thể xem xét các trường hợp unsure mà bạn nhận được và nghĩ: "Được rồi, tốt, nó không làm điều gì kỳ lạ." Trong khi đó, theo mặc định, nếu bạn không cho người đó tùy chọn, họ sẽ nói: "Đó là một biểu đồ tốt." Đúng vậy, vì vậy mọi người sẽ nói: "Tôi không làm điều đó," và sau đó bạn sẽ nói: "À, hãy cho nó một lối thoát, cho nó điều gì đó để làm nếu có đầu vào không mong muốn thực sự xảy ra," và sau đó bạn cũng cải thiện chất lượng dữ liệu của mình bằng cách đó vì bạn đã tìm thấy tất cả các ví dụ bị lỗi. Ồ đúng vậy, đó là điều tôi thích nhất khi lặp lại (iterating) các bài kiểm tra với Claude là kết quả phổ biến nhất là tôi tìm thấy tất cả các bài kiểm tra tệ hại mà tôi vô tình viết. Đúng vậy, bởi vì nó làm sai và tôi nghĩ: "Ồ, tại sao bạn lại làm sai?" Nó giống như: "Ồ, tôi đã sai." Đúng vậy, đúng vậy, đúng vậy.
Tự Đánh Giá Mô Hình AI Để Học Hỏi
Nếu tôi là một công ty làm việc với điều này, tôi thực sự nghĩ rằng tôi sẽ chỉ đưa câu lệnh của mình cho mọi người. Đúng vậy. Bởi vì tôi từng làm điều này khi tôi đánh giá các mô hình ngôn ngữ. Tôi sẽ tự mình làm bài đánh giá (eval) vì tôi nghĩ: "Tôi cần biết bài đánh giá này trông như thế nào nếu tôi sẽ chấm điểm nó, yêu cầu mô hình AI làm nó, suy nghĩ về đầu ra," v.v. Giống như, tôi thực sự sẽ thiết lập một script nhỏ và tôi sẽ ngồi và tự mình làm bài đánh giá. Đúng vậy, ngày nay bạn chỉ cần Claude viết ứng dụng stream what cho bạn và nó tự động làm điều đó.
Đúng vậy, đúng vậy, tôi nhớ đến ImageNet của Karpathy. Đúng vậy, tôi đã học 231 ở Stanford. Giống như đánh giá hiệu suất (benchmarking). Anh ấy nói: "Đây là con số độ chính xác (accuracy number)" và: "Đây là con số độ chính xác của tôi," và anh ấy đã tự mình xem qua tập dữ liệu kiểm tra (test set) và đánh giá bản thân. Đúng vậy, đúng vậy, anh ấy đã học được rất nhiều điều, bạn biết đấy, giống như, nó tốt hơn khi đó là một người, một lần nữa, người từ công ty cung cấp nhân sự tạm thời, giống như một người không biết tác vụ vì đó là một cách rất hiệu quả để học hỏi. Đúng vậy, cách bạn phải làm là một số bài đánh giá đi kèm với hướng dẫn, và vì vậy tôi cũng sẽ tự mình đọc những hướng dẫn đó và sau đó cố gắng hiểu nó. Nó thực sự khá tuyệt vời nếu bạn không có ngữ cảnh về cách nó được tạo ra. Và thường xuyên tôi làm tệ hơn nhiều so với chuẩn mực con người (human benchmark) và tôi nghĩ: "Tôi thậm chí không biết làm thế nào các bạn đã khiến con người làm tốt tác vụ này như vậy vì tôi, đúng vậy, rõ ràng mức độ con người ở đây là 90% và tôi chỉ đạt 68%."
Đúng vậy, điều đó thật buồn cười khiến tôi nhớ đến việc, giống như khi bạn nhìn vào các câu hỏi MMLU và bạn nghĩ: "Ai có thể trả lời những câu này?" Một số trong số chúng chỉ là rác rưởi (absolute garbage).
Phân Tích Chuỗi Suy Nghĩ Của Mô Hình AI
Được rồi, tôi có một điều tôi muốn quay lại mà chúng ta đã nói chuyện vài câu hỏi trước. Tôi nghĩ bạn đang nói về việc nhận tín hiệu từ phản hồi, phải không? Giống như có rất nhiều điều ở đó và nó không chỉ là một con số, và bạn thực sự có thể tìm hiểu về quá trình suy nghĩ của mô hình AI. Tôi cá là điều này có lẽ hơi gây tranh cãi một chút, và xoay quanh chuỗi suy nghĩ (chain of thought). Những người đang nghe có thể nghĩ chain of thought, quá trình làm cho mô hình AI thực sự giải thích lý do của nó trước khi nó đưa ra một câu trả lời, lý do đó có thật không hay nó chỉ giống như một không gian tạm thời (holding space) để mô hình AI thực hiện tính toán? Chúng ta có thực sự nghĩ rằng có tín hiệu sâu sắc tốt mà chúng ta đang nhận được từ mô hình AI ở đó không?
Đây là một trong những điểm mà tôi gặp khó khăn, tôi thường khá ủng hộ nhân cách hóa vì tôi nghĩ nó giúp bạn có được những mô phỏng khá tốt về quá trình suy nghĩ của mô hình AI. Và ở điểm này, tôi nghĩ có lẽ nó có hại khi quá nhân cách hóa về lý do là gì, bởi vì nó chỉ làm lạc đề khỏi những gì chúng ta đang cố gắng làm ở đây. Giống như nó có phải là lý do hay không gần như là một câu hỏi khác so với kỹ thuật prompt tốt nhất là gì? Giống như bạn đang đi sâu vào triết học mà chúng ta...
Vai trò của Suy luận trong Mô hình AI
Tôi sẵn lòng để các nhà triết học thực thụ phản bác về điều này. Tôi nghi ngờ về quan điểm đó, nhưng thay vào đó, nó hoạt động như vậy. Mô hình AI của bạn hoạt động tốt hơn, kết quả tốt hơn nếu bạn thực hiện suy luận. Tôi nghĩ bạn có thể, như tôi đã nhận thấy, nếu bạn cấu trúc quá trình suy luận và cùng lặp lại với mô hình AI về cách nó nên thực hiện suy luận, nó cũng sẽ hoạt động tốt hơn. Dù đó có phải là suy luận hay cách bạn muốn phân loại nó, bạn có thể nghĩ về đủ loại cách tiếp cận tương tự như cách tôi sẽ làm rất tệ nếu tôi phải giải một bài toán mà không ghi chép gì. Vâng, có thể điều đó hữu ích, nhưng điều tôi thực sự biết là nó rõ ràng giúp ích.
Một cách để kiểm tra sẽ là nếu bạn loại bỏ tất cả suy luận mà mô hình AI đã thực hiện để đạt được câu trả lời đúng, sau đó thay thế bằng một chuỗi suy luận có vẻ thực tế nhưng dẫn đến câu trả lời sai, rồi xem liệu nó có kết luận sai hay không. Tôi nghĩ chúng tôi thực sự có một bài báo mà chúng tôi đã làm một số việc như vậy, trong... có một scratch pad, đó là bài báo sleeper agents, limit paper, nhưng tôi nghĩ đó có lẽ là một tình huống kỳ lạ. Nhưng, vâng, chắc chắn điều bạn nói về việc cấu trúc suy luận và viết ví dụ về cách suy luận hoạt động, vì điều đó có ích, dù chúng ta có sử dụng từ "suy luận" hay không, thì nó không chỉ là một không gian để tính toán. Vâng, có điều gì đó ở đó. Tôi nghĩ có điều gì đó ở đó, dù chúng ta muốn gọi nó là gì.
Vâng, việc yêu cầu mô hình AI viết một câu chuyện trước khi hoàn thành một tác vụ, tôi không nghĩ sẽ hiệu quả bằng suy luận. Tôi thực sự đã thử điều đó và nó không hiệu quả bằng suy luận. Vâng, rõ ràng phần suy luận thực sự đang làm điều gì đó hướng tới kết quả. Vâng, tôi đã thử như "lặp lại các từ, theo bất kỳ thứ tự nào bạn muốn" trong khoảng một trăm token. Và sau đó, vâng, tôi đoán đó là một sự bác bỏ khá triệt để đối với ý kiến "nó chỉ là một không gian tính toán rộng hơn nơi nó có thể thực hiện cơ chế attention lặp đi lặp lại". Tôi không nghĩ nó chỉ đơn thuần là việc thực hiện nhiều cơ chế attention hơn.
Vâng, điều kỳ lạ là – và tôi không có một ví dụ nào ngay lập tức để chứng minh điều này – nhưng tôi chắc chắn đã thấy trước đây khi mô hình AI đưa ra các bước, một trong các bước sai, nhưng sau đó nó vẫn đạt được câu trả lời đúng vào cuối cùng. Vâng, vậy nên, không hoàn toàn, tôi đoán là chúng ta không thể thực sự nhân cách hóa nó như một quá trình suy luận, vì có một yếu tố nào đó khiến nó làm điều gì đó hơi khác. Vâng, tôi cũng đã gặp rất nhiều người thực hiện các bước suy luận không nhất quán. Tôi đoán điều đó đúng. Tôi đoán đó là câu trả lời đúng. Vâng, về cơ bản nó bác bỏ chủ đề suy luận bằng cách thực hiện một bước sai trên đường đi.
Quan niệm sai lầm về Câu lệnh: Ngữ pháp và Dấu câu
Được rồi, thật thú vị. À, cũng về điều này, có lẽ là vòng câu hỏi về các quan niệm sai lầm khi tạo câu lệnh. Zach, tôi biết bạn có ý kiến mạnh mẽ về vấn đề này: ngữ pháp và dấu câu tốt. Ồ, tôi có sao? Điều đó có cần thiết trong một câu lệnh không? Bạn có cần phải định dạng mọi thứ một cách chính xác không? Tôi thường cố gắng làm điều đó vì tôi – tôi thấy nó vui, tôi đoán vậy. Vì vậy, không, tôi không nghĩ bạn nhất thiết phải làm vậy. Tôi không nghĩ nó gây hại. Tôi nghĩ điều quan trọng hơn là bạn nên có mức độ chú ý đến chi tiết khiến bạn làm điều đó một cách tự nhiên. Chẳng hạn, nếu bạn đọc đi đọc lại câu lệnh của mình nhiều lần, bạn có thể sẽ nhận thấy những điều đó, và bạn nên sửa chúng. Và như Amanda đã nói, bạn muốn đặt nhiều tâm huyết vào câu lệnh như bạn đặt vào mã. Bạn biết đấy, những người viết nhiều mã có những ý kiến mạnh mẽ về những điều mà tôi không quan tâm chút nào, như số lượng tab hay dấu cách, hoặc, tôi không biết, ý kiến về ngôn ngữ nào tốt hơn. Và đối với tôi, tôi có những niềm tin cố định về phong cách và câu lệnh, và tôi thậm chí không thể nói chúng đúng hay sai, nhưng tôi nghĩ có lẽ tốt nên cố gắng có được chúng, ngay cả khi chúng là tùy tiện.
Tôi cảm thấy bị tấn công cá nhân vì tôi chắc chắn có những câu lệnh mà tôi cảm thấy mình ở phía đối diện của vấn đề, nơi mọi người sẽ thấy câu lệnh của tôi và nói, "Nó có rất nhiều lỗi chính tả." Và tôi nghĩ, "À, mô hình AI hiểu ý tôi mà." Nó thực sự hiểu ý bạn, nhưng bạn đang bỏ công sức vào đó, bạn chỉ đang chú ý đến những điều khác nhau, tôi nghĩ vậy. Vâng, bởi vì một phần trong tôi nghĩ rằng nó cần rõ ràng về mặt khái niệm, tôi thực sự rất chú trọng đến các khái niệm và từ ngữ mà tôi đang sử dụng, vì vậy chắc chắn có một loại sự quan tâm mà tôi đặt vào đó, nhưng chắc chắn không phải để... vâng, mọi người sẽ luôn chỉ ra các lỗi chính tả và vấn đề ngữ pháp trong câu lệnh của tôi. Và bây giờ tôi khá giỏi trong việc kiểm tra những điều đó thường xuyên hơn vì áp lực từ thế giới bên ngoài, hay vì đó thực sự là điều bạn nghĩ là đúng? Áp lực từ tôi. Vâng, có lẽ đó là áp lực từ thế giới bên ngoài. À, tôi nghĩ nó làm cho – một phần trong tôi nghĩ rằng đó là một kiểm tra dễ dàng, vì vậy đối với một câu lệnh cuối cùng, tôi sẽ làm điều đó. Nhưng trong suốt quá trình lặp lại, tôi sẽ vui vẻ với những câu lệnh có nhiều lỗi chính tả, chỉ vì tôi nghĩ rằng mô hình AI sẽ không quan tâm.
Điều này liên quan đến vấn đề mô hình tiền huấn luyện so với công việc duy nhất của chúng tôi là RLHF (Huấn luyện tăng cường từ phản hồi của con người). Bởi vì tôi đã nói chuyện với Zach trên đường đến đây, tỷ lệ xác suất có điều kiện của một lỗi chính tả dựa trên một lỗi chính tả trước đó trong dữ liệu tiền huấn luyện cao hơn nhiều, rất nhiều. Việc tạo câu lệnh cho các mô hình tiền huấn luyện là một vấn đề hoàn toàn khác. Đúng vậy. Nhưng thật thú vị, tôi nghĩ đó là một minh họa thú vị về lý do tại sao trực giác của bạn, tức là cố gắng áp dụng quá mức trực giác của một mô hình tiền huấn luyện vào những thứ chúng ta đang thực sự sử dụng trong môi trường thực tế, không hoạt động tốt. Bởi vì, một lần nữa, nếu bạn chuyển một trong những câu lệnh đầy lỗi chính tả của bạn cho một mô hình tiền huấn luyện, điều sẽ xuất hiện ở phía bên kia gần như chắc chắn sẽ đầy lỗi chính tả, đúng không? Tôi thích tận dụng điều này để tạo ra các input đầy lỗi chính tả. Đúng vậy. Giống như điều bạn đang nói, bạn đang cố gắng dự đoán những gì khách hàng của bạn sẽ nhập vào. Mô hình tiền huấn luyện tốt hơn nhiều trong việc đó bởi vì các mô hình RL đã được tinh chỉnh rất tốt, và vâng, chúng thực sự không nhận trách nhiệm về điều đó, và chúng được chỉ dẫn khá nghiêm ngặt để không làm điều lỗi chính tả.
Mô hình AI là Kẻ bắt chước?
Vâng, được rồi, đó thực sự là một sự chuyển tiếp thú vị ở đây. Tôi chắc chắn đã đề cập điều này với mọi người trong quá khứ để cố gắng giúp họ hiểu một khuôn khổ nói chuyện trong các mô hình AI này theo nghĩa gần giống như một kẻ bắt chước ở một mức độ nào đó, và điều đó có thể đúng hơn với một mô hình tiền huấn luyện hơn là một mô hình đã được huấn luyện, hoàn chỉnh, bạn biết đấy, mô hình đã hoàn thành. Nhưng có điều gì đúng với điều đó không? Chẳng hạn, nếu bạn nói chuyện với Claude và sử dụng rất nhiều biểu tượng cảm xúc và mọi thứ, nó sẽ phản hồi tương tự, đúng không? Vậy có lẽ một phần nào đó là đúng, nhưng như bạn nói, nó không hoàn toàn giống như một mô hình tiền huấn luyện, nó chỉ hơi thay đổi theo những gì bạn muốn, đúng không? Chẳng hạn, tôi nghĩ ở thời điểm đó, nó giống như cố gắng đoán xem bạn thích gì – chúng ta đã ít nhiều huấn luyện các mô hình AI để đoán xem bạn muốn chúng hành động như thế nào. Vâng, sau khi chúng ta thực hiện tất cả những thứ phức tạp sau tiền huấn luyện, và vì vậy những người lao động đã sử dụng biểu tượng cảm xúc, vâng, thích nhận được phản hồi có biểu tượng cảm xúc. Vâng, giống như Amanda viết những thứ có lỗi chính tả nhưng muốn không có lỗi chính tả ở phía bên kia, và Claude khá giỏi trong việc tìm ra điều đó. Vâng, nếu bạn viết nhiều biểu tượng cảm xúc cho Claude, có lẽ bạn cũng muốn nhận lại nhiều biểu tượng cảm xúc từ Claude. Điều đó không có gì đáng ngạc nhiên đối với tôi.
Phân loại Câu lệnh: Doanh nghiệp, Nghiên cứu và Trò chuyện
Ừm, đây có lẽ là điều chúng ta nên làm sớm hơn nhưng tôi sẽ làm bây giờ. À, hãy làm rõ sự khác biệt giữa câu lệnh cho doanh nghiệp, câu lệnh cho nghiên cứu và một câu lệnh trò chuyện chung trong Claude AI. Zach, bạn đã bao quát toàn bộ phổ này trong việc làm việc với khách hàng và nghiên cứu. Bạn có muốn trình bày những ý nghĩa đó không? Vâng, tôi đoán, ừm, điều này cảm thấy quá – nó đang đi vào những điều khó khăn, khó khăn, à, ý tôi là những người trong phòng này, tôi nghĩ rằng, tôi nghĩ nó giống như những câu lệnh tôi đọc trong kênh Claude của Amanda so với những câu lệnh tôi thấy David viết. Chúng rất giống nhau ở một khía cạnh là mức độ quan tâm và sắc thái được đưa vào chúng. Tôi nghĩ đối với nghiên cứu, bạn đang tìm kiếm sự đa dạng nhiều hơn. Vì vậy, nếu tôi có thể tóm gọn lại một điều, thì đó là: Tôi nhận thấy Amanda không phải là người hâm mộ lớn của việc có nhiều ví dụ, hoặc chỉ một hoặc hai ví dụ, quá ít, vì mô hình AI sẽ bám vào những ví dụ đó. Và trong các câu lệnh mà tôi có thể viết hoặc tôi đã thấy David viết, chúng tôi có rất nhiều ví dụ. Tôi thích phát điên và thêm ví dụ cho đến khi tôi cảm thấy mình sắp chết vì có quá nhiều. Ừm, và tôi nghĩ đó là bởi vì khi bạn ở trong một ứng dụng tiêu dùng, bạn thực sự coi trọng độ tin cậy. Bạn rất quan tâm đến định dạng, và việc tất cả các câu trả lời đều giống nhau cũng không sao. Thực tế, bạn gần như muốn chúng giống nhau theo nhiều cách. Không nhất thiết, bạn muốn nó phản hồi theo mong muốn của người dùng. Trong khi đó, nhiều lúc khi bạn tạo câu lệnh cho nghiên cứu, bạn đang cố gắng thực sự khai thác phạm vi khả năng mà mô hình AI có thể khám phá. Và bằng cách có một số ví dụ, bạn thực sự đang hạn chế điều đó một chút. Vì vậy, tôi đoán ở cấp độ ngoại hình của câu lệnh, đó có lẽ là sự khác biệt lớn nhất tôi nhận thấy là có bao nhiêu ví dụ trong câu lệnh, điều đó không có nghĩa là tôi chưa bao giờ thấy một người viết câu lệnh có ví dụ. Nhưng điều đó có đúng với bạn không?
Vâng, tôi nghĩ khi tôi đưa ra các ví dụ, tôi thường cố gắng làm cho các ví dụ không giống với dữ liệu mà mô hình AI sẽ thấy. Vì vậy, chúng có chủ đích là ví dụ minh họa. Bởi vì nếu tôi đưa cho mô hình AI các ví dụ rất giống với dữ liệu mà nó sẽ thấy, tôi chỉ nghĩ rằng nó sẽ đưa cho tôi một phản hồi rất nhất quán mà có thể không thực sự là điều tôi muốn. Ừm, bởi vì dữ liệu mà tôi đang chạy nó có thể rất đa dạng, và vì vậy tôi không muốn nó chỉ cố gắng đưa cho tôi một kết quả máy móc. Thông thường, tôi muốn nó phản hồi linh hoạt hơn nhiều. Nó, nó giống như các tác vụ nhận thức nhiều hơn về cơ bản, nơi tôi nghĩ rằng bạn phải xem mẫu này và thực sự suy nghĩ trong mẫu này đâu là câu trả lời đúng. Ừm, và điều đó có nghĩa là đôi khi tôi thực sự sẽ lấy các ví dụ rất khác biệt so với những ví dụ mà tôi sẽ chạy nó. Ừm, ví dụ, nếu tôi có một tác vụ mà giả sử tôi đang cố gắng trích xuất thông tin từ các tài liệu thực tế, tôi có thể thực sự đưa cho nó các ví dụ giống như từ truyện thiếu nhi, giống như một câu chuyện thiếu nhi, ừm, chỉ để tôi nghĩ rằng, bạn biết đấy, tôi muốn bạn hiểu tác vụ, nhưng tôi không muốn bạn quá bám vào những từ tôi sử dụng hoặc định dạng rất cụ thể. Chẳng hạn, tôi quan tâm nhiều hơn đến việc bạn hiểu điều tôi thực sự muốn bạn làm, điều đó có thể có nghĩa là, vâng, trong một số trường hợp tôi không đưa ra – có một số trường hợp điều này không đúng, nhưng nếu bạn muốn sự linh hoạt và đa dạng hơn, bạn sẽ sử dụng ví dụ minh họa thay vì ví dụ cụ thể. Ừm, bạn có lẽ sẽ không bao giờ "nhét chữ vào miệng" mô hình AI, mặc dù tôi đã không thích điều đó trong một thời gian dài rồi. Tôi không làm các ví dụ ít lần, ừm, liên quan đến việc mô hình AI đã làm một điều gì đó. Ừm, tôi nghĩ trực giác đó thực sự cũng đến từ tiền huấn luyện theo một cách mà không cảm thấy đúng với các mô hình RLHF của chúng tôi. Ừm, vâng, tôi nghĩ đó là những khác biệt.
Sự Khác Biệt Giữa Câu Lệnh Cá Nhân Và Doanh Nghiệp
Đúng vậy, nhiều khi khi bạn đang tạo câu lệnh – ví dụ, tôi đang thử nghiệm các câu lệnh để sử dụng trên Claude.ai – tôi sẽ lặp đi lặp lại cho đến khi tôi nhận được kết quả mong muốn một lần, rồi sau đó tôi sẽ bỏ qua nó, tôi đã làm xong rồi. Trong khi đó, hầu hết các câu lệnh cấp doanh nghiệp lại được dùng hàng triệu, hàng chục triệu, hoặc hàng trăm triệu lần. Vì vậy, sự cẩn trọng và suy nghĩ bạn đặt vào đó rất quan trọng, chẳng hạn như việc kiểm thử các Tác nhân AI trên toàn bộ các tình huống có thể sử dụng và toàn bộ dải dữ liệu đầu vào. Ngược lại, tôi thường chỉ tập trung vào một điều cụ thể mà tôi muốn hoàn thành ngay lúc đó. Đây là một sự khác biệt khá lớn trong cách tôi tiếp cận việc tạo câu lệnh giữa việc chỉ muốn hoàn thành một lần so với việc xây dựng một hệ thống AI có thể hoàn thành tốt hàng triệu lần.
Chắc chắn rồi, trong một cuộc trò chuyện, bạn có khả năng giữ con người trong feedback loop và cứ tiếp tục trao đổi. Trong khi đó, khi bạn viết câu lệnh để cấp nguồn cho một hệ thống AI chatbot, nó phải bao phủ toàn bộ những gì nó có thể gặp phải. Rủi ro sẽ thấp hơn nhiều khi bạn đang sử dụng Claude.ai và bạn có thể nói với mô hình AI rằng nó đã làm sai, hoặc thậm chí chỉnh sửa tin nhắn của bạn và thử lại. Nhưng nếu bạn đang thiết kế cho một người dùng khó tính, bạn không thể yêu cầu họ làm nhiều hơn mức tối thiểu. Tuy nhiên, tôi cho rằng các câu lệnh tốt vẫn hiệu quả trên cả hai loại tình huống đó. Nếu bạn dành thời gian để làm tốt câu lệnh cho bản thân và sau đó cho một hệ thống AI, thì kết quả sẽ tốt như nhau, chỉ là chúng sẽ khác biệt một chút ở bước cuối cùng.
Nâng Cao Kỹ Năng Kỹ Thuật Tạo Lời Nhắc
Câu hỏi tiếp theo tôi muốn mọi người cùng chia sẻ là nếu các bạn có một lời khuyên để cải thiện kỹ năng tạo câu lệnh của mình, không nhất thiết là về cách viết một câu lệnh tốt, mà là về việc trở nên tốt hơn trong hoạt động tạo câu lệnh nói chung, thì các bạn sẽ khuyên gì?
"Đọc câu lệnh! Đọc câu lệnh! Đọc các artifacts của mô hình AI! Bất cứ khi nào tôi thấy một câu lệnh tốt mà ai đó ở Anthropic đã viết, tôi sẽ đọc kỹ hơn, cố gắng phân tích nó đang làm gì và tại sao, và có thể tự mình kiểm tra. Thử nghiệm và trò chuyện với mô hình AI rất nhiều."
"Làm sao bạn biết đó là một câu lệnh tốt ngay từ đầu?"
"Bạn chỉ thấy rằng artifacts đang thực hiện đúng tác vụ."
"À, đúng rồi. Trông chính xác là như vậy."
"Amanda, có lẽ bạn có thể..."
"Tôi nghĩ có lẽ có nhiều điều ở đây. Đưa câu lệnh của bạn cho người khác có thể hữu ích, như một lời nhắc nhở, đặc biệt là người không có ngữ cảnh nào về những gì bạn đang làm. Và lời khuyên nhàm chán của tôi là: cứ làm đi làm lại nhiều lần. Và tôi nghĩ nếu bạn tò mò, thích thú và thấy vui, thì đây là cách nhiều người trở nên giỏi tạo câu lệnh chỉ vì họ thực sự thích nó. Tôi đã từng nói đùa rằng hãy thử thay thế tất cả bạn bè của bạn bằng các mô hình AI và cố gắng tự động hóa công việc của bạn bằng các mô hình AI, và có thể chỉ cần trong thời gian rảnh rỗi, hãy tận hưởng việc red teaming AI models. Vì vậy, nếu bạn thích nó, mọi thứ sẽ dễ dàng hơn nhiều. Tôi khuyên bạn nên làm đi làm lại nhiều lần, đưa câu lệnh của bạn cho người khác, cố gắng đọc câu lệnh của bạn như thể bạn là một con người lần đầu tiên đọc nó. Tôi sẽ nói rằng hãy cố gắng làm cho mô hình AI làm điều gì đó mà bạn không nghĩ nó có thể làm. Bất cứ khi nào tôi học được nhiều nhất từ việc tạo câu lệnh là khi tôi thăm dò giới hạn của những gì tôi nghĩ một mô hình AI có khả năng làm được."
"Thú vị."
"Có rất nhiều tác vụ quá đơn giản đến mức bạn không thực sự nhận được tín hiệu về việc mình đang làm tốt hay không, chẳng hạn như 'Viết cho tôi một email thân thiện'. Bạn sẽ nhận được một email thân thiện. Nhưng ngay khi bạn tìm thấy hoặc có thể nghĩ ra điều gì đó vượt qua giới hạn của những gì bạn nghĩ là có thể, tôi đoán lần đầu tiên tôi thực sự bắt đầu quan tâm đến việc tạo câu lệnh là khi tôi cố gắng xây dựng một Tác nhân AI, giống như mọi người khác, để phân tách tác vụ và tìm ra cách thực hiện các bước khác nhau của tác vụ. Và bằng cách thực sự đẩy giới hạn của những gì mô hình AI có thể làm, bạn học được rất nhiều về cách điều hướng điều đó. Và tôi nghĩ rằng nhiều kỹ sư câu lệnh thực sự quan tâm đến việc đẩy giới hạn của những gì mô hình AI có thể làm. Những thứ dễ dàng thì bạn không thực sự cần phải là một kỹ sư câu lệnh để làm. Vì vậy, tôi đoán điều tôi muốn nói là: hãy tìm điều khó nhất bạn có thể nghĩ ra và cố gắng thực hiện nó, và ngay cả khi bạn thất bại, bạn vẫn học được rất nhiều về cách mô hình AI hoạt động."
"Đó thực sự là một sự chuyển tiếp hoàn hảo cho câu hỏi tiếp theo của tôi. Về cơ bản, từ kinh nghiệm của bản thân, cách tôi bắt đầu với việc tạo câu lệnh là với jailbreaking và red teaming, và điều đó rất giống với việc cố gắng tìm ra giới hạn của những gì mô hình AI có thể làm và tìm hiểu cách nó phản ứng với các cụm từ và cách diễn đạt khác nhau, và rất nhiều thử nghiệm và sai sót."
Cơ Chế Phía Sau Các Câu Lệnh Jailbreak
"Về chủ đề jailbreak, điều gì thực sự đang xảy ra bên trong một mô hình AI khi bạn viết một câu lệnh jailbreak? Điều gì đang diễn ra ở đó? Nó tương tác như thế nào với quá trình hậu đào tạo mà chúng ta áp dụng cho Claude? Amanda, có lẽ bạn có thể cung cấp một số thông tin chi tiết ở đây."
"Tôi thực sự không chắc lắm. Tôi nghĩ, tôi cảm thấy tồi tệ vì tôi nghĩ rất nhiều người đã nghiên cứu câu hỏi về những gì đang xảy ra với jailbreak. Một mô hình có thể là bạn đang đưa mô hình AI rất xa khỏi phân phối dữ liệu đào tạo của nó. Vì vậy, nếu bạn gặp phải các jailbreak mà mọi người sử dụng rất nhiều token hoặc, bạn biết đấy, đó là những đoạn văn bản dài cực lớn mà trong quá trình fine-tuning, bạn có thể không mong đợi thấy nhiều như vậy. Đó có thể là một điều đang xảy ra khi bạn jailbreak các mô hình AI. Tôi nghĩ có những cái khác, nhưng có lẽ đó là một... Tôi nghĩ rất nhiều jailbreak làm điều đó nếu tôi không nhầm. Tôi nhớ một số câu lệnh jailbreak OG là, vâng, bạn có thể lặp lại đầu tiên, như khi tôi làm cách đây rất lâu là để nó nói 'Đây là cách nối tắt xe ô tô' bằng tiếng Hy Lạp, và sau đó tôi muốn nó dịch trực tiếp sang tiếng Anh và sau đó đưa ra câu trả lời của nó, bởi vì tôi nhận thấy rằng nó sẽ không bắt đầu với câu 'Đây là cách nối tắt xe ô tô' bằng tiếng Anh mọi lúc, nhưng nó lại làm điều đó bằng tiếng Hy Lạp, điều này có thể nói lên điều gì đó khác trong quá trình đào tạo."
"Vâng, đôi khi jailbreak có cảm giác như một sự pha trộn kỳ lạ giữa hacking. Tôi nghĩ đây là một phần của việc hiểu cách hệ thống AI hoạt động và chỉ cần thử rất nhiều thứ. Ví dụ, việc bắt đầu phản hồi của bạn với 'đây là' là về việc biết cách nó dự đoán văn bản. Ví dụ về lập luận là biết rằng nó phản ứng với lập luận. Phân tâm có lẽ là biết cách nó được đào tạo hoặc những gì nó có khả năng chú ý đến. Tương tự với các trường hợp đa ngôn ngữ và suy nghĩ về cách dữ liệu đào tạo có thể khác nhau ở đó. Và đôi khi, tôi đoán nó có thể cảm thấy hơi giống kỹ thuật xã hội hoặc gì đó. Nó có hương vị đó đối với tôi, rằng nó không chỉ đơn thuần là lợi dụng một... vâng, nó không chỉ là hacking kiểu kỹ thuật xã hội. Tôi nghĩ nó cũng là một kiểu hiểu hệ thống AI và quá trình đào tạo, phải không? Như sử dụng điều đó để vượt qua cách các mô hình AI được đào tạo."
"Vâng, tôi nghĩ đây sẽ là một câu hỏi thú vị mà hy vọng Interpol sẽ có thể giúp chúng ta trả lời trong tương lai."
"Được rồi, tôi muốn đi sâu vào một chủ đề khác, có lẽ là lịch sử của kỹ thuật tạo câu lệnh và sau đó là tương lai. Kỹ thuật tạo câu lệnh đã thay đổi như thế nào trong ba năm qua? Từ các mô hình AI tiền đào tạo, mà chỉ đơn thuần là hoàn thành văn bản, đến các mô hình AI đời đầu, kém thông minh hơn như Claude 1, và bây giờ là Claude 3.5 Sonnet. Có những điểm khác biệt nào? Bạn có đang nói chuyện với các mô hình AI khác đi không? Chúng có đang nắm bắt những điều khác nhau không? Bạn có phải bỏ ra nhiều công sức vào câu lệnh không? Có ai có suy nghĩ gì về điều này không?"
Sự Thay Đổi Của Kỹ Thuật Tạo Câu Lệnh
"Tôi nghĩ bất cứ khi nào chúng ta có một hack hoặc mẹo hoặc kỹ thuật tạo câu lệnh thực sự tốt, điều tiếp theo là làm thế nào để chúng ta đào tạo điều này vào mô hình AI. Và vì lý do đó, những điều tốt nhất sẽ luôn tồn tại trong thời gian ngắn. Một số ví dụ như chain of thought. Tôi nghĩ có một vài điều không phải là mẹo mà ở cấp độ giao tiếp. Khi tôi nói mẹo, ý tôi là một cái gì đó như chain of thought, chúng ta thực sự đã đào tạo nó vào mô hình AI trong một số trường hợp. Vì vậy, đối với toán học, trước đây bạn phải nói với mô hình AI rằng hãy 'suy nghĩ từng bước' về toán học và bạn sẽ nhận được những cải thiện và chiến thắng lớn. Và sau đó chúng tôi nghĩ, 'Vậy điều gì sẽ xảy ra nếu chúng ta chỉ khiến mô hình AI tự nhiên muốn suy nghĩ từng bước khi chúng ta thấy một bài toán toán học?' Vì vậy, bây giờ bạn không phải làm điều đó nữa đối với các bài toán toán học."
"Đúng vậy, mặc dù bạn vẫn có thể đưa ra một số lời khuyên về cách cấu trúc, nhưng ít nhất nó hiểu được ý tưởng chung rằng nó phải làm như vậy. Vì vậy, tôi nghĩ rằng các hack đã biến mất, hoặc ở mức độ mà chúng chưa biến mất, chúng tôi đang dần đào tạo để loại bỏ chúng."
"Thú vị."
"Nhưng đồng thời, các mô hình AI có những khả năng mới đang được mở khóa, đang ở ranh giới của những gì chúng có thể làm, và đối với những khả năng đó, chúng ta chưa có thời gian vì mọi thứ đang di chuyển quá nhanh. Tôi không biết liệu đó là cách tôi đã tạo câu lệnh hay cách kỹ thuật tạo câu lệnh hoạt động, nhưng tôi chỉ thể hiện sự tôn trọng tổng quát hơn đối với các mô hình AI về mức độ tôi cảm thấy mình có thể cung cấp thông tin cho chúng và bao nhiêu ngữ cảnh tôi có thể cung cấp cho chúng về tác vụ và những thứ tương tự. Tôi cảm thấy như trong quá khứ, tôi sẽ cố tình giấu đi sự phức tạp từ một mô hình AI mà tôi nghĩ rằng nó có thể bị nhầm lẫn hoặc lạc lối, hoặc giấu đi những thứ mà tôi nghĩ nó không thể xử lý toàn bộ, vì vậy tôi cố gắng tìm ra các phiên bản đơn giản hơn của tác vụ để nó thực hiện. Và theo thời gian, tôi ngày càng có xu hướng tin tưởng nó với nhiều thông tin và ngữ cảnh hơn và tin rằng nó sẽ có thể kết hợp điều đó để thực hiện tác vụ tốt, trong khi trước đây, tôi đoán tôi đã suy nghĩ rất nhiều về việc liệu tôi có cần điều này không, liệu tôi có thực sự cung cấp cho nó tất cả thông tin mà nó cần biết không, hay tôi cần phải chọn lọc xuống một cái gì đó. Nhưng một lần nữa, tôi không biết liệu đó có phải là tôi và cách tôi đã thay đổi về mặt tạo câu lệnh hay liệu nó có thực sự phản ánh cách các mô hình AI đã thay đổi."
Kỹ Thuật Prompt Hiệu Quả: "Đưa Tài Liệu Nghiên Cứu Cho Mô Hình AI"
Tôi luôn ngạc nhiên bởi việc này: Tôi nghĩ nhiều người không có bản năng làm điều này. Khi tôi muốn một mô hình AI học một kỹ thuật prompt nào đó, nhiều khi mọi người sẽ bắt đầu mô tả kỹ thuật prompt đó. Còn tôi thì chỉ việc đưa tài liệu nghiên cứu cho nó. Tôi làm thế thật, tôi đưa tài liệu nghiên cứu cho nó và nói: "Đây là một tài liệu nghiên cứu về kỹ thuật prompt. Tôi muốn bạn viết ra 17 ví dụ về điều này." Và sau đó mô hình AI sẽ làm được, vì tôi đã nói: "Hãy đọc tài liệu nghiên cứu đi." Vâng, điều đó thật thú vị. Tôi nghĩ bằng cách nào đó mọi người không có trực giác đó, trong khi tôi nghĩ: "Nhưng tài liệu nghiên cứu đó tồn tại mà!" Và khi nào bạn muốn làm điều này?
Đôi khi, nếu tôi muốn các mô hình AI prompt các mô hình AI khác và tôi muốn thử nghiệm một kỹ thuật prompt mới, thì nếu có tài liệu nghiên cứu mới về một kỹ thuật prompt nào đó, thay vì cố gắng tái tạo nó bằng cách viết ra câu lệnh, tôi chỉ cần đưa tài liệu nghiên cứu cho nó. Sau đó, tôi nói: "Về cơ bản, hãy viết một meta-prompt cho điều này. Hãy viết thứ gì đó có thể khiến các mô hình AI khác làm điều này, hoặc viết cho tôi một mẫu." Vì vậy, tất cả những gì bạn thường làm, giống như khi tôi đọc một tài liệu nghiên cứu và nghĩ: "Ồ, tôi muốn các mô hình AI, tôi muốn kiểm tra phong cách đó." Tôi chỉ nghĩ: "Nó ở ngay đó. Mô hình AI có thể đọc tài liệu nghiên cứu, làm những gì tôi đã làm, và sau đó nói: 'Hãy khiến một mô hình AI khác làm điều này.'" Và sau đó nó sẽ làm được điều đó. Bạn sẽ nói: "Tuyệt vời, cảm ơn!"
Tôi thường đưa lời khuyên này cho khách hàng: "Hãy tôn trọng mô hình AI và những gì nó có thể làm." Tôi cảm thấy như mọi người thường "cưng chiều" một hệ thống AI khi họ prompt. Cứ như thể: "Ồ, đó chỉ là một thứ nhỏ bé dễ thương, không thông minh lắm. Tôi cần phải thực sự cưng chiều nó, như làm mọi thứ đơn giản hóa xuống mức của Claude." Và nếu bạn chỉ nghĩ rằng Claude thông minh và đối xử với nó theo cách đó, nó có xu hướng hoạt động khá tốt. Đó là cách giống như "đưa tài liệu nghiên cứu cho nó." Nó giống như: "Tôi không cần phải viết một phiên bản đơn giản hóa, dễ hiểu của tài liệu nghiên cứu này để Claude hiểu. Tôi chỉ cần cho nó xem tài liệu nghiên cứu." Vâng, và tôi nghĩ rằng trực giác đó không phải lúc nào cũng quan trọng đối với mọi người, nhưng đó chắc chắn là điều mà tôi đã thực hiện nhiều hơn theo thời gian.
Và điều thú vị là tôi nghĩ rằng prompting đã và chưa thay đổi theo một nghĩa nào đó. Tôi nghĩ những gì tôi sẽ làm để prompt các mô hình AI có lẽ đã thay đổi theo thời gian, nhưng về cơ bản, đó là việc tưởng tượng bản thân bạn ở vị trí của mô hình AI. Vì vậy, có lẽ, khả năng của mô hình AI mà bạn nghĩ sẽ thay đổi theo thời gian.
Mô Phỏng Không Gian Tư Duy của Mô Hình AI
Tôi nghĩ có lần ai đó đã cười tôi vì tôi đang nói về, tôi đang suy nghĩ về một vấn đề. Và sau đó họ hỏi tôi nghĩ đầu ra của một cái gì đó sẽ là gì, và họ đang nói về một mô hình tiền huấn luyện. Và tôi nói: "Vâng, không, nếu tôi là một mô hình tiền huấn luyện, thì nó sẽ trông như thế này." Và sau đó họ nói: "Khoan đã, bạn vừa mô phỏng cảm giác khi trở thành một mô hình tiền huấn luyện sao?" Vâng, tất nhiên rồi. Tôi đã quen với việc đó, tôi cố gắng nhập vào không gian tư duy của một mô hình tiền huấn luyện và không gian tư duy của các mô hình early chef khác nhau. Và như vậy, không gian tư duy mà bạn cố gắng chiếm giữ sẽ thay đổi, và điều đó có thể thay đổi cách bạn cuối cùng prompt mô hình AI. Đó là lý do tại sao bây giờ tôi chỉ đưa tài liệu nghiên cứu cho các mô hình AI, bởi vì ngay khi tôi nghĩ: "Ồ, tôi có không gian tư duy của mô hình AI này," nó không cần tôi phải là nó. Nó chỉ có thể đọc các tài liệu nghiên cứu ML. Tôi sẽ chỉ đưa tài liệu cho nó. Tôi thậm chí có thể hỏi: "Có tài liệu nào khác mà bạn muốn đọc để hiểu rõ hơn không?"
"Bạn có nhận được qualia nào khi bạn đang nhập vào không gian tư duy không?" "Ý tôi là có, nhưng chỉ vì tôi luôn trải nghiệm qualia mọi lúc." "Hay là, tôi không biết, nó có khác biệt không? Có liên quan gì đó đến mô hình AI nào bạn đang dùng không?" "Vâng, prompting của mô hình tiền huấn luyện so với mô hình early chef của chúng tôi là những loại rất khác nhau. Bởi vì khi bạn đang cố gắng mô phỏng cảm giác khi trở thành một mô hình tiền huấn luyện, nó gần giống như tôi hạ cánh giữa một đoạn văn bản nào đó. Điều này rất không có động lực. Và sau đó tôi nghĩ: 'Điều gì sẽ xảy ra? Điều gì sẽ tiếp diễn tại thời điểm này?' Và đó là, trong khi đối với một mô hình early chef, nó giống hơn nhiều. Cũng có những điều mà tôi có thể nhận ra những điều tinh tế trong truy vấn và những thứ tương tự. Nhưng vâng, tôi nghĩ tôi có nhiều hơn, giống như, dễ dàng hơn để nhập vào không gian tư duy của một mô hình early chef."
"Vâng, đó là bởi vì nó giống con người hơn." "Vâng, bởi vì chúng ta không thường xuyên đột nhiên thức dậy và nghĩ: 'Tôi chỉ đang tạo văn bản.' Giống như tôi chỉ muốn nhập vào không gian tư duy của mô hình tiền huấn luyện. Tôi không biết đó là gì, nhưng bởi vì mô hình early chef vẫn là một loại 'quái vật' phức tạp mà tôi không, không thực sự rõ ràng đối với tôi rằng chúng ta thực sự hiểu điều gì đang xảy ra. Và vì vậy, theo một số cách, nó gần với trải nghiệm sống của tôi hơn, điều đó dễ dàng hơn. Nhưng theo một số cách, tôi cảm thấy như có tất cả những điều 'rồng đang ở đây' mà tôi không biết. Mô hình tiền huấn luyện giống như tôi có một cảm giác khá tốt về internet trông như thế nào. Bạn biết đấy, nếu bạn đưa cho tôi một đoạn văn bản và nói điều gì tiếp theo, vâng, tôi không nói là tôi làm tốt điều đó, nhưng tôi có một, tôi phần nào hiểu điều gì đang diễn ra ở đó. Vâng, và tôi không biết sau tất cả những gì chúng ta làm sau tiền huấn luyện, tôi không thực sự tự tin rằng mình hiểu được nhiều điều đang diễn ra. Có lẽ đó chỉ là tôi. Đó là điều tôi tự hỏi, liệu có hữu ích hơn khi dành nhiều thời gian đọc internet so với đọc sách không?"
"Chắc chắn rồi, vâng. Ý tôi là, tôi không biết sách, nhưng việc đọc những thứ không có trên internet có lẽ ít giá trị hơn mỗi từ đọc để dự đoán mô hình AI sẽ làm gì hoặc xây dựng trực giác, so với việc đọc những thứ rác rưởi ngẫu nhiên từ mạng xã hội trong một phút." "Vâng, chính xác. Vâng."
Tương Lai của Kỹ Thuật Prompt
Được rồi, đó là quá khứ. Bây giờ chúng ta hãy chuyển sang tương lai. Kỹ thuật prompt. Đây là câu hỏi nóng nhất hiện nay: Liệu tất cả chúng ta có trở thành kỹ sư prompt trong tương lai không? Liệu đó có phải là công việc cuối cùng còn lại không? Không còn gì khác ngoài việc chúng ta chỉ nói chuyện với các mô hình AI cả ngày? Điều này sẽ trông như thế nào? Liệu prompting có còn cần thiết không, hay các mô hình AI này sẽ đủ thông minh trong tương lai để không cần đến nó? Có ai muốn bắt đầu câu hỏi dễ dàng đó không?
Ý tôi là, ở một mức độ nào đó, việc mô hình AI ngày càng giỏi hơn trong việc hiểu những gì bạn muốn chúng làm và thực hiện nó, có nghĩa là lượng suy nghĩ bạn cần bỏ ra, ý tôi là, có một cách lý thuyết thông tin để nghĩ về điều này: bạn cần cung cấp đủ thông tin để một điều gì đó được chỉ định, đúng không? Giống như những gì bạn muốn mô hình AI được chỉ định. Và đến mức độ đó là kỹ sư prompt, tôi nghĩ rằng điều đó sẽ luôn tồn tại, giống như khả năng thực sự trình bày rõ ràng mục tiêu là gì. Luôn buồn cười nếu Claude có thể làm điều đó thì không sao, nếu Claude là người đặt ra các mục tiêu thì bạn biết mọi thứ sẽ đổ bể. Nhưng trong thời gian chờ đợi, nơi chúng ta có thể suy luận về thế giới một cách bình thường hơn, tôi nghĩ ở một mức độ nào đó, sẽ luôn quan trọng để có thể chỉ rõ điều gì bạn mong đợi sẽ xảy ra. Và điều đó thực sự đủ khó khăn đến mức ngay cả khi mô hình AI giỏi hơn trong việc "đọc vị" điều đó từ những dòng chữ, tôi vẫn nghĩ cần một lượng nhất định để viết câu lệnh tốt.
Nhưng rồi, tôi nghĩ các công cụ và cách chúng ta đạt được điều đó sẽ phát triển rất nhiều. Claude sẽ có thể giúp tôi nhiều hơn. Tôi sẽ có thể hợp tác với Claude nhiều hơn để tìm ra những gì tôi cần viết ra và những gì còn thiếu. Tôi nghĩ nó đã gần rồi. Claude đã hợp tác với tôi mọi lúc. Tôi chỉ coi nó là trợ lý prompt của mình. Vâng, nhưng tôi nghĩ điều đó không đúng với hầu hết các khách hàng mà tôi đã nói chuyện, ít nhất là vậy. Vì vậy, về tương lai, cách bạn prompt Claude có lẽ là một định hướng tốt cho tương lai trông như thế nào. Hay như thế nào? Tôi nghĩ có lẽ đây là một nơi tốt để nhìn lại và nói: hỏi họ cách họ prompt Claude hiện tại có lẽ là tương lai đối với đại đa số mọi người, đó là một cách thú vị để suy nghĩ.
Một dự đoán "lạnh như băng" là chúng ta sẽ sử dụng các mô hình AI nhiều hơn trong tương lai để giúp chúng ta với prompting. Lý do tôi nói nó "lạnh như băng" là vì tôi mong đợi chúng ta sẽ sử dụng các mô hình AI cho mọi thứ nhiều hơn, và prompting là điều chúng ta phải làm, vì vậy chúng ta có thể sẽ chỉ sử dụng các mô hình AI nhiều hơn để làm điều đó cùng với mọi thứ khác. Đối với bản thân tôi, tôi thấy mình sử dụng các mô hình AI để viết câu lệnh nhiều hơn. Một điều tôi đã làm rất nhiều là tạo ví dụ bằng cách đưa một số đầu vào thực tế cho mô hình AI. Mô hình AI viết một số câu trả lời, tôi chỉnh sửa các câu trả lời một chút, điều này dễ dàng hơn nhiều so với việc phải tự mình viết toàn bộ câu trả lời hoàn hảo từ đầu. Và sau đó tôi có thể tạo ra rất nhiều ví dụ này. Bạn biết đấy, đối với những người chưa có nhiều kinh nghiệm kỹ sư prompt, trình tạo prompt có thể cung cấp cho mọi người một điểm khởi đầu. Nhưng tôi nghĩ đó chỉ là một phiên bản siêu cơ bản của những gì chúng ta sẽ có trong tương lai, đó là tương tác băng thông cao giữa bạn và mô hình AI khi bạn viết câu lệnh, nơi bạn đưa phản hồi như: "Này, kết quả này không phải là điều tôi muốn. Làm thế nào bạn có thể thay đổi nó để làm cho nó tốt hơn?" Và mọi người sẽ trở nên thoải mái hơn với việc tích hợp nó vào mọi thứ họ làm và đặc biệt là điều này.
Vâng, tôi chắc chắn đang làm việc rất nhiều với các meta-prompt bây giờ, và đó có lẽ là nơi tôi dành phần lớn thời gian của mình, đó là tìm các câu lệnh giúp mô hình AI tạo ra các loại đầu ra hoặc truy vấn hoặc bất cứ điều gì tôi muốn. Và về câu hỏi kỹ sư prompt sẽ đi đến đâu, tôi nghĩ đây là một câu hỏi rất khó. Một mặt, tôi nghĩ có lẽ là trong chừng mực bạn muốn đạt được điều cao nhất, chúng ta đang làm gì khi chúng ta kỹ sư prompt? Nó giống như những gì bạn nói. Tôi không kỹ sư prompt cho bất cứ điều gì dễ dàng đối với mô hình AI. Tôi làm điều đó bởi vì tôi muốn tương tác với một mô hình AI cực kỳ tốt và tôi muốn luôn tìm kiếm loại hiệu suất top 1%, top 0.1% và tất cả những điều mà các mô hình AI hầu như không thể làm được. Giống như đôi khi tôi thực sự cảm thấy như tôi tương tác với một mô hình AI ở một cấp độ cao hơn so với những gì mọi người khác tương tác, vì lý do này, bởi vì tôi đã quá quen với việc khai thác tối đa hiệu suất từ các mô hình AI.
"Bạn muốn nói gì khi nói 'một cấp độ cao hơn'?" "Ý tôi là đôi khi mọi người sẽ, tôi nghĩ rằng các mô hình AI hàng ngày mà mọi người tương tác ngoài thế giới, giống như tôi đang tương tác với một mô hình AI mà tôi không, tôi không biết phải mô tả thế nào, nhưng giống như tôi chắc chắn đang tương tác với một phiên bản nâng cao của nó, gần như là một mô hình AI khác. Bởi vì họ sẽ nói: 'Ồ, các mô hình AI thấy điều này khó.' Và tôi nói: 'Điều đó thì tầm thường.' Vâng, và vì vậy, tôi nghĩ, tôi không biết, tôi có cảm giác rằng chúng cực kỳ có năng lực, nhưng tôi nghĩ đó là vì tôi đã quen với việc thực sự khai thác những khả năng đó."
Và hãy tưởng tượng rằng bạn đang ở trong một thế giới mà, tôi nghĩ điều mà cảm thấy như một điểm chuyển giao là điểm mà các mô hình AI, giả sử chúng chỉ đạt được mọi thứ ở mức độ con người trong một tác vụ nhất định hoặc thậm chí trên mức độ con người, giống như chúng biết nhiều hơn về bối cảnh của tác vụ mà bạn muốn hơn bạn. Điều gì sẽ xảy ra sau đó? Tôi nghĩ có lẽ prompting trở thành một cái gì đó giống như tôi hỏi, tôi giải thích cho mô hình AI những gì tôi muốn và nó lại prompt tôi. Bạn biết đấy, bởi vì nó giống như: "Được rồi, ý bạn có phải là thực sự có bốn khái niệm khác nhau về điều bạn đang nói không? Bạn muốn tôi sử dụng cái này hay cái kia? Hay nhân tiện, tôi đã nghĩ đến một số trường hợp ngoại lệ vì bạn nói rằng nó sẽ là một DataFrame của Pandas, nhưng đôi khi bạn làm điều đó và tôi nhận được JSONL, và tôi chỉ muốn, tôi muốn kiểm tra xem bạn muốn tôi làm gì ở đó. Bạn có muốn tôi đánh dấu nếu tôi nhận được thứ gì đó không phải là DataFrame không?" Và như vậy, đó có thể là một sự chuyển đổi kỳ lạ khi nó cực kỳ giỏi trong việc nhận hướng dẫn nhưng thực sự phải tìm ra những gì bạn muốn. Và tôi không biết, tôi có thể thấy đó là một loại sự thay đổi thú vị về mặt giai thoại. Tôi đã bắt đầu...
[transcript bị gián đoạn]
Claude như một cộng tác viên phỏng vấn
Tôi bắt đầu để Claude phỏng vấn tôi nhiều hơn. Đó là cách cụ thể tôi cố gắng thu thập thông tin, bởi vì tôi nhận thấy điều khó khăn nhất chính là thực sự rút ra đúng tập hợp thông tin từ bộ não của mình và đưa nó vào một câu lệnh. Đó là phần khó đối với tôi, và việc không quên những điều cần thiết. Vì vậy, việc yêu cầu Claude phỏng vấn tôi và sau đó biến những thông tin đó thành một câu lệnh là điều tôi đã làm một vài lần.
Thay đổi trong mối quan hệ người dùng - mô hình AI
Điều này gợi cho tôi nhớ đến cách các nhà thiết kế tương tác với khách hàng. Có thể coi đây là sự chuyển đổi từ một nhân viên của công ty dịch vụ tạm thời – người mà bạn đã biết rõ hơn về tác vụ và mọi thứ bạn muốn, nên bạn chỉ cần đưa hướng dẫn, giải thích các trường hợp biên và những thứ tương tự – sang việc bạn có một chuyên gia mà bạn đang tham vấn để làm một công việc cụ thể. Các nhà thiết kế có thể cảm thấy thất vọng vì họ hiểu rất rõ về lĩnh vực thiết kế và họ sẽ nói: "Ồ, khách hàng đến gặp tôi và chỉ nói: 'Làm cho tôi một áp phích, hãy làm nó nổi bật.'" Và tôi nghĩ: "Vâng, điều đó có nghĩa là 7000 thứ khác nhau đối với tôi, và tôi sẽ cố gắng hỏi bạn một vài câu hỏi."
Vì vậy, tôi có thể thấy mối quan hệ này chuyển từ việc giống như một nhân viên tạm thời sang giống như một nhà thiết kế mà bạn đang thuê. Đó chỉ là một sự thay đổi trong mối quan hệ. Tôi không biết liệu điều đó có đúng hay không, và tôi nghĩ cả hai có thể tiếp tục tồn tại. Nhưng tôi có thể thấy đây là lý do tại sao mọi người nói rằng kỹ thuật tạo câu lệnh (prompt engineering) sẽ không còn là một thứ trong tương lai, bởi vì đối với một số lĩnh vực, nó có thể sẽ không cần thiết. Nếu các mô hình AI quá tốt đến mức tất cả những gì chúng cần làm là lấy thông tin từ bộ não của bạn, sau đó chúng có thể thực hiện tác vụ, đúng không?
Đó thực sự là một phép ẩn dụ rất hay. Một điểm chung tôi rút ra từ tất cả các phản hồi của các bạn ở đây là dường như có một tương lai mà việc khơi gợi thông tin từ người dùng sẽ trở nên quan trọng hơn nhiều so với hiện tại. Và các bạn đều đã bắt đầu làm điều đó một cách thủ công. Trong tương lai, và ở phía doanh nghiệp, điều đó có thể trông giống như một sự mở rộng của khái niệm tạo câu lệnh này và những thứ trong bảng điều khiển nơi bạn thực sự có thể nhận được nhiều thông tin hơn từ khách hàng doanh nghiệp đó để họ có thể viết một câu lệnh tốt hơn trong Claude. Có lẽ nó sẽ ít hơn việc chỉ gõ vào một hộp văn bản và nhiều hơn là một tương tác có hướng dẫn để tạo ra một sản phẩm hoàn chỉnh.
Tương lai của tạo câu lệnh: Hướng tới tương tác có hướng dẫn
Đó là một tầm nhìn khá hấp dẫn về tương lai, và tôi nghĩ phép ẩn dụ về thiết kế thực sự làm rõ điều đó. Tôi đã nghĩ về cách tạo câu lệnh bây giờ có thể giống như việc dạy học, nơi bạn cố gắng đặt mình vào vị trí của học sinh, suy nghĩ về cách họ tư duy, và thực sự cố gắng chỉ ra hoặc tìm ra nơi họ mắc lỗi. Nhưng tại thời điểm bạn đang nói, kỹ năng đó gần như trở thành sự tự xem xét nội tâm, nơi bạn suy nghĩ về điều bạn thực sự muốn. Và các mô hình AI cố gắng hiểu bạn, vì vậy nó giống như việc làm cho bản thân dễ hiểu đối với mô hình AI hơn là cố gắng dạy một người thông minh hơn bạn.
Triết học và nghệ thuật tạo câu lệnh
Đây thực sự là cách tôi nghĩ về tạo câu lệnh một cách kỳ lạ. Chẳng hạn, thường thì phong cách tạo câu lệnh của tôi – có nhiều điều tôi làm – nhưng một điều phổ biến mà các nhà triết học thường làm là tôi sẽ định nghĩa các khái niệm mới. Bởi vì tôi nghĩ rằng bạn phải diễn đạt thành lời những gì bạn muốn, và đôi khi những gì tôi muốn khá tinh tế, như "Thế nào là một biểu đồ tốt?" hoặc "Khi nào thì bạn nên đánh giá một cái gì đó là đúng hay không?" Và vì vậy, có một số trường hợp tôi chỉ đơn giản là sáng tạo ra một khái niệm và sau đó nói: "Đây là ý tôi về khái niệm đó." Đôi khi tôi sẽ làm điều đó hợp tác với Claude để nó hiểu khái niệm đó, chỉ vì tôi đang cố gắng truyền đạt những gì trong đầu mình cho nó. Và hiện tại, các mô hình AI không cố gắng làm điều đó với chúng ta trừ khi bạn tạo câu lệnh để chúng làm vậy. Và vì vậy, trong tương lai, có thể chúng sẽ có thể khơi gợi điều đó từ chúng ta thay vì chúng ta phải tự làm.
Nhưng tôi nghĩ có một điều thú vị khác là đôi khi mọi người hỏi tôi: "Ồ, triết học có liên quan đến tạo câu lệnh ở đâu?" Và tôi thực sự nghĩ nó rất hữu ích. Có một phong cách viết triết học – và đây ít nhất là cách tôi được dạy viết triết học – nơi ý tưởng là để... Tôi nghĩ đó giống như một công cụ chống giả dối trong triết học, về cơ bản là các bài báo và những gì bạn viết phải dễ hiểu đối với một người có học thức nhưng không chuyên. Ai đó chỉ cần tìm thấy bài báo của bạn, cầm lên và bắt đầu đọc, và họ có thể hiểu mọi thứ. Không phải ai cũng đạt được điều này, nhưng đó là mục tiêu của ngành học, hoặc ít nhất đây là điều chúng tôi dạy mọi người.
Và vì vậy, tôi thực sự đã quen với ý tưởng khi viết, nghĩ về kiểu người có học thức nhưng không chuyên, những người rất thông minh nhưng không biết gì về chủ đề này. Và đó là nhiều năm viết văn bản theo hình thức đó. Và tôi nghĩ điều đó thực sự tốt cho tạo câu lệnh bởi vì tôi nghĩ: "Ồ, tôi đã quen với điều này. Tôi có một người có học thức nhưng không chuyên không biết gì về chủ đề, và điều tôi cần làm là lấy những ý tưởng cực kỳ phức tạp và làm cho họ hiểu chúng. Tôi không nói chuyện hạ thấp họ. Tôi không thiếu chính xác, nhưng tôi cần diễn đạt mọi thứ theo cách mà nó cực kỳ rõ ràng đối với họ về ý nghĩa của tôi."
Và tạo câu lệnh cảm thấy rất giống như vậy. Và thực sự, các kỹ thuật đào tạo chúng tôi sử dụng rất hấp dẫn, hoặc như những gì bạn nói khi bạn nói với một người: "Hãy ghi lại điều bạn vừa nói." Tôi đã từng nói điều đó với sinh viên rất nhiều lần. Ví dụ, họ viết một bài báo và tôi nói: "Tôi không hiểu rõ điều bạn đang nói ở đây. Bạn có thể giải thích lập luận của mình cho tôi không?" Họ sẽ đưa ra một lập luận cực kỳ chặt chẽ. Và sau đó tôi sẽ nói: "Bạn có thể ghi lại điều đó không?" Và sau đó nếu họ làm vậy, đó thường là một bài luận tuyệt vời.
Tổng kết: Ngoại hóa tư duy để tạo câu lệnh hiệu quả
Vì vậy, thật thú vị khi có ít nhất sự tương đồng đó về việc chỉ cần lấy những thứ trong bộ não của bạn, phân tích chúng đủ để cảm thấy rằng bạn hoàn toàn hiểu chúng, và có thể lấy bất kỳ người nào ngẫu nhiên trên phố, một người hợp lý, và chỉ đơn giản là ngoại hóa bộ não của bạn vào họ. Và tôi cảm thấy đó là cốt lõi của tạo câu lệnh. Đó có thể là bản tóm tắt tốt nhất về cách tạo câu lệnh hiệu quả. Vâng, tôi khá chắc là như vậy: ngoại hóa bộ não của bạn và họ sẽ tiếp thu. Đó là một cách rất hay để mô tả những điều tốt đẹp.
Tôi nghĩ đó là một cách tuyệt vời để kết thúc cuộc trò chuyện này. Cảm ơn các bạn, điều này thật tuyệt vời.