WO2025115191A1 - 情報処理装置、情報処理方法、および、情報処理プログラム - Google Patents
情報処理装置、情報処理方法、および、情報処理プログラム Download PDFInfo
- Publication number
- WO2025115191A1 WO2025115191A1 PCT/JP2023/042971 JP2023042971W WO2025115191A1 WO 2025115191 A1 WO2025115191 A1 WO 2025115191A1 JP 2023042971 W JP2023042971 W JP 2023042971W WO 2025115191 A1 WO2025115191 A1 WO 2025115191A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- response
- information
- chatbot
- unit
- prompt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Definitions
- the present invention relates to an information processing device, an information processing method, and an information processing program.
- Patent document 1 discloses a technique for requesting feedback from a user regarding one or more content parameters of suggestions or other content provided by a chatbot.
- the present invention has been made in consideration of the above, and proposes an information processing device, an information processing method, and an information processing program that can make users understand that human labor is necessary to improve the response accuracy of chatbots.
- the information processing device includes a determination unit that acquires response information generated by a chatbot in response to input information and determines the response accuracy of the chatbot based on whether the acquired response information satisfies a predetermined condition; an adjustment unit that executes a predetermined process to automatically improve the response accuracy if the response information does not satisfy the predetermined condition and the response accuracy of the chatbot is determined to be low; and a notification unit that notifies a predetermined notification destination that the automatic improvement of the response accuracy is not possible if the response information acquired by the determination unit does not satisfy the predetermined condition after the adjustment unit executes the predetermined process.
- the information processing method is an information processing method executed by an information processing device, and includes a determination step of acquiring response information generated by a chatbot in response to input information and determining the response accuracy of the chatbot based on whether the acquired response information satisfies a predetermined condition, an adjustment step of executing a predetermined process for automatically improving the response accuracy if the response information does not satisfy the predetermined condition and it is determined that the response accuracy of the chatbot is low, and a notification step of notifying a predetermined notification destination that the automatic improvement of the response accuracy is not possible if the response information acquired by the determination step does not satisfy the predetermined condition after the adjustment step executes the predetermined process.
- the information processing program according to claim 10 is an information processing program executed by an information processing device, and causes the information processing device to execute a determination step of acquiring response information generated by a chatbot in response to input information, and judging the response accuracy of the chatbot based on whether the acquired response information satisfies a predetermined condition, an adjustment step of executing a predetermined process to automatically improve the response accuracy if the response information does not satisfy the predetermined condition and the response accuracy of the chatbot is judged to be low, and a notification step of notifying a predetermined notification destination that the automatic improvement of the response accuracy is not possible if the response information acquired by the judgment step does not satisfy the predetermined condition after the adjustment step has executed the predetermined process.
- FIG. 1 is a diagram illustrating an example of a system according to an embodiment.
- FIG. 2 is a diagram illustrating an example of an apparatus configuration according to the first embodiment.
- FIG. 3 is a diagram showing an overall flow of an information processing procedure according to the first embodiment, which is realized by the adjustment device.
- FIG. 4 is a diagram showing a specific procedure (1) of the evaluation process according to the embodiment.
- FIG. 5 is a diagram showing a specific procedure (2) of the evaluation process according to the embodiment.
- FIG. 6 is a diagram showing a specific procedure (1) of the adjustment process according to the first embodiment.
- FIG. 7 is a diagram showing a specific procedure (2) of the adjustment process according to the embodiment.
- FIG. 8 is a diagram showing a procedure of dialogue control executed by the adjustment device according to the first embodiment.
- FIG. 9 is a diagram illustrating an example of an apparatus configuration according to the second embodiment.
- FIG. 10 is a diagram showing an overall flow of an information processing procedure according to the second embodiment, which is realized by the adjustment device.
- FIG. 11 is a diagram showing a specific procedure of the adjustment process according to the second embodiment.
- FIG. 12 is a hardware configuration diagram illustrating an example of a computer that realizes the functions of the adjustment device according to the embodiment.
- One or more of the embodiments (including examples, variations, and application examples) described below can be implemented independently. However, at least a portion of the embodiments described below may be implemented in appropriate combination with at least a portion of another embodiment. These embodiments may include novel features that are different from one another. Thus, these embodiments may contribute to solving different purposes or problems and may provide different effects.
- a service can be realized in which a terminal device receives an answer corresponding to an input from a chatbot that works with a large-scale language model via an API (Application Programming Interface) and displays the answer on the terminal device.
- API Application Programming Interface
- chatbot may output a response with a different meaning. For example, if a user inputs "I want to go to Tokyo Tower,” the chatbot may respond with something along the lines of the user's desire for directions, such as "The nearest station is Station A. It is accessible on foot from Station A.” On the other hand, if a user similarly inputs "I want to go to Tokyo Tower” at a different time, the chatbot may respond with something different from directions, such as "Tokyo Tower is one of Japan's most famous tourist spots.”
- response variability can also be described as an unnatural way of generating responses.
- a prompt with specific content may be set to suppress response variability.
- new response variability may occur even if a prompt with the same content is set.
- the service provider will be forced to revise the content of the prompt each time there is an increase in response variability, i.e., responses that are unintended.
- the present invention proposes a mechanism that can improve the response accuracy of a chatbot by automatically adjusting the deterioration of the consistency (appropriateness) of the response content of a large-scale language model.
- the present invention also proposes a mechanism for notifying the user when automatic adjustment is no longer able to improve response accuracy and manual improvement is required.
- Fig. 1 is a diagram showing an example of a system according to an embodiment.
- Fig. 1 shows a system 1 as an example of a system according to an embodiment. Information processing according to the proposed technology of the present invention is realized in the system 1.
- system 1 includes a user device 10, an administrator device 30, a coordination device 100, and a chatbot device 200. Furthermore, user device 10, administrator device 30, coordination device 100, and chatbot device 200 are connected via network N so as to be able to communicate with each other via wired or wireless communication. Furthermore, the number of user devices 10, administrator devices 30, coordination devices 100, and chatbot devices 200 in system 1 is not limited.
- the user device 10 may be an information processing terminal used by a user U who wishes to receive information through dialogue with a voice assistant.
- the user device 10 may be a smartphone, a wearable device, a tablet terminal, a notebook PC (Personal Computer), a desktop PC, a mobile phone, a PDA (Personal Digital Assistant), etc.
- the user device 10 may be implemented as a navigation device built into or mounted on a vehicle, i.e., an in-vehicle device.
- the user device 10 as an in-vehicle device may have not only a navigation function but also a recording function (drive recorder function).
- the administrator device 30 may be an information processing terminal used by an administrator T who manages the entire system 1 and the maintenance of the chatbot device 200.
- the administrator device 30 may be a smartphone, a wearable device, a tablet terminal, a notebook PC, a desktop PC, a mobile phone, a PDA, etc.
- the adjustment device 100 is an example of an information processing device.
- the adjustment device 100 is an information processing device that performs, as information processing according to the embodiment, an adjustment process for restoring consistency to response content when response fluctuation occurs in a chatbot, and a notification process for notifying that manual improvement is necessary when automatic improvement of response accuracy by the adjustment process is not possible.
- the functions of the adjustment device 100 may be realized by an information processing program according to the embodiment.
- the chatbot device 200 serves as a voice assistant and realizes a dialogue with the user U.
- the chatbot device 200 has a function of generating response information to input information by incorporating a language model. For example, the chatbot device 200 repeatedly learns the language model and upgrades the language model so as to realize a highly accurate dialogue with the user U.
- the chatbot device 200 may be equipped with what is called generative AI (artificial intelligence that can create various content and ideas such as conversations, stories, images, videos, and music).
- generative AI artificial intelligence that can create various content and ideas such as conversations, stories, images, videos, and music.
- chatbot essentially refers to the “chatbot device 200 (200A, 200B).”
- the adjustment device 100 and the chatbot device 200 can be implemented as cloud computers.
- adjustment device 100 will be referred to as “adjustment device 100A,” and the adjustment device 100 according to the second embodiment will be referred to as “adjustment device 100B.”
- adjustment device 100 When there is no need to distinguish between “adjustment device 100A” and “adjustment device 100B,” they will simply be referred to as “adjustment device 100.”
- chatbot device 200 will be referred to as “chatbot device 200A”
- chatbot device 200B When there is no need to distinguish between “chatbot device 200A” and “chatbot device 200B”, they will simply be referred to as “chatbot device 200".
- Fig. 2 is a diagram showing an example of the device configuration according to the first embodiment.
- the administrator device 30 is omitted in Fig. 2.
- the user device 10 As shown in FIG. 2 , the user device 10 according to the first embodiment includes a communication unit 11 , a storage unit 12 , an input unit 13 , an output unit 14 , and a control unit 15 .
- the communication unit 11 is realized by, for example, a network interface card (NIC) etc.
- the communication unit 11 is connected to the network N by wire or wirelessly, and transmits and receives information between the communication unit 11 and, for example, the adjustment device 100 and the chatbot device 200.
- NIC network interface card
- the storage unit 12 is realized by, for example, a semiconductor memory element such as a random access memory (RAM), a read only memory (ROM), or a flash memory, or a storage device such as a hard disk, a solid state drive (SSD), or an optical disk.
- the storage unit 12 may store, for example, various data related to the information processing according to the embodiment and input information.
- the input unit 13 is an input device that accepts various inputs from the outside.
- the input unit 13 is an operation device such as a keyboard, a mouse, or an operation key that allows the user U to perform various operations. If a touch panel is adopted in the user device 10, the touch panel is also included in the input unit 13. In this case, the user U performs various operations by touching the touch panel.
- the input unit 13 also includes a microphone that accepts voice input by speaking.
- the user U may input various types of input information, such as "I want to go to XX”, “I want to buy XX”, “I want to eat XX”, “I want to hear XX”, etc., via the input unit 13.
- the input information may be text or audio.
- the input information may be input to the chatbot device 200 via the adjustment device 100.
- the output unit 14 is a device that outputs various types of information to the outside, such as sound, light, vibration, and images.
- the output unit 14 outputs various types of information to the user U under the control of the control unit 15.
- the output unit 14 may be a display device that displays various types of information.
- the display device is, for example, a liquid crystal display or an organic electroluminescence display (OLED).
- the output unit 14 may be a touch panel type display device. In this case, the input unit 13 and the output unit 14 may be considered to be an integrated configuration.
- the output unit 14 may also be a speaker.
- Control unit 15 The control unit 15 is realized by a central processing unit (CPU), a micro processing unit (MPU), or the like executing various programs stored in a storage device inside the user device 10 using a RAM as a working area.
- the control unit 15 is also realized by an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).
- ASIC application specific integrated circuit
- FPGA field programmable gate array
- control unit 15 has a transmission/reception unit 15a and an output control unit 15b, and realizes or executes the functions and actions of the information processing described below.
- the internal configuration of the control unit 15 is not limited to the configuration shown in FIG. 2, and may be other configurations as long as they perform the information processing described below.
- the connection relationships between the processing units in the control unit 15 are not limited to the connection relationships shown in FIG. 2, and may be other connection relationships.
- the transmission/reception unit 15a receives input information input via the input unit 13. For example, the transmission/reception unit 15a receives voice input by speaking via a microphone or touch input via a touch panel. The transmission/reception unit 15a then transmits the received input information. For example, the transmission/reception unit 15a may transmit the received input information to the adjustment device 100, or may transmit the received input information directly to the chatbot device 200.
- the transmitter/receiver 15a also receives response information generated by the chatbot device 200 in response to the input information.
- Output control unit 15b The output control unit 15b performs output control to cause the output unit 14 to output response information generated by the chatbot device 200.
- the adjustment device 100A As shown in FIG. 2, the adjustment device 100A according to the first embodiment has a communication unit 110, a storage unit 120A, and a control unit 130A.
- the communication unit 110 is realized by, for example, a NIC etc.
- the communication unit 110 is connected to the network N by wire or wirelessly, and transmits and receives information between, for example, the user device 10, the administrator device 30, and the chatbot device 200.
- the storage unit 120A is realized by, for example, a semiconductor memory element such as a RAM, a ROM, or a flash memory, or a storage device such as a hard disk, an SSD, or an optical disk.
- the storage unit 120A may store, for example, data and programs related to the information processing according to the first embodiment.
- the storage unit 120A may include a correct answer information storage unit 121 and a prompt information storage unit 122.
- the correct answer information storage unit 121 stores correct answer information (correct answer information) prepared for input information.
- the correct answer information may be prepared in advance by the administrator T, for example.
- the prompt information storage unit 122 stores various prompts according to the first embodiment.
- a prompt is an instruction sentence used to ask a question or give an instruction to the chatbot device 200, and corresponds to at least a part of the input information input to the chatbot device 200.
- the input information may be composed of a word that is the gist of an instruction and a word that supports the instruction.
- the word that supports the instruction is defined as an "assistance prompt.”
- the adjustment device 100 interprets the intention based on the text "I want to go to Tokyo Tower,” and identifies the type of input information (directions in this example) according to the intention interpretation result. Then, the adjustment device 100 provides an assistance prompt according to the type of input information.
- "Please respond as the driver's assistant” may be given as an auxiliary prompt.
- “driver's assistant” refers to the role that the adjustment device 100, having interpreted the intention of the user U's speech input "I want to go to Tokyo Tower” as route guidance, has determined that the chatbot device 200 should be asked to play in the situation of route guidance.
- "The driver wants to go to Tokyo Tower” "Please respond as the driver's assistant” is the input information, i.e., the prompt, and the part contained therein, "Please respond as the driver's assistant,” is the auxiliary prompt.
- the part other than the auxiliary prompt specifically "The driver wants to go to Tokyo Tower,” may be the prompt, or the entire "The driver wants to go to Tokyo Tower,” "Please respond as the driver's assistant” may be the prompt.
- the prompt information storage unit 122 may store a group of candidate auxiliary prompts to be used by the adjustment device 100 in this manner. As will be described later, the adjustment device 100 may also dynamically generate input information to evaluate the response accuracy of the chatbot device 200. Therefore, the prompt information storage unit 122 may also store scenario information for the dynamic generation of input information (prompts).
- the information processing according to the first embodiment includes an adjustment process in which the above-mentioned assistance prompt is adjusted according to the evaluation result of the response accuracy of the chatbot device 200, and the adjustment of the assistance prompt is repeated until the evaluation result exceeds the pass line.
- Control unit 130A The control unit 130A is realized by a CPU, an MPU, or the like executing various programs (e.g., the information processing program according to the first embodiment) stored in a storage device inside the adjustment device 100A using a RAM as a working area.
- the control unit 130A is also realized by an integrated circuit such as an ASIC or an FPGA.
- the control unit 130A has an acquisition unit 131, a transmission unit 132, a judgment information generation unit 133, a judgment unit 134A, a prompt adjustment unit 135A, a notification unit 136A, an identification unit 137, and a prompt assignment unit 138, and realizes or executes the functions and actions of the information processing described below.
- the internal configuration of the control unit 130A is not limited to the configuration shown in FIG. 2, and may be other configurations as long as they perform the information processing described below.
- the connection relationships of the processing units in the control unit 130A are not limited to the connection relationships shown in FIG. 2, and may be other connection relationships.
- the acquisition unit 131 acquires or receives various information in the information processing according to the embodiment. For example, the acquisition unit 131 acquires input information to be input to the chatbot device 200. For example, the acquisition unit 131 acquires input information received by the input unit 13 as input information to be input to the chatbot device 200. The acquisition unit 131 may also acquire input information generated by the determination information generation unit 133.
- the acquisition unit 131 acquires correct response information (correct answer information) prepared for the input information.
- the acquisition unit 131 acquires response information generated by the chatbot device 200 in response to input information.
- the acquisition unit 131 also acquires an executed auxiliary prompt that has undergone an adjustment process for adjusting the auxiliary prompt. Furthermore, the acquisition unit 131 may also acquire information on a language model.
- the transmission unit 132 transmits various types of information in the information processing according to the embodiment. For example, the transmission unit 132 transmits input information including a help prompt to the chatbot device 200. The transmission unit 132 also transmits response information generated by the chatbot device 200 in response to the input information to the user device 10.
- the determination information generating unit 133 generates input information. For example, in a process of determining whether or not response information generated by the chatbot device 200 satisfies a predetermined condition (i.e., an evaluation process of evaluating the response accuracy of the chatbot device 200), input information for verifying the response accuracy is periodically input to the chatbot device 200. Thus, the determination information generating unit 133 may generate this input information for verification at, for example, predetermined timings.
- the determination information generating unit 133 can generate input information according to fixed scenarios such as "I want to go to XX,” “I want to buy XX,” “I want to eat XX,” and “I want to ask about XX.” For example, when it is desired to evaluate the response accuracy of the chatbot device 200 to input information of the type of directions, the determination information generating unit 133 generates input information based on the fixed scenario "I want to go to XX.”
- the determination unit 134A determines (evaluates) the response accuracy of the chatbot device 200A based on whether or not the response information generated by the chatbot device 200A in response to the input information satisfies a predetermined condition. Specifically, the determination unit 134A determines whether or not the first response information generated by the chatbot device 200A in response to the first input information satisfies a predetermined condition.
- the determination unit 134A may further determine whether or not the second response information generated by the chatbot device 200A in response to the second input information including the assistance prompt for which the adjustment process has been executed satisfies the predetermined conditions.
- the determination unit 134A calculates the number of characters in each piece of first response information generated by the chatbot device 200A each time the same first input information is input. Then, the determination unit 134A calculates a statistical value of the number of characters among a predetermined number of pieces of first response information based on the calculated number of characters, and determines whether the statistical value satisfies a predetermined condition.
- the determination unit 134A calculates the similarity between each piece of first response information generated by the chatbot device 200A and the correct answer information prepared in advance for the first input information. Then, based on the calculated similarity, the determination unit 134A calculates a statistical value of the similarity between a predetermined number of pieces of first response information, and determines whether the statistical value satisfies a predetermined condition.
- the determination unit 134A may calculate multiple types of statistical values such as quartiles, modes, and minimum values, and determine whether or not a predetermined number of the multiple types of statistical values satisfy a predetermined condition. For example, a corresponding condition may be set for each statistical value such as quartiles, modes, and minimum values, and the determination unit 134A may evaluate the response accuracy based on whether or not a predetermined percentage or more of the multiple types of statistical values satisfy the condition, or whether all of the multiple types of statistical values satisfy the condition.
- the prompt adjustment unit 135A adjusts the assistance prompt included in the first input information when the first response information does not satisfy the predetermined condition and it is determined that the response accuracy of the chatbot device 200A is low. Also, when the second response information including the assistance prompt for which the adjustment process has been performed does not satisfy the predetermined condition and it is determined that the response accuracy of the chatbot device 200A is still low, the prompt adjustment unit 135A adjusts the assistance prompt included in the second input information again.
- the adjustment process for adjusting the assistant prompt is repeated until the condition that the response accuracy of the chatbot device 200A exceeds the pass line is met. Furthermore, adjusting the assistant prompt is equivalent to changing the assistant prompt. In light of this, the adjustment process for adjusting the assistant prompt is equivalent to changing the assistant prompt that is currently being adjusted to another assistant prompt.
- the process of changing the auxiliary prompt currently being adjusted to another auxiliary prompt can be divided into two categories: changing the entire auxiliary prompt, and changing only some of the words contained in the auxiliary prompt.
- the prompt adjustment unit 135A selects an arbitrary assistance prompt from a group of candidate assistance prompts that are prepared in advance according to the type of input information to the chatbot device 200A, and executes a process of replacing the assistance prompt currently being adjusted with the selected assistance prompt. More specifically, if a specified condition is not met, the prompt adjustment unit 135A selects an arbitrary assistance prompt from the group of candidate assistance prompts that are prepared in advance according to the type of input information to the chatbot device 200A, and repeats the replacement process of replacing the assistance prompt currently being adjusted with the selected assistance prompt until the specified condition is met.
- the prompt adjustment unit 135A changes a specific word from among the words included in the assistance prompt currently being adjusted to another word, and replaces the assistance prompt currently being adjusted with the changed assistance prompt in which the specific word has been changed to another word. More specifically, if a specific condition is not met, the prompt adjustment unit 135A repeats the replacement process of changing a specific word included in the assistance prompt currently being adjusted to another word and replacing the assistance prompt currently being adjusted with the changed assistance prompt in which the specific word has been changed to another word, until the specific condition is met.
- the prompt adjustment unit 135A changes a word that specifies a role according to the type of input information to the chatbot device 200 as a specific word contained in the assistance prompt currently being adjusted to a word that specifies a different role that is synonymous with the role.
- the notification unit 136A may notify the administrator T that the response accuracy cannot be improved.
- the notification unit 136A may notify the administrator that the response accuracy cannot be improved.
- the identification unit 137 identifies the type of the input information based on the result of the intention interpretation of the input information. For example, when the input information of the user U is acquired, the identification unit 137 identifies the type of the input information (in this example, directions) according to the intention interpretation result.
- the prompt adding unit 138 adds an assistance prompt to the input information according to the type of the input information. For example, the prompt adding unit 138 adds an assistance prompt to the input information of the user U.
- the chatbot device 200A As shown in FIG. 2 , the chatbot device 200A according to the first embodiment has a communication unit 210, a memory unit 220A, and a control unit 230.
- the communication unit 210 is realized by, for example, a NIC etc.
- the communication unit 210 is connected to the network N by wire or wirelessly, and transmits and receives information between, for example, the user device 10, the administrator device 30, and the chatbot device 200.
- the storage unit 220A is realized by, for example, a semiconductor memory element such as a RAM, a ROM, or a flash memory, or a storage device such as a hard disk, an SSD, or an optical disk.
- the storage unit 220A may store, for example, various data related to the information processing according to the first embodiment and input information.
- the memory unit 220A may also store a language model.
- FIG. 2 shows an example in which the memory unit 220A stores only one language model LLM1.
- the chatbot device 200A may be equipped with a fixed language model.
- Control unit 230 is realized by a CPU, an MPU, or the like executing various programs stored in a storage device inside the chatbot device 200A using a RAM as a working area.
- the control unit 230 is also realized by an integrated circuit such as an ASIC or an FPGA.
- the control unit 230 has a receiving unit 231, a response information generating unit 232, and a transmitting unit 233, and realizes or executes the functions and actions of the information processing described below.
- the internal configuration of the control unit 230 is not limited to the configuration shown in FIG. 2, and may be other configurations as long as they perform the information processing described below.
- the connection relationships between the processing units of the control unit 230 are not limited to the connection relationships shown in FIG. 2, and may be other connection relationships.
- the receiving unit 231 receives various information in the information processing according to the embodiment. For example, the receiving unit 231 receives input information including a help prompt. The receiving unit 231 may also receive designation of a language model to be used for generating response information.
- the response information generating unit 232 When input information is accepted, the response information generating unit 232 generates response information to the accepted input information. A designated language model among the language models stored in the storage unit 220A is used to generate the response information. For example, the response information generating unit 232 applies the language model to the input information and generates the response information based on the output result of the language model. In this way, the response information generating unit 232 can be said to be a processing unit that essentially realizes the function of a chatbot.
- the transmission unit 233 transmits the response information generated by the response information generation unit 232.
- the transmission unit 233 transmits the response information generated in response to this input information to the user device 10.
- a dialogue is established between the user and the chatbot.
- the transmission unit 233 transmits the response information generated in response to this input information to the adjustment device 100.
- Overall procedure of information processing according to the first embodiment 3 is a diagram showing the overall flow of the information processing procedure according to the first embodiment realized by the adjustment device 100A.
- the information processing according to the first embodiment includes an evaluation process for evaluating the response accuracy of the chatbot device 200A and an adjustment process for adjusting the assistance prompt. These processes are repeated until the response accuracy of the chatbot device 200A satisfies the conditions. Therefore, first, the flow of the first round of the information processing according to the first embodiment will be described, and then the flow of the second round and subsequent rounds of the information processing according to the first embodiment will be described.
- the example in FIG. 3 also shows a scene in which the auxiliary prompt is adjusted during a verification experiment to evaluate the response accuracy of the chatbot device 200A.
- the determination information generating unit 133 may generate verification input information at specific times (e.g., once a day).
- the evaluation of the response accuracy of the chatbot device 200A and the adjustment of the assistance prompts may be performed in an actual situation where the chatbot device 200A is used by the user U.
- input information actually input by the user U in the usage situation may be used for the evaluation process and adjustment process, rather than the verification input information generated by the determination information generating unit 133.
- the types of input information that the chatbot device 200A can handle include various types such as “directions,” “cooking recipes,” and “music content,” but FIG. 3 shows a scene in which the chatbot device 200A is automatically adjusted in the "directions" field.
- the determination information generating unit 133 determines whether or not it is time to execute an evaluation process for evaluating the response accuracy of the chatbot device 200A (for example, at 4 p.m. once a day) (Step S101). If it is not time to execute the evaluation process (Step S101; No), the determination information generating unit 133 waits until it is time to execute the evaluation process.
- the determination information generation unit 133 when it is time to execute the evaluation process (step S101; Yes), the determination information generation unit 133 generates input information for verification based on the fixed scenario (step S102).
- the determination information generation unit 133 uses the fixed scenario "I want to go to XX” to generate input information such as "I want to go to Tokyo Tower.” Note that the determination information generation unit 133 may generate input information with the same content each time.
- the prompt assigning unit 138 determines whether the adjustment process has not been performed at the present time (step S103). In the case of the first round of processing, the prompt assigning unit 138 determines that the adjustment process has not been performed at the present time (step S103; not performed), and initializes (initializes) an assistance prompt to the input information generated in step S102 (step S104). For example, the prompt assigning unit 138 may select one of the assistance prompts from the group of assistance prompts of the change candidates stored in the prompt information storage unit 122. The assistance prompts of the change candidates may be prepared in advance for each type of input information that the chatbot device 200A can handle. Therefore, in the example of FIG.
- the prompt assigning unit 138 may select one of the assistance prompts of the change candidates corresponding to "directions". For example, the prompt assigning unit 138 selects the assistance prompt PR1, "Please respond as the driver's assistant,” and assigns it to the input information generated in step S102.
- the sending unit 132 sends the input information IN1 including the auxiliary prompt PR1 to the chatbot device 200A (step S105).
- the chatbot device 200A applies the language model LLM1 to the input information IN1, and generates response information AN1 based on the output result of the language model LLM1.
- the chatbot device 200A does not necessarily generate the same response information AN1 every time, even if the same input information is input.
- the chatbot device 200A may generate response information that is in line with the user's intention to receive directions, and may also generate response information AN1 that is not intended to provide directions. In other words, the content of the response information may fluctuate.
- the acquisition unit 131 acquires the response information AN1 generated by the chatbot device 200A in response to the input information IN1 (step S106).
- the determination unit 134A determines whether a predetermined number of pieces of response information AN1 generated by the chatbot device 200A in response to the input information IN1 have been accumulated (e.g., 100 pieces have been accumulated) (step S107). If the determination unit 134A determines that the predetermined number of pieces of response information AN1 have not been accumulated (step S107; No), the process returns to step S102, and is repeated until the predetermined number of pieces of response information AN1 have been accumulated.
- the determination unit 134A determines that a predetermined number of pieces of response information AN1 have been accumulated (step S107; Yes), it executes a process of calculating an evaluation value of the response accuracy using the predetermined number of pieces of response information AN1 (step S108).
- the detailed procedure of the evaluation process performed in step S108 is described in Figures 4 and 5.
- the determination unit 134A evaluates the response accuracy of the chatbot device 200A based on whether or not the evaluation value calculated in step S108 satisfies a predetermined condition (step S109).
- the prompt adjustment unit 135A registers the current auxiliary prompt (e.g., auxiliary prompt PR1) as a generation algorithm capable of realizing a chatbot device 200A with high response accuracy (step S110). In other words, the prompt adjustment unit 135A registers the auxiliary prompt that has been verified to have high response accuracy as an auxiliary prompt that the prompt assignment unit 138 should assign to the input information of the user U. Then, the process ends.
- auxiliary prompt PR1 e.g., auxiliary prompt PR1
- step S109 if it is determined that the evaluation value of the response accuracy does not satisfy the predetermined condition (step S109; No), the prompt adjustment unit 135A executes an adjustment process to adjust the auxiliary prompt (step S113).
- the detailed procedure of the adjustment process performed in step S113 is described in FIG. 6 and FIG. 7.
- step S102 After the prompt adjustment unit 135A has performed the adjustment process, the process returns to step S102 and moves to the second round of processing.
- the determination information generating unit 133 In the second and subsequent rounds of processing, the determination information generating unit 133 generates input information for verification based on the fixed scenario (step S102). In the second and subsequent rounds of processing, the determination information generating unit 133 may generate the same input information, "I want to go to Tokyo Tower," as in the first round of processing.
- the prompt adding unit 138 determines whether the adjustment process has not yet been executed at this time (step S103). If it is the second or subsequent round of processing, the prompt adding unit 138 determines that the adjustment process has not yet been executed at this time, i.e., that the adjustment process has already been executed (step S103; execute), and in step S113, obtains an assistance prompt PR2 for which the adjustment process has been executed, and adds the obtained assistance prompt PR2 to the input information generated in step S102 (step S114).
- the sending unit 132 sends the input information IN2 including the auxiliary prompt PR2 to the chatbot device 200A (step S115).
- the chatbot device 200A applies the language model LLM1 to the input information IN2, and generates response information AN2 based on the output result of the language model LLM1.
- the acquisition unit 131 acquires the response information AN2 generated by the chatbot device 200A in response to the input information IN2 (step S116).
- the determination unit 134A determines whether a predetermined number of pieces of response information AN2 generated by the chatbot device 200A in response to the input information IN2 have been accumulated (e.g., 100 pieces have been accumulated) (step S107). If the determination unit 134A determines that the predetermined number of pieces of response information AN2 have not been accumulated (step S107; No), the process returns to step S102, and is repeated until the predetermined number of pieces of response information AN2 have been accumulated.
- the determination unit 134A determines that a predetermined number of pieces of response information AN2 have been accumulated (step S107; Yes), it executes a response accuracy evaluation value calculation process using the predetermined number of pieces of response information AN2 (step S108).
- the determination unit 134A evaluates the response accuracy of the chatbot device 200A based on whether or not the evaluation value calculated in step S108 satisfies a predetermined condition (step S109).
- the prompt adjustment unit 135A registers the current auxiliary prompt (e.g., auxiliary prompt PR2) as a generation algorithm capable of realizing a chatbot device 200A with high response accuracy (step S110).
- the current auxiliary prompt e.g., auxiliary prompt PR2
- the auxiliary prompt e.g., auxiliary prompt PR1
- the prompt adjustment unit 135A registers the auxiliary prompt that has been verified to have high response accuracy as an adjusted auxiliary prompt to be assigned to the input information of the user U by the prompt assignment unit 138. Then, the process ends.
- step S109 determines that the evaluation value of response accuracy does not satisfy the specified conditions (step S109; No), it executes the adjustment process again to adjust the assistance prompt (step S113).
- Fig. 4 describes the former process procedure a
- Fig. 5 describes the latter process procedure b.
- FIG. 4 is a diagram showing a specific procedure (1) of the evaluation process according to the embodiment.
- the acquisition unit 131 acquires all of the response information that has been accumulated in a predetermined number (e.g., 100 pieces) (step S1081a).
- the acquired response information includes the response information AN1 and the response information AN2 shown in FIG. 3.
- the determination unit 134A calculates the number of characters in each piece of response information (step S1082a).
- the determination unit 134A also calculates a statistical value of the number of characters between pieces of response information as an evaluation value for evaluating the response accuracy of the chatbot device 200A (step S1083a). For example, the more helpful the response information generated by the chatbot device 200A is, the more unnecessary information that deviates from the user's intention is contained. Therefore, by focusing on the number of characters, the response accuracy of the chatbot device 200A can be appropriately evaluated.
- the determination unit 134A may calculate at least one of the following statistical values: quartiles, mode, or minimum value.
- the determination unit 134A may perform a process of determining whether or not the statistical value of the number of characters calculated in S1083a satisfies a threshold condition as the evaluation process of step S109 in FIG. 2, which evaluates the response accuracy of the chatbot device 200A based on whether or not the evaluation value satisfies a predetermined condition.
- step S109 if the statistical value of the number of characters satisfies the threshold condition (step S109; Yes), this means that the response accuracy of the chatbot device 200A is high, and the process proceeds to step S110.
- step S109 if the statistical value of the number of characters does not satisfy the threshold condition (step S109; No), this means that the response accuracy of the chatbot device 200A is low, and the process proceeds to step S113.
- the determination unit 134A may perform condition determinations individually, such as whether the quartiles satisfy the threshold condition, whether the mode satisfies the threshold condition, and whether the minimum value satisfies the threshold condition. Then, the determination unit 134A may evaluate the response accuracy based on whether or not a predetermined percentage or more (e.g., a majority) of the multiple types of character count statistics (e.g., quartiles and modes) each satisfy the threshold condition, or whether or not all of the multiple types of character count statistics (quartiles, modes, and minimum values) each satisfy the threshold condition.
- a predetermined percentage or more e.g., a majority
- FIG. 5 is a diagram showing a specific procedure (2) of the evaluation process according to the embodiment.
- the acquisition unit 131 also acquires all of the response information that has been accumulated in a predetermined number (e.g., 100 pieces of accumulated information) (step S1081b).
- the acquired response information includes the response information AN1 and response information AN2 shown in FIG. 3.
- the acquisition unit 131 also acquires correct answer information (correct response information) that is prepared in advance for the input information (step S1082b).
- the determination unit 134A calculates the similarity between each piece of response information and the correct answer information (step S1083b). Furthermore, the determination unit 134A calculates a statistical value of the similarity between the response information as an evaluation value for evaluating the response accuracy of the chatbot device 200A (step S1084a). For example, the determination unit 134A may calculate the cosine similarity between each piece of response information and the correct answer information. For example, the more similar the response information generated by the chatbot device 200A is to the correct answer information, the more likely it is that the response information is composed of only appropriate information that matches the user's intention. Therefore, by focusing on the similarity, the response accuracy of the chatbot device 200A can be appropriately evaluated.
- the determination unit 134A may perform a process of determining whether the statistical value of the similarity calculated in S1083a satisfies a threshold condition as the evaluation process of step S109 in FIG. 2, which evaluates the response accuracy of the chatbot device 200A based on whether the evaluation value satisfies a predetermined condition.
- step S109 if the similarity statistical value satisfies the threshold condition (step S109; Yes), this means that the response accuracy of the chatbot device 200A is high, and the process proceeds to step S110.
- step S109 if the similarity statistics do not satisfy the threshold condition (step S109; No), this means that the response accuracy of the chatbot device 200A is low, and the process proceeds to step S113.
- the determination unit 134A may perform condition determinations individually, such as whether the quartiles satisfy the threshold condition, whether the mode satisfies the threshold condition, and whether the minimum value satisfies the threshold condition. The determination unit 134A may then evaluate the response accuracy based on whether or not a predetermined percentage or more (e.g., a majority) of the multiple types of similarity statistics (e.g., quartiles and modes) each satisfy the threshold condition, or whether or not all of the multiple types of similarity statistics (quartiles, modes, and minimum values) each satisfy the threshold condition.
- a predetermined percentage or more e.g., a majority
- Figures 3 and 4 show an evaluation process procedure as a method for evaluating the response accuracy of the chatbot device 200A according to the first embodiment
- the response accuracy of the chatbot device 200B according to the second embodiment is also evaluated using a similar method. For this reason, in the second embodiment described below, a description of the specific steps of the evaluation process for the chatbot device 200B will be omitted.
- step S113 in Fig. 3 The adjustment process for adjusting the assist prompt is classified into a process for changing the entire assist prompt and a process for changing only some words contained in the assist prompt.
- the former process step a will be described in Fig. 6, and the latter process step b will be described in Fig. 7.
- FIG. 6 is a diagram showing a specific procedure (1) of the adjustment process according to the first embodiment.
- the prompt adjustment unit 135A determines whether or not there is an unselected assistant prompt among the group of assistant prompts prepared in advance (step S1131a). For example, the prompt adjustment unit 135A specifies a group of candidate assistant prompts for change that correspond to the type "directions" from among the group of candidate assistant prompts for change that are prepared in advance for each type of input information that the chatbot device 200A can handle. The prompt adjustment unit 135A may then determine whether or not there is an unselected assistant prompt among the group of candidate assistant prompts for change that correspond to the type "directions".
- the prompt adjustment unit 135A selects one of the unselected help prompts (step S1132a). For example, assume that help prompt PR1, "Please respond as the driver's assistant,” is the current target for adjustment, and that help prompts PRC11 and PRC12, as shown in FIG. 6, exist as unselected help prompts. In this example, the prompt adjustment unit 135A can select one of help prompts PRC11 and PRC12.
- the prompt adjustment unit 135A replaces the assistance prompt currently being adjusted with the assistance prompt selected in step S1132a (step S1133a).
- step S1134a the prompt adjustment unit 135A holds the replaced auxiliary prompt as an auxiliary prompt for which adjustment processing has been performed. Then, the process proceeds to step S101.
- auxiliary prompt PR1 "Please respond as the driver's assistant," has been replaced with a candidate auxiliary prompt, "Please guide the driver to a destination that meets the driver's wishes.”
- the auxiliary prompt "Please guide the driver to a destination that meets the driver's wishes,” is held as auxiliary prompt PR2 for which adjustment processing has been performed, and is acquired in step S114 of FIG. 3.
- step S1131a if there are no unselected auxiliary prompts among the group of pre-prepared auxiliary prompts (step S1131a; No), that is, if all the pre-prepared auxiliary prompts have been used up, the prompt adjustment unit 135A recognizes that no response information was generated that would result in an evaluation value that satisfies the conditions no matter which auxiliary prompt was given to the chatbot device 200A (no response accuracy of the chatbot device 200A was improved no matter which auxiliary prompt was used) (step S1135a).
- the notification unit 136A notifies the administrator T that it is not possible to improve the response accuracy of the chatbot device 200A (step 1136a).
- FIG. 7 is a diagram showing a specific procedure (2) of the adjustment process according to the embodiment.
- the prompt adjustment unit 135A extracts role-designating words from among the words contained in the assistance prompt currently being adjusted (step 1131b).
- Role-designating words refer to words that designate roles according to the type of input information that the chatbot device 200A can handle.
- role-designating words that correspond to the type "directions” include “assistant,” “butler,” “passenger,” and “driving partner.” Although “assistant,” “butler,” “passenger,” and “driving partner” are different expressions, they are synonymous with each other.
- the prompt adjustment unit 135A determines whether there are any unselected role-designating words in the group of role-designating words prepared in advance (step S1132b).
- the prompt adjustment unit 135A selects one of the unselected role designation words (step S1133b). For example, assume that the assistance prompt PR1, "Please respond as the driver's assistant,” is currently being adjusted, and that the role designation words WDC21, WDC22, and WDC23, as shown in FIG. 7, are unselected role designation words. In this example, the prompt adjustment unit 135A can select one of the role designation words WDC21 to WDC23.
- the role-designating words may be prepared in advance by the administrator T and registered in the prompt information storage unit 122.
- the role-designating words may be listed by the chatbot device 200.
- the administrator T may ask the chatbot device 200 to present role words by giving a command such as "Please think of a word that represents the role of assisting the driver.”
- the prompt adjustment unit 135A changes the role-designating word currently included in the assistance prompt to be adjusted to the role-designating word selected in step S1133b (step S1134b).
- the prompt adjustment unit 135A also replaces the assistance prompt currently being adjusted with the assistance prompt after the role-specifying word has been changed (step S1135b).
- the prompt adjustment unit 135A holds the replaced assistant prompt as an assistant prompt for which adjustment processing has been performed (step S1136b). Then, processing proceeds to step S101. For example, assume that the role-designating word "assistant" contained in assistant prompt PR1, "Please respond as the driver's assistant,” is changed to another role-designating word, "butler.” In this example, the assistant prompt, "Please respond as the driver's butler,” is held as assistant prompt PR2 for which adjustment processing has been performed, and is obtained in step S114 of FIG. 3.
- step S1132b if there are no unselected role-designating words among the prepared role-designating words (step S1132b; No), that is, if all prepared role-designating words have been used up, the prompt adjustment unit 135A recognizes that no response information was generated that would allow an evaluation value that satisfies the conditions even if an auxiliary prompt containing any role-designating word was given to the chatbot device 200A (the response accuracy of the chatbot device 200A did not improve even if an auxiliary prompt containing any role-designating word was used) (step S1137b).
- the notification unit 136A notifies the administrator T that it is not possible to improve the response accuracy of the chatbot device 200A (step 1138b).
- FIG. 8 is a diagram showing the procedure of dialogue control executed by the adjustment device 100A according to the first embodiment.
- the acquisition unit 131 determines whether or not the input information INU of the user U has been acquired (step S201).
- the identification unit 137 identifies the type of the input information INU based on the result of the intent interpretation of the input information INU (step S202).
- the prompt assignment unit 138 acquires an auxiliary prompt that corresponds to the type of input information INU from among the auxiliary prompts that can obtain an evaluation value that satisfies the conditions (i.e., auxiliary prompts that can realize a chatbot device 200A with high response accuracy) (step S203).
- the prompt adding unit 138 adds the assistance prompt acquired in step S203 to the input information INU (step S204).
- the type of the input information INU is "directions," and the assistance prompt PR2 has been registered as an assistance prompt that can realize the chatbot device 200A with high response accuracy.
- the prompt adding unit 138 acquires the assistance prompt PR2 and adds it to the input information INU.
- the transmitting unit 132 also transmits the input information INU including the assistance prompt to the chatbot (step S205).
- the acquisition unit 131 determines whether or not it has acquired the response information ANU generated by the chatbot device 200A in response to the input information INU (step S206). While the acquisition unit 131 has not acquired the response information ANU (step S206; No), the acquisition unit 131 waits until it can acquire the response information ANU.
- the transmission unit 132 if it has acquired the response information ANU (step S206; Yes), it transmits it to the user device 10 (step S207). Also, although not shown in FIG. 8, the output control unit 15b of the user device 10 performs output control to output the response information ANU from the output unit 14.
- the information processing according to the first embodiment adjusts the assistance prompt according to the evaluation result of the response accuracy of the chatbot device 200.
- the information processing according to the second embodiment includes an adjustment process of selecting a chatbot to be executed according to the evaluation result of the response accuracy of the chatbot device 200B, and repeating the selection of the chatbot to be executed until the evaluation result exceeds a pass line.
- selecting a chatbot to be executed includes, for example, either selecting one chatbot device 200 from among chatbot devices, or selecting a language model to be executed by one chatbot device 200 from among multiple candidates.
- FIG. 9 is a diagram showing an example of the device configuration according to the second embodiment.
- the description of points common to the first embodiment will be omitted or simplified.
- the operation of the user device 10 is the same in both the first and second embodiments, and therefore the description will be omitted.
- the description of processing units having the same reference numerals as those in the first embodiment will be omitted or simplified.
- an adjustment device 100B As shown in FIG. 9, an adjustment device 100B according to the second embodiment has a communication unit 110, a storage unit 120B, and a control unit 130B.
- the storage unit 120B is realized by, for example, a semiconductor memory element such as a RAM, a ROM, or a flash memory, or a storage device such as a hard disk, an SSD, or an optical disk.
- the storage unit 120B may store, for example, data and programs related to the information processing according to the second embodiment.
- the storage unit 120B may further include a language model information storage unit 123 in addition to the correct answer information storage unit 121 and the prompt information storage unit 122.
- the language model information storage unit 123 may store information on the language models of the selection candidates, and the stored language models of the selection candidates and the language models registered in the storage unit 220B are in a corresponding relationship as shown in FIG. 9.
- the information on the language models of the selection candidates may be registered in advance by the administrator T.
- the language model information storage unit 123 may store an address of an access destination linked to the language model.
- Control unit 130B The control unit 130B is realized by a CPU, an MPU, or the like executing various programs (e.g., the information processing program according to the second embodiment) stored in a storage device inside the adjustment device 100B using a RAM as a working area.
- the control unit 130B is also realized by an integrated circuit such as an ASIC or an FPGA.
- control unit 130B has an acquisition unit 131, a transmission unit 132, a judgment information generation unit 133, a judgment unit 134B, an execution target adjustment unit 135B, a notification unit 136B, an identification unit 137, and a prompt assignment unit 138, and realizes or executes the functions and actions of the information processing described below.
- the internal configuration of the control unit 130B is not limited to the configuration shown in FIG. 9, and may be other configurations as long as they perform the information processing described below.
- connection relationships of the processing units in the control unit 130A are not limited to the connection relationships shown in FIG. 2, and may be other connection relationships.
- the determination unit 134B determines (evaluates) the response accuracy of the chatbot device 200B based on whether or not the response information generated by the chatbot device 200B in response to the input information satisfies a predetermined condition. Specifically, the determination unit 134B determines whether or not the first response information generated by the first chatbot device 200B in response to the input information satisfies a predetermined condition.
- the determination unit 134B determines whether the second response information generated by the second chatbot device 200B in response to the input information satisfies the specified conditions.
- an adjustment process is further executed to select a third chatbot device 200B having a language model different from the first chatbot device 200B and the second chatbot device 200B as an execution target for generating response information. Then, the determination unit 134B further determines whether the third response information generated by the third chatbot device 200B in response to the input information satisfies the specified conditions.
- the selection of an execution target is repeated until the condition that the response accuracy of the chatbot device 200B exceeds the pass line is met. Therefore, it is possible that the selection is repeated in a manner not limited to the above example, such that the fourth chatbot device 200B is selected as the execution target for generating response information, and then the fifth chatbot device 200B is selected as the execution target for generating response information.
- the determination unit 134B calculates the number of characters in each piece of first response information generated by the first chatbot device 200B each time the same input information is input. Then, the determination unit 134B calculates a statistical value of the number of characters among a predetermined number of pieces of first response information based on the calculated number of characters, and determines whether the statistical value satisfies a predetermined condition.
- the determination unit 134B calculates the similarity between each piece of first response information generated by the first chatbot device 200B and the correct answer information prepared in advance for the input information. Then, based on the calculated similarity, the determination unit 134B calculates a statistical value of the similarity between a predetermined number of pieces of first response information, and determines whether the statistical value satisfies a predetermined condition.
- the determination unit 134B may calculate multiple types of statistical values such as quartiles, modes, and minimum values, and determine whether or not a predetermined number of the multiple types of statistical values satisfy a predetermined condition. For example, a corresponding condition may be set for each statistical value such as quartiles, modes, and minimum values, and the determination unit 134B may evaluate the response accuracy based on whether or not a predetermined percentage or more of the multiple types of statistical values satisfy the condition, or whether all of the multiple types of statistical values satisfy the condition.
- the above example shows the determination unit 134B evaluating the response accuracy of the first chatbot device 200B, but the determination unit 134B also evaluates the response accuracy of the second chatbot device 200B, the third chatbot device 200B, etc. in a similar manner.
- Executecution target adjustment unit 135B When the first response information generated by the first chatbot device 200B in response to the input information does not satisfy a predetermined condition and the response accuracy of the first chatbot device 200B is determined to be low, the execution target adjustment unit 135B selects the second chatbot device 200B having a language model different from that of the first chatbot device 200B as an execution target for generating response information.
- the execution target adjustment unit 135B selects the third chatbot device 200B having a language model different from that of the first chatbot device 200B and the second chatbot device 200B as an execution target for generating response information.
- selecting an execution target corresponds to selecting an arbitrary language model from a group of language models that are prepared as selection candidates in advance, and replacing the language model installed as a function of the chatbot device 200B that is currently the execution target with the selected language model.
- the execution target adjustment unit 135B selects an arbitrary language model from a group of language models of selection candidates prepared in advance, and replaces the language model installed as a function of the chatbot currently being executed with the selected language model. More specifically, if a predetermined condition is not met, the execution target adjustment unit 135B repeats the replacement process of selecting an arbitrary language model from the group of language models of selection candidates, and replacing the language model installed as a function of the chatbot currently being executed with the selected language model, until the predetermined condition is met.
- the transmission unit 132 may refer to the access destination address for each language model stored in the language model information storage unit 123 and transmit the input information IN to that address, and the acquisition unit 131 may acquire the response information generated by the chatbot device 200B in response to the input information IN.
- the notification unit 136B may notify the administrator T that it is not possible to improve the response accuracy.
- Overall procedure of information processing according to the second embodiment 10 is a diagram showing the overall flow of the information processing procedure according to the second embodiment, which is realized by the adjustment device 100B.
- the information processing according to the second embodiment includes an evaluation process for evaluating the response accuracy of the chatbot device 200B, and an adjustment process for selecting an execution target for generating response information. These processes are repeated until the response accuracy of the chatbot device 200B satisfies the conditions. Therefore, first, the flow of the first round of the information processing according to the second embodiment will be described, and then the flow of the second round and subsequent rounds of the information processing according to the second embodiment will be described.
- the example in FIG. 10 shows a scene in which an execution target is selected in a verification experiment to evaluate the response accuracy of the chatbot device 200B.
- the determination information generating unit 133 may generate verification input information at specific times (e.g., once a day).
- FIG. 3 shows a scene in which the chatbot device 200B is automatically adjusted in the "directions" field.
- the determination information generating unit 133 determines whether or not it is time to execute an evaluation process for evaluating the response accuracy of the chatbot device 200B (for example, at 4 p.m. once a day) (step S301). If it is not time to execute the evaluation process (step S301; No), the determination information generating unit 133 waits until it is time to execute the evaluation process.
- the determination information generation unit 133 when it is time to execute the evaluation process (step S301; Yes), the determination information generation unit 133 generates input information for verification based on the fixed scenario (step S302).
- the determination information generation unit 133 uses the fixed scenario "I want to go to XX” to generate input information IN such as "I want to go to Tokyo Tower.” Note that the determination information generation unit 133 may generate input information with the same content each time.
- the execution target adjustment unit 135B determines whether or not the adjustment process has not yet been performed at this time (step S303). In the case of the first round of processing, the execution target adjustment unit 135B determines that the adjustment process has not yet been performed at this time (step S303; not performed), and initially designates a language model (step S304). For example, the execution target adjustment unit 135B may select any one language model from the group of language models that are candidates for change stored in the language model information storage unit 123, and initially designate the selected language model. In the example of FIG. 10, the execution target adjustment unit 135B selects language model LLM1, and initially designates language model LLM1.
- the sending unit 132 sends information to the chatbot device 200B to set the language model LLM1 specified by the execution target adjustment unit 135B as the language model to be used in subsequent dialogues.
- the sending unit 132 may send information to set the language model LLM1 as the language model for dialogue prior to the input information IN each time input information IN is sent to the chatbot device 200B.
- the sending unit 132 sends the input information IN to the chatbot CB1 (an example of the first chatbot device 200B) equipped with the language model LLM1 (step S305).
- the chatbot CB1 applies the language model LLM1 to the input information IN, and generates response information AN1 based on the output result of the language model LLM1.
- an auxiliary prompt may be added to the input information IN sent to the chatbot CB1.
- the prompt adding unit 138 may select any one of the auxiliary prompts that are candidates for change and stored in the prompt information storage unit 122, and add it to the input information IN generated in step S302.
- the auxiliary prompt given in each round may be fixed.
- a different auxiliary prompt may be given in each round, thereby searching for an optimal combination (combination of auxiliary prompt and language model) that is evaluated as having high response accuracy of the chatbot device 200.
- the information processing according to the first embodiment may also be performed in parallel.
- the acquisition unit 131 acquires the response information AN1 generated by the chatbot CB1 in response to the input information IN (step S306).
- the determination unit 134B determines whether a predetermined number of pieces of response information AN1 generated by the chatbot CB1 in response to the input information IN have been accumulated (e.g., 100 pieces have been accumulated) (step S307). If the determination unit 134B determines that the predetermined number of pieces of response information AN1 have not been accumulated (step S307; No), the process returns to step S302, and is repeated until the predetermined number of pieces of response information AN1 have been accumulated.
- the determination unit 134B determines that a predetermined number of pieces of response information AN1 have been accumulated (step S307; Yes), it executes a process of calculating an evaluation value of the response accuracy using the predetermined number of pieces of response information AN1 (step S308).
- the evaluation process performed in step S308 is the same as the pattern of the first embodiment described in Figures 4 and 5, so a description thereof will be omitted.
- each of the predetermined number of pieces of accumulated response information AN1 is a response to input information IN with the same content, there are cases in which responses with different content are included due to response fluctuations of the chatbot CB1. Therefore, the determination unit 134B evaluates the response accuracy of the chatbot CB1 based on whether or not the evaluation value calculated in step S308 satisfies a predetermined condition (step S309).
- the execution target adjustment unit 135B registers the language model currently being executed (e.g., language model LLM1) as a generation algorithm capable of realizing the chatbot device 200B with high response accuracy (step S310). In other words, the execution target adjustment unit 135B registers the chatbot having a language model verified to have high response accuracy as an execution target for generating response information. Then, the process ends.
- the language model currently being executed e.g., language model LLM1
- the execution target adjustment unit 135B registers the chatbot having a language model verified to have high response accuracy as an execution target for generating response information.
- step S309 if it is determined that the evaluation value of the response accuracy does not satisfy the predetermined condition (step S309; No), the execution target adjustment unit 135B executes an adjustment process to select a language model to be executed (step S313).
- the detailed procedure of the adjustment process executed in step S313 will be described in FIG. 11.
- step S302 After the adjustment process is performed by the execution target adjustment unit 135B, the process returns to step S302 and moves to the second round of processing.
- the determination information generating unit 133 In the second and subsequent rounds of processing, the determination information generating unit 133 generates input information for verification based on the fixed scenario (step S302). In the second and subsequent rounds of processing, the determination information generating unit 133 may generate the same input information, "I want to go to Tokyo Tower," as in the first round of processing.
- the execution target adjustment unit 135B determines whether the adjustment process has not yet been executed at this time (step S303). If it is the second or subsequent round of processing, the execution target adjustment unit 135B determines that the adjustment process has not yet been executed at this time, that is, that the adjustment process has been executed (step S303; execute), and specifies the language model selected as the execution target by the adjustment process in step S313 (step S314). Here, it is assumed that the language model LLM2 was selected in the adjustment process in step S313.
- the sending unit 132 sends the input information IN to the chatbot CB2 (an example of the second chatbot device 200B) equipped with the language model LLM2 (step S315).
- the input information IN sent to the chatbot CB2 may be provided with an assistance prompt of the same content as that in the first processing round, or may be provided with an assistance prompt of different content.
- Chatbot CB2 applies language model LLM2 to input information IN and generates response information AN2 based on the output result of language model LLM2.
- the acquisition unit 131 acquires the response information AN2 generated by the chatbot CB2 in response to the input information IN (step S316).
- the determination unit 134B determines whether a predetermined number of pieces of response information AN2 generated by the chatbot CB2 in response to the input information IN have been accumulated (e.g., 100 pieces have been accumulated) (step S307). If the determination unit 134B determines that the predetermined number of pieces of response information AN2 have not been accumulated (step S307; No), the process returns to step S302, and is repeated until the predetermined number of pieces of response information AN2 have been accumulated.
- the determination unit 134A determines that a predetermined number of pieces of response information AN2 have been accumulated (step S307; Yes), it executes a process of calculating an evaluation value of the response accuracy using the predetermined number of pieces of response information AN2 (step S308).
- the determination unit 134B evaluates the response accuracy of the chatbot CB2 based on whether or not the evaluation value calculated in step S308 satisfies a predetermined condition (step S309).
- the execution target adjustment unit 135B registers the language model currently being executed (e.g., language model LLM2) as a generation algorithm capable of realizing the chatbot device 200B with high response accuracy (step S310).
- the current language model e.g., language model LLM2
- the language model e.g., language model LLM1
- the execution target adjustment unit 135B registers the chatbot having a language model verified to have high response accuracy as an execution target for generating response information. Then, the processing ends.
- step S309 the execution target adjustment unit 135B executes the adjustment process to select a language model again (step S313).
- step S302 After the adjustment process is performed by the execution target adjustment unit 135B, the process returns to step S302 and moves to the next round.
- FIG. 11 is a diagram showing a specific procedure of the adjustment process according to the second embodiment.
- the execution target adjustment unit 135B determines whether or not there is an unselected language model in the group of language models prepared in advance (step S3131).
- the execution target adjustment unit 135B selects one of the unselected language models (step S3132). For example, assume that language model LLM1 is currently the execution target, and language models MC31 and MC32 exist as unselected language models, as shown in FIG. 11. In this example, the execution target adjustment unit 135B can select one of language models MC31 and MC32.
- the execution target adjustment unit 135B replaces the language model currently being executed with the language model selected in step S3132 (step S3133).
- the execution target adjustment unit 135B holds the replaced language model as the language model selected as the execution target by the adjustment process (step S3134). Then, the process proceeds to step S301. For example, assume that language model LLM1 has been replaced with language model LLM2, which has been selected as a candidate. In this example, language model LLM2 is held as the language model selected as the execution target by the adjustment process, and is specified in step S314 of FIG. 10.
- step S3131 if there is no unselected language model in the group of pre-prepared language models (step S3131; No), that is, if all pre-prepared language models have been used up, the execution target adjustment unit 135B recognizes that no response information was generated that would obtain an evaluation value that satisfies the conditions no matter which language model was installed in the chatbot device 200B (no response accuracy of the chatbot device 200B was improved no matter which language model was used) (step S3135).
- the notification unit 136B notifies the administrator T that it is not possible to improve the response accuracy of the chatbot device 200B (step 3136).
- the information processing according to each embodiment described above is not limited to application in a PULL-type system such as a chatbot, but can be extended to a PUSH-type system such as automatic announcements to users.
- a case where the information processing according to each embodiment is applied to an automatic announcement system that takes into account the surrounding environment will be described as an example.
- the adjustment device 100 acquires the surrounding traffic congestion situation as a parameter in conjunction with the current location, and inputs the acquired parameter into the chatbot device 200 as a prompt. It is considered that the chatbot device 200 generates response information for various driving assistance associated with the traffic congestion situation.
- the response information may be encouraging or may contain wording that is unrelated to the purpose. In this way, even if it is evaluated that the response accuracy of the chatbot device 200 has decreased in a push-type service, it is possible to realize automatic improvement of the response accuracy.
- the above-described adjustment device 100 may be realized, for example, by a computer 1000 having a configuration as shown in Fig. 12.
- Fig. 12 is a hardware configuration diagram showing an example of a computer that realizes the functions of the adjustment device 100 according to the embodiment.
- the computer 1000 has a CPU 1100, a RAM 1200, a ROM 1300, a HDD 1400, a communication interface (I/F) 1500, an input/output interface (I/F) 1600, and a media interface (I/F) 1700.
- the CPU 1100 operates based on the programs stored in the ROM 1300 or the HDD 1400, and controls each component.
- the ROM 1300 stores a boot program executed by the CPU 1100 when the computer 1000 starts up, and programs that depend on the hardware of the computer 1000, etc.
- HDD 1400 stores programs executed by CPU 1100 and data used by such programs.
- Communication interface 1500 receives data from other devices via a specified communication network and sends it to CPU 1100, and transmits data generated by CPU 1100 to other devices via the specified communication network.
- the CPU 1100 controls an output device such as a display and an input device such as a keyboard via the input/output interface 1600.
- the CPU 1100 acquires data from the input device via the input/output interface 1600.
- the CPU 1100 also outputs generated data to the output device via the input/output interface 1600.
- the media interface 1700 reads a program or data stored in the recording medium 1800 and provides it to the CPU 1100 via the RAM 1200.
- the CPU 1100 loads the program from the recording medium 1800 onto the RAM 1200 via the media interface 1700 and executes the loaded program.
- the recording medium 1800 is, for example, an optical recording medium such as a DVD (Digital Versatile Disc) or a PD (Phase change rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory.
- the CPU 1100 of the computer 1000 executes programs loaded onto the RAM 1200 to realize the functions of the control unit 130.
- the CPU 1100 of the computer 1000 reads and executes these programs from the recording medium 1800, but as another example, the CPU 1100 may obtain these programs from another device via a specified communication network.
- each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure.
- the specific form of distribution and integration of each device is not limited to that shown in the figure, and all or part of them can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本発明に係る情報処理装置は、判定部と、調整部と、通知部とを備える。判定部は、入力情報に応じてチャットボットが生成する応答情報を取得し、取得した応答情報が所定条件を満たすか否かに基づいて、チャットボットの応答精度を判定する。調整部は、応答情報が所定条件を満たさず、チャットボットの応答精度が低いと判定される場合には、応答精度を自動的に改善するための所定処理を実行する。通知部は、所定処理を実行後に、判定部が取得した応答情報が所定条件を満たさなかった場合には、応答精度の自動的な改善が不能であることを所定の通知先に通知する。
Description
本発明は、情報処理装置、情報処理方法、および、情報処理プログラムに関する。
近年、大規模言語モデルを搭載したチャットボットによる様々な音声アシスト機能が提案されている。
ところで、特許文献1には、チャットボットによって与えられる提案または他の内容の1つまたは複数の内容パラメータに関して、ユーザに対してフィードバックを要請する技術が開示されている。
しかしながら、上記の従来技術は、ユーザに与えられる将来の提案や他の内容を改善するといったように、提案の内容にフォーカスされた技術であり、チャットボットによる応答精度の改善ついては考慮されていない。
したがって、上記の従来技術では、チャットボットによる応答精度の改善には人手か必要であることを利用者に把握させることができるとは限らない。
本発明は、上記に鑑みてなされたものであって、チャットボットによる応答精度の改善には人手か必要であることを利用者に把握させることができる情報処理装置、情報処理方法、および、情報処理プログラムを提案する。
請求項1に記載の情報処理装置は、入力情報に応じてチャットボットが生成する応答情報を取得し、取得した前記応答情報が所定条件を満たすか否かに基づいて、前記チャットボットの応答精度を判定する判定部と、前記応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記応答精度を自動的に改善するための所定処理を実行する調整部と、前記調整部が前記所定処理を実行後に、前記判定部が取得した応答情報が前記所定条件を満たさなかった場合には、前記応答精度の自動的な改善が不能であることを所定の通知先に通知する通知部と、を備える。
請求項9に記載の情報処理方法は、情報処理装置が実行する情報処理方法であって、入力情報に応じてチャットボットが生成する応答情報を取得し、取得した前記応答情報が所定条件を満たすか否かに基づいて、前記チャットボットの応答精度を判定する判定工程と、前記応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記応答精度を自動的に改善するための所定処理を実行する調整工程と、前記調整工程が前記所定処理を実行後に、前記判定工程が取得した応答情報が前記所定条件を満たさなかった場合には、前記応答精度の自動的な改善が不能であることを所定の通知先に通知する通知工程と、を含む。
請求項10に記載の情報処理プログラムは、情報処理装置によって実行される情報処理プログラムであって、入力情報に応じてチャットボットが生成する応答情報を取得し、取得した前記応答情報が所定条件を満たすか否かに基づいて、前記チャットボットの応答精度を判定する判定手順と、前記応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記応答精度を自動的に改善するための所定処理を実行する調整手順と、前記調整手順が前記所定処理を実行後に、前記判定手順が取得した応答情報が前記所定条件を満たさなかった場合には、前記応答精度の自動的な改善が不能であることを所定の通知先に通知する通知手順と、を前記情報処理装置に実行させる。
[実施形態]
以下に添付図面を参照しながら、本発明の実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
以下に添付図面を参照しながら、本発明の実施形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
以下に説明される1または複数の実施形態(実施例、変形例、適用例を含む)は、各々が独立に実施されることが可能である。一方で、以下に説明される複数の実施形態は少なくとも一部が他の実施形態の少なくとも一部と適宜組み合わせて実施されてもよい。これら複数の実施形態は、互いに異なる新規な特徴を含み得る。したがって、これら複数の実施形態は、互いに異なる目的又は課題を解決することに寄与し得、互いに異なる効果を奏し得る。
〔1.はじめに〕
例えば、端末装置が、API(Application Programming Interface)を介して大規模言語モデルと連携するチャットボットから、入力に対応する回答を得て、端末装置に提示させるサービスが実現可能である。
例えば、端末装置が、API(Application Programming Interface)を介して大規模言語モデルと連携するチャットボットから、入力に対応する回答を得て、端末装置に提示させるサービスが実現可能である。
しかしながら、同じ内容の指示をチャットボットに入力しても趣旨が異なる内容の応答が出力される場合がある。例えば、ユーザが「東京タワーに行きたい。」と入力した場合、チャットボットは、「最寄駅はA駅です。A駅からは徒歩でのアクセスが可能です。」といったように、道案内して欲しいというユーザの意図に沿った内容を応答することが考えられる。一方で、別のタイミングでユーザが同様に「東京タワーに行きたい。」と入力した場合、「東京タワーは日本を代表する観光スポットです。」といったように、道案内とは趣旨が異なる内容を応答する場合もある。
このように、チャットボットが生成する応答内容に一貫性がみられず不均一になってしまう、所謂、応答ゆらぎ(回答ゆらぎ)が発生することがある。なお、応答ゆらぎは、応答生成の不自然さともいえる。
ここで、応答ゆらぎを抑制するために特定の内容のプロンプトが設定される場合がある。しかしながら、例えば、大規模言語モデルが新たな学習を行って進化したり、バージョンアップされたりした場合には、同一内容のプロンプトが設定されたとしても、新たに応答ゆらぎが生じてしまう場合がある。そうすると、サービス提供者は、応答ゆらぎ、すなわち、趣旨と異なる内容の応答が増加した場合にはその度に、プロンプトの内容を修正する必要に迫られることになる。
本発明は、大規模言語モデルの応答内容の一貫性(適切性)が劣化した場合に、その劣化を自動調整することでチャットボットの応答精度を改善することが可能な仕組みを提案する。
なお、自動調整では応答精度の改善に限界がある場合には、サービス提供者の介入が求められる。しかしながら、上述したように、サービス提供者が頻繁に修正作業を行わなければならないことは煩雑である。そこで、本発明は、自動調整では応答精度の改善が不能となり、人手での改善が必要になったタイミングでそのことを通知する仕組みまでも提案する。
〔2.システム構成〕
まず、図1を用いて、実施形態に係るシステムの構成を説明する。以下では実施形態を複数に分けて説明するが、図1に示すシステムは全ての実施形態において共通するものである。図1は、実施形態に係るシステムの一例を示す図である。図1には、実施形態に係るシステムの一例として、システム1が示される。本発明の提案技術に係る情報処理は、システム1において実現される。
まず、図1を用いて、実施形態に係るシステムの構成を説明する。以下では実施形態を複数に分けて説明するが、図1に示すシステムは全ての実施形態において共通するものである。図1は、実施形態に係るシステムの一例を示す図である。図1には、実施形態に係るシステムの一例として、システム1が示される。本発明の提案技術に係る情報処理は、システム1において実現される。
図1に示すように、システム1は、ユーザ装置10と、管理者装置30と、調整装置100と、チャットボット装置200とを備える。また、ユーザ装置10と、管理者装置30と、調整装置100と、チャットボット装置200とは、ネットワークNを介して、有線または無線により通信可能に接続される。また、システム1において、ユーザ装置10、管理者装置30、調整装置100、チャットボット装置200それぞれの数は限定されない。
ユーザ装置10は、音声アシスタントとの対話により情報提供を受けようとするユーザUによって利用される情報処理端末であってよい。例えば、ユーザ装置10は、スマートフォンや、ウェアラブルデバイスや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等である。
他の例として、ユーザ装置10は、車両に内蔵あるいは積載されるナビゲーション装置すなわち車載装置として実装されてもよい。車載装置としてのユーザ装置10は、ナビゲーション機能だけでなく、録画機能(ドライブレコーダー機能)を有する場合がある。
管理者装置30は、システム1全体や、チャットボット装置200のメンテナンスを管理する管理者Tによって利用される情報処理端末であってよい。例えば、管理者装置30は、スマートフォンや、ウェアラブルデバイスや、タブレット型端末や、ノート型PCや、デスクトップPCや、携帯電話機や、PDA等である。
調整装置100は、情報処理装置の一例である。調整装置100は、実施形態に係る情報処理として、チャットボットに応答ゆらぎが発生した場合に応答内容に一貫性を取り戻させるための調整処理や、調整処理による応答精度の自動改善が不能な場合には人手での改善が必要であることを通知する通知処理等を行う情報処理装置である。調整装置100の機能は、実施形態に係る情報処理プログラムによって実現されてよい。
チャットボット装置200は、音声アシスタントとしてユーザUとの対話を実現する。チャットボット装置200は、言語モデルを搭載することで入力情報に対する応答情報を生成する機能を有する。例えば、チャットボット装置200では、ユーザUとの間で高精度な対話を実現できるよう、言語モデルの学習が繰り返されたり、言語モデルのバージョンアップが行われたりしている。
なお、チャットボット装置200は、所謂、生成系AI(会話、ストーリー、画像、動画、音楽などの様々なコンテンツやアイデアを作成できる人工知能)を搭載してもよい。また、以下の実施形態において、「チャットボット」とは、実質、「チャットボット装置200(200A,200B)」を指し示すものとする。
また、ユーザ装置10および管理者装置30がエッジコンピュータであることに対して、調整装置100およびチャットボット装置200は、クラウドコンピュータとして実装され得る。
以下では、実施形態を第1の実施形態と第2の実施形態とに分けて説明する。ただし、第1の実施形態と第2の実施形態とを区別する必要が無い場合には、各実施形態に係る情報処理を単に「実施形態に係る情報処理」と表記する。
また、第1の実施形態に係る調整装置100を「調整装置100A」、第2の実施形態に係る調整装置100を「調整装置100B」と表記する。「調整装置100A」と「調整装置100B」を区別する必要が無い場合には、単に「調整装置100」と表記する。
また、第1の実施形態に係るチャットボット装置200を「チャットボット装置200A」、第2の実施形態に係るチャットボット装置200を「チャットボット装置200B」と表記する。「チャットボット装置200A」と「チャットボット装置200B」とを区別する必要が無い場合には、単に「チャットボット装置200」と表記する。
<第1の実施形態>
〔1.機能構成〕
図2を用いて、第1の実施形態に係るユーザ装置10、調整装置100A、チャットボット装置200Aそれぞれの構成例について説明する。図2は、第1の実施形態に係る装置構成例を示す図である。図2では管理者装置30については省略されている。
〔1.機能構成〕
図2を用いて、第1の実施形態に係るユーザ装置10、調整装置100A、チャットボット装置200Aそれぞれの構成例について説明する。図2は、第1の実施形態に係る装置構成例を示す図である。図2では管理者装置30については省略されている。
[ユーザ装置10]
図2に示すように、第1の実施形態に係るユーザ装置10は、通信部11と、記憶部12と、入力部13と、出力部14と、制御部15とを有する。
図2に示すように、第1の実施形態に係るユーザ装置10は、通信部11と、記憶部12と、入力部13と、出力部14と、制御部15とを有する。
(通信部11)
通信部11は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部11は、ネットワークNと有線または無線で接続され、例えば、調整装置100やチャットボット装置200との間で情報の送受信を行う。
通信部11は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部11は、ネットワークNと有線または無線で接続され、例えば、調整装置100やチャットボット装置200との間で情報の送受信を行う。
(記憶部12)
記憶部12は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD(Solid State Drive)、光ディスク等の記憶装置によって実現される。記憶部12は、例えば、実施形態に係る情報処理に関する各種データや、入力情報が記憶されてよい。
記憶部12は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD(Solid State Drive)、光ディスク等の記憶装置によって実現される。記憶部12は、例えば、実施形態に係る情報処理に関する各種データや、入力情報が記憶されてよい。
(入力部13)
入力部13は、外部から各種入力を受け付ける入力装置である。例えば、入力部13は、キーボードやマウスや操作キー等、ユーザUが各種操作を行うための操作装置である。なお、ユーザ装置10にタッチパネルが採用される場合には、タッチパネルも入力部13に含まれる。この場合、ユーザUは、タッチパネルをタッチすることにより各種操作を行う。また、入力部13には、発話による音声入力を受け付けるマイクも含まれる。
入力部13は、外部から各種入力を受け付ける入力装置である。例えば、入力部13は、キーボードやマウスや操作キー等、ユーザUが各種操作を行うための操作装置である。なお、ユーザ装置10にタッチパネルが採用される場合には、タッチパネルも入力部13に含まれる。この場合、ユーザUは、タッチパネルをタッチすることにより各種操作を行う。また、入力部13には、発話による音声入力を受け付けるマイクも含まれる。
ユーザUは、入力部13を介して、例えば、「〇〇に行きたい」、「〇〇を買いたい」、「〇〇を食べたい」、「〇〇を聞きたい」等の様々な種別の入力情報を入力する場合がある。入力情報は、テキストであってもよいし、音声であってもよい。入力情報は、調整装置100を介してチャットボット装置200に入力されてよい。
(出力部14)
出力部14は、音、光、振動、画像等、外部に各種出力を行う装置である。出力部14は、制御部15の制御に従って、ユーザUに対して各種出力を行う。なお、出力部14は、各種情報を表示する表示装置であってよい。表示装置は、例えば、液晶ディスプレイ、又は、有機ELディスプレイ(Organic Electro Luminescence Display)である。なお、出力部14は、タッチパネル式の表示装置であってもよい。この場合、入力部13と出力部14は一体の構成とみなしてもよい。また、出力部14は、スピーカーであってもよい。
出力部14は、音、光、振動、画像等、外部に各種出力を行う装置である。出力部14は、制御部15の制御に従って、ユーザUに対して各種出力を行う。なお、出力部14は、各種情報を表示する表示装置であってよい。表示装置は、例えば、液晶ディスプレイ、又は、有機ELディスプレイ(Organic Electro Luminescence Display)である。なお、出力部14は、タッチパネル式の表示装置であってもよい。この場合、入力部13と出力部14は一体の構成とみなしてもよい。また、出力部14は、スピーカーであってもよい。
(制御部15)
制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、ユーザ装置10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部15は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
制御部15は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、ユーザ装置10内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部15は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図2に示すように、制御部15は、送受信部15aと、出力制御部15bとを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部15の内部構成は、図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部15が有する各処理部の接続関係は、図2に示した接続関係に限られず、他の接続関係であってもよい。
(送受信部15a)
送受信部15aは、入力部13を介して入力された入力情報を受け付ける。例えば、送受信部15aは、マイクを介した発話による音声入力や、タッチパネルを介したタッチ入力を受け付ける。そして、送受信部15aは、受け付けた入力情報を送信する。例えば、送受信部15aは、受け付けた入力情報を調整装置100に送信してもよいし、受け付けた入力情報を直接チャットボット装置200に送信してもよい。
送受信部15aは、入力部13を介して入力された入力情報を受け付ける。例えば、送受信部15aは、マイクを介した発話による音声入力や、タッチパネルを介したタッチ入力を受け付ける。そして、送受信部15aは、受け付けた入力情報を送信する。例えば、送受信部15aは、受け付けた入力情報を調整装置100に送信してもよいし、受け付けた入力情報を直接チャットボット装置200に送信してもよい。
また、送受信部15aは、入力情報に対してチャットボット装置200が生成した応答情報を受信する。
(出力制御部15b)
出力制御部15bは、チャットボット装置200が生成した応答情報を出力部14から出力させるための出力制御を行う。
出力制御部15bは、チャットボット装置200が生成した応答情報を出力部14から出力させるための出力制御を行う。
[調整装置100A]
図2に示すように、第1の実施形態に係る調整装置100Aは、通信部110と、記憶部120Aと、制御部130Aとを有する。
図2に示すように、第1の実施形態に係る調整装置100Aは、通信部110と、記憶部120Aと、制御部130Aとを有する。
(通信部110)
通信部110は、例えば、NIC等によって実現される。そして、通信部110は、ネットワークNと有線または無線で接続され、例えば、ユーザ装置10、管理者装置30、チャットボット装置200との間で情報の送受信を行う。
通信部110は、例えば、NIC等によって実現される。そして、通信部110は、ネットワークNと有線または無線で接続され、例えば、ユーザ装置10、管理者装置30、チャットボット装置200との間で情報の送受信を行う。
(記憶部120A)
記憶部120Aは、例えば、RAM、ROM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD、光ディスク等の記憶装置によって実現される。記憶部120Aは、例えば、第1の実施形態に係る情報処理に関するデータやプログラムが記憶されてよい。また、図2の例によれば、記憶部120Aは、正解情報記憶部121と、プロンプト情報記憶部122とを有してよい。
記憶部120Aは、例えば、RAM、ROM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD、光ディスク等の記憶装置によって実現される。記憶部120Aは、例えば、第1の実施形態に係る情報処理に関するデータやプログラムが記憶されてよい。また、図2の例によれば、記憶部120Aは、正解情報記憶部121と、プロンプト情報記憶部122とを有してよい。
(正解情報記憶部121)
正解情報記憶部121は、入力情報に対して準備される正解の応答情報(正解情報)を記憶する。正解の応答情報は、例えば、管理者Tによって予め準備されてよい。
正解情報記憶部121は、入力情報に対して準備される正解の応答情報(正解情報)を記憶する。正解の応答情報は、例えば、管理者Tによって予め準備されてよい。
(プロンプト情報記憶部122)
プロンプト情報記憶部122は、第1に実施形態に係る各種プロンプトを記憶する。ここで、プロンプトについて説明しておく。プロンプトとは、チャットボット装置200への質問や指示に用いられる指示文を指し示し、チャットボット装置200に入力される入力情報の少なくとも一部分に相当する。
プロンプト情報記憶部122は、第1に実施形態に係る各種プロンプトを記憶する。ここで、プロンプトについて説明しておく。プロンプトとは、チャットボット装置200への質問や指示に用いられる指示文を指し示し、チャットボット装置200に入力される入力情報の少なくとも一部分に相当する。
例えば、入力情報は、指示の主旨となる文言と、その指示を補助する文言とで構成される場合がある。以下の実施形態では、指示を補助する文言を「補助プロンプト」と定義する。この点について具体例を示す。例えば、ユーザUをドライバーと仮定して、ユーザUが入力部13に対して「東京タワーに行きたい。」と発話入力したとする。係る場合、調整装置100によって「東京タワーに行きたい。」というテキストを基に意図解釈が行われ、意図解釈結果に応じた入力情報の種別(係る例では、道案内)が特定される。そして、調整装置100によれば、入力情報の種別に応じた補助プロンプトが付与される。
一例として、「ドライバーのアシスタントとして応答して下さい。」が補助プロンプトとして付与される場合がある。ここで、「ドライバーのアシスタント」とは、ユーザUの発話入力である「東京タワーに行きたい。」の意図が道案内であると解釈した調整装置100が、道案内という場面においてチャットボット装置200に求めるべきと判定した役割である。係る例では、“「ドライバーは東京タワーに行きたい。」、「ドライバーのアシスタントとして応答して下さい。」”が入力情報すなわちプロンプトであり、ここに含まれる一部分「ドライバーのアシスタントとして応答して下さい。」が補助プロンプトとなる。一方で、補助プロンプト以外の部分、具体的には「ドライバーは東京タワーに行きたい。」がプロンプトであってもよいし、“「ドライバーは東京タワーに行きたい。」、「ドライバーのアシスタントとして応答して下さい。」”という全体がプロンプトであってもよい。
図1の説明に戻ると、プロンプト情報記憶部122は、このように調整装置100によって用いられる候補の補助プロンプト群を記憶してよい。また、後述するが、調整装置100は、チャットボット装置200の応答精度を評価するために入力情報を動的に生成する場合がある。よって、プロンプト情報記憶部122は、入力情報(プロンプト)の動的生成のためのシナリオ情報も記憶してよい。
ここで、第1の実施形態に係る情報処理は、チャットボット装置200の応答精度を評価した評価結果に応じて、上述した補助プロンプトを調整するとともに、評価結果が合格ラインを超えるまで補助プロンプトの調整を繰り返すという調整処理を含む。
(制御部130A)
制御部130Aは、CPUやMPU等によって、調整装置100A内部の記憶装置に記憶されている各種プログラム(例えば、第1の実施形態に係る情報処理プログラム)がRAMを作業領域として実行されることにより実現される。また、制御部130Aは、例えば、ASICやFPGA等の集積回路により実現される。
制御部130Aは、CPUやMPU等によって、調整装置100A内部の記憶装置に記憶されている各種プログラム(例えば、第1の実施形態に係る情報処理プログラム)がRAMを作業領域として実行されることにより実現される。また、制御部130Aは、例えば、ASICやFPGA等の集積回路により実現される。
図2に示すように、制御部130Aは、取得部131と、送信部132と、判定情報生成部133と、判定部134Aと、プロンプト調整部135Aと、通知部136Aと、特定部137と、プロンプト付与部138とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130Aの内部構成は、図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130Aが有する各処理部の接続関係は、図2に示した接続関係に限られず、他の接続関係であってもよい。
(取得部131)
取得部131は、実施形態に係る情報処理において各種情報の取得もしくは受付を行う。例えば、取得部131は、チャットボット装置200に入力する入力情報を取得する。例えば、取得部131は、入力部13によって受け付けられた入力情報を、チャットボット装置200に入力する入力情報として取得する。また、取得部131は、判定情報生成部133によって生成された入力情報も取得してよい。
取得部131は、実施形態に係る情報処理において各種情報の取得もしくは受付を行う。例えば、取得部131は、チャットボット装置200に入力する入力情報を取得する。例えば、取得部131は、入力部13によって受け付けられた入力情報を、チャットボット装置200に入力する入力情報として取得する。また、取得部131は、判定情報生成部133によって生成された入力情報も取得してよい。
取得部131は、入力情報に対して準備される正解の応答情報(正解情報)を取得する。
取得部131は、入力情報に対してチャットボット装置200が生成する応答情報を取得する。また、取得部131は、補助プロンプトを調整する調整処理を実行された実行済の補助プロンプトを取得する。さらに、取得部131は、言語モデルの情報も取得してよい。
(送信部132)
送信部132は、実施形態に係る情報処理において各種情報の送信を行う。例えば、送信部132は、補助プロンプトを含む入力情報をチャットボット装置200に送信する。また、送信部132は、入力情報に対してチャットボット装置200が生成する応答情報をユーザ装置10に送信する。
送信部132は、実施形態に係る情報処理において各種情報の送信を行う。例えば、送信部132は、補助プロンプトを含む入力情報をチャットボット装置200に送信する。また、送信部132は、入力情報に対してチャットボット装置200が生成する応答情報をユーザ装置10に送信する。
(判定情報生成部133)
判定情報生成部133は、入力情報を生成する。例えば、チャットボット装置200が生成する応答情報が所定条件を満たすか否かの判定処理(すなわちチャットボット装置200の応答精度を評価する評価処理)では、応答精度の検証のための入力情報が定期的にチャットボット装置200に入力される。そこで、判定情報生成部133は、この検証用の入力情報を例えば予め設定されたタイミングごとに生成してよい。
判定情報生成部133は、入力情報を生成する。例えば、チャットボット装置200が生成する応答情報が所定条件を満たすか否かの判定処理(すなわちチャットボット装置200の応答精度を評価する評価処理)では、応答精度の検証のための入力情報が定期的にチャットボット装置200に入力される。そこで、判定情報生成部133は、この検証用の入力情報を例えば予め設定されたタイミングごとに生成してよい。
例えば、判定情報生成部133は、「〇〇に行きたい」、「〇〇を買いたい」、「〇〇を食べたい」、「〇〇を聞きたい」等の固定シナリオに沿って入力情報を生成することができる。例えば、道案内という種別の入力情報に対するチャットボット装置200の応答精度を評価したい場合には、判定情報生成部133は、固定シナリオ「〇〇に行きたい」に基づき入力情報を生成する。
(判定部134A)
判定部134Aは、入力情報に応じてチャットボット装置200Aが生成する応答情報が所定条件を満たすか否かに基づいて、チャットボット装置200Aの応答精度を判定(評価)する。具体的には、判定部134Aは、第1の入力情報に対してチャットボット装置200Aが生成する第1の応答情報が所定条件を満たすか否かを判定する。
判定部134Aは、入力情報に応じてチャットボット装置200Aが生成する応答情報が所定条件を満たすか否かに基づいて、チャットボット装置200Aの応答精度を判定(評価)する。具体的には、判定部134Aは、第1の入力情報に対してチャットボット装置200Aが生成する第1の応答情報が所定条件を満たすか否かを判定する。
第1の応答情報が所定条件を満たさず、チャットボット装置200Aの応答精度が低いと判定された場合には、第1の入力情報に含まれる補助プロンプトを調整する調整処理が実行される。そこで、判定部134Aは、調整処理を実行済の補助プロンプトを含む第2の入力情報に対してチャットボット装置200Aが生成する第2の応答情報が所定条件を満たすか否かをさらに判定してよい。
例えば、判定部134Aは、同一内容の第1の入力情報が入力されるたびにチャットボット装置200Aが生成した第1の応答情報のそれぞれの文字数を算出する。そして、判定部134Aは、算出した文字数に基づいて、所定数の第1の応答情報の間での文字数の統計値を算出し、統計値が所定条件を満たすか否かを判定する。
他の例として、判定部134Aは、同一内容の第1の入力情報が入力されるたびにチャットボット装置200Aが生成した第1の応答情報のそれぞれと、第1の入力情報に対して予め準備された正解情報との類似度を算出する。そして、判定部134Aは、算出した類似度に基づいて、所定数の第1の応答情報の間での類似度の統計値を算出し、統計値が所定条件を満たすか否かを判定する。
なお、判定部134Aは、複数種類の統計値として、四分位数、最頻値、最小値等を算出し、複数種類の統計値のうち、所定数より多くの統計値が所定条件を満たすか否かを判定してもよい。例えば、四分位数、最頻値、最小値等の統計値ごとに対応する条件が設けられていてよく、判定部134Aは、複数種類の統計値のうち所定割合以上の統計値が条件と満たしているか否か、あるいは、複数種類の統計値のうち全ての統計値が条件と満たしているかによって応答精度を評価してもよい。
(プロンプト調整部135A)
プロンプト調整部135Aは、第1の応答情報が所定条件を満たさず、チャットボット装置200Aの応答精度が低いと判定された場合には、第1の入力情報に含まれる補助プロンプトを調整する。また、プロンプト調整部135Aは、調整処理を実行済の補助プロンプトを含む第2の応答情報が所定条件を満たさず、チャットボット装置200Aの応答精度が未だに低いと判定された場合には、第2の入力情報に含まれる補助プロンプトを再度調整する。
プロンプト調整部135Aは、第1の応答情報が所定条件を満たさず、チャットボット装置200Aの応答精度が低いと判定された場合には、第1の入力情報に含まれる補助プロンプトを調整する。また、プロンプト調整部135Aは、調整処理を実行済の補助プロンプトを含む第2の応答情報が所定条件を満たさず、チャットボット装置200Aの応答精度が未だに低いと判定された場合には、第2の入力情報に含まれる補助プロンプトを再度調整する。
このように、補助プロンプトを調整する調整処理は、チャットボット装置200Aの応答精度が合格ラインを超えるという条件を満たすまで繰り返される。また、補助プロンプト調整とは、補助プロンプトを変更することに相当する。これらを踏まえると、補助プロンプトを調整する調整処理とは、現時点で調整対象の補助プロンプトを他の補助プロンプトに変更することに相当する。
また、現時点で調整対象の補助プロンプトを他の補助プロンプトに変更する処理には、補助プロンプト全体を変更する処理と、補助プロンプトに含まれる一部のワードのみを変更する処理とに分類される。
補助プロンプト全体を変更する処理について具体的に説明する。プロンプト調整部135Aは、チャットボット装置200Aに対する入力情報の種別に応じて予め準備される変更候補の補助プロンプト群の中から任意の補助プロンプトを選択し、現時点で調整対象の補助プロンプトと、選択した補助プロンプトとを入れ替えるという処理を実行する。より具体的には、プロンプト調整部135Aは、所定条件が満たされない場合には、所定条件が満たされるまで、変更候補の補助プロンプト群の中から任意の補助プロンプトを選択し、現時点で調整対象の補助プロンプトから、選択した補助プロンプトへと入れ替える入替処理を繰り返す。
次に、補助プロンプトに含まれる一部のワードのみを変更する処理について具体的に説明する。プロンプト調整部135Aは、現時点で調整対象の補助プロンプトに含まれるワードのうち、所定のワードを他のワードに変更し、現時点で調整対象の補助プロンプトと、所定のワードが他のワードに変更された変更後の補助プロンプトとを入れ替える。より具体的には、プロンプト調整部135Aは、所定条件が満たされない場合には、所定条件が満たされるまで、現時点で調整対象の補助プロンプトに含まれる所定のワードを他のワードに変更し、現時点で調整対象の補助プロンプトから、所定のワードが他のワードに変更された変更後の補助プロンプトへと入れ替える入替処理を繰り返す。
例えば、プロンプト調整部135Aは、現時点で調整対象の補助プロンプトに含まれる所定のワードとして、チャットボット装置200に対する入力情報の種別に応じた役割を指定するワードを、当該役割に対して類義の他の役割を指定するワードに変更する。
(通知部136A)
これまでの説明によれば、入力情報に応じてチャットボット装置200Aが生成する応答情報が所定条件を満たさず、チャットボット装置200Aの応答精度が低いと判定された場合には、応答精度を自動的に改善するための調整処理が実行される。また、上述したように、所定条件が満たされるまでこの調整処理が繰り返されるが、調整処理の繰り返し回数には限度がある。そこで、限度に達しても所定条件が満たされず応答精度の自動的な改善が不能となった場合には、通知部136Aは、応答精度の自動的な改善が不能であることを所定の通知先に通知する。例えば、通知部136Aは、管理者Tの管理者装置30に改善不能情報を通知してよい。
これまでの説明によれば、入力情報に応じてチャットボット装置200Aが生成する応答情報が所定条件を満たさず、チャットボット装置200Aの応答精度が低いと判定された場合には、応答精度を自動的に改善するための調整処理が実行される。また、上述したように、所定条件が満たされるまでこの調整処理が繰り返されるが、調整処理の繰り返し回数には限度がある。そこで、限度に達しても所定条件が満たされず応答精度の自動的な改善が不能となった場合には、通知部136Aは、応答精度の自動的な改善が不能であることを所定の通知先に通知する。例えば、通知部136Aは、管理者Tの管理者装置30に改善不能情報を通知してよい。
例えば、通知部136Aは、所定条件が満たされないまま、変更候補の補助プロンプト群の中から全ての補助プロンプトが選択され終わった場合には、応答精度の改善が不能であることを管理者Tに通知してよい。
また、通知部136Aは、所定条件が満たされないまま、複数準備される他のワードの全てが変更に使用され終わった場合には、応答精度の改善が不能であることを管理者に通知してよい。
(特定部137)
特定部137は、入力情報を意図解釈した結果に基づき入力情報の種別を特定する。例えば、特定部137は、ユーザUの入力情報が取得された場合に、意図解釈結果に応じた入力情報の種別(係る例では、道案内)を特定する。
特定部137は、入力情報を意図解釈した結果に基づき入力情報の種別を特定する。例えば、特定部137は、ユーザUの入力情報が取得された場合に、意図解釈結果に応じた入力情報の種別(係る例では、道案内)を特定する。
(プロンプト付与部138)
プロンプト付与部138は、入力情報の種別に応じた補助プロンプトを入力情報に付与する。例えば、プロンプト付与部138は、ユーザUの入力情報に補助プロンプトを付与する。
プロンプト付与部138は、入力情報の種別に応じた補助プロンプトを入力情報に付与する。例えば、プロンプト付与部138は、ユーザUの入力情報に補助プロンプトを付与する。
[チャットボット装置200A]
図2に示すように、第1の実施形態に係るチャットボット装置200Aは、通信部210と、記憶部220Aと、制御部230とを有する。
図2に示すように、第1の実施形態に係るチャットボット装置200Aは、通信部210と、記憶部220Aと、制御部230とを有する。
(通信部210)
通信部210は、例えば、NIC等によって実現される。そして、通信部210は、ネットワークNと有線または無線で接続され、例えば、ユーザ装置10、管理者装置30、チャットボット装置200との間で情報の送受信を行う。
通信部210は、例えば、NIC等によって実現される。そして、通信部210は、ネットワークNと有線または無線で接続され、例えば、ユーザ装置10、管理者装置30、チャットボット装置200との間で情報の送受信を行う。
(記憶部220A)
記憶部220Aは、例えば、RAM、ROM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD、光ディスク等の記憶装置によって実現される。記憶部220Aは、例えば、第1の実施形態に係る情報処理に関する各種データや、入力情報が記憶されてよい。
記憶部220Aは、例えば、RAM、ROM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD、光ディスク等の記憶装置によって実現される。記憶部220Aは、例えば、第1の実施形態に係る情報処理に関する各種データや、入力情報が記憶されてよい。
また、記憶部220Aは、言語モデルも記憶されてよい。図2には、記憶部220Aが1つの言語モデルLLM1のみ記憶する例が示される。このように、第1の実施形態では、チャットボット装置200Aが備える言語モデルは1つに固定であってよい。
(制御部230)
制御部230は、CPUやMPU等によって、チャットボット装置200A内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部230は、例えば、ASICやFPGA等の集積回路により実現される。
制御部230は、CPUやMPU等によって、チャットボット装置200A内部の記憶装置に記憶されている各種プログラムがRAMを作業領域として実行されることにより実現される。また、制御部230は、例えば、ASICやFPGA等の集積回路により実現される。
図2に示すように、制御部230は、受付部231と、応答情報生成部232と、送信部233とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部230の内部構成は、図2に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部230が有する各処理部の接続関係は、図2に示した接続関係に限られず、他の接続関係であってもよい。
(受付部231)
受付部231は、実施形態に係る情報処理において各種情報を受け付ける。例えば、受付部231は、補助プロンプトを含む入力情報を受け付ける。また、受付部231は、応答情報の生成に用いる言語モデルの指定も受け付けてよい。
受付部231は、実施形態に係る情報処理において各種情報を受け付ける。例えば、受付部231は、補助プロンプトを含む入力情報を受け付ける。また、受付部231は、応答情報の生成に用いる言語モデルの指定も受け付けてよい。
(応答情報生成部232)
応答情報生成部232は、入力情報が受け付けられた場合に、受け付けられた入力情報に対する応答情報を生成する。応答情報の生成には、記憶部220Aに記憶される言語モデルのうち、指定された言語モデルが用いられる。例えば、応答情報生成部232は、入力情報に対して言語モデルを適用し、言語モデルによる出力結果に基づいて、応答情報を生成する。このようなことから、応答情報生成部232が、実質、チャットボットとしての機能を実現する処理部といえる。
応答情報生成部232は、入力情報が受け付けられた場合に、受け付けられた入力情報に対する応答情報を生成する。応答情報の生成には、記憶部220Aに記憶される言語モデルのうち、指定された言語モデルが用いられる。例えば、応答情報生成部232は、入力情報に対して言語モデルを適用し、言語モデルによる出力結果に基づいて、応答情報を生成する。このようなことから、応答情報生成部232が、実質、チャットボットとしての機能を実現する処理部といえる。
(送信部233)
送信部233は、応答情報生成部232により生成された応答情報を送信する。入力情報がユーザUから受け付けられたものである場合には、送信部233は、この入力情報に対して生成された応答情報をユーザ装置10に送信する。この結果、ユーザとチャットボットとの間で対話が成立する。一方、入力情報が調整装置100によって入力された検証用の入力情報である場合には、送信部233は、この入力情報に対して生成された応答情報を調整装置100に送信する。
送信部233は、応答情報生成部232により生成された応答情報を送信する。入力情報がユーザUから受け付けられたものである場合には、送信部233は、この入力情報に対して生成された応答情報をユーザ装置10に送信する。この結果、ユーザとチャットボットとの間で対話が成立する。一方、入力情報が調整装置100によって入力された検証用の入力情報である場合には、送信部233は、この入力情報に対して生成された応答情報を調整装置100に送信する。
〔2.第1の実施形態に係る情報処理の全体処理手順〕
図3は、調整装置100Aによって実現される第1の実施形態に係る情報処理手順の全体の流れを示す図である。第1の実施形態に係る情報処理には、チャットボット装置200Aの応答精度を評価する評価処理と、補助プロンプトを調整する調整処理とが含まれる。そして、チャットボット装置200Aの応答精度が条件を満たすまでこれらの処理が繰り返される。よって、まずは、第1の実施形態に係る情報処理の1巡目の流れについて説明し、次に、第1の実施形態に係る情報処理の2巡目以降の流れについて説明する。
図3は、調整装置100Aによって実現される第1の実施形態に係る情報処理手順の全体の流れを示す図である。第1の実施形態に係る情報処理には、チャットボット装置200Aの応答精度を評価する評価処理と、補助プロンプトを調整する調整処理とが含まれる。そして、チャットボット装置200Aの応答精度が条件を満たすまでこれらの処理が繰り返される。よって、まずは、第1の実施形態に係る情報処理の1巡目の流れについて説明し、次に、第1の実施形態に係る情報処理の2巡目以降の流れについて説明する。
また、図3の例では、チャットボット装置200Aの応答精度を評価する検証実験の中で補助プロンプトの調整が行われる場面を示す。このような検証実験の場では、判定情報生成部133によって特定のタイミングごと(例えば、1日ごと)に検証用の入力情報が生成されてよい。
一方で、チャットボット装置200Aの応答精度の評価、および、補助プロンプトの調整は、チャットボット装置200AがユーザUによって活用される実際の場面で行われてもよい。係る例では、判定情報生成部133が生成した検証用の入力情報ではなく、活用場面でユーザUが実際に入力した入力情報が評価処理および調整処理に用いられてよい。
また、チャットボット装置200Aが対応可能な入力情報の種別には、「道案内」、「料理レシピ」、「音楽コンテンツ」等のように様々なものが存在するが、図3では、「道案内」の分野におけるチャットボット装置200Aの自動調整が行われる場面を示す。
(処理1巡目)
判定情報生成部133は、チャットボット装置200Aの応答精度を評価する評価処理を実行するタイミング(例えば、1日1回16時になったタイミング等)になったか否かを判定する(ステップS101)。判定情報生成部133は、評価処理を実行するタイミングでない場合には(ステップS101;No)、評価処理を実行するタイミングになるまで待機する。
判定情報生成部133は、チャットボット装置200Aの応答精度を評価する評価処理を実行するタイミング(例えば、1日1回16時になったタイミング等)になったか否かを判定する(ステップS101)。判定情報生成部133は、評価処理を実行するタイミングでない場合には(ステップS101;No)、評価処理を実行するタイミングになるまで待機する。
一方、判定情報生成部133は、評価処理を実行するタイミングになった場合には(ステップS101;Yes)、固定シナリオに基づき、検証用の入力情報を生成する(ステップS102)。「道案内」の分野におけるチャットボット装置200Aの自動調整が行われる図3の例では、判定情報生成部133は、固定シナリオ「〇〇に行きたい」を用いて、例えば、「東京タワーに行きたい。」という入力情報を生成したものとする。なお、判定情報生成部133は、毎回同一内容の入力情報を生成してよい。
次に、プロンプト付与部138は、現時点で調整処理を未実行か否かを判定する(ステップS103)。処理1巡目の場合、プロンプト付与部138は、現時点で調整処理を未実行であると判定し(ステップS103;未実行)、ステップS102で生成された入力情報に対して補助プロンプトを初期設定(初期付与)する(ステップS104)。例えば、プロンプト付与部138は、プロンプト情報記憶部122に記憶される変更候補の補助プロンプト群の中から任意の補助プロンプトを1つ選択してよい。変更候補の補助プロンプトは、チャットボット装置200Aが対応可能な入力情報の種別ごとに予め準備されていてよい。したがって、図3の例では、プロンプト付与部138は、「道案内」に対応する変更候補の補助プロンプトの中から任意の補助プロンプトを1つ選択してよい。例えば、プロンプト付与部138は、「ドライバーのアシスタントとして応答して下さい。」という補助プロンプトPR1を選択し、ステップS102で生成された入力情報に付与したものとする。
送信部132は、補助プロンプトPR1を含む入力情報IN1をチャットボット装置200Aに送信する(ステップS105)。チャットボット装置200Aは、入力情報IN1に対して言語モデルLLM1を適用し、言語モデルLLM1による出力結果に基づいて、応答情報AN1を生成する。
なお、入力情報は、生成ごとに毎回同一内容であってよいが、チャットボット装置200Aは、同一内容の入力情報が入力されたとしても、必ずしも毎回同一内容の応答情報AN1を生成するとは限らない。例えば、チャットボット装置200Aは、道案内して欲しいという意図に沿った応答情報を生成することもあれば、道案内とは趣旨が異なる応答情報AN1を生成することもある。つまり、応答情報には、その内容にゆらぎが生じる場合がある。
取得部131は、入力情報IN1に対してチャットボット装置200Aが生成した応答情報AN1を取得する(ステップS106)。
判定部134Aは、入力情報IN1に対してチャットボット装置200Aが生成した応答情報AN1が所定数蓄積(例えば、100個蓄積)されたか否かを判定する(ステップS107)。判定部134Aにより応答情報AN1が所定数蓄積されていないと判定された場合には(ステップS107;No)、ステップS102へと処理が戻され、応答情報AN1が所定数蓄積されるまで繰り返される。
一方、判定部134Aは、応答情報AN1が所定数蓄積されたと判定した場合には(ステップS107;Yes)、所定数の応答情報AN1を用いた、応答精度の評価値算出処理を実行する(ステップS108)。ステップS108で行われる評価処理の詳細な手順については、図4および図5で説明する。ここで、所定数蓄積された応答情報AN1のそれぞれは、同一内容の入力情報IN1に対する応答であるにも関わらず、チャットボット装置200Aの応答ゆらぎに起因して、異なる内容の応答が含まれている場合がある。そこで、判定部134Aは、ステップS108で算出した評価値が所定条件を満たすか否かに基づいて、チャットボット装置200Aの応答精度を評価する(ステップS109)。
プロンプト調整部135Aは、応答精度の評価値が所定条件を満たす場合には(ステップS109;Yes)、現時点の補助プロンプト(例えば、補助プロンプトPR1)を、応答精度が高いチャットボット装置200Aを実現可能な生成アルゴリズムとして登録する(ステップS110)。すなわち、プロンプト調整部135Aは、応答精度が高いことが検証された補助プロンプトを、プロンプト付与部138がユーザUの入力情報に付与すべき、補助プロンプトとして登録する。そして、処理は終了する。
一方、プロンプト調整部135Aは、応答精度の評価値が所定条件を満たさないと判定された場合には(ステップS109;No)、補助プロンプトを調整する調整処理を実行する(ステップS113)。ステップS113で行われる調整処理の詳細な手順については、図6および図7で説明する。
プロンプト調整部135Aにより調整処理が行われた後には、ステップS102へと処理が戻され、処理2巡目へと移行する。
(処理2巡目以降)
処理2巡目以降において、判定情報生成部133は、固定シナリオに基づき、検証用の入力情報を生成する(ステップS102)。判定情報生成部133は、処理2巡目以降についても、処理1巡目と同一の「東京タワーに行きたい。」という入力情報を生成してよい。
処理2巡目以降において、判定情報生成部133は、固定シナリオに基づき、検証用の入力情報を生成する(ステップS102)。判定情報生成部133は、処理2巡目以降についても、処理1巡目と同一の「東京タワーに行きたい。」という入力情報を生成してよい。
次に、プロンプト付与部138は、現時点で調整処理を未実行か否かを判定する(ステップS103)。処理2巡目以降の場合、プロンプト付与部138は、現時点で調整処理を未実行でない、すなわち実行済であると判定し(ステップS103;実行)、ステップS113において調整処理を実行済の補助プロンプトPR2を取得し、取得した補助プロンプトPR2をステップS102で生成された入力情報に付与する(ステップS114)。
送信部132は、補助プロンプトPR2を含む入力情報IN2をチャットボット装置200Aに送信する(ステップS115)。チャットボット装置200Aは、入力情報IN2に対して言語モデルLLM1を適用し、言語モデルLLM1による出力結果に基づいて、応答情報AN2を生成する。
取得部131は、入力情報IN2に対してチャットボット装置200Aが生成した応答情報AN2を取得する(ステップS116)。
判定部134Aは、入力情報IN2に対してチャットボット装置200Aが生成した応答情報AN2が所定数蓄積(例えば、100個蓄積)されたか否かを判定する(ステップS107)。判定部134Aにより応答情報AN2が所定数蓄積されていないと判定された場合には(ステップS107;No)、ステップS102へと処理が戻され、応答情報AN2が所定数蓄積されるまで繰り返される。
一方、判定部134Aは、応答情報AN2が所定数蓄積されたと判定した場合には(ステップS107;Yes)、所定数の応答情報AN2を用いた、応答精度の評価値算出処理を実行する(ステップS108)。ここで、所定数蓄積された応答情報AN2のそれぞれは、同一内容の入力情報IN2に対する応答であるにも関わらず、チャットボット装置200Aの応答ゆらぎに起因して、異なる内容の応答が含まれている場合がある。そこで、判定部134Aは、ステップS108で算出した評価値が所定条件を満たすか否かに基づいて、チャットボット装置200Aの応答精度を評価する(ステップS109)。
プロンプト調整部135Aは、応答精度の評価値が所定条件を満たす場合には(ステップS109;Yes)、現時点の補助プロンプト(例えば、補助プロンプトPR2)を、応答精度が高いチャットボット装置200Aを実現可能な生成アルゴリズムとして登録する(ステップS110)。ここでは、過去の処理において、応答精度が高いチャットボット装置200Aを実現可能な生成アルゴリズムとして登録された補助プロンプト(例えば補助プロンプトPR1)と入れ換えて、現時点の補助プロンプト(例えば、補助プロンプトPR2)を新たに登録する。すなわち、プロンプト調整部135Aは、応答精度が高いことが検証された補助プロンプトを、プロンプト付与部138によりユーザUの入力情報に付与させるべき、調整済みの補助プロンプトとして登録する。そして、処理は終了する。
一方、処理2巡目以降の現時点においても、所定条件を満たす評価値を得られる補助プロンプトが見つかっていない場合もある。プロンプト調整部135Aは、応答精度の評価値が所定条件を満たさないと判定された場合には(ステップS109;No)、補助プロンプトを調整する調整処理を再度実行する(ステップS113)。
プロンプト調整部135Aにより調整処理が行われた後には、ステップS102へと処理が戻され、次の巡目へと移行する。
〔3.評価処理の具体的手順〕
続いて、図3のステップS108で行われる評価処理の具体的手順について説明する。評価処理には、チャットボット装置200Aが生成する応答情報の文字数を用いるパターンと、チャットボット装置200Aが生成する応答情報と、正解の応答情報との類似度を用いるパターンとがある。図4では前者の処理手順aを説明し、図5では後者の処理手順bを説明する。
続いて、図3のステップS108で行われる評価処理の具体的手順について説明する。評価処理には、チャットボット装置200Aが生成する応答情報の文字数を用いるパターンと、チャットボット装置200Aが生成する応答情報と、正解の応答情報との類似度を用いるパターンとがある。図4では前者の処理手順aを説明し、図5では後者の処理手順bを説明する。
図4は、実施形態に係る評価処理の具体的手順(1)を示す図である。まず、取得部131は、所定数蓄積(例えば、100個蓄積)された応答情報の全てを取得する(ステップS1081a)。取得された応答情報には、図3に示した応答情報AN1や応答情報AN2が含まれる。
判定部134Aは、応答情報それぞれの文字数を算出する(ステップS1082a)。また、判定部134Aは、応答情報の間での文字数の統計値を、チャットボット装置200Aの応答精度を評価する評価値として算出する(ステップS1083a)。例えば、チャットボット装置200Aが生成する応答情報が助長である程、ユーザの意図から外れた余計な情報を含んでいるといえる。このため文字数に着目することにより、チャットボット装置200Aの応答精度を適切に評価することができる。
なお、判定部134Aは、統計値として、例えば、四分位数、最頻値、または、最小値のうち少なくともいずれか1つを算出してよい。
そして、判定部134Aは、評価値が所定条件を満たすか否かに基づきチャットボット装置200Aの応答精度を評価するという図2のステップS109の評価処理として、S1083aで算出した文字数の統計値が閾値条件を満たすか否かを判定する処理を行ってよい。
ここで、文字数の統計値が閾値条件を満たすということは(ステップS109;Yes)、チャットボット装置200Aの応答精度が高いことを意味するため、ステップS110へと処理が移行される。
一方、文字数の統計値が閾値条件を満たさないということは(ステップS109;No)、チャットボット装置200Aの応答精度が低いことを意味するため、ステップS113へと処理が移行される。
なお、判定部134Aは、複数種類の文字数統計値として、例えば、四分位数と最頻値と最小値とを算出した場合には、四分位数が閾値条件を満たすか否か、最頻値が閾値条件を満たすか否か、最小値が閾値条件を満たすか否か、というように個別に条件判定を行ってよい。そして、判定部134Aは、複数種類の文字数統計値のうち所定割合以上(例えば過半数)の統計値(例えば、四分位数と最頻値)のそれぞれが閾値条件を満たしているか否か、あるいは、複数種類の文字数の統計値のうち全ての統計値(四分位数と最頻値と最小値)のそれぞれが閾値条件を満たしているか否かで応答精度を評価してもよい。
次に図5の処理を説明する。図5は、実施形態に係る評価処理の具体的手順(2)を示す図である。図5の例でも、取得部131は、所定数蓄積(例えば、100個蓄積)された応答情報の全てを取得する(ステップS1081b)。取得された応答情報には、図3に示した応答情報AN1や応答情報AN2が含まれる。
また、取得部131は、入力情報に対して予め準備される正解情報(正解の応答情報)を取得する(ステップS1082b)。
そして、判定部134Aは、応答情報それぞれと、正解情報との類似度を算出する(ステップS1083b)。また、判定部134Aは、応答情報の間での類似度の統計値を、チャットボット装置200Aの応答精度を評価する評価値として算出する(ステップS1084a)。例えば、判定部134Aは、応答情報それぞれと、正解情報とのコサイン類似度を算出してよい。例えば、チャットボット装置200Aが生成する応答情報と正解情報とが類似している程、応答情報は、ユーザの意図に適した適切な情報のみで構成されているといえる。このため類似度に着目することにより、チャットボット装置200Aの応答精度を適切に評価することができる。
そして、判定部134Aは、評価値が所定条件を満たすか否かに基づきチャットボット装置200Aの応答精度を評価するという図2のステップS109の評価処理として、S1083aで算出した類似度の統計値が閾値条件を満たすか否かを判定する処理を行ってよい。
ここで、類似度の統計値が閾値条件を満たすということは(ステップS109;Yes)、チャットボット装置200Aの応答精度が高いことを意味するため、ステップS110へと処理が移行される。
一方、類似度の統計値が閾値条件を満たさないということは(ステップS109;No)、チャットボット装置200Aの応答精度が低いことを意味するため、ステップS113へと処理が移行される。
なお、判定部134Aは、複数種類の類似度統計値として、例えば、四分位数と最頻値と最小値とを算出した場合には、四分位数が閾値条件を満たすか否か、最頻値が閾値条件を満たすか否か、最小値が閾値条件を満たすか否か、というように個別に条件判定を行ってよい。そして、判定部134Aは、複数種類の類似度統計値のうち所定割合以上(例えば過半数)の統計値(例えば、四分位数と最頻値)のそれぞれが閾値条件を満たしているか否か、あるいは、複数種類の類似度統計値のうち全ての統計値(四分位数と最頻値と最小値)のそれぞれが閾値条件を満たしているか否かで応答精度を評価してもよい。
なお、図3および図4では、第1の実施形態に係るチャットボット装置200Aの応答精度を評価する手法としての評価処理手順を示したが、第2の実施形態に係るチャットボット装置200Bについても同様の手法で応答精度が評価される。このため、後述する第2の実施形態では、チャットボット装置200Bに対する評価処理の具体的手順の説明を省略する。
〔4.調整処理の具体的手順〕
続いて、図3のステップS113で行われる調整処理の具体的手順について説明する。補助プロンプトを調整する調整処理は、補助プロンプト全体を変更する処理と、補助プロンプトに含まれる一部のワードのみを変更する処理とに分類される。図6では前者の処理手順aを説明し、図7では後者の処理手順bを説明する。
続いて、図3のステップS113で行われる調整処理の具体的手順について説明する。補助プロンプトを調整する調整処理は、補助プロンプト全体を変更する処理と、補助プロンプトに含まれる一部のワードのみを変更する処理とに分類される。図6では前者の処理手順aを説明し、図7では後者の処理手順bを説明する。
図6は、第1の実施形態に係る調整処理の具体的手順(1)を示す図である。プロンプト調整部135Aは、予め準備される補助プロンプト群の中に未選択の補助プロンプトが存在するか否かを判定する(ステップS1131a)。例えば、プロンプト調整部135Aは、チャットボット装置200Aが対応可能な入力情報の種別ごとに予め準備された変更候補の補助プロンプト群のうち、種別「道案内」に対応する変更候補の補助プロンプト群を指定する。そして、プロンプト調整部135Aは、種別「道案内」に対応する変更候補の補助プロンプト群の中に未選択の補助プロンプトが存在するか否かを判定してよい。
プロンプト調整部135Aは、予め準備される補助プロンプト群の中に未選択の補助プロンプトが存在する場合には(ステップS1131a;Yes)、未選択の補助プロンプトのうちの1つを選択する(ステップS1132a)。例えば、「ドライバーのアシスタントとして応答して下さい。」という補助プロンプトPR1が現時点での調整対象となっており、未選択の補助プロンプトとして、図6に示すような補助プロンプトPRC11とPRC12とが存在しているとする。係る例では、プロンプト調整部135Aは、補助プロンプトPRC11およびPRC12のうち、いずれか1つを選択することができる。
そして、プロンプト調整部135Aは、現時点で調整対象の補助プロンプトと、ステップS1132aで選択した補助プロンプトとを入れ替える(ステップS1133a)。
続いて、プロンプト調整部135Aは、入れ替えた後の補助プロンプトを、調整処理を実行済の補助プロンプトとして保持する(ステップS1134a)。そして、ステップS101へと処理が移行される。例えば、「ドライバーのアシスタントとして応答して下さい。」という補助プロンプトPR1が、候補として挙げられた補助プロンプト「ドライバー希望に沿った目的地を案内して下さい。」に入れ替えられたとする。係る例では、「ドライバー希望に沿った目的地を案内して下さい。」という補助プロンプトが調整処理を実行済の補助プロンプトPR2として保持され、図3のステップS114で取得されることになる。
一方、プロンプト調整部135Aは、予め準備される補助プロンプト群の中に未選択の補助プロンプトが存在しない場合には(ステップS1131a;No)、つまり、予め準備される補助プロンプトを使い切った場合には、いずれの補助プロンプトをチャットボット装置200Aに与えても、条件を満たす評価値を得られるように応答情報が生成されることは無かった(いずれの補助プロンプトを用いてもチャットボット装置200Aの応答精度が改善されなかった)ことを認識する(ステップS1135a)。
そして、通知部136Aは、チャットボット装置200Aの応答精度の改善が不能であることを管理者Tに通知する(ステップ1136a)。
次に図7の処理を説明する。図7は、実施形態に係る調整処理の具体的手順(2)を示す図である。プロンプト調整部135Aは、現時点で調整対象の補助プロンプトに含まれるワードのうち、役割指定ワードを抽出する(ステップ1131b)。役割指定ワードとは、チャットボット装置200Aが対応可能な入力情報の種別に応じた役割を指定するワードを指し示す。例えば、種別「道案内」に対応する役割指定ワードとしては、「アシスタント」、「執事」、「同乗者」、「ドライビングパートナー」等が挙げられる。そして、「アシスタント」、「執事」、「同乗者」、「ドライビングパートナー」は、それぞれ表現は異なるものの互いに類義という関係性にある。
プロンプト調整部135Aは、予め準備される役割指定ワード群の中に未選択の役割指定ワードが存在するか否かを判定する(ステップS1132b)。
プロンプト調整部135Aは、予め準備される役割指定ワード群の中に未選択の役割指定ワードが存在する場合には(ステップS1132b;Yes)、未選択の役割指定ワードのうちの1つを選択する(ステップS1133b)。例えば、「ドライバーのアシスタントとして応答して下さい。」という補助プロンプトPR1が現時点での調整対象となっており、未選択の役割指定ワードとして、図7に示すような役割指定ワードWDC21とWDC22とWDC23とが存在しているとする。係る例では、プロンプト調整部135Aは、役割指定ワードWDC21~WDC23のうち、いずれか1つを選択することができる。
なお、役割指定ワードは、例えば、管理者Tによって事前に準備され、プロンプト情報記憶部122に登録されていてよい。一方で、役割指定ワードは、例えば、チャットボット装置200によってリストアップされたものであってもよい。例えば、管理者Tは、“ドライバーを補助する役割を表すワードを考えて下さい”といった命令を与えることで、役割ワードの提示をチャットボット装置200に求めてもよい。
図7の説明に戻り、プロンプト調整部135Aは、現時点で調整対象の補助プロンプトに含まれる役割指定ワードを、ステップS1133bで選択した役割指定ワードに変更する(ステップS1134b)。
また、プロンプト調整部135Aは、現時点で調整対象の補助プロンプトと、役割指定ワードが変更された後の補助プロンプトとを入れ替える(ステップS1135b)。
続いて、プロンプト調整部135Aは、入れ替えた後の補助プロンプトを、調整処理を実行済の補助プロンプトとして保持する(ステップS1136b)。そして、ステップS101へと処理が移行される。例えば、「ドライバーのアシスタントとして応答して下さい。」という補助プロンプトPR1に含まれる役割指定ワード「アシスタント」が、他の役割指定ワード「執事」に変更されたとする。係る例では、ドライバーの執事として応答して下さい。」という補助プロンプトが調整処理を実行済の補助プロンプトPR2として保持され、図3のステップS114で取得されることになる。
一方、プロンプト調整部135Aは、予め準備される役割指定ワード群の中に未選択の役割指定ワードが存在しない場合には(ステップS1132b;No)、つまり、予め準備される役割指定ワードを使い切った場合には、いずれの役割指定ワードを含む補助プロンプトをチャットボット装置200Aに与えても、条件を満たす評価値を得られるように応答情報が生成されることは無かった(いずれの役割指定ワードを含む補助プロンプトを用いてもチャットボット装置200Aの応答精度が改善されなかった)ことを認識する(ステップS1137b)。
そして、通知部136Aは、チャットボット装置200Aの応答精度の改善が不能であることを管理者Tに通知する(ステップ1138b)。
〔5.調整済の補助プロンプトを用いた対話制御処理〕
これまで説明してきた調整処理により、第1の実施形態に係る調整装置100Aが、応答精度が高いチャットボット装置200Aを実現可能な補助プロンプトを調整できたとする。係る場合、調整装置100Aは、調整済の補助プロンプトに従いチャットボット装置200AがユーザUの入力情報に対応する応答情報を生成できるよう制御する。このような対話制御について図8を用いて説明する。図8は、第1の実施形態に係る調整装置100Aが実行する対話制御の手順を示す図である。
これまで説明してきた調整処理により、第1の実施形態に係る調整装置100Aが、応答精度が高いチャットボット装置200Aを実現可能な補助プロンプトを調整できたとする。係る場合、調整装置100Aは、調整済の補助プロンプトに従いチャットボット装置200AがユーザUの入力情報に対応する応答情報を生成できるよう制御する。このような対話制御について図8を用いて説明する。図8は、第1の実施形態に係る調整装置100Aが実行する対話制御の手順を示す図である。
まず、取得部131は、ユーザUの入力情報INUを取得できたか否かを判定する(ステップS201)。
特定部137は、入力情報INUを意図解釈した結果に基づき、入力情報INUの種別を特定する(ステップS202)。
プロンプト付与部138は、条件を満たす評価値を得られる補助プロンプト(つまり、応答精度が高いチャットボット装置200Aを実現可能な補助プロンプト)のうち、入力情報INUの種別に応じた補助プロンプトを取得する(ステップS203)。
そして、プロンプト付与部138は、ステップS203で取得した補助プロンプトを入力情報INUに付与する(ステップS204)。例えば、チャットボット装置200Aが対応可能な入力情報の種別のうち、入力情報INUの種別が「道案内」であり、応答精度が高いチャットボット装置200Aを実現可能な補助プロンプトとして補助プロンプトPR2が登録されていたとする。係る例では、プロンプト付与部138は、補助プロンプトPR2を取得し、入力情報INUに付与する。
また、送信部132は、補助プロンプトを含む入力情報INUをチャットボットに送信する(ステップS205)。
このような状態において、取得部131は、入力情報INUに対してチャットボット装置200Aが生成した応答情報ANUを取得できたか否かを判定する(ステップS206)。取得部131は、応答情報ANUを取得できていない間は(ステップS206;No)、取得部131は、応答情報ANUを取得できるまで待機する。
一方、送信部132は、応答情報ANUを取得できた場合には(ステップS206;Yes)、ユーザ装置10に送信する(ステップS207)。また、図8では不図示すであるが、ユーザ装置10の出力制御部15bは、応答情報ANUを出力部14から出力させるための出力制御を行う。
<第2の実施形態>
ここからは、第2の実施形態について説明する。第1の実施形態に係る情報処理は、チャットボット装置200の応答精度を評価した評価結果に応じて、補助プロンプトを調整するというものであった。これに対して、第2の実施形態に係る情報処理は、チャットボット装置200Bの応答精度を評価した評価結果に応じて、実行対象のチャットボットを選択するとともに、評価結果が合格ラインを超えるまで、実行対象のチャットボットの選択を繰り返すという調整処理を含む。
ここからは、第2の実施形態について説明する。第1の実施形態に係る情報処理は、チャットボット装置200の応答精度を評価した評価結果に応じて、補助プロンプトを調整するというものであった。これに対して、第2の実施形態に係る情報処理は、チャットボット装置200Bの応答精度を評価した評価結果に応じて、実行対象のチャットボットを選択するとともに、評価結果が合格ラインを超えるまで、実行対象のチャットボットの選択を繰り返すという調整処理を含む。
なお、後述するが、第2の実施形態において実行対象のチャットボットの選択とは、例えば、チャットボット装置の中から1のチャットボット装置200を選択すること、及び1のチャットボット装置200に対して実行させる言語モデルを複数の候補の中から選択することのいずれか一方を含む。
〔1.機能構成〕
図9を用いて、第2の実施形態に係る調整装置100B、および、チャットボット装置200Bそれぞれの構成例について説明する。図9は、第2の実施形態に係る装置構成例を示す図である。図9では、第1の実施形態と共通する点については説明を省略若しくは簡略化する。例えば、第1の実施形態および第2の実施形態のいずれにおいてもユーザ装置10の動作は同一であるため説明を省略する。また、第1の実施形態と同一の符号が付されている処理部についても説明を省略もしくは簡略化する。
図9を用いて、第2の実施形態に係る調整装置100B、および、チャットボット装置200Bそれぞれの構成例について説明する。図9は、第2の実施形態に係る装置構成例を示す図である。図9では、第1の実施形態と共通する点については説明を省略若しくは簡略化する。例えば、第1の実施形態および第2の実施形態のいずれにおいてもユーザ装置10の動作は同一であるため説明を省略する。また、第1の実施形態と同一の符号が付されている処理部についても説明を省略もしくは簡略化する。
[調整装置100B]
図9に示すように、第2の実施形態に係る調整装置100Bは、通信部110と、記憶部120Bと、制御部130Bとを有する。
図9に示すように、第2の実施形態に係る調整装置100Bは、通信部110と、記憶部120Bと、制御部130Bとを有する。
(記憶部120B)
記憶部120Bは、例えば、RAM、ROM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD、光ディスク等の記憶装置によって実現される。記憶部120Bは、例えば、第2の実施形態に係る情報処理に関するデータやプログラムが記憶されてよい。また、図2の例によれば、記憶部120Bは、正解情報記憶部121、プロンプト情報記憶部122に加え、さらに言語モデル情報記憶部123を有してよい。
記憶部120Bは、例えば、RAM、ROM、フラッシュメモリ等の半導体メモリ素子またはハードディスク、SSD、光ディスク等の記憶装置によって実現される。記憶部120Bは、例えば、第2の実施形態に係る情報処理に関するデータやプログラムが記憶されてよい。また、図2の例によれば、記憶部120Bは、正解情報記憶部121、プロンプト情報記憶部122に加え、さらに言語モデル情報記憶部123を有してよい。
(言語モデル情報記憶部123)
第2の実施形態に係る情報処理では、選択候補の言語モデル群の中から任意の言語モデルが選択され、選択された言語モデルがチャットボット装置200Bに対して指定される。この結果、チャットボット装置200Bは、例えば、記憶部220Bに登録される言語モデルのうち、指定された言語モデルを用いて応答情報を生成する。よって、言語モデル情報記憶部123は、選択候補の言語モデルの情報を記憶してよく、記憶される選択候補の言語モデルと、記憶部220Bに登録される言語モデルとは図9に示すように対応関係にある。例えば、選択候補の言語モデルの情報は、管理者Tによって予め登録されていてよい。なお、言語モデル情報記憶部123は、使用する言語モデルごとに、物理的に異なるチャットボット装置200Bへのアクセスが必要となる場合には、言語モデルに紐づけたアクセス先のアドレスを記憶しておいてもよい。
第2の実施形態に係る情報処理では、選択候補の言語モデル群の中から任意の言語モデルが選択され、選択された言語モデルがチャットボット装置200Bに対して指定される。この結果、チャットボット装置200Bは、例えば、記憶部220Bに登録される言語モデルのうち、指定された言語モデルを用いて応答情報を生成する。よって、言語モデル情報記憶部123は、選択候補の言語モデルの情報を記憶してよく、記憶される選択候補の言語モデルと、記憶部220Bに登録される言語モデルとは図9に示すように対応関係にある。例えば、選択候補の言語モデルの情報は、管理者Tによって予め登録されていてよい。なお、言語モデル情報記憶部123は、使用する言語モデルごとに、物理的に異なるチャットボット装置200Bへのアクセスが必要となる場合には、言語モデルに紐づけたアクセス先のアドレスを記憶しておいてもよい。
(制御部130B)
制御部130Bは、CPUやMPU等によって、調整装置100B内部の記憶装置に記憶されている各種プログラム(例えば、第2の実施形態に係る情報処理プログラム)がRAMを作業領域として実行されることにより実現される。また、制御部130Bは、例えば、ASICやFPGA等の集積回路により実現される。
制御部130Bは、CPUやMPU等によって、調整装置100B内部の記憶装置に記憶されている各種プログラム(例えば、第2の実施形態に係る情報処理プログラム)がRAMを作業領域として実行されることにより実現される。また、制御部130Bは、例えば、ASICやFPGA等の集積回路により実現される。
図9に示すように、制御部130Bは、取得部131と、送信部132と、判定情報生成部133と、判定部134Bと、実行対象調整部135Bと、通知部136Bと、特定部137と、プロンプト付与部138とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130Bの内部構成は、図9に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。また、制御部130Aが有する各処理部の接続関係は、図2に示した接続関係に限られず、他の接続関係であってもよい。
(判定部134B)
判定部134Bは、入力情報に応じてチャットボット装置200Bが生成する応答情報が所定条件を満たすか否かに基づいて、チャットボット装置200Bの応答精度を判定(評価)する。具体的には、判定部134Bは、入力情報に対して第1のチャットボット装置200Bが生成する第1の応答情報が所定条件を満たすか否かを判定する。
判定部134Bは、入力情報に応じてチャットボット装置200Bが生成する応答情報が所定条件を満たすか否かに基づいて、チャットボット装置200Bの応答精度を判定(評価)する。具体的には、判定部134Bは、入力情報に対して第1のチャットボット装置200Bが生成する第1の応答情報が所定条件を満たすか否かを判定する。
第1の応答情報が所定条件を満たさず、第1のチャットボット装置200Bの応答精度が低いと判定された場合には、第1のチャットボット装置200Bとは異なる言語モデルを有する第2のチャットボット装置200Bを応答情報の生成を実行する実行対象として選択する調整処理が実行される。そこで、判定部134Bは、第2のチャットボット装置200Bが入力情報に対して生成する第2の応答情報が所定条件を満たすか否かを判定する。
第2の応答情報が所定条件を満たさず、第2のチャットボット装置200Bの応答精度が低いと判定された場合には、第1のチャットボット装置200Bおよび第2のチャットボット装置200Bとは異なる言語モデルを有する第3のチャットボット装置200Bを応答情報の生成を実行する実行対象として選択する調整処理がさらに実行される。そこで、判定部134Bは、第3のチャットボット装置200Bが入力情報に対して生成する第3の応答情報が所定条件を満たすか否かをさらに判定する。
このように、第2の実施形態に係る情報処理では、チャットボット装置200Bの応答精度が合格ラインを超えるという条件を満たすまで実行対象の選択が繰り返される。このため、上記例に限らず、第4のチャットボット装置200Bが応答情報の生成を実行する実行対象として選択され、さらに第5のチャットボット装置200Bが応答情報の生成を実行する実行対象として選択されるといったかたちで選択が繰り返される可能性がある。
例えば、判定部134Bは、同一内容の入力情報が入力されるたびに第1のチャットボット装置200Bが生成した第1の応答情報のそれぞれの文字数を算出する。そして、判定部134Bは、算出した文字数に基づいて、所定数の第1の応答情報の間での文字数の統計値を算出し、統計値が所定条件を満たすか否かを判定する。
他の例として、判定部134Bは、同一内容の入力情報が入力されるたびに第1のチャットボット装置200Bが生成した第1の応答情報のそれぞれと、入力情報に対して予め準備された正解情報との類似度を算出する。そして、判定部134Bは、算出した類似度に基づいて、所定数の第1の応答情報の間での類似度の統計値を算出し、統計値が所定条件を満たすか否かを判定する。
なお、判定部134Bは、複数種類の統計値として、四分位数、最頻値、最小値等を算出し、複数種類の統計値のうち、所定数より多くの統計値が所定条件を満たすか否かを判定してもよい。例えば、四分位数、最頻値、最小値等の統計値ごとに対応する条件が設けられていてよく、判定部134Bは、複数種類の統計値のうち所定割合以上の統計値が条件と満たしているか否か、あるいは、複数種類の統計値のうち全ての統計値が条件と満たしているかによって応答精度を評価してもよい。
ここで、上記例は、判定部134Bが、第1のチャットボット装置200Bの応答精度を評価する例を示すものであるが、判定部134Bは、第2のチャットボット装置200B、第3のチャットボット装置200B等についても同様の手法で応答精度を評価する。
(実行対象調整部135B)
実行対象調整部135Bは、入力情報に対して第1のチャットボット装置200Bが生成する第1の応答情報が所定条件を満たさず、第1のチャットボット装置200Bの応答精度が低いと判定された場合には、第1のチャットボット装置200Bとは異なる言語モデルを有する第2のチャットボット装置200Bを応答情報の生成を実行する実行対象として選択する。また、実行対象調整部135Bは、入力情報に対して第2のチャットボット装置200Bが生成する第2の応答情報が所定条件を満たさず、第2のチャットボット装置200Bの応答精度が低いと判定された場合には、第1のチャットボット装置200Bおよび第2のチャットボット装置200Bとは異なる言語モデルを有する第3のチャットボット装置200Bを応答情報の生成を実行する実行対象として選択する。
実行対象調整部135Bは、入力情報に対して第1のチャットボット装置200Bが生成する第1の応答情報が所定条件を満たさず、第1のチャットボット装置200Bの応答精度が低いと判定された場合には、第1のチャットボット装置200Bとは異なる言語モデルを有する第2のチャットボット装置200Bを応答情報の生成を実行する実行対象として選択する。また、実行対象調整部135Bは、入力情報に対して第2のチャットボット装置200Bが生成する第2の応答情報が所定条件を満たさず、第2のチャットボット装置200Bの応答精度が低いと判定された場合には、第1のチャットボット装置200Bおよび第2のチャットボット装置200Bとは異なる言語モデルを有する第3のチャットボット装置200Bを応答情報の生成を実行する実行対象として選択する。
このように、チャットボット装置200Bの中から応答情報の生成を実行する実行対象を選択する調整処理は、実行対象のチャットボット装置200Bの応答精度が合格ラインを超えるという条件を満たすまで繰り返される。また、実行対象の選択とは、予め準備される選択候補の言語モデル群の中から任意の言語モデルを選択し、現在実行対象となっているチャットボット装置200Bの機能として搭載される言語モデルと、選択した言語モデルとを入れ替えることに相当する。
応答情報の生成を実行する実行対象を選択する処理について具体的に説明する。実行対象調整部135Bは、予め準備される選択候補の言語モデル群の中から任意の言語モデルを選択し、現在実行対象となっているチャットボットの機能として搭載される言語モデルと、選択した言語モデルとを入れ替える。より具体的には、実行対象調整部135Bは、所定条件が満たされない場合には、所定条件が満たされるまで、選択候補の言語モデル群の中から任意の言語モデルを選択し、現在実行対象となっているチャットボットの機能として搭載される言語モデルから、選択した言語モデルへと入れ替える入替処理を繰り返す。
なお、実行対象調整部135Bにより、応答情報の生成を実行する実行対象として選択された言語モデルごとに、物理的に異なるチャットボット装置200Bへのアクセスが必要となる場合には、送信部132は、言語モデル情報記憶部123に記憶された言語モデルごとのアクセス先のアドレスを参照し、当該アドレスに向けて入力情報INを送信し、取得部131は、入力情報INに対してチャットボット装置200Bが生成した応答情報を取得してよい。
(通知部136B)
これまでの説明によれば、入力情報に応じてチャットボット装置200Bが生成する応答情報が所定条件を満たさず、チャットボット装置200Bの応答精度が低いと判定された場合には、応答精度を自動的に改善するための調整処理が実行される。また、上述したように、所定条件が満たされるまでこの調整処理が繰り返されるが、調整処理の繰り返し回数には限度がある。そこで、限度に達しても所定条件が満たされず応答精度の自動的な改善が不能となった場合には、通知部136Bは、応答精度の自動的な改善が不能であることを所定の通知先に通知する。例えば、通知部136Bは、管理者Tの管理者装置30に改善不能情報を通知してよい。
これまでの説明によれば、入力情報に応じてチャットボット装置200Bが生成する応答情報が所定条件を満たさず、チャットボット装置200Bの応答精度が低いと判定された場合には、応答精度を自動的に改善するための調整処理が実行される。また、上述したように、所定条件が満たされるまでこの調整処理が繰り返されるが、調整処理の繰り返し回数には限度がある。そこで、限度に達しても所定条件が満たされず応答精度の自動的な改善が不能となった場合には、通知部136Bは、応答精度の自動的な改善が不能であることを所定の通知先に通知する。例えば、通知部136Bは、管理者Tの管理者装置30に改善不能情報を通知してよい。
例えば、通知部136Bは、所定条件が満たされないまま、選択候補の言語モデル群の中から全ての言語モデルが選択され終わった場合には、応答精度の改善が不能であることを管理者Tに通知してよい。
〔2.第2の実施形態に係る情報処理の全体処理手順〕
図10は、調整装置100Bによって実現される第2の実施形態に係る情報処理手順の全体の流れを示す図である。第2の実施形態に係る情報処理には、チャットボット装置200Bの応答精度を評価する評価処理と、応答情報の生成を実行する実行対象を選択する調整処理とが含まれる。そして、チャットボット装置200Bの応答精度が条件を満たすまでこれらの処理が繰り返される。よって、まずは、第2の実施形態に係る情報処理の1巡目の流れについて説明し、次に、第2の実施形態に係る情報処理の2巡目以降の流れについて説明する。
図10は、調整装置100Bによって実現される第2の実施形態に係る情報処理手順の全体の流れを示す図である。第2の実施形態に係る情報処理には、チャットボット装置200Bの応答精度を評価する評価処理と、応答情報の生成を実行する実行対象を選択する調整処理とが含まれる。そして、チャットボット装置200Bの応答精度が条件を満たすまでこれらの処理が繰り返される。よって、まずは、第2の実施形態に係る情報処理の1巡目の流れについて説明し、次に、第2の実施形態に係る情報処理の2巡目以降の流れについて説明する。
また、図10の例では、チャットボット装置200Bの応答精度を評価する検証実験の中で実行対象の選択が行われる場面を示す。このような検証実験の場では、判定情報生成部133によって特定のタイミング(例えば、1日)、ごとに検証用の入力情報が生成されてよい。
一方で、チャットボット装置200Bの応答精度の評価、および、実行対象の選択は、チャットボット装置200BがユーザUによって活用される実際の場面で行われてもよい。係る例では、判定情報生成部133が生成した検証用の入力情報ではなく、活用場面でユーザUが実際に入力した入力情報が評価処理および調整処理に用いられてよい。
また、チャットボット装置200Bが対応可能な入力情報の種別には、「道案内」、「料理レシピ」、「音楽コンテンツ」等のように様々なものが存在するが、図3では、「道案内」の分野におけるチャットボット装置200Bの自動調整が行われる場面を示す。
(処理1巡目)
判定情報生成部133は、チャットボット装置200Bの応答精度を評価する評価処理を実行するタイミング(例えば、1日1回16時になったタイミング等)になったか否かを判定する(ステップS301)。判定情報生成部133は、評価処理を実行するタイミングでない場合には(ステップS301;No)、評価処理を実行するタイミングになるまで待機する。
判定情報生成部133は、チャットボット装置200Bの応答精度を評価する評価処理を実行するタイミング(例えば、1日1回16時になったタイミング等)になったか否かを判定する(ステップS301)。判定情報生成部133は、評価処理を実行するタイミングでない場合には(ステップS301;No)、評価処理を実行するタイミングになるまで待機する。
一方、判定情報生成部133は、評価処理を実行するタイミングになった場合には(ステップS301;Yes)、固定シナリオに基づき、検証用の入力情報を生成する(ステップS302)。「道案内」の分野におけるチャットボット装置200Bの自動調整が行われる図10の例では、判定情報生成部133は、固定シナリオ「〇〇に行きたい」を用いて、例えば、「東京タワーに行きたい。」という入力情報INを生成したものとする。なお、判定情報生成部133は、毎回同一内容の入力情報を生成してよい。
次に、実行対象調整部135Bは、現時点で調整処理を未実行か否かを判定する(ステップS303)。処理1巡目の場合、実行対象調整部135Bは、現時点で調整処理を未実行であると判定し(ステップS303;未実行)、言語モデルを初期指定する(ステップS304)。例えば、実行対象調整部135Bは、言語モデル情報記憶部123に記憶される変更候補の言語モデル群の中から任意の言語モデルを1つ選択し、選択した言語モデルを初期指定してよい。図10の例では、実行対象調整部135Bは、言語モデルLLM1を選択し、言語モデルLLM1を初期指定したものとする。
送信部132は、実行対象調整部135Bにより指定された言語モデルLLM1を、それ以降の対話に使用する言語モデルとして設定する情報をチャットボット装置200Bに送信する。あるいは、送信部132は、チャットボット装置200Bに入力情報INを送信する機会ごとに、入力情報INに先立って言語モデルLLM1を対話用の言語モデルとして設定する情報を送信してもよい。そして、送信部132は、言語モデルLLM1を搭載したチャットボットCB1(第1のチャットボット装置200Bの一例)に入力情報INを送信する(ステップS305)。チャットボットCB1は、入力情報INに対して言語モデルLLM1を適用し、言語モデルLLM1による出力結果に基づいて、応答情報AN1を生成する。
なお、チャットボットCB1に送信される入力情報INには、補助プロンプトが付与されてよい。例えば、プロンプト付与部138は、プロンプト情報記憶部122に記憶される変更候補の補助プロンプト群の中から任意の補助プロンプトを1つ選択し、ステップS302で生成された入力情報INに付与してよい。
また、第2の実施形態に係る情報処理では、各巡目で付与される補助プロンプトは固定であってもよい。一方で、第2の実施形態に係る情報処理では、各巡目で異なる補助プロンプトを付与することで、チャットボット装置200の応答精度が高いと評価される最適な組合せ(補助プロンプトと言語モデルとの組合せ)が探索されてもよい。つまり、第2の実施形態に係る情報処理の中で、第1の実施形態に係る情報処理も並行して実施されてよい。
図10の説明に戻り、取得部131は、入力情報INに対してチャットボットCB1が生成した応答情報AN1を取得する(ステップS306)。
判定部134Bは、入力情報INに対してチャットボットCB1が生成した応答情報AN1が所定数蓄積(例えば、100個蓄積)されたか否かを判定する(ステップS307)。判定部134Bにより応答情報AN1が所定数蓄積されていないと判定された場合には(ステップS307;No)、ステップS302へと処理が戻され、応答情報AN1が所定数蓄積されるまで繰り返される。
一方、判定部134Bは、応答情報AN1が所定数蓄積されたと判定した場合には(ステップS307;Yes)、所定数の応答情報AN1を用いた、応答精度の評価値算出処理を実行する(ステップS308)。ステップS308で行われる評価処理は、図4および図5で説明した第1の実施形態のパターンと同一であるため説明を省略する。ここで、所定数蓄積された応答情報AN1のそれぞれは、同一内容の入力情報INに対する応答であるにも関わらず、チャットボットCB1の応答ゆらぎに起因して、異なる内容の応答が含まれている場合がある。そこで、判定部134Bは、ステップS308で算出した評価値が所定条件を満たすか否かに基づいて、チャットボットCB1の応答精度を評価する(ステップS309)。
実行対象調整部135Bは、応答精度の評価値が所定条件を満たす場合には(ステップS309;Yes)、現在実行対象の言語モデル(例えば、言語モデルLLM1)を、応答精度が高いチャットボット装置200Bを実現可能な生成アルゴリズムとして登録する(ステップS310)。すなわち、実行対象調整部135Bは、応答精度が高いことが検証された言語モデルを有するチャットボットを応答情報の生成を実行する実行対象として登録する。そして、処理は終了する。
一方、実行対象調整部135Bは、応答精度の評価値が所定条件を満たさないと判定された場合には(ステップS309;No)、実行対象の言語モデルを選択する調整処理を実行する(ステップS313)。ステップS313で行われる調整処理の詳細な手順については、図11で説明する。
実行対象調整部135Bにより調整処理が行われた後には、ステップS302へと処理が戻され、処理2巡目へと移行する。
(処理2巡目以降)
処理2巡目以降において、判定情報生成部133は、固定シナリオに基づき、検証用の入力情報を生成する(ステップS302)。判定情報生成部133は、処理2巡目以降についても、処理1巡目と同一の「東京タワーに行きたい。」という入力情報を生成してよい。
処理2巡目以降において、判定情報生成部133は、固定シナリオに基づき、検証用の入力情報を生成する(ステップS302)。判定情報生成部133は、処理2巡目以降についても、処理1巡目と同一の「東京タワーに行きたい。」という入力情報を生成してよい。
次に、実行対象調整部135Bは、現時点で調整処理を未実行か否かを判定する(ステップS303)。処理2巡目以降の場合、実行対象調整部135Bは、現時点で調整処理を未実行でない、すなわち実行済であると判定し(ステップS303;実行)、ステップS313における調整処理によって、実行対象として選択された言語モデルを指定する(ステップS314)。ここでは、ステップS313の調整処理において、言語モデルLLM2が選択されたものとする。
送信部132は、言語モデルLLM2を搭載したチャットボットCB2(第2のチャットボット装置200Bの一例)に入力情報INを送信する(ステップS315)。上述したように、チャットボットCB2に送信される入力情報INには、処理1巡目と同一内容の補助プロンプトが付与されてよいし、異なる内容の補助プロンプトが付与されてもよい。
チャットボットCB2は、入力情報INに対して言語モデルLLM2を適用し、言語モデルLLM2による出力結果に基づいて、応答情報AN2を生成する。
取得部131は、入力情報INに対してチャットボットCB2が生成した応答情報AN2を取得する(ステップS316)。
判定部134Bは、入力情報INに対してチャットボットCB2が生成した応答情報AN2が所定数蓄積(例えば、100個蓄積)されたか否かを判定する(ステップS307)。判定部134Bにより応答情報AN2が所定数蓄積されていないと判定された場合には(ステップS307;No)、ステップS302へと処理が戻され、応答情報AN2が所定数蓄積されるまで繰り返される。
一方、判定部134Aは、応答情報AN2が所定数蓄積されたと判定した場合には(ステップS307;Yes)、所定数の応答情報AN2を用いた、応答精度の評価値算出処理を実行する(ステップS308)。ここで、所定数蓄積された応答情報AN2のそれぞれは、同一内容の入力情報INに対する応答であるにも関わらず、チャットボットCB2の応答ゆらぎに起因して、異なる内容の応答が含まれている場合がある。そこで、判定部134Bは、ステップS308で算出した評価値が所定条件を満たすか否かに基づいて、チャットボットCB2の応答精度を評価する(ステップS309)。
実行対象調整部135Bは、応答精度の評価値が所定条件を満たす場合には(ステップS309;Yes)、現在実行対象の言語モデル(例えば、言語モデルLLM2)を、応答精度が高いチャットボット装置200Bを実現可能な生成アルゴリズムとして登録する(ステップS310)。ここでは、過去の処理において、応答精度が高いチャットボット装置200Bを実現可能な生成アルゴリズムとして登録された言語モデル(例えば言語モデルLLM1)と入れ換えて、現時点の言語モデル(例えば、言語モデルLLM2)を新たに登録する。すなわち、実行対象調整部135Bは、応答精度が高いことが検証された言語モデルを有するチャットボットを、応答情報の生成を実行する実行対象として登録する。そして、処理は終了する。
一方、処理2巡目以降の現時点においても、所定条件を満たす評価値を得られる言語モデルが見つかっていない場合もある。実行対象調整部135Bは、応答精度の評価値が所定条件を満たさないと判定された場合には(ステップS309;No)、言語モデルを選択する調整処理を再度実行する(ステップS313)。
実行対象調整部135Bにより調整処理が行われた後には、ステップS302へと処理が戻され、次の巡目へと移行する。
〔3.調整処理の具体的手順〕
続いて、図10のステップS313で行われる調整処理(実行対象の言語モデルを選択する調整処理)の具体的手順について説明する。
続いて、図10のステップS313で行われる調整処理(実行対象の言語モデルを選択する調整処理)の具体的手順について説明する。
図11は、第2の実施形態に係る調整処理の具体的手順を示す図である。実行対象調整部135Bは、予め準備される言語モデル群の中に未選択の言語モデルが存在するか否かを判定する(ステップS3131)。
実行対象調整部135Bは、予め準備される言語モデル群の中に未選択の言語モデルが存在する場合には(ステップS3131;Yes)、未選択の言語モデルのうちの1つを選択する(ステップS3132)。例えば、言語モデルLLM1が現在実行対象となっており、未選択の言語モデルとして、図11に示すような言語モデルMC31とMC32とが存在しているとする。係る例では、実行対象調整部135Bは、言語モデルMC31およびMC32のうち、いずれか1つを選択することができる。
そして、実行対象調整部135Bは、現在実行対象となっている言語モデルと、ステップS3132で選択した言語モデルとを入れ替える(ステップS3133)。
続いて、実行対象調整部135Bは、入れ替えた後の言語モデルを、調整処理により実行対象として選択された言語モデルとして保持する(ステップS3134)。そして、ステップS301へと処理が移行される。例えば、言語モデルLLM1が、候補として挙げられた言語モデルLLM2に入れ替えられたとする。係る例では、言語モデルLLM2が調整処理により実行対象として選択された言語モデルとして保持され、図10のステップS314で指定されることになる。
一方、実行対象調整部135Bは、予め準備される言語モデル群の中に未選択の言語モデルが存在しない場合には(ステップS3131;No)、つまり、予め準備される言語モデルを使い切った場合には、いずれの言語モデルをチャットボット装置200Bに搭載しても、条件を満たす評価値を得られるように応答情報が生成されることは無かった(いずれの言語モデルを用いてもチャットボット装置200Bの応答精度が改善されなかった)ことを認識する(ステップS3135)。
そして、通知部136Bは、チャットボット装置200Bの応答精度の改善が不能であることを管理者Tに通知する(ステップ3136)。
<他の実施形態>
上述した各実施形態に係る情報処理は、チャットボットというPULL型のシステムでの適用に限らず、ユーザへの自動アナウンスといったPUSH型のシステムへと拡張可能である。例えば、周辺環境を考慮した自動アナウンスシステムに対して各実施形態に係る情報処理を適用した場合を例に説明する。係る場合、調整装置100は、現在地に連動して周辺の渋滞状況をパラメータとして取得し、取得したパラメータをプロンプト化してチャットボット装置200に入力する。チャットボット装置200は、渋滞状況に伴う各種運転支援の応答情報を生成することが考えられる。
上述した各実施形態に係る情報処理は、チャットボットというPULL型のシステムでの適用に限らず、ユーザへの自動アナウンスといったPUSH型のシステムへと拡張可能である。例えば、周辺環境を考慮した自動アナウンスシステムに対して各実施形態に係る情報処理を適用した場合を例に説明する。係る場合、調整装置100は、現在地に連動して周辺の渋滞状況をパラメータとして取得し、取得したパラメータをプロンプト化してチャットボット装置200に入力する。チャットボット装置200は、渋滞状況に伴う各種運転支援の応答情報を生成することが考えられる。
このようなことから、各実施形態に係る情報処理をPUSH型の自動アナウンスシステムに拡張することで、ユーザによるプロンプトの入力を必要とせず、状況に応じた注意喚起等を含むユーザ支援を自発的に行うシステムを実現することができるようになる。
なお、各実施形態に係る情報処理をPUSH型の自動アナウンスシステムに拡張した場合であっても、例えば、応答情報が助長になったり、応答情報に趣旨とは関係のない文言が含まれたりしてしまう場合がある。このように、PUSH型のサービスにおいてチャットボット装置200の応答精度が低下したと評価できた場合であっても、応答精度の自動改善を実現することができる。
<ハードウェア構成>
上述してきた調整装置100は、例えば、図12に示すような構成のコンピュータ1000によって実現されてよい。図12は、実施形態に係る調整装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
上述してきた調整装置100は、例えば、図12に示すような構成のコンピュータ1000によって実現されてよい。図12は、実施形態に係る調整装置100の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM1300、HDD1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、所定の通信網を介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータを所定の通信網を介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイ等の出力装置、及び、キーボード等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る調整装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置から所定の通信網を介してこれらのプログラムを取得してもよい。
<その他>
また、上記各実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、上記各実施形態において説明した処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、本発明の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
1 システム
10 ユーザ装置
30 管理者装置
100A 調整装置
134A 判定部
135A プロンプト調整部
136A 通知部
100B 調整装置
134B 判定部
135B 実行対象調整部
136B 通知部
200 チャットボット装置
10 ユーザ装置
30 管理者装置
100A 調整装置
134A 判定部
135A プロンプト調整部
136A 通知部
100B 調整装置
134B 判定部
135B 実行対象調整部
136B 通知部
200 チャットボット装置
Claims (10)
- 入力情報に応じてチャットボットが生成する応答情報を取得し、取得した前記応答情報が所定条件を満たすか否かに基づいて、前記チャットボットの応答精度を判定する判定部と、
前記応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記応答精度を自動的に改善するための所定処理を実行する調整部と、
前記調整部が前記所定処理を実行後に、前記判定部が取得した応答情報が前記所定条件を満たさなかった場合には、前記応答精度の自動的な改善が不能であることを所定の通知先に通知する通知部と、
を備えることを特徴とする情報処理装置。 - 前記判定部は、第1の入力情報に対してチャットボットが生成する第1の応答情報が前記所定条件を満たすか否かを判定し、
前記調整部は、前記第1の応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記第1の入力情報に含まれる指示文の少なくとも一部である補助プロンプトを調整する処理を実行する
請求項1に記載の情報処理装置。 - 前記判定部は、前記調整部による調整後の補助プロンプトを指示文の少なくとも一部に含む第2の入力情報に対して前記チャットボットが生成する第2の応答情報が前記所定条件を満たすか否かを判定し、
前記調整部は、前記第2の応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記調整後の補助プロンプトを再度調整する処理を実行する
請求項1に記載の情報処理装置。 - 前記判定部は、入力情報に対して第1のチャットボットが生成する第1の応答情報が所定条件を満たすか否かを判定し、
前記調整部は、前記第1の応答情報が前記所定条件を満たさず、前記第1のチャットボットの応答精度が低いと判定される場合には、前記第1のチャットボットとは異なる言語モデルを有する第2のチャットボットを応答情報の生成を実行する実行対象として選択する処理を実行する
請求項1に記載の情報処理装置。 - 前記判定部は、前記第2のチャットボットが前記入力情報に対して生成する第2の応答情報が前記所定条件を満たすか否かを判定し、
前記調整部は、前記第2の応答情報が前記所定条件を満たさず、前記第2のチャットボットの応答精度が低いと判定される場合には、前記実行対象として、前記第1のチャットボット及び前記第2のチャットボットとは異なる言語モデルを有する第3のチャットボットを選択する処理を実行する
請求項4に記載の情報処理装置。 - 前記判定部は、同一内容の前記入力情報が入力されるたびに前記チャットボットが生成した前記応答情報を取得し、取得した前記応答情報のそれぞれの文字数に基づいて、所定数の前記応答情報の間での前記文字数の統計値を算出し、前記統計値が前記所定条件を満たすか否かを判定する
請求項1に記載の情報処理装置。 - 前記判定部は、同一内容の前記入力情報が入力されるたびに前記チャットボットが生成した前記応答情報を取得し、取得した前記応答情報のそれぞれと、前記入力情報に対して予め準備された正解情報との類似度に基づいて、所定数の前記応答情報の間での前記類似度の統計値を算出し、前記統計値が前記所定条件を満たすか否かを判定する
請求項1に記載の情報処理装置。 - 前記判定部は、複数種類の前記統計値を算出し、複数種類の前記統計値のうち、所定数より多くの統計値が前記所定条件を満たすか否かを判定する
請求項6または7に記載の情報処理装置。 - 情報処理装置が実行する情報処理方法であって、
入力情報に応じてチャットボットが生成する応答情報を取得し、取得した前記応答情報が所定条件を満たすか否かに基づいて、前記チャットボットの応答精度を判定する判定工程と、
前記応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記応答精度を自動的に改善するための所定処理を実行する調整工程と、
前記調整工程が前記所定処理を実行後に、前記判定工程が取得した応答情報が前記所定条件を満たさなかった場合には、前記応答精度の自動的な改善が不能であることを所定の通知先に通知する通知工程と、
を含む情報処理方法。 - 情報処理装置によって実行される情報処理プログラムであって、
入力情報に応じてチャットボットが生成する応答情報を取得し、取得した前記応答情報が所定条件を満たすか否かに基づいて、前記チャットボットの応答精度を判定する判定手順と、
前記応答情報が前記所定条件を満たさず、前記チャットボットの応答精度が低いと判定される場合には、前記応答精度を自動的に改善するための所定処理を実行する調整手順と、
前記調整手順が前記所定処理を実行後に、前記判定手順が取得した応答情報が前記所定条件を満たさなかった場合には、前記応答精度の自動的な改善が不能であることを所定の通知先に通知する通知手順と、
を前記情報処理装置に実行させる情報処理プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/042971 WO2025115191A1 (ja) | 2023-11-30 | 2023-11-30 | 情報処理装置、情報処理方法、および、情報処理プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/042971 WO2025115191A1 (ja) | 2023-11-30 | 2023-11-30 | 情報処理装置、情報処理方法、および、情報処理プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025115191A1 true WO2025115191A1 (ja) | 2025-06-05 |
Family
ID=95896333
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/042971 Pending WO2025115191A1 (ja) | 2023-11-30 | 2023-11-30 | 情報処理装置、情報処理方法、および、情報処理プログラム |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2025115191A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009037458A (ja) * | 2007-08-02 | 2009-02-19 | Toyota Motor Corp | 応答システム、及び応答内容制御方法 |
| JP2021018593A (ja) * | 2019-07-19 | 2021-02-15 | 株式会社日立製作所 | 車両用情報処理装置 |
-
2023
- 2023-11-30 WO PCT/JP2023/042971 patent/WO2025115191A1/ja active Pending
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009037458A (ja) * | 2007-08-02 | 2009-02-19 | Toyota Motor Corp | 応答システム、及び応答内容制御方法 |
| JP2021018593A (ja) * | 2019-07-19 | 2021-02-15 | 株式会社日立製作所 | 車両用情報処理装置 |
Non-Patent Citations (1)
| Title |
|---|
| PRYZANT, REID ET AL.: "Automatic Prompt Optimization with ''Gradient Descent'' and Beam Search", ARXIV, 19 October 2023 (2023-10-19), pages 1 - 12, XP093229411, Retrieved from the Internet <URL:https://arxiv.org/pdf/2305.03495v2.pdf> [retrieved on 20231227], DOI: 10.18653/v1/2023.emnlp-main.494 * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12266367B2 (en) | Hybrid speech interface device | |
| KR102881227B1 (ko) | 선택 시스템 및 방법 | |
| US11501755B2 (en) | Apparatus and method for providing voice assistant service | |
| US12323493B2 (en) | Function-as-a-service for two-way communication systems | |
| WO2021135604A1 (zh) | 语音控制方法、装置、服务器、终端设备及存储介质 | |
| CN110246499B (zh) | 家居设备的语音控制方法及装置 | |
| US12008985B2 (en) | Natural language processing of declarative statements | |
| EP1691343B1 (en) | Audio device control device,audio device control method, and program | |
| KR20220143683A (ko) | 전자 개인 비서 조정 | |
| US11978437B1 (en) | Natural language processing | |
| US12417764B2 (en) | Method and apparatus for providing voice assistant service | |
| CN111933135B (zh) | 终端控制方法、装置、智能终端及计算机可读存储介质 | |
| US20210136433A1 (en) | Hub device, multi-device system including the hub device and plurality of devices, and operating method of the hub device and multi-device system | |
| US20200210880A1 (en) | Reconfiguration of embedded services on devices using device functionality information | |
| JP2020038709A (ja) | 人工知能機器における連続会話機能 | |
| KR101637975B1 (ko) | 말하기 자동평가 시스템, 그 방법 및 장치 | |
| US20220189475A1 (en) | Dynamic virtual assistant speech modulation | |
| US12315514B2 (en) | Systems and methods for managing multiple voice assistant services based on voice input | |
| WO2022270603A1 (en) | A system and method for delivering domain or use-case switch suggestion for an ongoing conversation | |
| JP2025088407A (ja) | 情報処理装置、情報処理方法、および、情報処理プログラム | |
| JP2025088367A (ja) | 情報処理装置、情報処理方法、および、情報処理プログラム | |
| CN117641419A (zh) | 近域通信组网调整方法、装置、电子设备及存储介质 | |
| US9882835B2 (en) | Programming method and apparatus for core routing and switching system | |
| WO2005062295A1 (ja) | 機器制御装置、音声認識装置、エージェント装置及び機器制御方法 | |
| US12401609B2 (en) | Segmentation and engagement based messaging |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23960208 Country of ref document: EP Kind code of ref document: A1 |