tác giả:
(1) PIOTR MIROWSKI và KORY W. MATHEWSON, DeepMind, Vương quốc Anh và Cả hai tác giả đều đóng góp như nhau cho nghiên cứu này;
(2) JAYLEN PITTMAN, Đại học Stanford, Hoa Kỳ và Công việc được thực hiện khi làm việc tại DeepMind;
(3) RICHARD EVANS, DeepMind, Vương quốc Anh.
Kể chuyện, Hình dạng của Câu chuyện và Dòng nhật ký
Việc sử dụng các mô hình ngôn ngữ lớn để tạo văn bản sáng tạo
Đánh giá văn bản được tạo bởi các mô hình ngôn ngữ lớn
Thảo luận và công việc trong tương lai
Kết luận, Lời cảm ơn và Tài liệu tham khảo
A. CÔNG TÁC LIÊN QUAN VỀ TẠO CÂU CHUYỆN TỰ ĐỘNG VÀ TẠO CÂU CHUYỆN CÓ THỂ ĐIỀU KHIỂN
B. THẢO LUẬN BỔ SUNG TỪ CÁC Vở CHƠI CỦA NHÓM SÁNG TẠO BOTS
C. CHI TIẾT QUAN SÁT ĐỊNH LƯỢNG
E. TIỀN TỐ TUYỆT VỜI ĐẦY ĐỦ CHO DRAMATRON
F. ĐẦU RA RAW DO DRAMATRON TẠO RA
Mô hình ngôn ngữ thống kê (mô hình ngôn ngữ hoặc LM) mô hình hóa xác suất của mã thông báo văn bản dựa trên ngữ cảnh của mã thông báo trước đó—mã thông báo có thể là từ, ký tự hoặc bi-gram ký tự. Bằng cách sử dụng học máy, LM được đào tạo trên khối văn bản lớn để ước tính phân bố xác suất có điều kiện. LM có thể tính toán khả năng xuất hiện của một đoạn văn bản và tạo ra văn bản mới dưới dạng phần tiếp theo của lời nhắc văn bản. Việc tạo văn bản mang tính xác suất và liên quan đến việc lấy mẫu ngẫu nhiên từ các xác suất có điều kiện. Các hạt ngẫu nhiên khác nhau sẽ tạo ra các mẫu ngẫu nhiên khác nhau. Hình 3 minh họa một ví dụ về cung cấp lời nhắc văn bản và sử dụng LM để tạo các mẫu văn bản khác nhau.
Trong nghiên cứu này, chúng tôi đã sử dụng mô hình ngôn ngữ lớn Chinchilla (LLM) [48], được biểu diễn dưới dạng mạng thần kinh với các tham số 70B và được đào tạo trên 1,4T mã thông báo của bộ dữ liệu MassiveText. Theo mô tả của Rae et al. [84], kho dữ liệu đó chứa 604 triệu tài liệu MassiveWeb, 4 triệu cuốn sách, 361 triệu câu hỏi và câu trả lời từ C4, 1.1B bài báo Tin tức, 142 triệu mục nhập mã GitHub và 6 triệu bài viết trên Wikipedia. Lưu ý rằng các LLM thay thế có thể được sử dụng, chẳng hạn như GPT-3.[1]
Trong dự án này, chúng tôi mong muốn một hệ thống có thể tạo ra toàn bộ văn bản thể hiện sự mạch lạc về mặt ngữ nghĩa lâu dài mà không nhất thiết cần có sự tham gia của con người. Chúng tôi khuyến khích người viết chỉnh sửa và sửa đổi kịch bản ở mọi cấp độ phân cấp. Tuy nhiên, chúng tôi không yêu cầu con người tham gia vào vòng lặp để đạt được sự gắn kết ngữ nghĩa lâu dài. Phương pháp phân cấp sẽ tạo ra toàn bộ tập lệnh thể hiện sự gắn kết lâu dài hợp lý từ một dòng nhật ký duy nhất mà không cần sự can thiệp của con người. Cách tiếp cận của chúng tôi để đạt được sự mạch lạc về mặt ngữ nghĩa lâu dài là tạo ra câu chuyện theo thứ bậc.
Thế hệ kể chuyện của chúng tôi được chia thành 3 lớp trừu tượng có thứ bậc. Lớp cao nhất là dòng nhật ký được xác định trong Phần 2: một câu duy nhất mô tả xung đột kịch tính trung tâm. Lớp giữa chứa các mô tả nhân vật, phác thảo cốt truyện (một chuỗi mô tả cảnh cấp cao cùng với các vị trí tương ứng) và mô tả vị trí. Lớp dưới cùng là đoạn hội thoại ký tự thực tế cho văn bản của tập lệnh. Bằng cách này, nội dung ở mỗi lớp sẽ nhất quán với nội dung ở các lớp khác. Lưu ý rằng “mạch lạc” ở đây đề cập đến việc “hình thành một tổng thể thống nhất”, không giả định bất kỳ tính nhất quán thông thường và logic hoặc cảm xúc nào đối với văn bản do LLM tạo ra.
Như minh họa trên Hình 1, câu chuyện được tạo từ trên xuống [93, 108, 113]. Sau khi con người cung cấp dòng nhật ký, Dramatron tạo danh sách các nhân vật, sau đó là cốt truyện, sau đó là mô tả về từng vị trí được đề cập trong cốt truyện. Các mô tả về nhân vật, cốt truyện và vị trí đều đáp ứng đặc điểm kỹ thuật trong dòng nhật ký, ngoài các yếu tố phụ thuộc nhân quả, được kích hoạt bằng chuỗi nhắc nhở [118] và được giải thích trên sơ đồ Hình 1. Cuối cùng, đối với mỗi cảnh trong phác thảo cốt truyện, Dramatron tạo ra hội thoại đáp ứng các thông số kỹ thuật của cảnh được tạo trước đó. Các đoạn hội thoại thu được sẽ được nối lại với nhau để tạo ra đầu ra cuối cùng. Thế hệ phân cấp này được thiết kế để cho phép sự gắn kết ngữ nghĩa lâu dài. Một phương pháp phân rã tác vụ đệ quy tương tự, mặc dù đã bị đảo ngược, đã được sử dụng để tạo ra các bản tóm tắt cốt truyện [117]. Việc kết hợp lớp giữa, trong đó cốt truyện được tóm tắt dưới dạng một chuỗi các mô tả cảnh trừu tượng, cho phép toàn bộ cốt truyện nằm gọn trong cửa sổ ngữ cảnh của mô hình ngôn ngữ. Điều này khắc phục những hạn chế trước đây về sự gắn kết ngữ nghĩa lâu dài. Phương pháp của chúng tôi giúp các yếu tố trong cảnh cuối cùng có thể kết thúc một cách ấn tượng các yếu tố được giới thiệu trong cảnh mở đầu[3] và để các câu chuyện được tạo tuân theo các mạch tường thuật (xem Phần 2).
Dramatron sử dụng một số lời nhắc được mã hóa cứng (tức là tiền tố đầu vào) để hướng dẫn mô hình ngôn ngữ lớn. Kỹ thuật nhắc nhở là cách phổ biến mà người dùng kiểm soát hoặc tác động đến LLM [12]. Mỗi lời nhắc có một vài ví dụ về kết quả mong muốn. Chúng được bao gồm trong tiền tố và chỉ thích ứng với một số ít ví dụ đôi khi được gọi là học tập vài lần. Như được minh họa trong Hình 3, các lời nhắc được nối với đầu vào và/hoặc đầu ra do người dùng cung cấp của các thế hệ LLM trước đó. Phương pháp này được gọi là chuỗi nhắc nhở [118], là một loại nhắc nhở thuật toán [24]. Ở các cấp độ thấp hơn của hệ thống phân cấp (xem Hình 1), các lời nhắc được xâu chuỗi cùng với đầu ra từ các cấp độ cao hơn của hệ thống phân cấp.
Trong tác phẩm này, chúng tôi chủ yếu sử dụng hai bộ gợi ý: một dựa trên bi kịch Hy Lạp cổ đại Medea của Euripides và một dựa trên phim khoa học viễn tưởng. Đối với Dramatron, mỗi bộ lời nhắc bao gồm: 1) lời nhắc tiêu đề, 2) lời nhắc mô tả nhân vật, 3) lời nhắc cốt truyện, 4) lời nhắc mô tả vị trí, 5) và lời nhắc hội thoại. Mỗi lời nhắc được trình bày chi tiết ngắn gọn bên dưới để hiểu rõ cách chúng được thiết kế; chi tiết bổ sung có trong Phụ lục E.
Lời nhắc Tiêu đề được sử dụng để tạo tiêu đề từ một dòng nhật ký. Lời nhắc tiêu đề được đơn giản hóa, dòng nhật ký do người dùng cung cấp và các tiêu đề được lấy mẫu ngẫu nhiên được hiển thị trong Hình 3. Nó hiển thị tiền tố kèm theo hướng dẫn (Ví dụ về tiêu đề thay thế, nguyên bản và mô tả cho các kịch bản phim và vở kịch đã biết.) và một ví dụ ( Ví dụ 1. Bi kịch Hy Lạp cổ đại […]. Tiêu đề: In My Brother's Name). Tiền tố kết thúc bằng: Ví dụ 2. Một dòng nhật ký do người dùng nhập vào (ví dụ: Grandma Phyllis và Grandpa Jim [...]) được nối với tiền tố đó, cũng như thẻ Title:, khuyến khích LLM tạo tiêu đề phù hợp với dòng nhật ký. Từ một số ví dụ, LLM đã “học” cách tạo tiêu đề và thẻ chấm dứt có liên quan. Dấu nhắc mô tả ký tự được sử dụng để tạo tên và mô tả ký tự từ một dòng nhật ký. Lời nhắc phác thảo cốt truyện được sử dụng để biến một dòng nhật ký và danh sách các ký tự thành một cốt truyện. Lời nhắc này khuyến khích mô hình ngôn ngữ vài cảnh chuyển đổi một dòng nhật ký câu đơn thành một chuỗi mô tả cảnh. Mỗi cảnh được nén ở mức độ cao, chỉ mô tả tên ngắn gọn của địa điểm, yếu tố tường thuật xác định vị trí của cảnh trong mạch tường thuật (xem Phần 2) và bản tóm tắt những gì các nhân vật đang làm và nói, thường được gọi là cảnh nhịp kể chuyện [69]. Xin lưu ý rằng lời nhắc áp đặt một hạn chế thể hiện mạnh mẽ về cách Dramatron thể hiện một cảnh; mỗi cảnh bao gồm một vị trí, mã định danh yếu tố tường thuật và nhịp điệu. Lời nhắc mô tả vị trí được sử dụng để tạo mô tả cảnh quan chi tiết từ tên địa điểm và dòng nhật ký. Cuối cùng, Lời nhắc đối thoại được sử dụng để chuyển nhịp (tức là tóm tắt cảnh), mô tả vị trí cảnh, mô tả từng nhân vật liên quan đến cảnh và dòng nhật ký (để thống nhất câu chuyện) thành đối thoại. Lời nhắc này sử dụng thông tin cảnh được tạo cho cả cảnh hiện tại và cảnh trước đó.
Như đã mô tả ở trên, chỉ với vài cảnh quay (tức là 1-4) lời nhắc và dòng nhật ký đầu vào của người dùng, chúng tôi tận dụng các LLM đã được đào tạo để tạo ra các tập lệnh và kịch bản phim hoàn chỉnh. Phụ lục F trình bày một ví dụ về đầu ra được tạo thô. Điều đó nói lên rằng, Dramatron được thiết kế để đồng sáng tác mang tính tương tác, như một công cụ tăng cường cho các nhà văn con người. Việc đồng tác giả với Dramatron diễn ra như sau: Người viết bắt đầu bằng dòng nhật ký mà họ đã viết. Họ nhập dòng nhật ký đó vào Dramatron và tạo ra tiêu đề, nhân vật, phác thảo cốt truyện, mô tả vị trí và lời thoại của từng cảnh theo từng bước. Ở mỗi bước, người viết có thể thực hiện một hoặc một số thao tác sau, bao nhiêu lần tùy thích:
• Tạo đề xuất mới (tức là chạy lại LLM với cùng lời nhắc).
• Tiếp tục phát điện từ cuối thế hệ trước, tương tự như thế hệ LLM “phẳng” điển hình.
• Chỉnh sửa thủ công một số hoặc tất cả đầu ra do LLM tạo ra.
Hơn nữa, người viết có thể thực hiện các thao tác này bằng cách tiến và lùi trong hệ thống phân cấp Dramatron. Ví dụ: họ có thể: 1) tạo tiêu đề, 2) tạo tiêu đề mới, 3) chỉnh sửa tiêu đề, 4) tạo danh sách các ký tự, 5) chỉnh sửa các ký tự bằng cách xóa một ký tự và thay đổi mô tả của ký tự khác, 6 ) tạo phác thảo cốt truyện, 7) chỉnh sửa cốt truyện bằng cách loại bỏ một phần của mạch tường thuật, 8) tạo phần tiếp theo của cốt truyện đã chỉnh sửa đó, 9) quay lại và viết lại dòng nhật ký, v.v. Cách tiếp cận đồng viết này cho phép con người và Dramatron đều góp phần vào quyền tác giả của một kịch bản. Sau các thao tác này, tác giả con người có thể chỉnh sửa và định dạng thêm để hoàn thiện tập lệnh. Phụ lục G hiển thị các ví dụ về tập lệnh do con người chỉnh sửa.
Mã của Dramatron được triển khai bằng Python và giao diện hướng tới người dùng được triển khai trong Google Colab[4] với các tiện ích văn bản, cho phép chỉnh sửa tương tác. Có một số điểm đánh dấu đặc biệt mà chúng tôi sử dụng để tạo tập lệnh: biểu thị phần cuối của mã thông báo tạo chuỗi đầy đủ và là mã thông báo được sử dụng để đánh dấu phần cuối của dòng được tạo. Đối với một lời nhắc nhất định (xem Phần 3.3 tiếp theo) được cung cấp cho LLM, tối đa 511 mã thông báo văn bản đã được lấy mẫu. Chúng tôi đã sử dụng Lấy mẫu hạt nhân [49] để khuyến khích các đầu ra đa dạng, lấy mẫu mã thông báo từ khối xác suất 0,9 cao nhất và với nhiệt độ softmax là 1,0. Cuối cùng, để giảm vòng lặp trong quá trình tạo hội thoại, chúng tôi đã triển khai một trình phát hiện đơn giản giúp cắt văn bản được tạo thành các khối (được phân cách bằng 2 dòng trống) và đếm số lần mỗi khối xuất hiện trong một thế hệ. Vượt quá ngưỡng cố định (ví dụ: 3 lần), LLM tạo đầu ra mới bằng cách lấy mẫu mã thông báo bằng cách sử dụng một hạt giống khác trong trình tạo số ngẫu nhiên.
Bài viết này có sẵn trên arxiv theo giấy phép CC 4.0.
[1] Có thể truy cập tại: https://openai.com/api/
[2] Ví dụ: https://theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3
[3] Xem ví dụ súng của Chekhov [27].
[4] https://colab.research.google.com/