Chương 1 giới thiệu về AI hội thoại và nêu ra nhu cầu của công cụ thiết kế và sinh kịch bản hội thoại, đồng thời mô tả rõ mục tiêu và phạm vi đề tài, qua đó nêu ra được định hướng giải pháp cho vấn đề, và cuối cùng là trình bày về bố cục đồ án.1 Giới thiệu về AI hội thoại 1.1 AI hội thoại là gì? AI hội thoại (Conversational AI) không thực sự có một định nghĩa chuẩn. Nhưng về cơ bản, AI hội thoại là các công nghệ mà ở đó máy móc, dưới sự trợ giúp của trí tuệ nhân tạo, có thể giao tiếp một cách tự nhiên với con người, như chatbot hay trợ lý ảo. Một số ứng dụng điển hình của AI hội thoại trong thực tế có thể kể đến Google Assistant, Siri, Amazon Alexa… AI hội thoại có thể giao tiếp với con người một cách tự nhiên thông qua việc nhận diện giọng nói và văn bản, từ đó hiểu các ý định của con người và đáp lại giống cách của con người. Hình 1 Ví dụ về một đoạn hội thoại với Google Assistant.
1 AI hội thoại đã bắt đầu được phát triển từ những năm 1960. Vào năm 1966, một trong những phần mềm Chatbot đầu tiên đã được phát triển bởi Joseph Weizenbaum và được đặt tên là Eliza. Kể từ đó AI hội thoại đã từng bước nhen nhóm và phát triển mạnh mẽ trong những năm gần đây.2 Các khái niệm cơ bản trong AI hội thoại AI hội thoại có hai khái niệm chính là ý định và hành động. Ý định có thể hiểu là ý định của người dùng cuối định thực hiện thông qua một câu nói.
Hành động ở đây là những hành động mà máy sẽ thực hiện để đáp lại một ý định của người dùng (ví dụ như gửi tin nhắn văn bản, gửi phản hồi dưới dạng âm thanh…). Trong ví dụ ở Hình 1, ý định trong câu đầu tiên mà người dùng cuối gửi là muốn biết trợ lý ảo Google có cảm xúc hay không. Đáp lại ý định đó, trợ lý ảo Google có hành động là gửi lại một đoạn tin nhắn văn bản. Từ việc thiết kế, sắp xếp các ý định và hành động đã được xây dựng sẵn, người phát triển hệ thống AI hội thoại sẽ tạo ra được một luồng hội thoại.
Hình 2 là ví dụ về một luồng hội thoại đơn giản. Hình 2 Ví dụ về một luồng hội thoại. Ngoài ra, một số hệ thống AI hội thoại còn hỗ trợ việc tạo luồng hội thoại con. Luồng hội thoại con về bản chất cũng là một luồng hội thoại.
Mục đích của luồng hội thoại con là để tái sử dụng các luồng hội thoại.3 Kiến trúc của một hệ thống AI hội thoại Một hệ thống AI hội thoại sẽ cần có một giao diện để người dùng có thể tương tác với máy tính, có thể thông qua văn bản hoặc giọng nói. Trên thực tế, các hệ thống AI hội thoại khác nhau sẽ có kiến trúc khác nhau. Tuy nhiên, các thành phần cơ bản của một hệ thống AI hội thoại điển hình có thể được khái quát hóa thành các thành phần như sau: (i) bộ giải mã đầu vào, (ii) khối hiểu ngôn ngữ tự nhiên, (iii) thành phần quản lý hội thoại, (iv) khối sinh thông tin phản hồi, (v) trình kết xuất đầu ra. Thứ tự của từng thành phần được mô tả chi tiết trong Hình 3.
Hình 3 Các thành phần của một hệ thống AI hội thoại điển hình. Trước hết, bộ giải mã đầu vào có vai trò chuyển đổi dữ liệu đầu vào thành dạng văn bản. Cần phải có bộ giải mã đầu vào vì dữ liệu đầu vào không phải lúc nào cũng là dạng văn bản mà có thể là dạng âm thanh (giọng nói), dạng hình ảnh (nhận diện nét chữ)… Tiếp đó, các dữ liệu đầu vào đã được chuyển đổi thành dạng văn bản sẽ tiếp tục được xử lý ở khối hiểu ngôn ngữ tự nhiên. Khối hiểu ngôn ngữ tự nhiên có vai trò phân tích và hiểu được ý định mà người dùng muốn diễn đạt thông qua dữ liệu đầu vào.
Đầu ra của khối hiểu ngôn ngữ tự nhiên là biểu diễn ngữ nghĩa mà thành phần quản lý hội thoại sẽ sử dụng. Thành phần quản lý hội thoại đóng vai trò vô cùng quan trọng trong toàn kiến trúc. Nhiệm vụ chính của thành phần này là tính toán và đưa ra biểu diễn ngữ nghĩa cho phản hồi của hệ thống dựa trên ngữ cảnh của cuộc hội thoại. Thông thường thành phần quản lý hội thoại sẽ cần truy cập tới kịch bản hội thoại để quyết định xem sẽ đưa ra phản hồi như thế nào dựa trên ý định của người dùng.
Trong các hệ thống AI hội thoại sử dụng kịch bản thì kịch bản hội thoại cũng là một trong những thành phần quan trọng nhất. Sau khi thành phần quản lý hội thoại đã hoàn thành nhiệm vụ, khối sinh thông tin phản hồi sẽ dựa vào các biểu diễn ngữ 3 nghĩa đã được đưa ra để xây dựng thông tin phản hồi dưới dạng văn bản. Cuối cùng, trình kết xuất đầu ra sẽ chuyển đổi thông tin phản hồi dưới dạng văn bản thành dạng phản hồi phù hợp cho người dùng (ví dụ như là giọng nói tự nhiên).2 Nhu cầu của công cụ thiết kế và sinh kịch bản hội thoại Hiện nay, như đã trình bày trong kiến trúc của một hệ thống AI hội thoại điển hình, thường các loại công nghệ AI hội thoại sẽ sử dụng kịch bản để hoạt động. Các loại công nghệ trí tuệ nhân tạo này sẽ được huấn luyện dựa theo các kịch bản hội thoại để giao tiếp và tương tác với con người.
Do đó, việc sinh kịch bản đối với các loại AI hội thoại này là tối quan trọng và không thể thiếu. Có nhiều cách để sinh ra các kịch bản hội thoại kể trên (chủ yếu là dưới tác động của con người). Một cách phổ biến và trực quan nhất là sử dụng công cụ thiết kế và sinh kịch bản hội thoại. Người dùng sẽ sử dụng công cụ thiết kế và sinh kịch bản hội thoại để tạo ra các kịch bản mà sẽ được chuyển thành dạng biểu diễn mà các công nghệ AI hội thoại như Chatbot hoặc Voicebot có thể hiểu được.
Các kịch bản này sẽ được sử dụng cho thành phần quản lý hội thoại theo luật, đồng thời cũng có thể làm dữ liệu huấn luyện cho thành phần quản lý hội thoại dùng công nghệ học máy hay học sâu. Vì vậy, công cụ thiết kế và sinh kịch bản hội thoại trở thành một nhu cầu thiết yếu khi nhắc tới AI hội thoại. Công cụ thiết kế và sinh kịch bản hội thoại sẽ giúp cho người dùng tạo được các luồng hội thoại một cách dễ dàng và trực quan nhất, và từ đó sinh ra các kịch bản hội thoại. Nói chung, công cụ thiết kế và sinh kịch bản hội thoại là yếu tố quyết định một công nghệ AI hội thoại như Chatbot hoặc Voicebot có thể hoạt động một cách thông minh hay không.
Vì vậy, đồ án tốt nghiệp này sẽ tập trung vào việc xây dựng một công cụ thiết kế và sinh kịch bản cho AI hội thoại.3 Mục tiêu và phạm vi đề tài Mục tiêu của đồ án tốt nghiệp sẽ là xây dựng công cụ thiết kế và sinh kịch bản cho AI hội thoại đảm bảo một số các tiêu chí như có khả năng thiết kế luồng hội thoại một cách trực quan và có trải nghiệm người dùng tốt, đảm bảo hiệu năng của ứng dụng khi số lượng nút hội thoại lớn, đảm bảo tính chính xác trong quá trình sinh kịch bản, đảm bảo hiệu năng của hệ thống khi sinh một số lượng kịch bản lớn… Về phạm vi đề tài, công cụ thiết kế và sinh kịch bản cho AI hội thoại mà đồ án hướng tới xây dựng sẽ có các tính năng chính như cho phép người dùng có thể thiết kế luồng hội thoại một cách trực quan, và sau khi thiết kế xong luồng hội thoại thì người dùng có thể ra lệnh cho hệ thống sinh ra các kịch bản hội thoại dựa trên luồng hội thoại đã được thiết kế. Thêm 4 vào đó, công cụ sẽ có các tính năng phụ hỗ trợ cho người dùng trong quá trình thiết kế luồng hội thoại và phục vụ các mục đích khác của người dùng. Đầu vào của công cụ thiết kế và sinh kịch bản hội thoại sẽ là các luồng hội thoại dưới dạng sơ đồ luồng được vẽ bởi người dùng. Sau khi thiết kế xong, các luồng hội thoại dưới dạng sơ đồ luồng này sẽ được chuyển thành dạng biểu diễn dữ liệu (có thể là JSON, XML…).
Các luồng hội thoại này sẽ được lưu trong cơ sở dữ liệu, và từ đó sẽ sinh ra các kịch bản. Các kịch bản trong quá trình huấn luyện sẽ được chuyển thành đầu ra là các kịch bản huấn luyện mà Chatbot/Voicebot có thể sử dụng được.4 Định hướng giải pháp Công cụ thiết kế và sinh kịch bản hội thoại sẽ phải trực quan, dễ sử dụng, có trải nghiệm người dùng tốt, chạy mượt mà khi luồng hội thoại lớn. Do đó, đối với việc phát triển phần giao diện cho người dùng sử dụng, đồ án cần phải lựa chọn thư một thư viện phát triển giao diện người dùng với hiệu năng gần như là tốt nhất. Ngoài ra, để công cụ thiết kế luồng hội thoại có trải nghiệm người dùng tốt nhất, đồ án sẽ phát triển một thư viện mới chuyên để thiết kế luồng hội thoại dưới dạng sơ đồ luồng.
Lý do mà đồ án không sử dụng một thư viện vẽ sơ đồ đã được phát triển sẵn là vì qua quá trình khảo sát, không có một thư viện có sẵn nào đáp ứng được nhu cầu về trải nghiệm người dùng cũng như nhu cầu về hiệu năng khi luồng hội thoại lớn và phức tạp. Sau đó, đồ án cũng sẽ phát triển một thuật toán sinh kịch bản từ các luồng hội thoại đã được thiết kế. Cuối cùng, đồ án sẽ thiết kế công cụ theo kiến trúc Microservices để đảm bảo hiệu năng và tính linh hoạt. Sau quá trình thực hiện theo định hướng giải pháp nêu trên, đồ án đã xây dựng được công cụ thiết kế và sinh kịch bản cho AI hội thoại, đáp ứng đầy đủ các yêu cầu về tính trực quan, trải nghiệm người dùng, hiệu năng và tính chính xác khi sinh kịch bản.5 Bố cục đồ án Phần còn lại của báo cáo đồ án tốt nghiệp này được tổ chức như sau.
Chương 2 đưa ra một giải pháp chung cho công cụ thiết kế và sinh kịch bản hội thoại. Giải pháp này không ép buộc một công nghệ cụ thể nào mà cho phép người sử dụng có thể tự do lựa chọn công nghệ. Nó sẽ đóng vai trò như một khung xương để xây dựng công cụ thiết kế và sinh kịch bản hội thoại.