KR20240007261A - 자동화된 어시스턴트 응답(들) 생성에 대규모 언어 모델 사용 - Google Patents

자동화된 어시스턴트 응답(들) 생성에 대규모 언어 모델 사용 Download PDF

Info

Publication number
KR20240007261A
KR20240007261A KR1020237042963A KR20237042963A KR20240007261A KR 20240007261 A KR20240007261 A KR 20240007261A KR 1020237042963 A KR1020237042963 A KR 1020237042963A KR 20237042963 A KR20237042963 A KR 20237042963A KR 20240007261 A KR20240007261 A KR 20240007261A
Authority
KR
South Korea
Prior art keywords
assistant
outputs
output
llm
modified
Prior art date
Application number
KR1020237042963A
Other languages
English (en)
Inventor
마틴 배음
투샨 아마라시리와데나
로베르토 피라치니
비크람 스리다
다니엘 데 프레이타스 아디와다나
노암 엠. 사지르
쿠옥 르
Original Assignee
구글 엘엘씨
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US17/532,794 external-priority patent/US20230074406A1/en
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20240007261A publication Critical patent/KR20240007261A/ko

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/226Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics
    • G10L2015/228Procedures used during a speech recognition process, e.g. man-machine dialogue using non-speech characteristics of application context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Toys (AREA)

Abstract

사용자와 자동화된 어시스턴트 간의 대화 세션의 일부로서, 구현예는 어시스턴트 쿼리를 포함하는 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하고, 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 쿼리에 대한 응답일 것으로 각각 예측되는 어시스턴트 출력 세트를 결정하고, 대형 언어 모델(LLM) 출력(들)을 사용하여, 수정된 어시스턴트 출력 세트를 생성하기 위해 대화 세션의 컨텍스트 및 어시스턴트 출력을 프로세싱하고, 그리고 음성 발화에 응답하여 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 할 수 있다. 일부 구현예에서, LLM 출력(들)은 온라인 방식으로 후속적으로 사용하기 위해 오프라인 방식으로 생성될 수 있다. 추가적 또는 대안적 구현예에서, LLM 출력(들)은 음성 발화가 수신될 때 온라인 방식으로 생성될 수 있다.

Description

자동화된 어시스턴트 응답(들) 생성에 대규모 언어 모델 사용
사람은 본 명세서에서 "자동화된 어시스턴트"("챗봇", "인터랙티브 퍼스널 어시스턴트", "지능형 퍼스널 어시스턴트", "개인 음성 어시스턴트", "대화형 에이전트들"로도 지칭됨)로 지칭되는 인터렉티브 소프트웨어 어플리케이션과의 사람-컴퓨터 간 대화에 참여할 수 있다. 자동화된 어시스턴트는 일반적으로 음성 발화를 해석하고 응답하는 컴포넌트 파이프라인에 의존한다. 예를 들어, 자동 스피치 인식(ASR) 엔진은 ASR 가설(예: 용어(들) 및/또는 기타 토큰(들)의 시퀀스)과 같은 ASR 출력을 생성하기 위해 사용자의 음성 발화에 대응하는 오디오 데이터를 프로세싱할 수 있다. 또한, NLU(자연어 이해) 엔진은 ASR 출력(또는 터치/입력)을 프로세싱하여 사용자가 음성 발화(또는 터치/기입된 입력)를 제공할 때 표현한 요청(예: 의도) 및 선택적으로 의도와 연관된 파라미터(들)에 대한 슬롯 값(들)과 같은 NLU 출력을 생성할 수 있다. 결국, NLU 출력은 다양한 이행 컴포넌트에 의해 프로세싱되어 음성 발화에 대한 응답은 응답 콘텐츠 및/또는 음성 발화에 응답하여 수행될 수 있는 하나 이상의 액션과 같은 이행 출력을 생성할 수 있다.
일반적으로, 자동화된 어시스턴트와의 대화 세션은 음성 발화를 제공하는 사용자에 의해 개시되며, 자동화된 어시스턴트는 앞서 언급한 컴포넌트 파이프라인을 사용하여 음성 발화에 응답할 수 있다. 사용자는 추가 음성 발화를 제공하여 대화 세션을 계속할 수 있으며, 자동화된 어시스턴트는 앞서 언급한 컴포넌트 파이프라인을 사용하여 추가 음성 발화에 다시 응답할 수 있다. 다르게 말하면, 이러한 대화 세션은 일반적으로 사용자가 대화 세션에서 차례로 음성 발화를 제공하고, 자동화된 어시스턴트가 대화 세션에서 추가 차례로 음성 발화에 응답하고, 사용자가 대화 세션에서 차례로 추가 음성 발화를 제공하고, 자동화된 어시스턴트가 대화 세션에서 추가 차례로 추가 음성 발화에 응답한다는 점에서 턴-기반이다. 하지만, 사용자의 입장에서 볼 때, 이러한 턴-기반 대화 세션은 사람이 실제로 서로 어떻게 대화하는지를 반영하지 않기 때문에 자연스럽지 않을 수 있다.
예를 들어, 제1 사람이 대화 세션 중에 제2 사람에게 초기 생각을 전달하기 위해 음성 발화(예: "I’m going to the beach today")을 제공하는 경우, 제2 사람은 제1 사람에 대한 응답을 공식화하는 대화 세션의 컨텍스트에서 음성 발화를 고려할 수 있다(예: "sounds fun, what are you going to do at the beach?", "nice, have you looked at the weather?" 등). 특히, 제2 사람은 제1 사람에 응답하여, 제1 사람이 대화 세션에 자연스럽게 참여하도록 하는 음성 발화를 제공할 수 있다. 다르게 말하면, 대화 세션 동안 제1 사람과 제2 사람 모두 대화 세션을 주도하는 사람 중 한 사람 없이도 자연스러운 대화를 촉진하기 위해 음성 발화를 제공할 수 있다.
그러나 위의 예에서 제2 사람이 자동화된 어시스턴트로 교체되면, 자동화된 어시스턴트는 제1 사람이 대화 세션에 계속 참여하도록 하는 응답을 제공하지 못할 수 있다. 예를 들어, 제1 사람이 "I’m going to the beach today"라는 음성 발화를 제공하는 것에 응답하여, 자동화된 어시스턴트는 대화 세션을 촉진하기 위한 추가 응답을 제공하지 않고, 제1 사람에게 해변에서 무엇을 하려고 하는지 사전적으로 묻는 것, 제1 사람이 자주 방문하는 해변에 대한 일기예보를 사전적으로 조회하고 응답에 일기예보를 포함시키는 것, 일기예보에 기초하여 사전적으로 일부 추론을 하는 것 등과 같이 자동화된 어시스턴트가 대화 세션을 촉진하기 위해 일부 액션을 수행하거나 및/또는 일부 응답을 제공할 수 있음에도 불구하고 단순히 "sounds fun" 또는 "nice"라고 응답할 수 있다. 그 결과, 제1 사람의 음성 발화에 응답하여 자동화된 어시스턴트에 의해 제공된 응답은 상기 응답이 다수의 사람들 간의 자연적 대화를 반영하기 않을 수 있으므로 제1 사람에 맞지 않을 수 있다. 또한, 제1 사람은 자동화된 어시스턴트가 사전적으로 제공할 수 있는 특정 정보(예: 해변의 일기 예보)를 명시적으로 요청하기 위해 추가 음성 발화를 제공해야 할 수 있으며, 이에 따라 자동화된 어시스턴트를 향한 음성 발화의 양이 증가하고 이러한 음성 발화를 프로세싱하는데 활용되는 클라이언트 디바이스의 리소스를 낭비하게 된다.
본 명세서에 설명된 구현예는 자동화된 어시스턴트가 대화 세션 동안 사용자와 자연스러운 대화를 수행할 수 있게 하는 것에 관한 것이다. 일부 구현예는 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신할 수 있다. 오디오 데이터 스트림은 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성될 수 있으며, 음성 발화는 어시스턴트 쿼리를 포함할 수 있다. 일부 구현예는 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 추가로 결정하고, 어시스턴트 출력 세트와 대화 세션의 컨텍스트를 프로세싱하여 LLM을 사용하여 생성된 하나 이상의 대규모 언어 모델(LLM) 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성할 수 있다. 하나 이상의 LLM 출력 각각은 대화 세션의 컨텍스트의 적어도 일부와 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정될 수 있다. 일부 구현예는 상기 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 할 수 있다. 또한, 하나 이상의 LLM 출력 각각은 예를 들어 하나 이상의 어휘에 걸친 하나 이상의 단어 및/또는 문구의 시퀀스에 대한 확률 분포를 포함할 수 있고, 확률 분포에 기초하여 시퀀스에서 하나 이상의 단어 및/또는 문구를 하나 이상의 LLM 출력으로 선택할 수 있다. 또한, 대화 세션의 컨텍스트는 하나 이상의 컨텍스트 신호에 기초하여 결정될 수 있고, 하나 이상의 컨텍스트 신호는 예를 들어 시간, 요일, 클라이언트 디바이스의 위치, 클라이언트 디바이스의 환경에서 감지된 주변 소음, 사용자 프로필 데이터, 소프트웨어 애플리케이션 데이터, 클라이언트 디바이스 사용자의 알려진 환경에 관한 환경 데이터, 사용자와 자동화된 어시스턴트 간의 대화 세션의 대화 기록 및/또는 기타 컨텍스트 신호를 포함한다.
일부 구현예에서, 어시스턴트 출력 세트는 스트리밍 ASR(자동 스피치 인식) 모델을 사용하여, 오디오 데이터 스트림 프로세싱에 기초하여 결정되어, ASR 출력 스트림을 생성할 수 있고, ASR 출력 스트림은 음성 발화에 대응할 것으로 예측된 하나 이상의 인식된 용어 또는 문구, 음성 발화에 대응할 것으로 예측되는 하나 이상의 음소, 하나 이상의 인식된 용어 또는 문구 각각과 연관된 하나 이상의 예측된 측정값 및/또는 하나 이상의 예측된 음소 및/또는 기타 ASR 출력을 포함한다. 또한, ASR 출력은 자연 언어 이해(NLU) 모델을 사용하여 프로세싱되어 NLU 출력 스트림을 생성할 수 있고, NLU 출력 스트림은 음성 발화를 제공할 때 사용자의 하나 이상의 예측된 의도 및 하나 이상의 예측된 의도와 연관된 하나 이상의 파라미터에 대한 하나 이상의 대응하는 슬롯 값을 포함한다. 더욱이, NLU 데이터의 스트림은 어시스턴트 출력 세트를 생성하기 위해 하나 이상의 제1 당사자(1P) 및/또는 서드파티(3P) 시스템에 의해 프로세싱될 수 있다. 본 명세서에 사용된 바와 같이, 하나 이상의 1P 시스템은 본 명세서에 설명된 자동화된 어시스턴트를 개발 및/또는 유지 관리하는 동일한 엔터티에 의해 개발 및/또는 유지 관리되는 시스템을 포함하고(예: 일반 퍼블리셔), 하나 이상의 3P 시스템은 본 명세서에서 설명된 자동화된 어시스턴트를 개발 및/또는 유지 관리하는 엔터티와 별개인 엔터티에 의해 개발 및/또는 유지 관리되는 시스템이다. 특히, 본 명세서에 설명된 어시스턴트 출력 세트는 음성 발화에 응답하기 위해 일반적으로 고려되는 어시스턴트 출력을 포함한다. 그러나, 청구된 기법을 사용함으로써, 위에 설명된 방식으로 생성된 어시스턴트 출력 세트는 수정된 어시스턴트 출력 세트를 생성하기 위해 추가로 프로세싱될 수 있다. 특히, 어시스턴트 출력 세트는 하나 이상의 LLM 출력을 사용하여 수정될 수 있으며, 주어진 수정된 어시스턴트 출력은 수정된 어시스턴트 출력 세트로부터 선택되어 음성 발화 수신에 응답하여 사용자에게 제시하기 위해 제공될 수 있다.
예를 들어, 클라이언트 디바이스의 사용자가 "Hey Assistant, I’m thinking about going surfing today"라는 음성 발화를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 어시스턴트 출력 세트 및 수정된 어시스턴트 출력 세트를 생성하기 위해 위에 설명된 방식으로 음성 발화를 프로세싱할 수 있다. 본 예에서 어시스턴트 출력 세트에 포함되는 어시스턴트 출력은 예를 들어 "That sounds like fun!", "Sounds fun!" 등을 포함할 수 있다. 또한, 이 예에서 수정된 어시스턴트 출력 세트에 포함된 어시스턴트 출력은 예를 들어 "That sounds like fun, how long have you been surfing?", "Enjoy it, but if you’re going to Example Beach again, be prepared for some light showers" 등을 포함할 수 있다. 특히, 어시스턴트 출력 세트에 포함된 어시스턴트 출력은 대화 세션에서 클라이언트 디바이스의 사용자를 추가로 참여시키는 방식으로 대화 세션을 구동하는 어시스턴트 출력을 포함하지 못하지만, 수정된 어시스턴트 출력 세트에 포함된 어시스턴트 출력은 컨텍스트적으로 관련 정보(예: "but if you’re going to Example Beach again, be prepared for some light showers")를 제공하고 및/또는 대화 세션의 컨텍스트 내에서 클라이언트 디바이스의 사용자와 공감하는 컨텍스트적으로 관련된 질문(예: "how long have you been surfing?")을 물어 대화 세션에서 클라이언트 디바이스의 사용자를 추가로 참여시키는 방식으로 대화 세션을 구동하는 어시스턴트 출력을 포함한다.
일부 구현예에서, 수정된 어시스턴트 응답 세트는 온라인 방식으로 생성되는 하나 이상의 LLM 출력을 사용하여 생성될 수 있다. 예를 들어, 음성 발화를 수신하는 것에 응답하여, 자동화된 어시스턴트는 위에서 설명한 방식으로 어시스턴트 출력 세트가 생성되도록 할 수 있다. 또한, 음성 발화를 수신하는 것에 응답하여, 자동화된 어시스턴트는 어시스턴트 출력 세트, 대화 세션의 컨텍스트 및/또는 음성 발화에 포함된 어시스턴트 쿼리가 하나 이상의 LLM을 사용하여 프로세싱되게 하여 하나 이상의 LLM을 사용하여 생성된 하나 이상의 LLM 출력에 기초하여 수정된 어시스턴트 출력 세트를 생성한다.
추가적 또는 대안적 구현예에서, 수정된 어시스턴트 응답 세트는 오프라인 방식으로 생성되는 하나 이상의 LLM 출력을 사용하여 생성될 수 있다. 예를 들어, 음성 발화를 수신하기 전에, 자동화된 어시스턴트는 어시스턴트 활동 데이터베이스(클라이언트 디바이스의 사용자의 제한된 어시스턴트 활동일 수 있음)로부터 복수의 어시스턴트 쿼리들 및 복수의 어시스턴트 쿼리들 각각에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트를 획득할 수 있다. 또한, 자동화된 어시스턴트는 복수의 어시스턴트 쿼리들 중 주어진 어시스턴트 쿼리에 대해, 주어진 어시스턴트 쿼리에 대해 위에서 설명한 방식으로 어시스턴트 출력 세트가 생성되도록 할 수 있다. 또한, 자동화된 어시스턴트는 어시스턴트 출력 세트, 대화 세션의 컨텍스트 및/또는 주어진 어시스턴트 쿼리가 하나 이상의 LLM을 사용하여 프로세싱되게 하여, 하나 이상의 LLM을 사용하여 생성된 하나 이상의 LLM 출력에 기초하여 수정된 어시스턴트 출력 세트를 생성한다. 이 프로세스는 복수의 쿼리들 각각과 자동화된 어시스턴트에 의해 획득된 이전 대화 세션의 대응 컨텍스트에 대해 반복될 수 있다.
또한 자동화된 어시스턴트는 사용자의 클라이언트 디바이스에서 액세스 가능한 메모리에서 하나 이상의 LLM 출력을 인덱싱할 수 있다. 일부 구현예에서, 자동화된 어시스턴트는 복수의 어시스턴트 쿼리들에 포함된 하나 이상의 용어에 기초하여 하나 이상의 LLM이 메모리에 인덱싱되도록 할 수 있다. 추가적 또는 대안적 구현예에서, 자동화된 어시스턴트는 복수의 어시스턴트 쿼리들 각각에 대한 대응 임베딩(예를 들어, word2vec 임베딩 또는 다른 저차원 표현)을 생성하고, 대응 임베딩 각각을 어시스턴트 쿼리 임베딩 공간에 매핑하여 하나 이상의 LLM 출력을 인덱싱한다. 추가적 또는 대안적 구현예에서, 자동화된 어시스턴트는 대응하는 이전 컨텍스트에 포함된 하나 이상의 컨텍스트 신호에 기초하여 하나 이상의 LLM이 메모리에 인덱싱되도록 할 수 있다. 추가적 또는 대안적 구현예에서, 자동화된 어시스턴트는 대응하는 컨텍스트 각각에 대해 대응하는 임베딩을 생성하고, 대응하는 임베딩 각각을 컨텍스트 임베딩 공간에 매핑하여 하나 이상의 LLM 출력을 인덱싱할 수 있다. 추가적 또는 대안적 구현예에서, 자동화된 어시스턴트는 복수의 어시스턴트 쿼리들 각각에 대한 어시스턴트 출력 세트에 포함된 어시스턴트 출력의 하나 이상의 용어 또는 문구에 기초하여 하나 이상의 LLM가 메모리에 인덱싱되도록 할 수 있다. 추가적 또는 대안적 구현예에서, 자동화된 어시스턴트는 어시스턴트 출력 세트에 포함된 어시스턴트 출력 각각에 대한 대응 임베딩(예를 들어, word2vec 임베딩 또는 다른 저차원 표현)을 생성하고, 대응 임베딩 각각을 어시스턴트 쿼리 임베딩 공간에 매핑하여 하나 이상의 LLM 출력을 인덱싱한다.
따라서, 음성 발화가 추후에 사용자의 클라이언트 디바이스에서 수신되면, 자동화된 어시스턴트는 복수의 쿼리들에 포함된 하나 이상의 어시스턴트 쿼리에 대응하는 현재 어시스턴트 쿼리, 하나 이상의 대응하는 이전 컨텍스트에 대응하는 현재 컨텍스트 및/또는 하나 이상의 이전 어시스턴트 출력에 대응하는 하나 이상의 현재 어시스턴트 출력에 기초하여 이전에 생성된 하나 이상의 LLM 출력을 식별할 수 있다. 예를 들어, 하나 이상의 LLM 출력이 이전 어시스턴트 쿼리에 대한 대응하는 임베딩에 기초하여 인덱싱되는 구현예에서, 자동화된 어시스턴트는 현재 어시스턴트 쿼리에 대한 임베딩이 생성되어 어시스턴트 쿼리 임베딩 공간에 매핑되도록 할 수 있다. 또한, 자동화된 어시스턴트는 쿼리 임베딩 공간에서 현재 어시스턴트 쿼리에 대한 임베딩과 임계값을 만족하는 이전 어시스턴트 쿼리에 대한 대응하는 임베딩 사이의 거리에 기초하여 현재 어시스턴트 쿼리가 이전 어시스턴트 쿼리에 대응된다고 결정할 수 있다. 자동화된 어시스턴트는 이전 어시스턴트 쿼리 프로세싱에 기초하여 생성된 하나 이상의 LLM 출력을 메모리로부터 얻을 수 있고, 수정된 어시스턴트 출력 세트를 생성할 때 하나 이상의 LLM 출력을 활용할 수 있다. 또한, 예를 들어, 하나 이상의 LLM이 복수의 어시스턴트 쿼리들에 포함된 하나 이상의 용어에 기초하여 인덱싱되는 구현예에서, 자동화된 어시스턴트는 예를 들어 현재 어시스턴트 쿼리와 복수의 이전 어시스턴트 쿼리들 사이의 편집 거리를 결정하여 현재 어시스턴트 쿼리에 대응하는 이전 어시스턴트 쿼리를 식별할 수 있다. 유사하게, 자동화된 어시스턴트는 이전 어시스턴트 쿼리 프로세싱에 기초하여 생성된 하나 이상의 LLM 출력을 메모리로부터 획득하고, 수정된 어시스턴트 출력 세트를 생성할 때 하나 이상의 LLM 출력을 활용할 수 있다.
일부 구현예에서, 하나 이상의 LLM 출력 외에도, 어시스턴트 쿼리 및/또는 대화 세션의 컨텍스트 프로세싱에 기초하여 추가 어시스턴트 쿼리가 생성될 수 있다. 예를 들어, 어시스턴트 쿼리 및/또는 대화 세션의 컨텍스트를 프로세싱할 때 자동화된 어시스턴트는 NLU 데이터 스트림에 기초하여 주어진 어시스턴트 쿼리와 연관된 의도를 결정할 수 있다. 또한, 자동화된 어시스턴트는 주어진 어시스턴트 쿼리와 연관된 의도에 기초하여, 어시스턴트 쿼리와 연관된 의도와 관련된 적어도 하나의 관련 의도를 식별할 수 있다(예를 들어, 상기 의도와 클라이언트 디바이스에 액세스할 수 있는 데이터베이스 또는 메모리의 적어도 하나의 관련 의도의 매핑에 기초하여 및/또는 하나 이상의 기계 학습(ML) 모델 또는 경험적으로 정의된 규칙을 사용하여 주어진 어시스턴트 쿼리와 연관된 의도 프로세싱에 기초하여). 더욱이, 자동화된 어시스턴트는 적어도 하나의 관련 의도에 기초하여 추가적인 어시스턴트 쿼리를 생성할 수 있다. 예를 들어, 어시스턴트 쿼리가 사용자가 해변에 갈 것임을 나타낸다고 가정한다(예: "Hey assistant, I’m going to the beach today"). 이 예에서 추가 어시스턴트 쿼리는 예를 들어 "what’s the weather at Example Beach?"에 대응할 수 있다(예를 들어 사용자가 일반적으로 방문하는 Example Beach라는 해변의 날씨 정보를 사전적으로 확인하기 위해). 특히, 클라이언트 디바이스의 사용자에게 제시하기 위한 추가 어시스턴트 쿼리가 제공되지 않을 수도 있다.
오히려, 이러한 구현예에서, 추가 어시스턴트 쿼리 프로세싱에 기초하여 추가 어시스턴트 출력이 결정될 수 있다. 예를 들어, 자동화된 어시스턴트는 추가 어시스턴트 출력으로서 날씨 정보를 얻기 위해 구조화된 요청을 하나 이상의 1P 및/또는 3P 시스템에 전송할 수 있다. 또한 날씨 정보에 따르면 Example Beach에 비가 올 것으로 예상된다고 가정한다. 이러한 구현예의 일부 버전에서, 자동화된 어시스턴트는 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 하나 이상의 LLM 출력 및/또는 하나 이상의 추가 LLM 출력을 사용하여 추가 어시스턴트가 프로세싱되도록 할 수 있다. 따라서 위에 제공된 초기 예에서, "Hey Assistant, I’m thinking about going surfing today"라는 음성 발화를 수신하는 것에 응답하여 사용자에게 제공되는 수정된 어시스턴트 출력의 초기 세트 중 주어진 수정된 어시스턴트 출력은 "Enjoy it"일 수 있고, 수정된 추가 어시스턴트 출력 세트 중 주어진 수정된 추가 어시스턴트 출력은 "but if you’re going to Example Beach again, be prepared for some light showers"일 수 있다. 다르게 말하면, 자동화된 어시스턴트
다양한 구현예에서, 수정된 어시스턴트 출력 세트를 생성할 때, 활용되는 하나 이상의 LLM 출력 각각은 복수의 이종 파라미터 세트 중 대응하는 파라미터 세트를 사용하여 생성될 수 있다. 복수의 이종 파라미터 세트들 각각은 자동화된 어시스턴트에 대한 이종 성격과 연관될 수 있다. 상기 구현예 중 일부 버전에서, 단일 LLM을 활용하여 이종 성격 각각에 대한 대응하는 파라미터 세트를 사용하여 하나 이상의 대응하는 LLM 출력을 생성할 수 있고, 상기 구현예의 다른 버전에서, 다수의 LLM을 활용하여 이종 성격 각각에 대한 대응하는 파라미터 세트를 사용하여 하나 이상의 대응하는 LLM 출력을 생성할 수 있다. 따라서, 수정된 어시스턴트 출력 세트 중 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되면, 이는 상이한 성격의 운율 속성(예: 이러한 다양한 성격의 억양, 종지, 음높이, 일시정지, 템포, 스트레스, 리듬 등)을 통해 다양한 동적 컨텍스트 성격을 반영할 수 있다.
특히, 본 명세서에 기술된 이러한 성격 응답은 서로 다른 성격의 운율 속성을 반영할 뿐만 아니라, 서로 다른 성격의 서로 다른 어휘 및/또는 서로 다른 성격의 서로 다른 말하기 스타일(예: 장황한 말하기 스타일, 간결한 말하기 스타일 등)을 반영할 수 있다. 예를 들어, 사용자에게 제시하기 위해 제공되는 주어진 수정된 어시스턴트 출력은 자동화된 어시스턴트에 의해 활용될 제1 어휘 및/또는 사용자에게 청각적으로 제시하기 위해 수정된 어시스턴트 출력을 제공하는데 활용되는 운율 속성 세트와 관련하여 자동화된 어시스턴트의 제1 성격을 반영하는 제1 파라미터 세트를 사용하여 생성될 수 있다. 대안적으로, 사용자에게 제시하기 위해 제공되는 수정된 어시스턴트 출력은 자동화된 어시스턴트에 의해 활용될 제2 어휘 및/또는 사용자에게 청각적으로 제시하기 위해 수정된 어시스턴트 출력을 제공하는데 활용되는 제2 운율 속성 세트와 관련하여 자동화된 어시스턴트의 제2 성격을 반영하는 제2 파라미터 세트를 사용하여 생성될 수 있다.
따라서, 자동화된 어시스턴트는 자동화된 어시스턴트에 의해 활용되는 어휘와 사용자에게 청각적으로 제시하기 위해 수정된 어시스턴트 출력을 렌더링하는데 활용되는 운율 속성 둘 모두에 기초하여 사용자에게 제시하기 위한 수정된 어시스턴트 출력을 제공하는데 활용되는 성격을 동적으로 적응시킬 수 있다. 특히, 자동화된 어시스턴트는 사용자로부터 수신된 이전 음성 발화 및 자동화된 어시스턴트에 의해 제공되는 이전 어시스턴트 출력 및/또는 본 명세서에 기술된 임의의 다른 컨텍스트 신호를 포함하는 대화 세션의 컨텍스트에 기초하여 수정된 어시스턴트 출력을 제공하는데 활용되는 이들 성격을 동적으로 적응시킬 수 있다. 결과적으로, 자동화된 어시스턴트에 의해 제공되는 수정된 어시스턴트 출력은 클라이언트 디바이스의 사용자와 더 잘 공감할 수 있다. 더욱이, 주어진 대화 세션 전반에 걸쳐 사용되는 성격은 주어진 대화 세션의 컨텍스트가 업데이트됨에 따라 동적으로 적응될 수 있다는 점에 유의해야 한다.
일부 구현예에서, 자동화된 어시스턴트는 하나 이상의 순위 기준에 따라 어시스턴트 출력 세트(즉, 하나 이상의 LLM 출력을 사용하여 생성되지 않음)에 포함된 어시스턴트 출력 및 수정된 어시스턴트 출력(즉, 하나 이상의 LLM 출력을 사용하여 생성됨)의 순위를 매길 수 있다. 따라서, 사용자에게 제시하기 위해 제공될 주어진 어시스턴트 출력을 선택할 때, 자동화된 어시스턴트는 어시스턴트 출력 세트와 수정된 어시스턴트 출력 세트 둘 모두로부터 선택할 수 있다. 하나 이상의 순위 기준은 예를 들어, 어시스턴트 출력 세트 및 수정된 어시스턴트 출력 세트에 포함된 각각의 어시스턴트 출력이 음성 발화에 포함된 어시스턴트 쿼리, NLU 출력 스트림에 포함된 하나 이상의 의도 및/또는 기타 순위 기준에 대해 어떻게 응답하는지를 나타내는 하나 이상의 예측 측정값(예를 들어, ASR 출력 스트림을 생성할 때 생성된 ASR 측정값, NLU 출력 스트림을 생성할 때 생성된 NLU 측정값, 어시스턴트 출력을 생성할 때 생성된 이행 측정값)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스 사용자의 의도가 사용자가 사실적 답변을 원한다는 것을 나타내는 경우(예를 들어 "why is the sky blue?"라는 어시스턴트 쿼리를 포함하는 음성 발화 제공에 기초함), 사용자가 어시스턴트 쿼리에 대한 간단한 답변을 원할 가능성이 높기 때문에 자동화된 어시스턴트는 하나 이상의 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 승격할 수 있다. 그러나 클라이언트 디바이스 사용자의 의도가 사용자가 더 개방형 입력을 제공했음을 나타내는 경우(예를 들어, "what time is it?"라는 어시스턴트 쿼리를 포함하는 음성 발화 제공에 기초함), 자동화된 어시스턴트는 사용자가 더 대화적인 측면을 선호할 가능성이 높기 때문에 수정된 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 승격할 수 있다.
일부 구현예에서, 수정된 어시스턴트 출력 세트를 생성하기 전에, 자동화된 어시스턴트는 수정된 어시스턴트 출력 세트를 생성할지 여부도 결정할 수 있다. 상기 구현예 중 일부 버전에서, 자동화된 어시스턴트는 NLU 데이터 스트림에 의해 표시된 바와 같이 음성 발화를 제공할 때 사용자의 예측된 의도 중 하나 이상에 기초하여 수정된 어시스턴트 출력 세트를 생성할지 여부를 결정할 수 있다. 예를 들어, 음성 발화가 자동화된 어시스턴트에게 검색을 수행하도록 요청한다고 자동화된 어시스턴트가 결정하는 구현예에서(예를 들어, "Why is the sky blue?"라는 어시스턴트 쿼리), 사용자가 사실적인 답변을 찾고 있기 때문에 자동화된 어시스턴트는 수정된 어시스턴트 출력 세트를 생성하지 않기로 결정할 수 있다. 그러한 구현예의 추가적 또는 대안적 버전에서, 자동화된 어시스턴트는 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 하나 이상의 계산 비용에 기초하여 수정된 어시스턴트 출력 세트를 생성할지 여부를 결정할 수 있다. 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 하나 이상의 계산 비용은 예를 들면, 배터리 소비, 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 프로세서 소비 또는 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 레이턴시 중 하나 이상을 포함할 수 있다. 예를 들어, 클라이언트 디바이스가 저전력 모드에 있는 경우, 자동화된 어시스턴트는 클라이언트 디바이스의 배터리 소모를 줄이기 위해 수정된 어시스턴트 출력 세트를 생성하지 않기로 결정할 수 있다.
본 명세서에 기술된 기법을 사용함으로써, 하나 이상의 기술적 이점이 달성될 수 있다. 비제한적인 일례로서, 본 명세서에 설명된 기법은 자동화된 어시스턴트가 대화 세션 동안 사용자와 자연스러운 대화에 참여할 수 있게 한다. 예를 들어, 자동화된 어시스턴트는 본질적으로 더 대화적인 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력을 생성할 수 있다. 따라서, 자동화된 어시스턴트는 사용자가 직접 요청하지 않은 대화 세션과 연관된 컨텍스트 정보를 사전적으로 제공할 수 있어서(예를 들어, 본 명세서에 설명된 추가 어시스턴트 쿼리를 생성하고 추가 어시스턴트 쿼리에 기초하여 결정된 추가 어시스턴트 출력을 제공함으로써), 수정된 어시스턴트 출력이 사용자에게 공감되도록 한다. 또한, 수정된 어시스턴트 출력은 대화 세션 전체에 걸쳐 컨텍스트적으로 적응되는 어휘와 수정된 어시스턴트 출력을 청각적으로 렌더링하는데 활용되는 운율 속성 둘 모두의 측면에서 다양한 성격으로 생성될 수 있으며, 그에 따라 수정된 어시스턴트 출력이 훨씬 더 사용자와 공감할 수 있게 한다. 이는 클라이언트 디바이스에서 계산 리소스를 보존하는 다양한 기술적 이점을 가져오고, 대화 세션이 더 빠르고 효율적인 방식으로 종료되도록 하거나 대화 세션의 양을 줄일 수 있다. 예를 들어, 대화 세션과 컨텍스트적으로 관련된 정보를 요청해야 하는 사용자의 발생 횟수를 감소시킬 수 있으므로 클라이언트 디바이스에서 수신되는 사용자 입력의 양이 감소될 수 있다. 이는 정보가 사용자에게 제시하기 위해 자동화된 어시스턴트에 의해 사전적으로 제공될 수 있기 때문이다. 또한, 예를 들어, 하나 이상의 LLM 출력이 오프라인 방식으로 생성되고 후속적으로 온라인 방식으로 활용되는 구현예에서 런타임 시 레이턴시가 감소될 수 있다.
본 명세서에서 사용되는 "대화 세션"은 사용자와 자동화된 어시스턴트(일부 경우에 다른 사람 참가자) 사이의 논리적으로 자체 포함된 교환을 포함할 수 있다. 자동화된 어시스턴트는 세션들 간의 시간의 경과, 세션들 간의 사용자 컨텍스트의 변화(예를 들어, 위치, 예정된 미팅 전/중/후 등), 사용자와 자동화된 어시스턴트 사이의 대화 이외의 사용자와 클라이언트 디바이스 사이의 하나 이상의 개입 인터렉션들의 검출(예를 들어, 사용자가 잠시 동안 애플리케이션을 전환하고, 사용자는 멀어졌다가 나중에 독립형 음성 활성화 제품으로 돌아옴), 세션들 사이의 클라이언트 디바이스의 잠금/슬립, 자동화된 어시스턴트와의 인터페이스에 사용되는 클라이언트 디바이스의 변경 등과 같은 다양한 신호들에 기초하여 사용자와의 다수의 대화 세션들을 구별할 수 있다. 특히, 주어진 대화 세션 동안 사용자는 음성 입력, 타이핑 입력 및/또는 터치 입력을 포함하지만 이에 제한되지 않는 다양한 입력 양식을 사용하여 자동화된 어시스턴트와 인터렉션할 수 있다.
상기 설명은 본 명세서에 개시된 단지 일부 구현예의 개요로서 제공된다. 이러한 구현예 및 기타 구현예에 대한 추가 설명은 본 명세서에서 더 자세히 설명된다.
본 명세서에 개시된 기법은 클라이언트 디바이스에서 로컬로, 하나 이상의 네트워크를 통해 클라이언트 디바이스에 연결된 서버(들)에 의해 원격으로 및/또는 둘 모두를 통해 구현될 수 있음을 이해해야 한다.
도 1은 본 개시의 다양한 양태를 시연하고 본 명세서에 개시된 구현예가 구현될 수 있는 예시적 환경의 블록도를 도시한다.
도 2는 다양한 구현예에 따라 어시스턴트 출력(들)을 생성할 때 대규모 언어 모델을 활용하는 예시적 프로세스 흐름을 도시한다.
도 3은 다양한 구현예에 따라 온라인 방식으로 후속 사용을 위해 오프라인 방식으로 어시스턴트 출력(들)을 생성할 때 대규모 언어 모델을 활용하는 예시적 방법을 나타내는 흐름도를 도시한다.
도 4는 다양한 구현예에 따라 어시스턴트 쿼리 생성에 기초하여 어시스턴트 출력(들)을 생성할 때 대규모 언어 모델을 활용하는 예시적 방법을 나타내는 흐름도를 도시한다.
도 5는 다양한 구현예에 따라 어시스턴트 성격 응답 생성에 기초하여 어시스턴트 출력(들)을 생성할 때 대규모 언어 모델을 활용하는 예시적 방법을 나타내는 흐름도를 도시한다.
도 6은 다양한 구현에 따라 자동화된 어시스턴트가 어시스턴트 출력(들)을 생성할 때 대규모 언어 모델(들)을 활용하는 사용자와 자동화된 어시스턴트 사이의 대화 세션의 비제한적인 예를 도시한다.
도 7은 다양한 구현예에 따른 컴퓨팅 디바이스의 예시적 아키텍처를 도시한다.
이제 도 1로 돌아가면, 본 개시의 다양한 양태를 시연하고 본 명세서에 개시된 구현예가 구현될 수 있는 예시적 환경(100)의 블록도가 도시된다. 예시적 환경(100)은 클라이언트 디바이스(110) 및 자연스러운 대화 시스템(120)을 포함할 수 있다. 일부 구현예에서, 자연스러운 대화 시스템(120)은 클라이언트 디바이스(110) 상에서 로컬적으로 구현될 수 있다. 추가적 또는 대안적 구현예에서, 자연스러운 대화 시스템(120)은 도 1에 도시된 바와 같이 클라이언트 디바이스(110)로부터 원격으로 구현될 수 있다(예: 원격 서버). 이러한 구현예에서, 클라이언트 디바이스(110) 및 자연스러운 대화 시스템(120)은 하나 이상의 유선 또는 무선 근거리 통신망(Wi-Fi LAN을 포함하는 "LAN", 메시 네트워크, Bluetooth, 근거리 통신 등) 또는 광역 네트워크(인터넷을 포함한 "WAN")와 같은 하나 이상의 네트워크(199)를 통해 서로 통신적으로 연결될 수 있다.
클라이언트 디바이스(110)는 예를 들어, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿, 모바일폰, 차량의 컴퓨팅 디바이스(예를 들어, 차량 내 통신 시스템, 차량 내 엔터테인먼트 시스템, 차량 내 네비게이션 시스템), 단독형 인터렉티브 스피커(선택적으로 디스플레이 포함), 스마트 텔레비전과 같은 스마트 기기 및/또는 컴퓨팅 디바이스를 포함하는 사용자의 웨어러블 장치(예를 들어, 컴퓨팅 디바이스를 구비한 사용자의 시계, 컴퓨팅 디바이스를 구비한 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 디바이스)일 수 있다. 추가적 및/또는 대안적 클라이언트 디바이스이 제공될 수 있다.
클라이언트 디바이스(110)는 자동화된 어시스턴트 클라이언트(114)를 실행한다. 자동화된 어시스턴트 클라이언트(114)의 인스턴스는 클라이언트 디바이스(110)의 운영 체제와 별개의 애플리케이션일 수 있거나(예를 들어, 운영 체제 "상에" 설치됨), 또는 대안적으로 클라이언트 디바이스(110)의 운영 체제에 의해 직접 구현될 수 있다. 자동화된 어시스턴트 클라이언트(114)는 도 1에 도시된 바와 같이 클라이언트 디바이스(110)에서 로컬로 구현되거나 원격으로 구현되고 하나 이상의 네트워크(199)를 통해 호출되는 자연스러운 대화 시스템(120)과 인터렉션할 수 있다. 자동화된 어시스턴트 클라이언트(114)(및 선택적으로 다른 원격 시스템(예: 서버(들)과의 인터렉션들에 의한)는 사용자의 관점에서 사용자가 사람-대-컴퓨터 대화에 참여할 수 있게 하는 자동화된 어시스턴트(115)의 논리적 인스턴스로 보이는 것을 형성할 수 있다. 이러한 자동화된 어시스턴트(115)의 인스턴스가 도 1에 도시되고, 클라이언트 디바이스(110)의 자동화된 어시스턴트 클라이언트(114)와 자연스러운 대화 시스템(120)을 포함하는 점선으로 둘러싸여 있다. 따라서, 클라이언트 디바이스(110)상에서 실행되는 자동화된 어시스턴트 클라이언트(114)를 사용하는 사용자는 사실상 자동화된 어시스턴트(115)의 자신의 논리적 인스턴스(또는 가정 또는 다른 그룹의 사용자 사이에서 공유되는 자동화된 어시스턴트(115)의 논리적 인스턴스)를 사용할 수 있음을 이해해야 한다. 간결함과 단순화를 위해, 본 명세서에 사용된 자동화된 어시스턴트(115)는 클라이언트 디바이스(110)에서 로컬로 실행되고 및/또는 자연스러운 대화 시스템(120)을 구현할 수 있는 하나 이상의 원격 서버에서 원격으로 실행되는 자동화된 어시스턴트 클라이언트(114)를 지칭할 것이다.
다양한 구현예에서, 클라이언트 디바이스(110)는 하나 이상의 사용자 인터페이스 입력 디바이스를 사용하여 클라이언트 디바이스(110)의 사용자에 의해 제공된 사용자 입력을 검출하도록 구성된 사용자 입력 엔진(111)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)는 클라이언트 디바이스(110)의 환경에서 사용자의 음성 발화 또는 기타 소리에 대응하는 오디오 데이터와 같은 오디오 데이터를 캡처하는 하나 이상의 마이크가 장착될 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)는 비전 컴포넌트 중 하나 이상의 시야에서 검출된 이미지 및/또는 움직임(예를 들어, 제스처)에 대응하는 비전 데이터를 캡처하도록 구성된 하나 이상의 비전 컴포넌트를 갖추고 있을 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)에는 클라이언트 디바이스(110)에 대한 터치 입력에 대응하는 신호(들)를 캡처하도록 구성되는 하나 이상의 터치 감지 컴포넌트(예를 들어, 키보드 및 마우스, 스타일러스, 터치 스크린, 터치 패널, 하나 이상의 하드웨어 버튼 등)가 장착될 수 있다.
다양한 구현예에서, 클라이언트 디바이스(110)는 하나 이상의 사용자 인터페이스 출력 디바이스를 사용하여 클라이언트 디바이스(110)의 사용자에게 청각적 및/또는 시각적 제시를 위한 콘텐츠를 제공하도록 구성된 렌더링 엔진(112)을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)에는 클라이언트 디바이스(110)를 통해 사용자에게 청각적 제시하기 위해 콘텐츠가 제공되게 하는 하나 이상의 스피커가 장착될 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)에는 클라이언트 디바이스(110)를 통해 사용자에게 시각적으로 제시하기 위해 콘텐츠가 제공되게 하는 디스플레이 또는 프로젝터가 장착될 수 있다.
다양한 구현예에서, 클라이언트 디바이스(110)는 대응하는 사용자(들)로부터 승인을 받아 검출된 존재, 특히 사람의 존재를 표시하는 신호를 제공하도록 구성된 하나 이상의 존재 센서(113)를 포함할 수 있다. 상기 구현예 중 일부에서, 자동화된 어시스턴트(115)는 클라이언트 디바이스에서(또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스에서)의 사용자의 존재에 적어도 부분적으로 기초하여 음성 발화를 만족시키기 위해 클라이언트 디바이스(110)(또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스)를 식별할 수 있다. 발화 발화는 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스(들)에서 (예를 들어, 렌더링 엔진(112)을 통해) 응답 콘텐츠를 렌더링함으로써, 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스(들)가 제어되게 하고 및/또는 클라이언트 디바이스(110) 및/또는 클라이언트 디바이스(110)의 사용자와 연관된 다른 컴퓨팅 디바이스(들)가 음성 발화를 만족시키기 위해 임의의 기타 액션을 수행하게 함으로써 만족될 수 있다. 본 명세서에 설명된 바와 같이, 자동화된 어시스턴트(115)는 사용자가 근처에 있거나 최근에 근접했던 곳에 기초하여 클라이언트 디바이스(110)(또는 기타 클라이언트 디바이스(들))를 결정할 때 존재 센서(113)에 기초하여 결정된 데이터를 활용하고, 대응하는 명령을 해당 클라이언트 디바이스(110)(또는 기타 컴퓨팅 디바이스(들))에만 제공할 수 있다. 일부 추가적 또는 대안적 구현예에서, 자동화된 어시스턴트(115)는 임의의 사용자(들)(임의의 사용자 또는 특정 사용자)가 현재 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스)에 근접해 있는지 여부를 결정하는데 존재 센서(113)에 기초하여 결정된 데이터를 활용할 수 있고, 선택적으로 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스(들)에 근접한 사용자(들)에 기초하여 클라이언트 디바이스(110)(또는 다른 컴퓨팅 디바이스(들))로 및/또는 그로부터 데이터가 제공되는 것을 억제할 수 있다.
존재 센서(113)는 다양한 형태일 수 있다. 예를 들어, 클라이언트 디바이스(110)는 사용자의 존재를 검출하기 위해 사용자 입력 엔진(111)에 대해 위에서 설명된 사용자 인터페이스 입력 컴포넌트 중 하나 이상을 활용할 수 있다. 추가적으로 또는 대안적으로, 클라이언트 디바이스(110)는 시야 내의 오브젝트로부터 방사되는 적외선("IR") 광을 측정하는 패시브 적외선("PIR") 센서와 같은 다른 유형의 광 기반 존재 센서(113)가 장착될 수 있다.
추가적으로 또는 대안적으로, 일부 구현예에서, 존재 센서(113)는 사람 존재 또는 디바이스 존재와 연관된 다른 현상을 검출하도록 구성될 수 있다. 예를 들어, 일부 실시예에서, 클라이언트 디바이스(110)는 예를 들어, 사용자에 의해 휴대/작동되는 다른 컴퓨팅 디바이스(예를 들어, 모바일 디바이스, 웨어러블 컴퓨팅 디바이스 등) 및/또는 다른 컴퓨팅 디바이스에 의해 발산된 다양한 유형의 무선 신호(예를 들어, 라디오와 같은 음파, 초음파, 전자기 등)를 검출하는 존재 센서(113)를 구비할 수 있다. 예를 들어, 클라이언트 디바이스(110)는 다른 컴퓨팅 디바이스(들)에 의해 검출될 수 있는 초음파 또는 적외선과 같이 사람이 인식할 수 없는 파동을 방출하도록 구성될 수 있다(예를 들어, 초음파 지원 마이크와 같은 초음파/적외선 수신기를 통해).
추가적으로, 또는 대안적으로, 클라이언트 디바이스(110)는 사용자에 의해 휴대/작동되는 다른 컴퓨팅 디바이스(들)(예를 들어, 모바일 디바이스, 웨어러블 컴퓨팅 디바이스 등)에 의해 검출되고 사용자의 특정한 위치를 결정하는데 사용되는 무선파(예를 들어, Wi-Fi, 블루투스, 셀룰러 등)와 같은 다른 유형의 사람이 감지할 수 없는 파동을 방출할 수 있다. 일부 구현예에서, GPS 및/또는 Wi-Fi 삼각 측량은 예를 들어 클라이언트 디바이스(110)에 대한 또는 그로부터의 GPS 및/또는 Wi-Fi 신호에 기초하여 사람의 위치를 검출하는데 사용될 수 있다. 다른 구현예에서, 비행 시간(time-of-flight), 신호 강도 등과 같은 다른 무선 신호 특성은 사용자가 휴대/작동하는 다른 컴퓨팅 디바이스(들)에 의해 방출된 신호에 기초하여 특정한 사람의 위치를 결정하기 위해 클라이언트 디바이스(110)에 의해 단독으로 또는 집합적으로 사용될 수 있다. 추가적으로 또는 대안적으로, 일부 구현예에서, 클라이언트 디바이스(110)는 사용자의 목소리로부터 사용자를 인식하기 위한 화자 식별(SID) 및/또는 사용자의 얼굴을 캡처하는 비전 데이터로부터 사용자를 인식하기 위한 얼굴 식별(FID)을 수행할 수 있다.
일부 구현예에서, 스피커의 움직임은 예를 들어 클라이언트 디바이스(110)의 존재 센서(113)(및 선택적으로 클라이언트 디바이스(110)의 GPS 센서, Soli 칩 및/또는 가속도계)에 의해 결정될 수 있다. 일부 구현예에서, 이러한 검출된 움직임에 기초하여, 사용자의 위치가 예측될 수 있으며, 이 위치는 임의의 콘텐츠가 사용자의 위치에 대한 클라이언트 디바이스(110) 및/또는 다른 컴퓨팅 디바이스(들)의 근접성에 적어도 부분적으로 기초하여 클라이언트 디바이스(110) 및/또는 다른 컴퓨팅 디바이스(들)에서 렌더링되게 한 경우 사용자의 위치인 것으로 가정된다. 일부 구현예에서, 사용자는 특히 마지막 참여 이후 많은 시간이 지나지 않았다면, 자동화된 어시스턴트(115)와 참여한 마지막 위치에 있는 것으로 단순히 가정될 수 있다.
또한, 클라이언트 디바이스(110) 및/또는 자연스러운 대화 시스템(120)은 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터에 액세스하고 애플리케이션을 실행하기 위한 하나 이상의 프로세서 및 하나 이상의 네트워크(199)를 통해 통신을 지원하는 다른 컴포넌트를 포함할 수 있다. 일부 구현예에서, 하나 이상의 소프트웨어 애플리케이션은 클라이언트 디바이스(110)에 로컬로 설치될 수 있는 반면, 다른 구현예에서, 하나 이상의 소프트웨어 애플리케이션은 원격으로(예를 들어, 하나 이상의 서버에 의해) 호스팅될 수 있고 하나 이상의 네트워크(199)를 통해 클라이언트 디바이스(110)에 의해 액세스될 수 있다.
일부 구현예에서, 자동화된 어시스턴트(115)에 의해 수행되는 동작은 자동화된 어시스턴트 클라이언트(114)를 통해 클라이언트 디바이스(110)에서 로컬로 구현될 수 있다. 도 1에 도시된 바와 같이, 자동화된 어시스턴트 클라이언트(114)는 ASR(Automatic Speech Recognition) 엔진(130A1), NLU(Natural Language Understanding) 엔진(140A1), LLM(Large Language Model) 엔진(150A1) 및 TTS(Text-to-Speech) 엔진(160A1)을 포함할 수 있다. 일부 구현예에서, 자동화된 어시스턴트(115)에 의해 수행되는 동작은 자연스러운 대화 시스템(120)이 도 1에 도시된 바와 같이 클라이언트 디바이스(110)로부터 원격으로 구현되는 경우와 같이 다수의 컴퓨터 시스템에 걸쳐 분산될 수 있다. 이러한 구현예에서, 자동화된 어시스턴트(115)는 자연스러운 대화 시스템(120)의 ASR 엔진(130A2), NLU 엔진(140A2), LLM 엔진(150A2) 및 TTS 엔진(160A2)을 추가적으로 또는 대안적으로 활용할 수 있다.
이들 엔진 각각은 하나 이상의 기능을 수행하도록 구성될 수 있다. 예를 들어, ASR 엔진(130A1 및/또는 130A2)은 기계 학습(ML) 모델(들) 데이터베이스(115A)에 저장된 스트리밍 ASR 모델(들)(예를 들어, 순환 신경망(RNN) 모델, 트랜스포머 모델, 및/또는 ASR을 수행할 수 있는 임의의 다른 유형의 ML 모델)을 사용하여 음성 발화를 캡처하고 ASR 출력 스트림을 생성하기 위해 클라이언트 디바이스(110)의 마이크(들)에 의해 생성되는 오디오 데이터 스트림을 프로세싱할 수 있다. 특히, 스트리밍 ASR 모델은 오디오 데이터 스트림이 생성됨에 따라 ASR 출력 스트림을 생성하는데 활용될 수 있다. 또한, NLU 엔진(140A1 및/또는 140A2)은 ML 모델(들) 데이터베이스(115A)에 저장된 NLU 모델(예를 들어, LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit), 및 /또는 NLU를 수행할 수 있는 다른 유형의 RNN 또는 다른 ML 모델) 및/또는 문법 기반 규칙(들)을 사용하여, ASR 출력 스트림을 생성하기 위해 NLU 출력 스트림을 프로세싱할 수 있다. 더욱이, 자동화된 어시스턴트(115)는 NLU 출력이 프로세싱되어 이행 데이터의 스트림을 생성하게 할 수 있다. 예를 들어, 자동화된 어시스턴트(115)는 하나 이상의 네트워크(199)(또는 하나 이상의 애플리케이션 프로그래밍 인터페이스(API))를 통해 하나 이상의 제1-당사자(1P) 시스템(191) 및/또는 하나 이상의 네트워크(199)를 통해 하나 이상의 서드파티(3P) 시스템(192)에 하나 이상의 구조화된 요청을 전송할 수 있고, 이행 데이터 스트림을 생성하기 위해 하나 이상의 1P 시스템(191) 및/또는 3P 시스템(192)으로부터 이행 데이터를 수신한다. 하나 이상의 구조화된 요청은 예를 들어 이행 데이터 스트림에 포함된 NLU 데이터를 포함할 수 있다. 이행 데이터 스트림은 예를 들어 ASR 엔진(130A1 및/또는 130A2)에 의해 프로세싱되는 오디오 데이터 스트림에서 캡처된 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답일 것으로 예측되는 어시스턴트 출력 세트에 대응할 수 있다.
또한, LLM 엔진(150A1 및/또는 150A2)은 ASR 엔진(130A1 및/또는 130A2)에 의해 프로세싱된 오디오 데이터 스트림에 캡처된 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답일 것으로 예측되는 어시스턴트 출력 세트를 프로세싱할 수 있다. 본 명세서에 설명된 바와 같이(예를 들어, 도 2-6과 관련하여), 일부 구현예에서, LLM 엔진(150A1 및/또는 150A2)은 수정된 어시스턴트 출력 세트를 생성하기 위해 하나 이상의 LLM 출력을 사용하여 어시스턴트 출력 세트가 수정되게 할 수 있다. 상기 구현예 중 일부 버전에서(예를 들어, 도 3과 관련하여 설명된 바와 같이), 자동화된 어시스턴트(115)는 LLM 출력 중 하나 이상이 오프라인 방식으로 생성되게 하고(예를 들어, 대화 세션 동안 수신되는 음성 발화에 응답하지 않음), 후속적으로 수정된 어시스턴트 출력 세트를 생성하기 위해 온라인 방식(예를 들어, 대화 세션 중에 음성 발화가 수신될 때)으로 활용될 수 있다. 이러한 구현예의 추가적 또는 대안적 버전에서(예를 들어, 도 4 및 도 5와 관련하여 설명된 바와 같이), 자동화된 어시스턴트(115)는 LLM 출력 중 하나 이상이 온라인 방식으로 생성되게 할 수 있다(예를 들어, 대화 세션 동안 음성 발화가 수신될 때). 이러한 구현예에서, 하나 이상의 LLM 출력은 모델(들) 데이터베이스(115A)에 저장된 하나 이상의 LLM(예를 들어, Meena, RNN 및/또는 임의의 LLM과 같은 하나 이상의 트랜스포머 모델)을 사용하여, 어시스턴트 출력 세트(예를 들어, 이행 데이터 스트림), 음성 발화가 수신되는 대화 세션의 컨텍스트(예를 들어, 컨텍스트 데이터베이스(110A)에 저장된 하나 이상의 컨텍스트 신호에 기초하여), 음성 발화에 포함된 어시스턴트 쿼리에 대응하는 인식된 텍스트 및/또는 자동화된 어시스턴트(115)가 LLM 출력 중 하나 이상을 생성할 때 활용할 수 있는 다른 정보를 프로세싱하는 것에 기초하여 생성될 수 있다. 하나 이상의 LLM 출력 각각은 예를 들어 하나 이상의 어휘에 걸친 하나 이상의 단어 및/또는 문구의 시퀀스에 대한 확률 분포를 포함할 수 있고, 확률 분포에 기초하여 시퀀스에서 하나 이상의 단어 및/또는 문구를 하나 이상의 LLM 출력으로 선택할 수 있다. 다양한 구현예에서, 하나 이상의 LLM 출력은 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정하는데 후속적 활용을 위해 LLM 출력(들) 데이터베이스(150A)에 저장될 수 있다.
더욱이, 일부 구현예에서, TTS 엔진(160A1 및/또는 160A2)은 ML 모델(들) 데이터베이스(115A)에 저장된 TTS 모델(들)을 사용하여, 텍스트 데이터(예를 들어, 자동화된 어시스턴트(115)에 의해 공식화된 텍스트)를 프로세싱하여 컴퓨터 생성 합성 스피치를 포함하는 합성된 스피치 오디오 데이터를 생성한다. 텍스트 데이터는 예를 들어 이행 데이터 스트림에 포함된 어시스턴트 출력 세트로부터의 하나 이상의 어시스턴트 출력, 수정된 어시스턴트 출력 세트로부터의 하나 이상의 수정된 어시스턴트 출력 및/또는 본 명세서에 기술된 임의의 기타 텍스트 데이터에 대응할 수 있다. 특히, ML 모델(들) 데이터베이스(115A)에 저장된 ML 모델(들)은 클라이언트 디바이스(110)에 로컬로 저장된 온디바이스 ML 모델이거나 클라이언트 디바이스(110) 및/또는 자연스러운 대화 시스템(120)이 클라이언트 디바이스(110)에서 로컬로 구현되지 않는 경우 원격 시스템 둘 모두가 액세스 가능한 공유 ML 모델일 수 있다. 추가적 또는 대안적 구현예에서, 이행 데이터 스트림에 포함된 어시스턴트 출력 세트로부터의 하나 이상의 어시스턴트 출력에 대응하는 오디오 데이터, 수정된 어시스턴트 출력 세트로부터의 하나 이상의 수정된 어시스턴트 출력 및/또는 여기에 설명된 임의의 다른 텍스트 데이터는 메모리 또는 클라이언트 디바이스(110)에 의해 액세스 가능한 하나 이상의 데이터베이스에 저장될 수 있으므로, 자동화된 어시스턴트는 오디오 데이터를 사용자에게 청각적으로 제시하기 위해 제공할 때 임의의 합성 스피치 오디오 데이터를 생성하기 위해 TTS 엔진(160A1 및/또는 160A2)을 사용할 필요가 없도록 한다.
다양한 구현예에서, ASR 출력 스트림은 예를 들어, 오디오 데이터 스트림에서 캡처된 사용자의 음성 발화(들)에 대응하는 것으로 예측되는 ASR 가설 스트림(예: 용어 가설 및/또는 전사 가설), 각 ASR 가설에 대한 하나 이상의 대응하는 예측된 값(예: 확률, 로그 가능성 및/또는 기타 값), 오디오 데이터 스트림에서 캡처된 사용자의 음성 발화(들)에 대응하는 것으로 예측되는 복수의 음소들 및/또는 기타 ASR 출력을 포함할 수 있다. 이러한 구현예의 일부 버전에서, ASR 엔진(130A1 및/또는 130A2)은 ASR 가설 중 하나 이상을 음성 발화에 대응하는 인식된 텍스트로 선택할 수 있다(예를 들어 대응 예측 값에 기초하여).
다양한 구현예에서, NLU 출력의 스트림은 예를 들어, 인식된 텍스트의 용어 중 하나 이상(예를 들어, 모두)에 대해 인식된 텍스트의 하나 이상의 주석을 포함하는 주석이 달린 인식된 텍스트의 스트림을 포함할 수 있다. 예를 들면, NLU 엔진(140A1 및/또는 140A2)은 용어들에 그들의 문법적 역할들로 주석을 달도록 구성된 품사 태그기(도시되지 않음)를 포함할 수 있다. 추가적으로 또는 대안적으로, NLU 엔진(140A1 및/또는 140A2)은 사람들(예를 들어, 문학적 캐릭터, 유명인, 공인 등을 포함), 조직들, 위치들(실제 및 가상) 등에 대한 참조들과 같은 인식된 텍스트의 하나 이상의 세그먼트들에서 엔터티 참조들을 주석을 달도록 구성된 엔터티 태그기(entity tagger)(도시되지 않음)를 포함할 수 있다. 일부 구현예에서, 엔터티들에 관한 데이터는 지식 그래프(도시되지 않음)와 같은 하나 이상의 데이터베이스에 저장될 수 있다. 일부 구현예에서, 지식 그래프는 알려진 엔터티(및 경우에 따라 엔터티 속성)를 나타내는 노드뿐만 아니라 노드를 연결하고 엔터티 사이의 관계를 나타내는 에지를 포함할 수 있다. 엔터티 태그기는 높은 입상도(예를 들어, 사람들과 같은 엔터티 클래스에 대한 모든 참조들의 식별을 가능하게 하기 위해) 및/또는 낮은 입상도(예를 들어, 특정한 사람과 같은 특정한 엔터티에 대한 모든 참조들의 식별을 가능하게 하기 위해)에서 엔터티에 대한 참조들을 주석을 달을 수 있다. 엔터티 태그기는 특정한 엔터티를 리졸브(resolve)하기 위해 자연어 입력의 콘텐츠에 의존할 수 있고 및/또는 선택적으로 특정한 엔터티를 리졸브하기 위해 지식 그래프 또는 다른 엔터티 데이터베이스와 통신할 수 있다.
추가적으로 또는 대안적으로, NLU 엔진(140A1 및/또는 140A2)은 추가적으로 및/또는 대안적으로 하나 이상의 컨텍스트적 큐(cue)들에 기초하여 동일한 엔터티에 대한 참조인 그룹 또는 "클러스터"로 구성된 공동참조 리졸버(coreference resolver)(도시되지 않음)를 포함할 수 있다. 예를 들어, 공동참조 리졸버는 자연어 입력 "buy them"을 수신하기 바로 직전에 렌더링된 클라이언트 디바이스 알림에서 언급된 "theatre tickets"에 기초하여, 자연어 입력 "buy them"에서 "them"이라는 용어를 "buy theatre tickets"으로 해석하는데 활용될 수 있다. 일부 구현예에서, NLU 엔진(140A1 및/또는 140A2)의 하나 이상의 컴포넌트는 NLU 엔진(140A1 및/또는 140A2)의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다. 예를 들면, 일부 구현예에서, 엔터티 태그기는 특정한 엔터티에 대한 모든 언급에 주석을 다는 것에 있어 공동참조 리졸버로부터의 주석에 의존할 수 있다. 또한, 예를 들면, 일부 구현예에서, 공동참조 리졸버는 동일한 엔터티에 대한 참조를 클러스터링하는 것에 있어 엔터티 태그기로부터의 주석에 의존할 수 있다.
비록 도1은 단일 사용자를 갖는 단일의 클라이언트 디바이스에 대해 설명되었지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 사용자의 하나 이상의 추가 클라이언트 디바이스도 본 명세서에 설명된 기법을 구현할 수 있다. 예를 들어, 클라이언트 디바이스(110), 하나 이상의 추가적인 클라이언트 디바이스, 및/또는 사용자의 임의의 다른 컴퓨팅 디바이스는 본 명세서에 설명된 기법을 이용할 수 있는 디바이스들의 생태계를 형성할 수 있다. 이러한 추가 클라이언트 디바이스 및/또는 컴퓨팅 디바이스는 (예를 들어, 네트워크(들)(199)를 통해) 클라이언트 디바이스(110)와 통신할 수 있다. 또 다른 예로서, 주어진 클라이언트 디바이스는 공유 설정(예: 사용자 그룹, 가구)에서 여러 사용자에 의해 활용될 수 있다.
본 명세서에 설명된 바와 같이, 자동화된 어시스턴트(115)는 LLM 출력 중 하나 이상을 사용하여 어시스턴트 응답 세트를 수정할지 여부를 결정하고 및/또는 LLM 출력 중 하나 이상에 기초하여 하나 이상의 수정된 어시스턴트 출력 세트를 결정할 수 있다. 자동화된 어시스턴트(115)는 자연스러운 대화 시스템(120)을 활용하여 이러한 결정을 내릴 수 있다. 다양한 구현예에서, 그리고 도 1에 도시된 바와 같이, 자연스러운 대화 시스템(120)은 추가적으로 또는 대안적으로 오프라인 출력 수정 엔진(170), 온라인 출력 수정 엔진(180) 및/또는 순위 엔진(190)을 포함할 수 있다. 오프라인 출력 수정 엔진(170)은 예를 들어, 어시스턴트 활동 엔진(171) 및 인덱싱 엔진(172)을 포함할 수 있다. 또한, 온라인 출력 수정 엔진(180)은, 예를 들어, 어시스턴트 쿼리 엔진(181) 및 어시스턴트 성격 엔진(182)을 포함할 수 있다. 자연스러운 대화 시스템(120)의 이러한 다양한 엔진은 도 2-5를 참조하여 더 자세히 설명된다.
이제 도 2를 참조하면, 어시스턴트 출력(들)을 생성할 때 LLM을 활용하는 예시적 프로세스 흐름(200)이 도시된다. 도 1의 클라이언트 디바이스의 하나 이상의 마이크에 의해 생성된 오디오 데이터(201)의 인스턴스는 ASR 출력(203) 스트림을 생성하기 위해 ASR 엔진(130A1 및/또는 130A2)에 의해 프로세싱될 수 있다. 또한, ASR 출력(203)은 NLU 출력(204)의 스트림을 생성하기 위해 NLU 엔진(140A1 및/또는 140A2)에 의해 프로세싱될 수 있다. 일부 구현예에서, NLU 엔진(140A1 및/또는 140A2)은 클라이언트 디바이스(110)의 사용자와 사용자의 클라이언트 디바이스(110)에서 적어도 부분적으로 실행되는 자동화된 어시스턴트(115) 사이의 대화 세션의 컨텍스트(202)를 프로세싱할 수 있다. 이러한 구현예의 일부 버전에서, 대화 세션의 컨텍스트(202)는 클라이언트 디바이스(110)에 의해 생성된 하나 이상의 컨텍스트 신호(예를 들어, 시간, 요일, 클라이언트 디바이스(110)의 위치, 클라이언트 디바이스(110)의 환경에서 검출된 주변 소음 및/또는 클라이언트 디바이스(110)에 의해 생성된 다른 컨텍스트 신호)에 기초하여 결정될 수 있다. 이러한 구현예의 추가 또는 대안 버전에서, 대화 세션의 컨텍스트(202)는 클라이언트 디바이스(110)에서 액세스 가능한 컨텍스트 데이터베이스(110A)에 저장된 하나 이상의 컨텍스트 신호(예를 들어, 사용자 프로필 데이터, 소프트웨어 애플리케이션 데이터, 클라이언트 디바이스(110) 사용자의 알려진 환경에 관한 환경 데이터, 사용자와 자동화된 어시스턴트(115) 사이의 진행 중인 대화 세션의 대화 이력 및/또는 사용자와 자동화된 어시스턴트(115) 사이의 하나 이상의 이전 대화 세션의 이력 대화 이력 및/또는 컨텍스트 데이터베이스(110A)에 저장된 다른 컨텍스트 데이터)에 기초하여 결정될 수 있다. 또한, NLU 출력(204) 스트림은 하나 이상의 어시스턴트 출력(205) 세트를 포함하는 이행 데이터 스트림을 생성하기 위해 1P 시스템(191) 및/또는 3P 시스템 중 하나 이상에 의해 프로세싱될 수 있고, 하나 이상의 어시스턴트 출력 세트(205)에 포함된 하나 이상의 어시스턴트 출력 각각은 오디오 데이터(201) 스트림에서 캡처된 음성 발화에 대한 응답일 것으로 예측된다.
일반적으로, LLM을 활용하지 않는 턴 기반 대화 세션에서, 순위 엔진(190)은 하나 이상의 순위 기준에 따라 하나 이상의 어시스턴트 출력(205) 세트에 포함된 하나 이상의 어시스턴트 출력 각각의 순위를 지정하기 위해 하나 이상의 어시스턴트 출력(205) 세트를 프로세싱할 수 있고, 해당 자동화된 어시스턴트(115)는 음성 발화 수신에 응답하여 클라이언트 디바이스(110)의 사용자에게 제시하기 위해 제공될 하나 이상의 어시스턴트 출력(205) 세트로부터 하나 이상의 주어진 어시스턴트 출력(207)을 선택할 수 있다. 일부 구현예에서, 선택된 하나 이상의 주어진 어시스턴트 출력(207)은 선택된 하나 이상의 주어진 어시스턴트 출력(207)에 대응하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 생성하기 위해 TTS 엔진(160A1 및/또는 160A2)에 의해 프로세싱될 수 있으며, 렌더링은 엔진(112)은 클라이언트 디바이스(110)의 사용자에게 청각적으로 제시하기 위해 합성된 스피치 오디오 데이터가 클라이언트 디바이스(110)의 스피커(들)에 의해 청각적으로 렌더링되게 할 수 있다. 추가적 또는 대안적 구현예에서, 렌더링 엔진(112)은 클라이언트 디바이스(110)의 사용자에게 시각적으로 제시하기 위해 선택된 하나 이상의 주어진 어시스턴트 출력(207)에 대응하는 텍스트 데이터가 클라이언트 디바이스(110)의 디스플레이에 의해 시각적으로 렌더링되게 할 수 있다.
그러나, 청구된 기술을 사용할 때, 자동화된 어시스턴트(115)는 또한 하나 이상의 어시스턴트 출력(205) 세트가 LLM 엔진(150A1 및/또는 150A2)에 의해 프로세싱되어 하나 이상의 수정된 어시스턴트 출력(206) 세트를 생성하게 할 수 있다. 일부 구현예에서, 하나 이상의 LLM 출력은 오프라인 출력 수정 엔진(170)을 사용하여 (예를 들어, 클라이언트 디바이스(110)의 마이크 중 하나 이상에 의해 생성된 오디오 데이터(201) 스트림을 수신하기 전에) 오프라인 방식으로 이전에 생성될 수 있고, 하나 이상의 LLM 출력은 LLM 출력(들) 데이터베이스(150A)에 저장될 수 있다. 도 3과 관련하여 설명한 바와 같이, 하나 이상의 LLM 출력은 대응하는 어시스턴트 쿼리 및/또는 대응하는 어시스턴트 쿼리가 수신된 대응하는 대화 세션의 대응하는 컨텍스트에 기초하여 LLM 출력(들) 데이터베이스(150A)에 이전에 인덱싱될 수 있다. 또한, LLM 엔진(150A1 및/또는 150A2)은 오디오 데이터(201) 스트림에 캡처된 음성 발화에 포함된 어시스턴트 쿼리가 대응하는 어시스턴트 쿼리와 일치하는지 및 어시스턴트 쿼리가 수신된 대화 세션의 컨텍스트(202)가 대응하는 어시스턴트 쿼리가 수신된 대응하는 대화 세션의 대응하는 컨텍스트와 일치하는지 결정할 수 있다. LLM 엔진(150A1 및/또는 150A2)은 하나 이상의 어시스턴트 출력 세트(205)를 수정하기 위해 대응하는 어시스턴트 쿼리에 의해 인덱싱된 하나 이상의 LLM 출력 및/또는 어시스턴트 쿼리와 일치하는 대응 컨텍스트를 획득할 수 있다. 더욱이, 하나 이상의 어시스턴트 출력(205) 세트는 하나 이상의 LLM 출력에 기초하여 수정될 수 있으며, 그에 따라 하나 이상의 수정된 어시스턴트 출력(206) 세트가 생성될 수 있다.
추가적 또는 대안적 구현예에서, 하나 이상의 LLM 출력은 온라인 출력 수정 엔진(180)을 사용하여 (예를 들어, 클라이언트 디바이스(110)의 마이크 중 하나 이상에 의해 생성된 오디오 데이터(201) 스트림을 수신하는 것에 응답하여) 온라인 방식으로 생성될 수 있다. 도 4 및 5와 관련하여 설명된 바와 같이, 하나 이상의 LLM 출력은 ML 모델(들) 데이터베이스(115A)에 저장된 하나 이상의 LLM을 사용하여, 하나 이상의 어시스턴트 출력 세트(205), 오디오 데이터(201) 스트림에서 캡처된 음성 발화에 포함된 어시스턴트 쿼리에 대응하는 인식된 텍스트(예: ASR 출력(203) 스트림에 포함된), 및/또는 하나 이상의 LLM 출력을 생성하기 위한 클라이언트 디바이스(110)의 사용자와 자동화된 어시스턴트(115) 사이의 대화 세션의 컨텍스트(202)를 프로세싱하는 것에 기초하여 생성될 수 있다. 또한, 하나 이상의 어시스턴트 출력(205) 세트는 하나 이상의 LLM 출력에 기초하여 수정될 수 있으며, 그에 따라 하나 이상의 수정된 어시스턴트 출력(206) 세트가 생성될 수 있다. 다르게 말하면, 이들 구현예에서, LLM 엔진(150A1 및/또는 150A2)은 ML 모델(들) 데이터베이스(115A)에 저장된 하나 이상의 LLM을 사용하여 하나 이상의 수정된 어시스턴트 출력 세트(206)를 직접 생성할 수 있다.
이러한 구현예에서, 그리고 LLM을 활용하지 않는 위에 설명된 일반적인 턴 기반 대화 세션과 대조적으로, 순위 엔진(190)은 하나 이상의 어시스턴트 출력(205) 세트 및 하나 이상의 수정된 어시스턴트 출력(206) 세트를 프로세싱하여, 하나 이상의 순위 기준에 따라 하나 이상의 어시스턴트 출력(205) 세트 및 하나 이상의 수정된 어시스턴트 출력(206) 세트 둘 모두에 포함된 하나 이상의 어시스턴트 출력 각각에 순위를 매길 수 있다. 따라서, 하나 이상의 주어진 어시스턴트 출력(207)을 선택할 때, 자동화된 어시스턴트(207)는 하나 이상의 어시스턴트 출력(205) 세트와 하나 이상의 수정된 어시스턴트 출력(206) 세트 중에서 선택할 수 있다. 특히, 하나 이상의 수정된 어시스턴트 출력(206)의 세트에 포함된 어시스턴트 출력은 하나 이상의 어시스턴트 출력(205)의 세트에 기초하여 생성될 수 있고, 동일하거나 유사한 정보를 전달할 수 있을 뿐만 아니라, 대화의 컨텍스트(202)와 관련되고(예를 들어, 도 4와 관련하여 설명된 바와 같음) 및/또는 자동화된 어시스턴트와 자연스럽고, 유동적이고 및/또는 성격을 가지는 추가 정보와 함께 동일하거나 유사한 정보를 전달할 수 있어서, 하나 이상의 주어진 어시스턴트 출력(107)이 클라이언트 디바이스(110)의 사용자와 더 잘 공감하도록 한다.
하나 이상의 순위 기준은, 예를 들어, 하나 이상의 어시스턴트 출력 세트(205) 및 하나 이상의 수정된 어시스턴트 출력 세트(206)에 포함된 어시스턴트 출력 각각이 얼마나 오디오 데이터(201) 스트림에서 캡처된 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답일 것으로 예측되는지를 나타내는 하나 이상의 예측된 측정치(예: 예를 들어, ASR 출력(203)의 스트림을 생성할 때 ASR 엔진(130A1 및/또는 130A2)에 의해 생성된 ASR 측정치, NLU 출력(204)의 스트림을 생성할 때 NLU 엔진(140A1 및/또는 140A2)에 의해 생성된 NLU 측정치), NLU 출력(204) 스트림에 포함된 하나 이상의 의도, 사용자에게 제시하기 위해 제공된 경우 어시스턴트 출력 각각에 자동화된 어시스턴트와 얼마나 자연스러고, 유창하고 및/또는 성격을 가지는지 결정하기 위해 하나 이상의 어시스턴트 출력 세트(205) 및 하나 이상의 수정된 어시스턴트 출력 세트(206) 각각을 프로세싱하는 분류자로부터 도출된 측정치, 및/또는 기타 순위 기준을 포함할 수 있다. 예를 들어, 클라이언트 디바이스(110)의 사용자의 의도가 사용자가 사실적 답변을 원한다는 것을 나타내는 경우(예를 들어 "why is the sky blue?"라는 어시스턴트 쿼리를 포함하는 음성 발화 제공에 기초함), 사용자가 어시스턴트 쿼리에 대한 간단한 답변을 원할 가능성이 높기 때문에 순위 엔진(190)은 하나 이상의 어시스턴트 출력 세트(205)에 포함된 하나 이상의 어시스턴트 출력을 승격할 수 있다. 그러나 클라이언트 디바이스(110)의 사용자의 의도가 사용자가 더 개방형 입력을 제공했음을 나타내는 경우(예를 들어, "what time is it?"라는 어시스턴트 쿼리를 포함하는 음성 발화 제공에 기초함), 순위 엔진(190)은 사용자가 더 대화적인 측면을 선호할 가능성이 높기 때문에 하나 이상의 수정된 어시스턴트 출력 세트(206)에 포함된 하나 이상의 어시스턴트 출력을 승격할 수 있다.
비록 도 1 및 2는 음성 기반 대화 세션과 관련하여 설명되었지만, 이들은 예시를 위해 제공되고 제한하려는 의도가 아님을 이해해야 한다. 오히려, 본 명세서에 설명된 기법은 사용자의 입력 방식에 관계없이 활용될 수 있다는 것이 이해되어야 한다. 예를 들어, 사용자가 어시스턴트 쿼리로서 타이핑된 입력 및/또는 터치 입력을 제공하는 일부 구현예에서, 자동화된 어시스턴트(115)는 NLU 출력(204)의 스트림을 생성하기 위해 NLU 엔진(140A1 및/또는 140A2)을 사용하여 타이핑된 입력을 프로세싱할 수 있고(예: 오디오 데이터 스트림(201)의 프로세싱을 건너뛰기), LLM 엔진(150A1 및/또는 150A2)은 위에서 설명한 것과 동일하거나 유사한 방식으로 하나 이상의 수정된 어시스턴트 출력(206) 세트를 생성할 때 어시스턴트 쿼리에 대응하는 텍스트 입력(예를 들어, 타이핑된 입력 및/또는 터치 입력으로부터 파생됨)을 활용할 수 있다.
이제 도 3으로 돌아가면, 온라인 방식으로 후속 사용을 위해 오프라인 방식으로 어시스턴트 출력(들)을 생성할 때 대규모 언어 모델을 활용하는 예시적 방법(300)을 나타내는 흐름도를 도시한다. 편의상, 방법(300)의 동작은 도 2의 프로세스 흐름(200)으로부터 동작을 수행하는 시스템을 참조하여 기술된다. 방법(300)의 이 시스템은 컴퓨팅 디바이스(들)(예를 들어, 도 1의 클라이언트 디바이스(110), 도 6의 클라이언트 디바이스(610) 및/또는 도 7의 클라이언트 디바이스(710), 하나 이상의 서버 및/또는 기타 컴퓨팅 디바이스)의 하나 이상의 프로세서, 메모리 및/또는 다른 컴포넌트(들)을 포함한다. 추가로, 방법(300)의 동작이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 및/또는 추가될 수 있다.
블록(352)에서, 시스템은 자동화된 어시스턴트로 향하는 복수의 어시스턴트 쿼리들 및 복수의 어시스턴트 쿼리들 각각에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트를 획득한다. 예를 들어, 시스템은 도 1 및 도 2의 오프라인 출력 수정 엔진의 어시스턴트 활동 엔진(171)이 복수의 어시스턴트 쿼리는 예를 들어, 도 1에 도시된 어시스턴트 활동 데이터베이스(170A)로부터 수신되었던 이전 대화 세션의 대응 컨텍스트와 복수의 어시스턴트 쿼리를 얻게 할 수 있다. 일부 구현예에서, 복수의 어시스턴트 쿼리 및 복수의 어시스턴트 쿼리가 수신되었던 이전 대화 세션의 대응 컨텍스트는 클라이언트 디바이스의 사용자(예를 들어, 도 1의 클라이언트 디바이스(110)의 사용자)와 연관된 것으로 제한될 수 있다. 다른 구현예에서, 복수의 어시스턴트 쿼리 및 복수의 어시스턴트 쿼리가 수신되었던 이전 대화 세션의 대응 컨텍스트는 각각의 클라이언트 디바이스의 복수의 사용자(예를 들어, 도 1의 클라이언트 디바이스(110)의 사용자를 포함할 수 있고, 포함하지 않을 수 있음)와 연관된 것들로 제한될 수 있다.
블록(354)에서, 시스템은 하나 이상의 LLM을 사용하여 복수의 어시스턴트 쿼리 중 주어진 어시스턴트 쿼리를 프로세싱하여 하나 이상의 대응하는 LLM 출력을 생성하고, 여기서 하나 이상의 대응하는 LLM 출력 각각은 주어진 어시스턴트 쿼리에 대한 응답일 것으로 예측된다. 하나 이상의 대응하는 LLM 출력 각각은 예를 들어 하나 이상의 어휘에 걸친 하나 이상의 단어 및/또는 문구의 시퀀스에 대한 확률 분포를 포함할 수 있고, 확률 분포에 기초하여 시퀀스에서 하나 이상의 단어 및/또는 문구를 하나 이상의 대응하는 LLM 출력으로 선택할 수 있다. 다양한 구현예에서, 주어진 어시스턴트 쿼리에 대한 하나 이상의 대응하는 LLM 출력을 생성할 때, 시스템은 하나 이상의 LLM을 사용하고 어시스턴트 쿼리와 함께, 어시스턴트 쿼리, 주어진 어시스턴트 쿼리가 수신되었던 대응하는 이전 대화 세션의 대응하는 컨텍스트 및/또는 주어진 어시스턴트 쿼리에 대한 응답일 것으로 예측되는 어시스턴트 출력 세트를 프로세싱할 수 있다(예를 들어, 도 2와 관련하여 설명된 바와 같이 ASR 엔진(130A1 및/또는 130A2), NLU 엔진(140A1 및/또는 140A2), 하나 이상의 1P 시스템(191) 및/또는 3P 시스템(192)을 사용하여 주어진 어시스턴트 쿼리에 대응하는 오디오 데이터를 프로세싱하는 것에 기초하여 생성됨). 일부 구현예에서, 시스템은 주어진 어시스턴트 쿼리에 대응하는 인식된 텍스트를 프로세싱할 수 있는 반면, 추가적 또는 대안적 구현예에서 시스템은 주어진 어시스턴트 쿼리를 포함하는 음성 발화를 캡처하는 오디오 데이터를 프로세싱할 수 있다. 일부 구현예에서, 시스템은 LLM 엔진(150A1)이 사용자(예를 들어, 도 1의 클라이언트 디바이스(110)의 사용자)의 클라이언트 디바이스에서 로컬로 하나 이상의 LLM을 사용하여 주어진 어시스턴트 쿼리를 프로세싱하게 할 수 있고, 반면, 다른 구현예에서, 시스템은 LLM 엔진(150A2)이 사용자의 클라이언트 디바이스로부터 원격으로(예를 들어, 원격 서버(들)에서) 하나 이상의 LLM을 사용하여 주어진 어시스턴트 쿼리를 프로세싱하게 할 수 있다. 본 명세서에 설명된 바와 같이, 하나 이상의 대응하는 LLM 출력은 자동화된 어시스턴트에 의해 제공될 수 있는 일반적인 어시스턴트 출력의 것보다 더 자연스러운 대화 출력을 반영할 수 있으며, 이는 자동화된 어시스턴트가 더 유동적인 방식으로 대화 세션을 구동할 수 있게 하여, 하나 이상의 대응하는 LLM 출력에 기초하여 수정된 어시스턴트 출력은 수정된 어시스턴트 출력을 인식하는 사용자와 공감할 가능성이 더 높다.
일부 구현예에서, 하나 이상의 대응하는 LLM 출력에 더하여, 추가 어시스턴트 쿼리는 LLM 모델 중 하나 이상을 사용하여 주어진 어시스턴트 쿼리 및/또는 주어진 어시스턴트 쿼리가 수신되었던 대응하는 이전 대화 세션의 대응하는 컨텍스트를 프로세싱하는 것에 기초하여 생성될 수 있다. 예를 들어, 주어진 어시스턴트 쿼리 및/또는 주어진 어시스턴트 쿼리가 수신되었던 대응하는 이전 대화 세션의 대응하는 컨텍스트를 프로세싱할 때, LLM 중 하나 이상은 주어진 어시스턴트 쿼리와 연관된 의도를 결정할 수 있다(예를 들어, 도 2의 NLU 엔진(140A1 및/또는 140A2)을 사용하여 생성된 NLU 출력(204) 스트림에 기초함). 또한, 하나 이상의 LLM은 주어진 어시스턴트 쿼리와 연관된 의도에 기초하여, 주어진 어시스턴트 쿼리와 연관된 의도와 관련된 적어도 하나의 관련 의도를 식별할 수 있다(예를 들어, 상기 의도와 클라이언트 디바이스(110)에 액세스할 수 있는 데이터베이스 또는 메모리의 적어도 하나의 관련 의도의 매핑에 기초하여 및/또는 하나 이상의 기계 학습(ML) 모델 또는 경험적으로 정의된 규칙을 사용하여 주어진 어시스턴트 쿼리와 연관된 의도 프로세싱에 기초하여). 더욱이, 하나 이상의 LLM은 적어도 하나의 관련 의도에 기초하여 추가적인 어시스턴트 쿼리를 생성할 수 있다. 예를 들어, 어시스턴트 쿼리가 사용자가 아직 저녁을 먹지 않았음을 나타낸다고 가정한다(예를 들어, "I’m feeling pretty hungry"라는 주어진 어시스턴트 쿼리가 먹고 싶다고 나타내는 사용자의 의도와 연관된 대응하는 이전 대화 세션의 대응하는 컨텍스트에 의해 표시된 사용자의 실제 주거지에서 저녁에 수신됨). 이 예에서, 추가 어시스턴트 쿼리는 예를 들어, "what types of cuisine has the user indicated he/she prefers?"(예를 들어, 먹고 싶다는 사용자의 의도와 연관된 관련 요리 유형 의도를 반영), "what restaurants nearby are open?"(예를 들어, 먹고 싶다고 나타내는 사용자의 의도와 연관된 관련 레스토랑 검색 의도를 반영함) 및/또는 기타 추가 어시스턴트 쿼리에 대응할 수 있다.
이러한 구현예에서, 추가 어시스턴트 쿼리 프로세싱에 기초하여 추가 어시스턴트 출력이 결정될 수 있다. 추가 어시스턴트 쿼리가 "what types of cuisine has the user indicated he/she prefers?"인 위의 예에서, 클라이언트 디바이스(110)에 로컬로 저장된 하나 이상의 1P 시스템(191)으로부터의 사용자 프로필 데이터가 사용자가 지중해 요리와 인도 요리를 선호한다고 표시했는지 확인하기 위해 활용될 수 있다. 사용자가 지중해 요리와 인도 요리를 선호한다는 것을 나타내는 사용자 프로필 데이터에 기초하여, 하나 이상의 대응하는 LLM 출력을 수정하여 지중해 요리 및/또는 인도 요리가 사용자에게 식욕을 돋우는지 여부를 사용자에게 질문할 수 있다(예: "how does Mediterranean cuisine or Indian cuisine sound for dinner").
추가 어시스턴트 쿼리가 "what restaurants nearby are open?"인 위의 예에서, 1P 시스템(191) 및/또는 3P 시스템(192) 중 하나 이상으로부터의 레스토랑 데이터는 사용자의 기본 거주지 근처에 어떤 레스토랑이 열었는지 결정하는데 활용될 수 있다(선택적으로 사용자 프로필 데이터에 기초하여 지중해 요리와 인도 요리를 제공하는 레스토랑으로 제한됨). 결과에 기초하여, 하나 이상의 대응하는 LLM 출력을 수정하여 사용자의 기본 거주지 근처에 영업하는 하나 이상의 레스토랑 목록을 사용자에게 제공할 수 있다(예: "Example Mediterranean Restaurant is open until 9:00 PM and Example Indian Restaurant is open until 10:00 PM"). 특히, 위의 LLM을 사용하여 초기에 생성된 추가 어시스턴트 쿼리(예: 위 예에서 "what types of cuisine has the user indicated he/she prefers?", "what types of cuisine has the user indicated he/she prefers?")는 하나 이상의 대응하는 LLM 출력에 포함되지 않을 수 있으며, 결과적으로 사용자에게 제공되지 않을 수 있다. 오히려, 추가 어시스턴트 쿼리에 기초하여 결정된 추가 어시스턴트 출력(예: "how does Mediterranean cuisine or Indian cuisine sound for dinner" 및 "Example Mediterranean Restaurant is open until 9:00 PM and Example Indian Restaurant is open until 10:00 PM")은 하나 이상의 대응하는 LLM 출력에 포함될 수 있으며, 결과적으로 사용자에게 제시하기 위해 제공될 수 있다.
추가적 또는 대안적 구현예에서, 하나 이상의 대응하는 LLM 출력(및 선택적으로 추가 어시스턴트 쿼리에 기초하여 결정된 추가 어시스턴트 출력(들)) 각각은 하나 이상의 LLM의 복수의 이종 파라미터 세트의 대응하는 파라미터 세트를 사용하여 생성될 수 있다. 복수의 이종 파라미터 세트들 각각은 자동화된 어시스턴트에 대한 이종 성격과 연관될 수 있다. 상기 구현예 중 일부 버전에서, 단일 LLM을 활용하여 이종 성격 각각에 대한 대응하는 파라미터 세트를 사용하여 하나 이상의 대응하는 LLM 출력을 생성할 수 있고, 상기 구현예의 다른 버전에서, 다수의 LLM을 활용하여 이종 성격 각각에 대한 대응하는 파라미터 세트를 사용하여 하나 이상의 대응하는 LLM 출력을 생성할 수 있다. 예를 들어, 단일 LLM을 활용하여 제1 성격을 반영하는 제1 파라미터 세트를 사용하여 제1 LLM 출력을 생성하고(예: 주어진 어시스턴트 쿼리가 "I’m feeling pretty hungry"에 대응하는 위 예의 요리사 성격); 제2 성격을 반영하는 제2 파라미터 세트를 사용하여 제2 LLM 출력을 생성하고(예: 주어진 어시스턴트 쿼리가 "I’m feeling pretty hungry"에 대응하는 위의 예에서 집사 성격); 그리고 복수의 다른 이질적인 성격들에 대해서도 마찬가지이다. 또한, 예를 들어, 제1 LLM은 제1 성격을 반영하는 제1 파라미터 세트를 사용하여 제1 LLM 출력을 생성하는데 활용될 수 있고(예: 주어진 어시스턴트 쿼리가 "I’m feeling pretty hungry"에 대응하는 위의 예에서 요리사 성격); 제2 LLM은 제2 성격을 반영하는 제2 파라미터 세트를 사용하여 제2 LLM 출력을 생성하는데 활용될 수 있고(예: 주어진 어시스턴트 쿼리가 "I’m feeling pretty hungry"에 대응하는 위의 예에서 집사 성격); 그리고 복수의 다른 이질적인 성격들에 대해서도 마찬가지이다. 따라서, 대응하는 LLM 출력이 사용자에게 제시하기 위해 제공되면, 이는 상이한 성격의 운율 속성(예: 이러한 다양한 성격의 억양, 종지, 음높이, 일시정지, 템포, 스트레스, 리듬 등)을 통해 다양한 동적 컨텍스트 성격을 반영할 수 있다. 추가적으로 또는 대안적으로, 사용자는 (예를 들어, 본 명세서에 설명된 자동화된 어시스턴트와 연관된 자동화된 어시스턴트 애플리케이션의 설정을 통해) 지속적인 방식으로(예를 들어, 항상 집사 성격을 사용함) 및/또는 상황에 맞는 방식으로(예: 아침과 저녁에는 집사 성격을 사용하고 오후에는 다른 성격을 사용함) 자동화된 어시스턴트에 의해 활용될 하나 이상의 성격을 정의할 수 있다.
특히, 본 명세서에 기술된 이러한 성격 응답은 서로 다른 성격의 운율 속성을 반영할 뿐만 아니라, 서로 다른 성격의 어휘 및/또는 서로 다른 성격의 서로 다른 말하기 스타일(예: 장황한 말하기 스타일, 간결한 말하기 스타일, 친절한 성격, 냉소적 성격 등)을 반영할 수 있다. 예를 들어, 위에 설명된 요리사 성격은 특정 요리사 어휘를 가질 수 있으므로 요리사 성격에 대한 파라미터 세트를 사용하여 생성된 하나 이상의 대응하는 LLM 출력에 대한 하나 이상의 단어 및/또는 문구의 시퀀스에 대한 확률 분포가 다른 성격(예: 과학자 성격, 사서 성격 등)에 대한 다른 단어 및/또는 문구의 시퀀스보다 요리사가 사용하는 단어 및/또는 문구의 시퀀스를 촉진하도록 할 수 있다. 따라서, 대응하는 LLM 출력 중 하나 이상이 사용자에게 제시하기 위해 제공되면, 다양한 성격의 운율 속성뿐만 아니라 다양한 성격의 정확하고 현실적인 어휘 측면에서 다양한 동적 컨텍스트적 성격을 반영할 수 있고, 하나 이상의 대응하는 LLM 출력이 다양한 컨텍스트적 시나리오에서 사용자에게 더 잘 공감하도록 한다. 더욱이, 다양한 성격의 어휘 및/또는 말하기 스타일이 다양한 수준의 세분화로 정의될 수 있음을 이해해야 한다. 위의 예를 계속하면, 위에서 설명한 셰프 성격은 지중해 요리와 연관된 추가 어시스턴트 쿼리에 기초하여 지중해 요리에 대해 질문할 때 특정 지중해 요리사 어휘를 가질 수 있고, 인도 요리와 연관된 추가 어시스턴트 쿼리에 기초하여 인도 요리에 대해 질문할 때 특정 인도 셰프 어휘를 가질 수 있다.
블록(356)에서, 시스템은 상기 주어진 어시스턴트 쿼리 및/또는 상기 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 기초하여 클라이언트 디바이스(예: 도 1의 LLM 출력(들) 데이터베이스)에서 액세스할 수 있는 메모리에서 하나 이상의 대응하는 LLM 출력을 인덱싱한다. 예를 들어, 시스템은 도 1 및 도 2의 오프라인 출력 수정 엔진의 인덱싱 엔진(172)이 LLM 출력(들) 데이터베이스(150A)에서 하나 이상의 대응하는 LLM 출력을 인덱싱하게 할 수 있다. 일부 구현예에서, 인덱싱 엔진(172)은 주어진 어시스턴트 쿼리에 포함된 하나 이상의 용어 및/또는 어진 어시스턴트 쿼리가 수신되었던 대응하는 이전 대화 세션의 대응하는 컨텍스트에 포함된 하나 이상의 컨텍스트 신호에 기초하여 하나 이상의 대응하는 LLM 출력을 인덱싱할 수 있다. 추가적 또는 대안적 구현예에서, 인덱싱 엔진(172)은 주어진 어시스턴트 쿼리의 임베딩(예를 들어, word2vec 임베딩 또는 임의의 다른 저차원 표현)이 생성되도록 할 수 있으며 및/또는 주어진 어시스턴트 쿼리가 수신되었던 대응하는 이전 대화 세션의 대응하는 컨텍스트에 포함된 하나 이상의 컨텍스트 신호가 생성되도록 할 수 있고, 이러한 임베딩 중 하나 이상이 임베딩 공간(예: 저차원 공간)에 매핑될 수 있다. 이러한 구현예에서, LLM 출력(들) 데이터베이스(150A)에 인덱싱된 하나 이상의 대응하는 LLM 출력은 어시스턴트 출력 세트를 수정하기 위해 온라인 출력 수정 엔진(180)에 의해 후속적으로 활용될 수 있다(예를 들어, 도 3의 방법(300)의 블록(362, 364, 366)과 관련하여 아래에 기술됨). 다양한 구현예에서, 시스템은 추가적으로 또는 대안적으로 주어진 어시스턴트 쿼리(그러나 LLM 엔진(150A1 및/또는 150A2)을 사용하여 생성되지 않음)에 응답할 것으로 예측되는 하나 이상의 어시스턴트 출력(예를 들어, 도 2와 관련하여 설명된 바와 같은 하나 이상의 어시스턴트 출력(205))을 생성할 수 있고, 하나 이상의 대응하는 LLM 출력은 추가적으로 또는 대안적으로 하나 이상의 어시스턴트 출력에 의해 인덱싱될 수 있다.
일부 구현예에서, 그리고 블록(358)에 표시된 바와 같이, 시스템은 대응하는 LLM 출력 중 하나 이상을 검토 및/또는 수정하기 위한 사용자 입력을 선택적으로 수신할 수 있다. 예를 들어, 사람 검토자는 하나 이상의 LLM 모델을 사용하여 생성된 하나 이상의 대응하는 LLM 출력을 분석하고, 하나 이상의 대응하는 LLM 출력에 포함된 하나 이상의 용어 및/또는 문구를 변경함으로써 대응하는 LLM 출력 중 하나 이상을 수정할 수 있다. 또한, 예를 들어 사람 검토자는 하나 이상의 대응하는 LLM 출력의 인덱스를 다시 인덱싱하고, 폐기하고 및/또는 수정할 수 있다. 따라서, 이러한 구현예에서, 하나 이상의 LLM을 사용하여 생성된 하나 이상의 대응하는 LLM 출력은 하나 이상의 대응하는 LLM 출력의 품질을 보장하기 위해 사람 검토자에 의해 선별될 수 있다. 또한 폐기되지 않고 재인덱싱되거나 선별된 LLM 출력을 활용하여 LLM을 오프라인 방식으로 수정하거나 재트레이닝할 수 있다.
블록(360)에서, 시스템은 LLM 중 하나 이상을 사용하여 프로세싱되지 않은 블록(352)에서 획득된 복수의 어시스턴트 쿼리에 포함된 추가 어시스턴트 쿼리가 있는지 여부를 결정한다. 블록(360)의 반복에서, 시스템이 하나 이상의 LLM을 사용하여 프로세싱되지 않은 블록(352)에서 획득된 복수의 어시스턴트 쿼리에 포함된 추가 어시스턴트 쿼리가 있다고 결정하면, 시스템은 블록(354)으로 복귀하고 그리고 주어진 어시스턴트 쿼리가 아닌 추가 어시스턴트와 관련된 블록(354 및 356)의 추가 반복을 수행한다. 이들 동작은 블록(352)에서 획득된 복수의 어시스턴트 쿼리에 포함된 어시스턴트 쿼리 각각에 대해 반복될 수 있다. 다르게 말하면, 시스템은 어시스턴트 쿼리 각각에 대한 하나 이상의 대응하는 LLM 출력 및/또는 복수의 어시스턴트 쿼리 중 대응하는 쿼리가 하나 이상의 대응하는 LLM 출력이 활용되게 하기 전에 수신된 대응하는 이전 대화 세션의 대응하는 컨텍스트를 인덱싱할 수 있다.
블록(360)의 반복에서, 시스템이 하나 이상의 LLM을 사용하여 프로세싱되지 않은 블록(352)에서 획득된 복수의 어시스턴트 쿼리에 포함된 추가 어시스턴트 쿼리가 없다고 결정하면, 시스템은 블록(362)으로 진행할 수 있다. 블록(362)에서, 시스템은 클라이언트 디바이스의 하나 이상의 마이크로폰에 의해 생성된 오디오 데이터 스트림을 모니터링하여 오디오 데이터 스트림이 자동화된 어시스턴트로 향하는 클라이언트 디바이스 사용자의 음성 발화를 캡처하는지 여부를 결정할 수 있다. 예를 들어, 시스템은 오디오 데이터의 스트림에 포함된 하나 이상의 특정 단어 또는 문구를 모니터링할 수 있다(예를 들어, 핫워드 검출 모델을 사용하여 자동화된 어시스턴트를 호출하는 하나 이상의 특정 단어 또는 문구를 모니터링함). 또한, 예를 들어, 시스템은 선택적으로 하나 이상의 다른 신호(예: 클라이언트 디바이스의 비전 센서에 의해 캡처된 하나 이상의 제스처, 클라이언트 디바이스로 향하는 시선 등)에 추가하여 클라이언트 디바이스로 향하는 스피치를 모니터링할 수 있다. 블록(362)의 반복에서, 시스템이 오디오 데이터의 스트림이 자동화된 어시스턴트로 향하는 클라이언트 디바이스 사용자의 음성 발화를 캡처하지 않는다고 결정하면, 시스템은 블록(362)에서 오디오 데이터의 스트림을 계속 모니터링할 수 있다. 블록(362)의 반복에서, 시스템이 오디오 데이터의 스트림이 자동화된 어시스턴트로 향하는 클라이언트 디바이스 사용자의 음성 발화를 캡처한다고 결정하면, 시스템은 블록(364)으로 진행할 수 있다.
블록(364)에서, 시스템은 상기 오디오 데이터 스트림을 프로세싱하는 것에 기초하여, 상기 음성 발화가 복수의 어시스턴트 쿼리들 중 하나에 대응하는 현재 어시스턴트 쿼리를 포함하고 및/또는 상기 음성 발화가 복수의 어시스턴트 쿼리들 중 하나에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 대응하는 현재 대화 세션의 현재 컨텍스트에서 수신되었다고 결정한다. 예를 들어, 시스템은 ASR 엔진(130A1 및/또는 130A2)을 사용하여 오디오 데이터의 스트림(예를 들어, 도 2의 오디오 데이터(201)의 스트림)을 프로세싱하여, ASR 출력의 스트림(예를 들어, 도 2의 ASR 출력(203)의 스트림)을 생성한다. 또한, 시스템은 NLU 출력의 스트림(예를 들어, 도 2의 NLU 출력(204)의 스트림)을 생성하기 위해 NLU 엔진(140A1 및/또는 140A2)을 사용하여 ASR 출력의 스트림을 프로세싱할 수 있다. 또한 ASR 출력 스트림 및/또는 NLU 출력 스트림에 기초하여 시스템은 현재 어시스턴트 쿼리를 식별할 수 있다. 일부 구현예에서, 시스템은 1P 시스템(191) 및/또는 3P 시스템 중 하나 이상이 ASR 출력의 스트림 및/또는 NLU 출력의 스트림을 프로세싱하게 함으로써 하나 이상의 어시스턴트 출력 세트(예를 들어, 도 2의 하나 이상의 어시스턴트 출력(205))를 더 결정할 수 있다.
일부 구현예에서 상기 방법은 도 3에 도시된 바와 같이, 시스템은 현재 어시스턴트 쿼리의 하나 이상의 용어 또는 문구가 대응하는 하나 이상의 대응하는 LLM 출력이 인덱싱되었던 복수의 어시스턴트 쿼리들 중 하나의 하나 이상의 용어 또는 문구에 대응하는지 결정하기 위해 온라인 출력 수정 엔진(180)을 활용할 수 있다(예: 정확한 일치 기법, 소프트 일치 기법, 편집 거리 기법, 음성 유사성 기법, 임베딩 기법 등과 같이 용어나 문구가 서로 일치하는지 여부를 결정하는 알려진 기법을 사용하여). 현재 어시스턴트 쿼리의 하나 이상의 용어 또는 문구가 복수의 어시스턴트 쿼리들 중 하나의 하나 이상의 용어 또는 문구에 대응한다는 결정에 응답하여, 시스템은 (예를 들어, LLM 출력(들) 데이터베이스(150A)로부터) 블록(356)의 반복에서 인덱싱되고 복수의 어시스턴트 쿼리들 중 하나와 연관된 대응하는 LLM 출력 중 하나 이상을 획득할 수 있다. 예를 들어, 현재 쿼리에 "I’m hungry"라는 문구를 포함하면, 시스템은 주어진 어시스턴트 쿼리와 관련하여 설명한 위의 예에서 생성된 대응하는 LLM 출력 중 하나 이상을 획득할 수 있다. 예를 들어, 시스템은 현재 쿼리의 용어와 주어진 어시스턴트 쿼리의 용어 사이의 편집 거리 비교에 기초하여, 위에서 설명한 현재 쿼리와 주어진 어시스턴트 쿼리가 둘 모두 "I’m hungry"라는 문구를 포함하고 있음을 결정할 수 있다. 또한, 예를 들어, 시스템은 현재 어시스턴트 쿼리의 임베딩을 생성하고 현재 쿼리의 임베딩을 블록(356)과 관련하여 위에서 설명한 임베딩 공간에 매핑할 수 있다. 또한, 시스템은 임베딩 공간 내에서 현재 쿼리에 대해 생성된 임베딩과 거리 임계값을 만족하는 주어진 어시스턴트 쿼리에 대해 이전에 생성된 임베딩 사이의 거리에 기초하여, 현재 어시스턴트 쿼리가 주어진 어시스턴트 쿼리에 대응한다고 결정할 수 있다.
도 3의 방법(300)의 추가적 또는 대안적 구현예에서, 시스템은 온라인 출력 수정 엔진(180)을 활용하여 현재 어시스턴트 쿼리가 수신된 경우 검출된 하나 이상의 컨텍스트 신호는 복수의 어시스턴트 쿼리들 중 하나가 수신되었던 하나 이상의 대응하는 컨텍스트 신호에 대응한다고 결정한다(예: 동일한 요일에 수신됨, 동일한 날짜, 동일한 위치, 동일한 주변 소음이 클라이언트 디바이스의 환경에 존재함, 대화 세션 동안 음성 발화의 특정 시퀀스로 수신됨 등). 현재 어시스턴트 쿼리와 연관된 하나 이상의 컨텍스트 신호가 복수의 어시스턴트 쿼리들 중 하나의 하나 이상의 컨텍스트 신호에 대응한다는 결정에 응답하여, 시스템은 (예를 들어, LLM 출력(들) 데이터베이스(150A)로부터) 블록(356)의 반복에서 인덱싱되고 복수의 어시스턴트 쿼리들 중 하나와 연관된 대응하는 LLM 출력 중 하나 이상을 획득할 수 있다. 예를 들어, 현재 쿼리가 사용자의 기본 거주지에서 저녁에 수신되었던 경우, 시스템은 주어진 어시스턴트 쿼리와 관련하여 설명한 위의 예에서 생성된 대응하는 LLM 출력 중 하나 이상을 획득할 수 있다. 예를 들어, 시스템은 현재 쿼리와 설명된 주어진 어시스턴트 쿼리 모두가 "저녁"이라는 시간적 컨텍스트 신호 및 "기본 거주지"라는 위치 컨텍스트 신호와 연관되어 있다고 결정할 수 있다. 또한, 예를 들어, 시스템은 현재 어시스턴트 쿼리와 연관된 하나 이상의 컨텍스트 신호의 임베딩을 생성하고 현재 쿼리와 연관된 하나 이상의 컨텍스트 신호의 임베딩을 블록(356)과 관련하여 위에서 설명한 임베딩 공간에 매핑할 수 있다. 또한, 시스템은 임베딩 공간에서, 현재 쿼리와 연관된 하나 이상의 컨텍스트 신호의 생성된 임베딩과 거리 임계값을 만족하는 주어진 어시스턴트 쿼리와 연관된 하나 이상의 컨텍스트 신호에 대해 이전에 생성된 임베딩 사이의 거리에 기초하여, 현재 어시스턴트 쿼리와 연관된 하나 이상의 컨텍스트 신호가 주어진 어시스턴트 쿼리와 연관된 하나 이상의 컨텍스트 신호에 대응한다고 결정할 수 있다.
특히, 시스템은 현재 어시스턴트 쿼리에 응답하여 사용자에게 제시하기 위해 제공될 하나 이상의 현재 어시스턴트 출력을 생성할 때 하나 이상의 대응하는 LLM 출력이 활용되도록 결정할 때 현재 어시스턴트 쿼리가 수신된 대화 세션의 컨텍스트(예: 검출된 하나 이상의 컨텍스트 신호)와 현재 어시스턴트 쿼리 중 하나 또는 둘 모두를 활용할 수 있다. 다양한 구현예에서, 시스템은 현재 어시스턴트 쿼리에 응답하여 사용자에게 제시하기 위해 제공될 하나 이상의 현재 어시스턴트 출력을 생성할 때 하나 이상의 대응하는 LLM 출력이 활용되도록 결정할 때 현재 어시스턴트 쿼리에 대해 생성된 하나 이상의 어시스턴트 출력을 추가적으로 또는 대안적으로 활용할 수 있다. 예를 들면, 시스템은 추가적으로 또는 대안적으로 현재 어시스턴트 쿼리(그러나 LLM 엔진(150A1 및/또는 150A2)을 사용하여 생성되지 않음)에 응답할 것으로 예측되는 하나 이상의 어시스턴트 출력(예를 들어, 도 2와 관련하여 설명된 바와 같은 하나 이상의 어시스턴트 출력(205))을 생성할 수 있고, 현재 어시스턴트 쿼리에 대한 응답일 것으로 예측된 하나 이상의 어시스턴트 출력이 상기 기술된 다양한 기법을 사용하여 복수의 어시스턴트 쿼리들 중 하나에 대해 하나 이상의 이전에 생성된 어시스턴트 출력에 대응한다고 결정할 수 있다.
블록(366)에서, 시스템은 자동화된 어시스턴트가 클라이언트 디바이스의 사용자에게 제시하기 위해 제공될 하나 이상의 현재 어시스턴트 출력을 생성할 때 대응하는 LLM 출력 중 하나 이상을 활용하게 한다. 예를 들어, 시스템은 하나 이상의 순위 기준에 따라, 하나 이상의 어시스턴트 출력(예를 들어, 도 2와 관련하여 설명된 바와 같이 하나 이상의 어시스턴트 출력(205)) 및 하나 이상의 대응하는 LLM 출력(예를 들어, 도 2와 관련하여 설명된 바와 같은 하나 이상의 수정된 어시스턴트 출력(206))에 순위를 매길 수 있다. 또한, 시스템은 하나 이상의 어시스턴트 출력과 하나 이상의 대응하는 LLM 출력 중에서 하나 이상의 현재 어시스턴트 출력을 선택할 수 있다. 더욱이, 시스템은 클라이언트 디바이스의 사용자에게 제시하기 위해 하나 이상의 현재 어시스턴트 출력이 시각적 및/또는 청각적으로 렌더링되게 할 수 있다.
도 3의 방법(300)의 구현예가 오프라인 방식으로 하나 이상의 대응하는 LLM 출력을 생성하는 것(예: 하나 이상의 LLM을 사용하여 대응하는 LLM 출력을 생성하기 위해 오프라인 출력 수정 엔진(170)을 활용하고, LLM 출력(들) 데이터베이스(150A)에서 하나 이상의 대응하는 LLM 출력을 인덱싱함으로써) 및 온라인 방식으로 하나 이상의 대응하는 LLM 출력을 후속적으로 활용하는 것(예: 현재 어시스턴트 쿼리에 기초하여 LLM 출력(들) 데이터베이스(150A)로부터 활용하기 위해 결정하기 위해 온라인 출력 수정 엔진(180)을 활용함으로써)을 설명하였지만, 이는 예시를 위한 것이며 제한하려고 하는 것이 아님을 이해해야 한다. 예를 들어, 도 4 및 도 5와 관련하여 아래에 설명된 바와 같이, 온라인 출력 수정 엔진(180)은 바람직한 구현예에서 온라인 방식으로 LLM 엔진(150A1 및/또는 150A2)을 추가적으로 또는 대안적으로 활용할 수 있다.
이제 도 4로 돌아가면, 어시스턴트 쿼리 생성에 기초하여 어시스턴트 출력(들)을 생성할 때 대형 언어 모델을 활용하는 예시적 방법(400)을 나타내는 흐름도가 도시되어 있다. 편의상, 방법(400)의 동작은 도 2의 프로세스 흐름(200)으로부터 동작을 수행하는 시스템을 참조하여 기술된다. 방법(400)의 이 시스템은 컴퓨팅 디바이스(들)(예를 들어, 도 1의 클라이언트 디바이스(110), 도 6의 클라이언트 디바이스(610) 및/또는 도 7의 클라이언트 디바이스(710), 하나 이상의 서버 및/또는 기타 컴퓨팅 디바이스)의 하나 이상의 프로세서, 메모리 및/또는 다른 컴포넌트(들)을 포함한다. 추가로, 방법(400)의 동작이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 및/또는 추가될 수 있다.
블록(452)에서, 시스템은 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하며, 음성 발화는 자동화된 어시스턴트로 향하는 어시스턴트 쿼리를 포함하고, 음성 발화는 사용자와 자동화된 어시스턴트 간의 대화 세션 동안 수신된다. 일부 구현예에서, 시스템은 하나 이상의 조건이 만족된다는 결정에 응답하여 어시스턴트 쿼리를 캡처하는지 결정하기 위해 오디오 데이터 스트림만 프로세싱할 수 있다. 예를 들어, 시스템은 오디오 데이터의 스트림에 포함된 하나 이상의 특정 단어 또는 문구를 모니터링할 수 있다(예를 들어, 핫워드 검출 모델을 사용하여 자동화된 어시스턴트를 호출하는 하나 이상의 특정 단어 또는 문구를 모니터링함). 또한, 예를 들어, 시스템은 선택적으로 하나 이상의 다른 신호(예: 클라이언트 디바이스의 비전 센서에 의해 캡처된 하나 이상의 제스처, 클라이언트 디바이스로 향하는 시선 등)에 추가하여 클라이언트 디바이스로 향하는 스피치를 모니터링할 수 있다.
블록(454)에서, 시스템은 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하고, 세트에 포함된 어시스턴트 출력 각각은 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이다. 예를 들어, 시스템은 ASR 엔진(130A1 및/또는 130A2)을 사용하여 오디오 데이터의 스트림(예를 들어, 오디오 데이터(201)의 스트림)을 프로세싱하여, ASR 출력의 스트림(예를 들어, ASR 출력(203))을 생성한다. 또한, 시스템은 NLU 출력의 스트림(예를 들어, NLU 출력(204)의 스트림)을 생성하기 위해 NLU 엔진(140A1 및/또는 140A2)을 사용하여 ASR 출력의 스트림(예: 오디오 데이터(201)의 스트림)을 프로세싱할 수 있다. 더욱이, 시스템은 하나 이상의 1P 시스템(191) 및/또는 3P 시스템(192)이 NLU 출력의 스트림(예를 들어, NLU 출력(204)의 스트림)을 프로세싱하게 하여 어시스턴트 출력 세트(205)(예를 들어, 어시스턴트 출력 세트)를 생성할 수 있다. 특히, 어시스턴트 출력 세트는 음성 발화에 응답할 때 여기에 설명된 기법을 활용하지 않는 것(즉, 본 명세서에 기술된 어시스턴트 출력을 수정하는 것에서 LLM 엔진(150A1) 및/또는 LLM 엔진(150A1)을 활용하지 않는 기법)을 고려할 수 있는 하나 이상의 후보 어시스턴트 출력에 대응할 수 있다.
블록(456)에서, 시스템은 어시스턴트 출력 세트와 대화 세션의 컨텍스트를 프로세싱하여 (1) LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하고, 상기 하나 이상의 LLM 출력 각각은 대화 세션의 컨텍스트와 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 적어도 기초하여 결정되며, 그리고 (2) 대화 세션의 컨텍스트의 적어도 일부 및 음성 발화에 포함된 어시스턴트 쿼리의 적어도 일부에 기초하여 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성한다. 다양한 구현예에서, 각각의 LLM 출력은 오디오 데이터 스트림에서 캡처된 음성 발화에 포함된 어시스턴트 쿼리에 기초하여 추가로 결정될 수 있다. 일부 구현예에서, 수정된 어시스턴트 출력 세트를 생성할 때, 하나 이상의 LLM 출력은 오프라인 방식으로 이전에 생성되었을 수 있다(예를 들어, 도 3과 관련하여 상기 기술된 바와 같이 음성 발화를 수신하고 오프라인 출력 수정 엔진(170)을 사용하기 전에). 이러한 구현예에서, 시스템은 오디오 데이터 스트림에서 캡처된 음성 발화에 포함된 어시스턴트 쿼리가 하나 이상의 LLM 출력이 이전에 생성되었던 이전 어시스턴트 쿼리에 대응하는지, 대화 세션의 컨텍스트가 이전 어시스턴트 쿼리가 수신되었던 이전 대화 세션의 이전 컨텍스트에 대응하는지, 및/또는 블록(454)에서 결정된 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력이 이전 쿼리에 기초하여 결정된 하나 이상의 이전 어시스턴트 출력에 대응하는지 결정할 수 있다. 또한, 시스템은 도 3의 방법(300)과 관련하여 설명된 바와 같이, 이전 어시스턴트 쿼리, 이전 컨텍스트, 및/또는 어시스턴트 쿼리, 컨텍스트 및/또는 어시스턴트 출력 세트에 각각 포함된 하나 이상의 어시스턴트 출력에 대응하는 하나 이상의 이전 어시스턴트 출력에 기초하여 인덱싱된 하나 이상의 LLM 출력(예를 들어, 온라인 출력 수정 엔진(180)을 사용하여)을 얻을 수 있고, 하나 이상의 LLM 출력을 수정된 어시스턴트 출력 세트로 활용할 수 있다.
추가적 또는 대안적 구현예에서, 수정된 어시스턴트 출력 세트를 생성할 때, 시스템은 적어도 대화 세션의 컨텍스트 및/또는 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 온라인 방식으로 프로세싱하여(예: 음성 발화를 수신하고 온라인 출력 수정 엔진(180)을 사용하는 것에 응답하여) 하나 이상의 LLM 출력을 생성한다. 예를 들어, 시스템은 LLM 엔진(150A1 및/또는 150A2)이 하나 이상의 LLM을 사용하여 대화 세션의 컨텍스트, 어시스턴트 쿼리 및/또는 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 프로세싱하게 하여 수정된 어시스턴트 출력 세트를 생성한다. 하나 이상의 LLM 출력은 하나 이상의 LLM 출력을 오프라인 방식으로 생성하는 것과 관련하여 도 3의 방법(300)의 블록(354)과 관련하여 위에 설명된 것과 동일하거나 유사한 방식으로 온라인 방식으로 생성될 수 있지만, 클라이언트 디바이스에서 음성 발화가 수신되는 것에 응답하여 생성될 수 있다. 예를 들어, 시스템은 도 3의 방법(300)의 블록(354)과 관련하여 전술한 바와 같이, 하나 이상의 LLM을 사용하여, 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 프로세싱하여 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력 각각에 대한 하나 이상의 성격 응답을 생성할 수 있다. 다르게 말하면, 어시스턴트 출력 세트에 포함된 각각의 어시스턴트 출력은 제한된 어휘 및 각 어시스턴트 출력과 연관된 운율 속성 측면에서 일관된 성격을 가질 수 있다. 그러나, 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트에 포함된 어시스턴트 출력 각각을 프로세싱할 때, 수정된 어시스턴트 출력 각각은 하나 이상의 수정된 어시스턴트 출력을 생성할 때 하나 이상의 LLM을 사용하는 함수로서 훨씬 더 큰 어휘를 가질 수 있고, 그리고 수정된 어시스턴트 출력 각각과 연관된 운율 특성의 측면에서 훨씬 더 큰 변화를 갖는다. 결과적으로, 수정된 어시스턴트 출력 각각은 자동화된 어시스턴트와의 대화 세션에 참여하는 사용자와 더 잘 공감하는 컨텍스트적으로 관련된 어시스턴트 출력에 대응할 수 있다.
유사하게, 일부 구현예에서, 추가 어시스턴트 쿼리를 생성할 때, 추가 어시스턴트는 오프라인 방식으로 이전에 생성되었을 수 있다(예를 들어, 도 3과 관련하여 상기 기술된 바와 같이 음성 발화를 수신하고 오프라인 출력 수정 엔진(170)을 사용하기 전에). 이러한 구현예에서, 오프라인 방식으로 이전에 생성되었던 하나 이상의 LLM 출력을 얻는 것과 관련하여 위에 설명된 것과 유사하게, 시스템은 도 3의 방법(300)과 관련하여 설명된 바와 같이, 이전 어시스턴트 쿼리, 이전 컨텍스트, 및/또는 어시스턴트 쿼리, 컨텍스트 및/또는 어시스턴트 출력 세트에 각각 포함된 하나 이상의 어시스턴트 출력에 대응하는 하나 이상의 이전 어시스턴트 출력에 기초하여 인덱싱된 추가 어시스턴트 쿼리를 얻을 수 있고, 이전에 생성된 추가 어시스턴트 쿼리를 추가 어시스턴트 쿼리로 활용할 수 있다.
또한, 유사하게, 추가적 또는 대안적 구현예에서, 추가 어시스턴트 쿼리를 생성할 때, 시스템은 적어도 대화 세션의 컨텍스트 및/또는 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 온라인 방식으로 프로세싱하여(예: 음성 발화를 수신하고 온라인 출력 수정 엔진(180)을 사용하는 것에 응답하여) 추가 어시스턴트 쿼리를 생성한다. 예를 들어, 시스템은 LLM 엔진(150A1 및/또는 150A2)이 하나 이상의 LLM을 사용하여 대화 세션의 컨텍스트, 어시스턴트 쿼리 및/또는 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 프로세싱하게 하여 추가 어시스턴트 쿼리를 생성한다. 추가 어시스턴트 쿼리는 추가 어시스턴트 쿼리를 오프라인 방식으로 생성하는 것과 관련하여 도 3의 방법(300)의 블록(354)과 관련하여 위에 설명된 것과 동일하거나 유사한 방식으로 온라인 방식으로 생성될 수 있지만, 클라이언트 디바이스에서 음성 발화가 수신되는 것에 응답하여 생성될 수 있다. 일부 구현예에서, 본 명세서에 설명된 하나 이상의 LLM은 특정 기능을 수행하는데 전용인 복수의 서로 다른 레이어들을 가질 수 있다. 예를 들어, 하나 이상의 LLM 중 하나 이상의 제1 레이어는 여기에 설명된 성격 응답을 생성하는데 활용될 수 있고, 하나 이상의 LLM 중 하나 이상의 제2 레이어는 여기에 설명된 추가 어시스턴트 쿼리를 생성하는데 활용될 수 있다. 추가적 또는 대안적 구현예에서, 하나 이상의 LLM은 여기에 설명된 추가 어시스턴트 쿼리를 생성할 때 하나 이상의 LLM에 포함되지 않은 하나 이상의 추가 레이어와 통신할 수 있다. 예를 들어, 하나 이상의 LLM 중 하나 이상의 레이어는 여기에 설명된 성격 응답을 생성하는데 활용될 수 있고, 하나 이상의 LLM과 통신하는 다른 ML 모델의 하나 이상의 추가 레이어는 여기서 설명된 추가 어시스턴트 쿼리를 생성하는데 활용될 수 있다. 성격 응답과 추가 어시스턴트 쿼리의 비제한적인 예는 아래의 도 6과 관련하여 더 자세히 설명된다.
블록(458)에서, 시스템은 추가 어시스턴트 쿼리에 기초하여, 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정한다. 일부 구현예에서, 시스템은 추가 어시스턴트 쿼리가 도 2의 어시스턴트 쿼리 프로세싱과 관련하여 설명된 것과 동일하거나 유사한 방식으로 1P 시스템(191) 및/또는 3P 시스템(192) 중 하나 이상에 의해 프로세싱되게 하여 추가 어시스턴트 출력을 생성한다. 일부 구현예에서, 추가 어시스턴트 출력은 단일의 추가 어시스턴트 출력일 수 있는 반면, 다른 구현예에서, 추가 어시스턴트 출력은 추가 어시스턴트 출력 세트에 포함될 수 있다(예를 들어, 도 2의 추가 어시스턴트 출력(205) 세트와 유사). 추가적 또는 대안적 구현예에서, 추가 어시스턴트 쿼리는 예를 들어 음성 발화를 제공한 사용자의 사용자 프로필 데이터 및/또는 자동화된 어시스턴트에 액세스 가능한 임의의 다른 데이터에 기초하여 추가 어시스턴트 출력에 직접 매핑될 수 있다.
블록(460)에서, 시스템은 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력에 기초하여, 상기 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 수정된 어시스턴트 출력 세트를 프로세싱한다. 일부 구현예에서, 시스템은 블록(456)에서 생성된 수정된 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력 각각에 수정된 어시스턴트 출력 중 하나 이상의 추가 어시스턴트 출력을 앞에 추가하거나 첨부할 수 있다. 추가적 또는 대안적 구현예에서, 그리고 블록(460A)에 표시된 바와 같이, 시스템은 추가 어시스턴트 출력 및 대화 세션의 컨텍스트를 프로세싱하여 블록(456)에서 활용된 하나 이상의 LLM 출력을 사용하여 수정된 추가 어시스턴트 출력 세트 및/또는 블록(456)에서 활용된 하나 이상의 LLM출력에 더하여, 대화 세션의 컨텍스트의 적어도 일부 및 추가 어시스턴트 출력의 적어도 일부에 기초하여 생성된 하나 이상의 추가 LLM 출력을 생성한다. 수정된 추가 어시스턴트 출력 세트는 수정된 어시스턴트 출력 세트를 생성하는 것과 관련하여 위에서 설명된 것과 동일하거나 유사한 방식으로 생성될 수 있지만, 어시스턴트 출력 세트가 아닌 추가 어시스턴트 출력에 기초한다(예를 들어, 오프라인 방식으로 생성된 하나 이상의 LLM 출력을 사용하여 및/또는 온라인 방식으로 LLM 엔진(150A1 및/또는 150A2)을 사용하여).
블록(462)에서, 시스템은 상기 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력 및/또는 수정된 추가 어시스턴트 출력 세트로부터 주어진 수정된 추가 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 한다. 일부 구현예에서, 시스템은 순위 엔진(190)이 하나 이상의 순위 기준에 따라 수정된 어시스턴트 출력 세트에 포함된 하나 이상의 수정된 어시스턴트 출력 각각(및 선택적으로 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력 각각)의 순위를 매기게 할 수 있고, 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력(또는 어시스턴트 출력 세트로부터 주어진 어시스턴트 출력)을 선택한다. 또한, 시스템은 순위 엔진(190)이 하나 이상의 순위 기준에 따라, 수정된 추가 어시스턴트 출력 세트에 포함된 하나 이상의 수정된 추가 어시스턴트 출력 각각(및 선택적으로 추가 어시스턴트 출력)의 순위를 매기게 할 수 있고, 수정된 추가 어시스턴트 출력 세트로부터 주어진 추가 수정된 어시스턴트 출력(또는 주어진 추가 어시스턴트 출력으로 추가 어시스턴트 출력)을 선택한다. 이러한 구현예에서, 시스템은 주어진 수정된 어시스턴트 출력과 주어진 추가 어시스턴트 출력을 결합할 수 있고, 주어진 수정된 어시스턴트 출력 및 주어진 추가 어시스턴트 출력이 자동화된 어시스턴트와의 대화 세션에 참여하는 클라이언트 디바이스의 사용자에게 시각적 및/또는 청각적 제시를 위해 제공되게 한다.
이제 도 5로 돌아가면, 어시스턴트 성격 응답 생성에 기초하여 어시스턴트 출력(들)을 생성할 때 대형 언어 모델을 활용하는 예시적 방법(500)을 나타내는 흐름도가 도시되어 있다. 편의상, 방법(500)의 동작은 도 2의 프로세스 흐름(200)으로부터 동작을 수행하는 시스템을 참조하여 기술된다. 방법(500)의 이 시스템은 컴퓨팅 디바이스(들)(예를 들어, 도 1의 클라이언트 디바이스(110), 도 6의 클라이언트 디바이스(610) 및/또는 도 7의 클라이언트 디바이스(710), 하나 이상의 서버 및/또는 기타 컴퓨팅 디바이스)의 하나 이상의 프로세서, 메모리 및/또는 다른 컴포넌트(들)을 포함한다. 추가로, 방법(500)의 동작이 특정한 순서로 도시되었지만, 이는 그러한 제한을 의미하지 않는다. 하나 이상의 동작들은 재순서화, 생략 및/또는 추가될 수 있다.
블록(552)에서, 시스템은 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하며, 음성 발화는 자동화된 어시스턴트로 향하는 어시스턴트 쿼리를 포함하고, 음성 발화는 사용자와 자동화된 어시스턴트 간의 대화 세션 동안 수신된다. 블록(554)에서, 시스템은 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하고, 세트에 포함된 어시스턴트 출력 각각은 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이다. 도 5의 방법(500)의 블록(552 및 554)의 동작은 도 4의 방법(400)의 블록(452 및 454)에 대해 설명된 것과 동일하거나 유사한 방식으로 수행될 수 있다.
블록(556)에서, 시스템은 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정한다. 시스템은 예를 들어 음성 발화를 제공하는 사용자의 의도(예: NLU 출력(204) 스트림에 포함됨), 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력(예: 어시스턴트 출력 세트(205), 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 하나 이상의 계산 비용(예: 배터리 소비, 프로세서 소비, 레이턴시 등), 자동화된 어시스턴트와의 인터렉션 기간 및/또는 기타 고려사항에 기초하여, 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정할 수 있다. 예를 들어, 사용자의 의도가 음성 발화를 제공한 사용자가 빠른 및/또는 사실에 기반한 답변을 기대하고 있음을 나타내는 경우(예: why is the sky blue?", "what’s the weather?", "what time is it" 등), 일부 경우에, 시스템은 음성 발화에 응답하는 콘텐츠를 제공할 때 지연 시간과 계산 리소스 소비를 줄이기 위해 하나 이상의 어시스턴트 출력을 수정하지 않도록 결정할 수 있다. 또한, 예를 들어, 사용자의 클라이언트 디바이스가 절전 모드에 있는 경우, 시스템은 배터리 전력을 절약하기 위해 어시스턴트 출력 중 하나 이상을 수정하지 않기로 결정할 수 있다. 또한, 예를 들어, 사용자가 임계 기간(예: 30초, 1분 등)을 초과하는 기간의 세션으로 대화에 참여했다면 시스템은 보다 빠르고 효율적인 방식으로 대화 세션을 마무리하기 위해 하나 이상의 어시스턴트 출력을 수정하지 않기로 결정할 수 있다.
블록(556)의 반복에서, 시스템이 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정하지 않기로 결정하면, 시스템은 블록(558)으로 진행할 수 있다. 블록(558)에서, 시스템은 어시스턴트 출력 세트로부터 주어진 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 한다. 예를 들어, 시스템은 순위 엔진(190)이 하나 이상의 순위 기준에 따라 어시스턴트 출력 세트에 포함된 각각의 어시스턴트 출력의 순위를 매기게 하고, 순위에 기초하여 사용자에게 시각적 및/또는 청각적으로 제기하기 위해 제공될 주어진 어시스턴트 출력을 선택할 수 있다.
블록(556)의 반복에서, 시스템이 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정하기로 결정하면, 시스템은 블록(560)으로 진행할 수 있다. 블록(560)에서, 시스템은 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하고, 하나 이상의 LLM 출력 각각은 대화 세션의 컨텍스트 및/또는 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며, 하나 이상의 LLM 출력 각각은 자동화된 어시스턴트에 대해, 복수의 서로 다른 성격들 중 대응하는 성격을 반영한다. 도 3의 방법(300)의 블록(354)과 관련하여 설명된 바와 같이, 하나 이상의 LLM 출력은 자동화된 어시스턴트의 다양한 성격을 반영하기 위해 다양한 서로 다른 파라미터를 사용하여 생성될 수 있다. 다양한 구현예에서, 각각의 LLM 출력은 오디오 데이터 스트림에서 캡처된 음성 발화에 포함된 어시스턴트 쿼리에 기초하여 추가로 결정될 수 있다. 일부 구현예에서, 시스템은 상기 기술된 바와 같이 오프라인 방식으로 이전에 생성되었던 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트(및 선택적으로 어시스턴트 쿼리)를 프로세싱할 수 있고, 추가적 또는 대안적 구현예에서, 시스템은 상기 기술된 바와 같이 온라인 방식으로 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트(및 선택적으로 어시스턴트 쿼리)를 프로세싱할 수 있다. 도 4의 방법(400)과 관련하여 상기 언급된 바와 같이, 성격 응답과 추가 어시스턴트 쿼리의 비제한적인 예는 아래의 도 6과 관련하여 더 자세히 설명된다.
블록(562)에서, 시스템은 어시스턴트 출력 세트로부터 주어진 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 한다. 일부 구현예에서, 시스템은 순위 엔진(190)이 하나 이상의 순위 기준에 따라 수정된 어시스턴트 출력 세트에 포함된 하나 이상의 수정된 어시스턴트 출력 각각(및 선택적으로 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력 각각)의 순위를 매기게 할 수 있고, 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력(또는 어시스턴트 출력 세트로부터 주어진 어시스턴트 출력)을 선택한다. 또한, 시스템은 주어진 수정된 어시스턴트 출력이 사용자에게 시각적 및/또는 청각적 제시하기 위해 제공되게 할 수 있다.
비록 도 5는 추가 어시스턴트 쿼리를 생성하는 것과 관련하여 설명되지 않았지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 오히려, 도 4의 방법(400)에서 추가 어시스턴트 쿼리를 생성하는 것은 도 4는 대화 세션을 촉진하고 사용자의 보다 자연스러운 대화 경험을 제공하는 것과 관련하여 제공될 수 있는 컨텍스트적으로 관련된 추가 어시스턴트 출력이 있다는 결정에 기초한다는 것이 이해되어야 하며, 사용자에게 제시하기 위해 제공되는 임의의 어시스턴트 출력이 사람간 대화 세션을 더 잘 반영하고, 사용자와 자동화된 어시스턴트 간의 대화 세션이 사용자와 더 잘 공감하도록 한다. 또한, 도 3 및 4가 어시스턴트 출력 세트를 수정할지 여부를 결정하는 것과 관련하여 설명되었지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 오히려, 하나 이상의 LLM을 사용하여 어시스턴트 응답 세트의 수정을 트리거할지 여부를 결정하는 것은 도 3, 4 및 도 5의 예시적인 방법 중 임의의 방법으로 수행될 수 있다는 것이 이해되어야 한다.
이제 도 6으로 돌아가면, 자동화된 어시스턴트가 어시스턴트 출력을 생성할 때 하나 이상의 LLM을 활용하는 사용자와 자동화된 어시스턴트 사이의 대화 세션의 비제한적인 예가 도시되어 있다. 본 명세서에 설명된 바와 같이, 일부 구현예에서, 자동화된 어시스턴트는 수정된 어시스턴트 출력 세트를 생성하기 위해 이전에 오프라인 방식으로 생성되었던 하나 이상의 LLM 출력을 활용할 수 있다(예를 들어, 도 3의 방법(300)과 관련하여 위에서 설명된 바와 같이). 예를 들어, 자동화된 어시스턴트는 하나 이상의 LLM 출력이 이전에 생성되었던 이전 어시스턴트 쿼리가 음성 발화에 포함된 어시스턴트 쿼리에 대응하는지, 이전 대화 세션의 이전 컨텍스트가 사용자와 음성 발화가 수신된 자동화된 어시스턴트 사이의 대화 세션의 컨텍스트에 대응하는지, 및/또는 하나 이상의 이전 어시스턴트 출력이 음성 발화에 포함된 어시스턴트 쿼리에 대한 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 대응하는지 결정할 수 있다. 또한, 자동화된 어시스턴트는 이전 어시스턴트 쿼리, 이전 컨텍스트, 및/또는 이전 어시스턴트 출력 세트에 포함된 이전 어시스턴트 출력 중 하나 이상에 따라 인덱싱된(예를 들어, LLM 출력(들) 데이터베이스(150A)에서) 하나 이상의 LLM 출력을 얻을 수 있고, 하나 이상의 LLM 출력을 수정된 어시스턴트 출력 세트로 활용한다. 추가적 또는 대안적 구현예에서, 자동화된 어시스턴트는 하나 이상의 LLM을 사용하여 어시스턴트 쿼리, 대화 세션의 컨텍스트 및/또는 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력이 프로세싱되게 하여, 온라인 방식으로(예를 들어, 도 4의 방법(400) 및 도 5의 방법(500)과 관련하여 전술한 바와 같이) 수정된 어시스턴트 출력 세트로서 활용될 하나 이상의 LLM 출력을 생성한다. 따라서, 도 6의 비제한적인 예는 본 명세서에 설명된 기법에 따른 LLM의 활용이 어떻게 사용자와 자동화된 어시스턴트 사이의 자연스러운 대화를 향상시키는지를 설명하기 위해 제공된다.
클라이언트 디바이스(610)(예: 도 1의 클라이언트 디바이스(110)의 인스턴스)는 예를 들어 음성 발화 및/또는 다른 가청 입력에 기초하여 오디오 데이터를 생성하는 마이크(들), 합성된 스피치 및/또는 다른 가청 출력을 청각적으로 렌더링하는 스피커(들), 및/또는 시각적 출력을 시각적으로 렌더링하기 위한 디스플레이(680)를 포함하는 다양한 사용자 인터페이스 컴포넌트를 포함할 수 있다. 또한, 클라이언트 디바이스(610)의 디스플레이(680)는 클라이언트 디바이스(610)가 하나 이상의 액션들을 수행하게 하기 위해 클라이언트 디바이스(610)의 사용자와 인터렉션할 수 있는 다양한 시스템 인터페이스 엘리먼트들(681, 682, 683)(예: 하드웨어 및/또는 소프트웨어 인터페이스 엘리먼트)을 포함할 수 있다. 클라이언트 디바이스(610)의 디스플레이(680)는 사용자가 터치 입력에 의해(예를 들어, 사용자 입력을 디스플레이(680) 또는 그 일부를 향하게 함으로써(예: 텍스트 입력 상자로(미도시), 키보드로(미도시) 또는 디스플레이(680)의 다른 부분에)) 및/또는 음성 입력에 의해(예를 들어, 마이크로폰 인터페이스 엘리먼트(684)를 선택함으로써 또는 마이크로폰 인터페이스 엘리먼트(684)를 선택할 필요없이 클라이언트 디바이스(610)에서 단순히 말함으로써(즉, 자동화된 어시스턴트는 음성 입력을 활성화하기 위한 하나 이상의 용어 또는 문구, 제스처(들), 시선(들), 입 움직임(들), 입술 움직임(들) 및/또는 다른 조건을 모니터링할 수 있음)) 디스플레이(680)에 렌더링된 콘텐츠와 인터렉션하게 한다. 도 6에 도시된 클라이언트 디바이스(610)는 모바일폰인 것으로 도시되지만, 이는 예시를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 클라이언트 디바이스(610)는 디스플레이가 있는 독립형 스피커, 디스플레이가 없는 독립형 스피커, 홈 자동화 디바이스, 차량 내 시스템, 랩톱, 데스크톱 컴퓨터, 및/또는 클라이언트 디바이스(610)의 사용자와 사람 대 컴퓨터 대화 세션에 참여하는 자동화된 어시스턴트를 실행할 수 있는 임의의 다른 디바이스일 수 있다.
예를 들어, 클라이언트 디바이스(610)의 사용자가 "Hey Assistant, what time is it?"라는 음성 발화(652)를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 ASR 엔진(130A1 및/또는 130A2)을 사용하여 음성 발화(652)을 캡처하는 오디오 데이터가 프로세싱되어 ASR 출력의 스트림을 생성하게 할 수 있다. 또한, 자동화된 어시스턴트는 NLU 엔진(140A1 및/또는 140A2)을 사용하여 ASR 출력의 스트림이 프로세싱되어 NLU 출력의 스트림을 생성하게 할 수 있다. 더욱이, 자동화된 어시스턴트는 NLU 출력의 스트림이 1P 시스템(191) 및/또는 3P 시스템(192) 중 하나 이상에 의해 프로세싱되어 하나 이상의 어시스턴트 출력 세트를 생성하게 할 수 있다. 어시스턴트 출력 세트는 예를 들어 "8:30 AM", "Good morning, it’s 8:30 AM" 및/또는 클라이언트 디바이스(610)의 사용자에게 현재 시간을 전달하는 임의의 다른 출력을 포함할 수 있다.
도 6의 예에서, 자동화된 어시스턴트는 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정하기로 결정했다고 가정한다. 예를 들어, 자동화된 어시스턴트는 음성 발화(652)에 포함된 어시스턴트 쿼리가 자동화된 어시스턴트가 사용자에게 제시하기 위한 현재 시간을 제공하도록 요청한다고 결정할 수 있다. 자동화된 어시스턴트는 하나 이상의 LLM 출력이 이전에 생성되어 자동화된 어시스턴트가 사용자에게 제시하기 위한 현재 시간을 제공하도록 요청하는 이전 어시스턴트 쿼리의 인스턴스가 도 6의 음성 발화(652)에 포함된 어시스턴트 쿼리에 대응하고, 이전 대화 세션의 이전 컨텍스트는 도 6의 사용자와 자동화된 어시스턴트 사이의 대화 세션의 컨텍스트에 대응하고(예를 들어, 자동화된 어시스턴트가 아침에 현재 시간을 제공하도록 사용자가 요청함(및 선택적으로 대화 세션을 개시하여 요청함), 클라이언트 디바이스(610)가 특정 위치에 위치함 및/또는 다른 컨텍스트 신호), 및/또는 하나 이상의 이전 어시스턴트 출력이 도 6의 음성 발화(652)에 포함된 어시스턴트 쿼리에 대한 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 대응한다고 결정할 수 있다. 또한, 자동화된 어시스턴트는 이전 어시스턴트 쿼리, 이전 컨텍스트, 및/또는 이전 어시스턴트 출력 세트에 포함된 이전 어시스턴트 출력 중 하나 이상에 따라 인덱싱된(예를 들어, LLM 출력(들) 데이터베이스(150A)에서) 하나 이상의 LLM 출력을 얻을 수 있고, 하나 이상의 LLM 출력을 수정된 어시스턴트 출력 세트로 활용한다. 또한 예를 들어, 자동화된 어시스턴트는 하나 이상의 LLM을 사용하여 어시스턴트 쿼리, 대화 세션의 컨텍스트 및/또는 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력이 프로세싱되게 하여, 온라인 방식으로 수정된 어시스턴트 출력 세트로서 활용될 하나 이상의 LLM 출력을 생성한다.
도 6의 예에서, 또한, 자동화된 어시스턴트가 "Good morning"이라는 수정된 어시스턴트 출력(654)을 제공하기로 결정했다고 가정한다. 더욱이, 수정된 어시스턴트 출력(654)은 음성 발화(652)에 포함된 어시스턴트 쿼리에 응답하는 측면에서 기능적이다(예를 들어, "It’s 8:30 AM"). 그러나, 수정된 어시스턴트 출력(654)은 사용자에게 개인화되거나 맞춤화되고 어시스턴트 쿼리에 응답하는 측면에서 기능적일 뿐만 아니라, 수정된 어시스턴트 출력(654)은 또한 대화 세션의 사용자를 추가로 참여하게 함으로써 사용자와 자동화된 어시스턴트 간 대화 세션을 주도하게 할 수 있다(예: "Any fun plans today?"). 음성 발화(652) 프로세싱에 기초하여 원래 생성된 어시스턴트 출력 세트를 수정하는데 하나 이상의 LLM 출력을 사용하는 것과 관련하여 여기에 설명된 기법을 사용하지 않으면, 자동화된 어시스턴트는 클라이언트 디바이스(610)의 사용자에게 인사말(예: "Good morning")을 제공하지 않고, 클라이언트 디바이스(610)의 사용자에게 이름을 부르지 않고, 단순히 "It’s 8:30 AM"라고 응답할 수 있다. 도 6에서, 또한 클라이언트 디바이스(610)의 사용자가 "Yes, I’m thinking about going to the beach"라는 음성 발화(656)를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 음성 발화(656)를 캡처하는 오디오 데이터가 프로세싱되어 하나 이상의 LLM 출력을 사용하지 않고 생성되는 어시스턴트 출력 세트를 생성하게 할 수 있다. 또한, 자동화된 어시스턴트는 음성 발화(656)에 포함된 어시스턴트 쿼리, 어시스턴트 출력 세트, 및/또는 대화 세션의 컨텍스트가 프로세싱되어 하나 이상의 어시스턴트 출력을 사용하여 결정되는 수정된 어시스턴트 출력 세트를 생성하게 할 수 있고(예: 오프라인 및/또는 온라인 방식으로), 선택적으로 어시스턴트 쿼리에 기초하여 추가 어시스턴트 쿼리를 생성하게 할 수 있다.
이 예에서, 어시스턴트 출력 세트에 포함되는(즉, 하나 이상의 LLM 출력을 사용하지 않고 생성되는) 어시스턴트 출력은 음성 발화(656)에 포함된 어시스턴트 쿼리가 자동화된 어시스턴트에게 임의의 액션을 수행할 것을 요청하지 않기 때문에 제한될 수 있다. 예를 들어, 어시스턴트 출력 세트에 포함된 어시스턴트 출력은 "Sounds fun!", "Surf’s up!", "That sounds like fun!" 및/또는 음성 발화에 반응하는 기타 어시스턴트 출력이 포함될 수 있고, 대화 세션에서 클라이언트 디바이스(610)의 사용자를 더 이상 참여시키지 않는다. 다르게 말하면, 어시스턴트 출력 세트에 포함되는 어시스턴트 출력은 본 명세서에 설명된 바와 같이 하나 이상의 LLM 출력을 사용하여 어시스턴트 출력이 생성되지 않기 때문에 어휘의 변화 측면에서 제한될 수 있다. 그럼에도 불구하고, 자동화된 어시스턴트는 어시스턴트 출력 세트에 포함된 어시스턴트 출력을 활용하여 하나 이상의 LLM 출력을 사용하여 하나 이상의 어시스턴트 출력을 수정하는 방법을 결정할 수 있다.
더욱이, 도 3 및 도 4와 관련하여 설명된 바와 같이, 자동화된 어시스턴트는 어시스턴트 쿼리에 기초하고 하나 이상의 LLM 또는 하나 이상의 LLM과 통신하는 별개의 ML 모델을 사용하여 추가 어시스턴트 쿼리를 생성할 수 있다. 예를 들어, 도 6의 예에서, 클라이언트 디바이스(610)의 사용자에 의해 제공되는 음성 발화(656)은 사용자가 해변에 가려고 함을 나타낸다. 사용자가 해변에 갈 의도가 있음을 나타내는 음성 발화(656)과 연관된 의도의 식별에 기초하여, 자동화된 어시스턴트는 클라이언트 디바이스(610)의 사용자가 자주 방문하는 해변의 날씨를 검색하는 것과 연관된 관련 의도를 결정할 수 있다(예를 들어, "Half Moon Bay"라는 이름의 예시적 해변). 관련 의도 식별에 기초하여, 자동화된 어시스턴트는 "Half Moon Bay"의 위치 파라미터를 사용하여 "What’s the weather?"라는 추가 어시스턴트 쿼리를 생성할 수 있고, 1P 시스템(191) 및/또는 3P 시스템(192) 중 하나 이상에 쿼리를 제출하여 예를 들어, "Half Moon Bay"에서는 비가 내리고 하루 종일 쌀쌀한 기온이 유지될 것이라는 "Half Moon Bay"에 대한 "날씨"를 포함하는 추가 어시스턴트 출력을 획득한다. 일부 구현예에서, 자동화된 어시스턴트는 하나 이상의 LLM 출력 및/또는 하나 이상의 추가 LLM 출력을 사용하여 결정되는 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 및/또는 대화 세션의 컨텍스트가 프로세싱되게 할 수 있다.
도 6의 예에서, 자동화된 어시스턴트는 하나 이상의 순위 기준에 따라 어시스턴트 출력 세트 및 수정된 어시스턴트 출력 세트에 포함된 어시스턴트 출력의 순위를 매길 수 있고, 순위에 기초하여 하나 이상의 어시스턴트 출력을 선택할 수 있다(예: "Sounds fun!"라는 주어진 어시스턴트 출력을 선택한다.) 또한, 자동화된 어시스턴트는 수정된 추가 어시스턴트 출력 세트에 포함된 어시스턴트 출력 및 추가 어시스턴트 출력이 하나 이상의 순위 기준에 따라 순위가 지정되도록 할 수 있고, 순위에 기초하여 어시스턴트 출력 중 하나 이상을 선택할 수 있다(예: "But if you’re going to Half Moon Bay again, expect rain and chilly temps"라는 주어진 추가 어시스턴트 출력을 선택). 더욱이, 자동화된 어시스턴트는 선택된 주어진 어시스턴트 출력과 선택된 주어진 추가 어시스턴트 출력을 결합할 수 있으며, 그 결과 "Sounds fun! But if you’re going to Half Moon Bay again, expect rain and chilly temps"라는 수정된 어시스턴트 출력(658)을 생성하고, 클라이언트 디바이스(610)의 사용자에게 시각적 및/또는 청각적 제시하기 위해 상기 수정된 어시스턴트 출력(658)이 제공되게 할 수 있다. 따라서, 이 예에서, 자동화된 어시스턴트는 음성 발화(656)을 프로세싱하고, 음성 발화와 연관된 추가 컨텍스트 정보(예를 들어, 클라이언트 디바이스(610)의 사용자가 방문할 가능성이 있는 해변의 날씨)를 제공하여 대화 세션에서 클라이언트 디바이스(610)의 사용자를 추가로 참여하게 할 수 있다. 여기에 설명된 기술이 없으면, 자동화된 어시스턴트가 날씨 정보를 결정하고 제공할 수 있음에도 불구하고 클라이언트 디바이스(610)의 사용자는 자동화된 어시스턴트로부터 날씨 정보를 사전에 요청해야 할 수 있으며, 이에 따라 클라이언트 디바이스(610)에서 사용자 입력량이 증가하고 증가된 양의 사용자 입력을 프로세싱하는데 계산 리소스가 낭비되며, 또한 클라이언트 디바이스(610)의 사용자의 인지 부하를 증가시킨다.
도 6의 예에서, 클라이언트 디바이스(610)의 사용자가 "Oh no … thanks for the heads up, can you remind me to check the weather again in two hours?"라는 음성 발화(660)를 제공한다고 가정한다. 이 예에서, 자동화된 어시스턴트는 음성 발화(660)를 캡처하는 오디오 데이터가 프로세싱되어 하나 이상의 LLM 출력을 사용하지 않고 생성되는 어시스턴트 출력 세트를 생성하게 할 수 있다. 또한, 자동화된 어시스턴트는 음성 발화(660)에 포함된 어시스턴트 쿼리, 어시스턴트 출력 세트, 및/또는 대화 세션의 컨텍스트가 프로세싱되어 하나 이상의 어시스턴트 출력을 사용하여 결정되는 수정된 어시스턴트 출력 세트를 생성하게 할 수 있다(예: 오프라인 및/또는 온라인 방식으로). 음성 발화(660)의 프로세싱에 기초하여, 자동화된 어시스턴트는 클라이언트 디바이스(610)의 사용자에게 "Half Moon Bay"의 날씨를 확인하도록 상기시키는 오전 10시 30분(예를 들어, 대화 세션 후 2시간)에 대한 알림을 설정하기로 결정하거나 또는 오전 10시 30분에 "Half Moon Bay"의 날씨를 클라이언트 디바이스(610) 사용자에게 능동적으로 제공한다. 또한, 자동화된 어시스턴트는 수정된 어시스턴트 출력 세트로부터 (즉, 하나 이상의 LLM 출력을 사용하여 생성됨) 수정된 어시스턴트 출력(662) "Sure thing, I set the reminder and hope the weather clears up for you"이 클라이언트 디바이스(610)의 사용자에게 시각적 및/또는 청각적 제시하기 위해 제공되게 할 수 있다. 특히, 도 6의 예에서 수정된 어시스턴트 출력(662)은 날씨가 맑아지기를 바라는 바람을 사용자에게 표시한다는 점에서 대화 세션과 관련하여 컨텍스트적이다. 대조적으로, 어시스턴트 출력 세트에 포함된 어시스턴트 출력(즉, 하나 이상의 LLM 출력을 사용하지 않고 생성됨)은 대화 세션의 컨텍스트를 고려하지 않고 미리 알림이 설정되었다는 표시만 제공할 수 있다.
비록 도 6은 하나 이상의 LLM 출력을 사용하고, 특정 음성 발화 및 대화 세션의 컨텍스트에 기초하여 특정 수정된 어시스턴트 출력을 생성하고, 사용자에게 제시하기 위해 제공될 특정 수정된 어시스턴트 출력을 선택하는 것과 관련하여 설명되었지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 점을 이해해야 한다. 오히려, 여기에 설명된 기술은 임의의 사용자와 자동화된 어시스턴트의 대응 인스턴스 사이의 임의의 대화 세션에 활용될 수 있다는 것이 이해되어야 한다. 또한, 사용자와 자동화된 어시스턴트 사이의 대화 세션에 대응하는 전사가 클라이언트 디바이스(610)의 디스플레이(680)에 표시되어 있지만, 이는 예시를 위한 것이며 제한하려는 의도가 아니라는 것도 이해되어야 한다. 예를 들어, 클라이언트 디바이스가 디스플레이를 포함하는지 여부에 관계없이 자동화된 어시스턴트를 실행할 수 있는 임의의 디바이스에서 대화 세션이 수행될 수 있다는 것이 이해되어야 한다.
또한, 도 6의 대화 세션에서 사용자에게 제시하기 위해 제공된 어시스턴트 출력이 본 명세서에 설명된 다양한 성격 응답을 포함할 수 있다는 것이 이해되어야 한다. 예를 들어, 수정된 어시스턴트 출력(654)은 자동화된 어시스턴트에 의해 활용될 제1 어휘 및/또는 사용자에게 청각적으로 제시하기 위해 수정된 어시스턴트 출력(654)을 제공하는데 활용되는 운율 속성 세트와 관련하여 자동화된 어시스턴트의 제1 성격을 반영하는 제1 파라미터 세트를 사용하여 생성될 수 있다. 대안적으로, 수정된 어시스턴트 출력(658)은 자동화된 어시스턴트에 의해 활용될 제2 어휘 및/또는 사용자에게 청각적으로 제시하기 위해 수정된 어시스턴트 출력(658)을 제공하는데 활용되는 제2 운율 속성 세트와 관련하여 자동화된 어시스턴트의 제2 성격을 반영하는 제2 파라미터 세트를 사용하여 생성될 수 있다. 이 예에서 제1 성격은 예를 들어 아침 인사를 제공하고, 사용자의 현재 시간 요청에 응답하고, 사용자에게 당일 계획이 있는지 묻는데 활용되는 집사 또는 가정부의 성격을 반영할 수 있다. 또한, 제2 인격은 예를 들어 해변에 가는 것이 재미있을 것 같지만 낮에 해변 날씨가 이상적이지 않을 수 있음을 나타내는데 활용되는 기상 예보관, 서퍼 또는 인명 구조원(또는 이들의 조합)의 성격을 반영할 수 있다. 예를 들어, 사용자가 해변에 갈 계획을 표시했기 때문에 서퍼 성격을 활용하여 수정된 어시스턴트 출력(658)의 일부 "Sounds fun!" 메시지를 제공할 수 있고, 자동화된 어시스턴트는 사용자에게 날씨 정보를 제공하기 때문에 기상 예보관의 성격은 "But if you’re going to Half Moon Bay again, expect rain and chilly temps"라는 메시지를 제공하기 위해 활용될 수 있다.
따라서, 자동화된 어시스턴트는 자동화된 어시스턴트에 의해 활용되는 어휘와 사용자에게 청각적으로 제시하기 위해 수정된 어시스턴트 출력을 렌더링하는데 활용되는 운율 속성 둘 모두에 기초하여 사용자에게 제시하기 위한 수정된 어시스턴트 출력을 제공하는데 활용되는 성격을 동적으로 적응시킬 수 있다. 특히, 자동화된 어시스턴트는 사용자로부터 수신된 이전 음성 발화 및 자동화된 어시스턴트에 의해 제공되는 이전 어시스턴트 출력 및/또는 본 명세서에 기술된 임의의 다른 컨텍스트 신호를 포함하는 대화 세션의 컨텍스트에 기초하여 수정된 어시스턴트 출력을 제공하는데 활용되는 이들 성격을 동적으로 적응시킬 수 있다. 결과적으로, 자동화된 어시스턴트에 의해 제공되는 수정된 어시스턴트 출력은 클라이언트 디바이스의 사용자와 더 잘 공감할 수 있다.
더욱이, 비록 도 6은 사용자가 대화 세션 전체에 걸쳐 음성 발화를 제공하는 것과 관련하여 기술되었지만, 이는 예를 위한 것이며 제한하려는 의도가 아님을 이해해야 한다. 예를 들어, 사용자는 대화 세션 전체에 걸쳐 타이핑 입력 및/또는 터치 입력을 추가적으로 또는 대안적으로 제공할 수 있다. 이러한 구현예에서, 자동화된 어시스턴트는 NLU 출력의 스트림을 생성하기 위해(예를 들어, 선택적으로 ASR 엔진(130A1 및/또는 130A2)을 사용하는 임의의 프로세싱을 건너뜀) 타이핑된 입력을 프로세싱할 수 있고((예를 들어, NLU 엔진(140A1 및/또는 140A2)을 사용), 위에서 설명한 것과 동일하거나 유사한 방식으로 하나 이상의 수정된 어시스턴트 출력 세트를 생성함에 있어서, 타이핑된 입력 및/또는 터치 입력으로부터 도출된 어시스턴트 쿼리에 대응하는 NLU 데이터 스트림 및 텍스트 입력을 프로세싱할 수 있다(예를 들어, LLM 엔진(150A1 및/또는 150A2) 사용).
이제 도 7으로 돌아가면, 본 명세서에 기술된 기법들의 하나 이상의 양태들을 수행하기 위해 선택적으로 활용될 수 있는 예시적 컴퓨팅 디바이스(710)의 블록도가 도시된다. 일부 구현예에서, 클라이언트 디바이스, 클라우드 기반 자동화된 어시스턴트 컴포넌트(들) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적 컴퓨팅 디바이스(710) 중 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 디바이스(710)는 일반적으로 적어도 하나의 프로세서(714)를 포함하며, 버스 서브시스템(712)을 통해 다수의 주변 디바이스들과 통신한다. 이들 주변 디바이스들은 예를 들면, 메모리 서브시스템(725) 및 파일 저장 서브시스템(726)을 포함하는 저장 서브시스템(724), 사용자 인터페이스 출력 디바이스(720), 사용자 인터페이스 입력 디바이스(722) 및 네트워크 인터페이스 서브시스템(716)을 포함할 수 있다. 입력 및 출력 디바이스는 컴퓨팅 디바이스(710)와 사용자 인터렉션을 하게 한다. 네트워크 인터페이스 서브시스템(716)은 외부 네트워크에 대한 인터페이스를 제공하며, 다른 컴퓨팅 디바이스들의 대응하는 인터페이스 디바이스들과 연결된다.
사용자 인터페이스 입력 디바이스(722)는 키보드, 마우스, 트랙볼, 터치패드 또는 그래픽 태블릿, 스캐너, 디스플레이에 통합된 터치스크린과 같은 포인팅 디바이스, 음성 인식 시스템, 마이크로폰과 같은 오디오 입력 디바이스 및/또는 다른 유형의 입력 디바이스를 포함한다. 일반적으로, 용어 "입력 디바이스"의 사용은 정보를 컴퓨팅 디바이스(710) 또는 통신 네트워크에 입력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
사용자 인터페이스 출력 디바이스(720)는 디스플레이 서브시스템, 프린터, 팩스 기계 또는 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 CRT, LCD와 같은 평면 패널 디바이스, 프로젝션 디바이스 또는 시각적 이미지를 생성하기 위한 일부 기타 메커니즘을 포함할 수 있다. 또한, 디스플레이 서브시스템은 오디오 출력 디바이스와 같은 비-시각적 디스플레이를 제공할 수 있다. 일반적으로, 용어 "출력 디바이스"의 사용은 정보를 컴퓨팅 디바이스(710)로부터 사용자에게 또는 다른 기계 또는 컴퓨팅 디바이스에 정보를 출력하기 위한 모든 가능한 유형의 디바이스들과 방식들을 포함하도록 의도된다.
저장 서브시스템(724)은 본 명세서에 기술된 일부 또는 전부의 모듈들의 기능을 제공하기 위한 프로그래밍 및 데이터 구조를 저장한다. 예를 들면, 저장 서브시스템(724)은 본 명세서에 개시된 방법의 선택된 양태들을 수행하고 뿐만 아니라 도 1 및 2에 도시된 다양한 컴포넌트들을 구현하기 위한 로직을 포함할 수 있다.
이들 소프트웨어 모듈들은 일반적으로 프로세서(714) 단독으로 또는 다른 프로세서들과의 조합에 의해 실행된다. 저장 서브시스템(724)에서 사용된 메모리(725)는 프로그램 실행 중에 명령어들 및 데이터의 저장을 위한 메인 RAM(730) 및 고정된 명령어들이 저장되는 ROM(732)을 포함하는 다수의 메모리들을 포함할 수 있다. 파일 저장 서브시스템(726)은 프로그램 및 데이터 파일에 대한 영구적 저장을 제공할 수 있고, 하드 디스크 드라이브, 연관된 이동식 매체와 함께인 플로피 디스크 드라이브, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지들을 포함할 수 있다. 특정 구현예들의 기능을 구현하는 모듈들은 파일 저장 서브시스템(726)에 의해 저장 서브시스템(724)에 또는 프로세서(들)(714)에 의해 액세스가능한 다른 기계에 저장될 수 있다.
버스 서브시스템(712)은 의도된 대로 컴퓨팅 디바이스(710)의 다양한 컴포넌트들 및 서브시스템들이 서로 통신하게 하기 위한 메커니즘을 제공한다. 버스 서브시스템(712)이 개략적으로 단일의 버스로 도시되었지만, 버스 서브시스템(712)의 대안적 구현예들은 다수의 버스들을 사용할 수 있다.
컴퓨팅 디바이스(710)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서퍼팜 또는 임의의 기타 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스를 포함하는 다양한 유형들일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 7에 도시된 컴퓨팅 디바이스(710)는 일부 구현예를 설명하기 위한 목적의 특정 예로서만 의도된다. 컴퓨팅 디바이스(710)의 많은 다른 구성이 도 7에 도시된 컴퓨팅 디바이스보다 많거나 적은 컴포넌트를 가질 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집 또는 모니터링하거나 또는 개인 및/또는 모니터링된 정보를 사용하는 경우에 있어서, 사용자에게 프로그램 또는 구성이 사용자 정보(예를 들면, 사용자의 소셜 네트워크, 소셜 액션 또는 활동, 직업, 사용자의 선호 또는 사용자의 현재 지리적 위치)에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 콘텐츠 서버로부터의 콘텐츠를 수신할지 및/또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 취급되어, 개인적으로 식별가능한 정보는 제거된다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 취급되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 수준으로), 사용자의 특정한 지리적 위치가 결정될 수 없도록 한다. 따라서, 사용자는 사용자에 관한 정보가 어떻게 수집되는지 그리고 사용되는지에 관한 제어를 가질 수 있다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고, 상기 방법은 클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서: 상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며; 상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며; 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 프로세싱하는 단계는: 대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하고, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며, 그리고 상기 대화 세션의 컨텍스트의 적어도 일부 및 상기 어시스턴트 쿼리의 적어도 일부에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하며; 상기 추가 어시스턴트 쿼리에 기초하여, 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계; 상기 LLM을 사용하여 생성된 하나 이상의 LLM 출력 또는 하나 이상의 추가 LLM 출력을 사용하여 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 및 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 추가 LLM 출력 각각은 상기 대화 세션의 컨텍스트 및 상기 추가 어시스턴트 출력의 적어도 일부에 기초하여 결정되며; 및 상기 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력과 수정된 추가 어시스턴트 출력 세트로부터 주어진 수정된 추가 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함한다.
본 명세서에서 개시된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예에서, 상기 오디오 데이터 스트림 프로세싱에 기초하여, 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답인 어시스턴트 출력 세트를 결정하는 단계는 ASR(automatic speech recognition) 모델을 사용하여, ASR 출력 스트림을 생성하기 위해 오디오 데이터 스트림을 프로세싱하는 단계; NLU(natural language understanding) 모델을 사용하여, NLU 데이터 스트림을 생성하기 위해 ASR 출력 스트림을 프로세싱하는 단계; 및 NLU 스트림에 기초하여 어시스턴트 출력 세트가 결정되게 하는 단계를 포함한다.
상기 구현예 중 일부 버전에서, LLM을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는 상기 LLM을 사용하여, 하나 이상의 LLM 출력을 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계; 및 하나 이상의 LLM 출력에 기초하여 수정된 어시스턴트 출력 세트를 결정하는 단계를 포함한다. 상기 구현예 중 일부 추가 버전에서, 상기 LLM을 사용하여 하나 이상의 LLM 출력을 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는 복수의 이종 LLM 파라미터 세트들 중 제1 LLM 파라미터 세트를 사용하여 복수의 이종 성격들 중 제1 성격을 갖는 하나 이상의 LLM 출력을 결정하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계를 포함한다. 상기 수정된 어시스턴트 출력 세트는 제1 성격을 반영하는 하나 이상의 제1 성격 어시스턴트 출력을 포함한다. 상기 구현예 중 또 다른 버전에서, 상기 LLM을 사용하여 하나 이상의 LLM 출력을 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는 복수의 이종 LLM 파라미터 세트들 중 제2 LLM 파라미터 세트를 사용하여 복수의 이종 성격들 중 제2 성격을 갖는 하나 이상의 LLM 출력을 결정하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계를 포함한다. 수정된 어시스턴트 출력 세트는 제2 성격을 반영하는 하나 이상의 제2 성격 어시스턴트 출력을 포함할 수 있고, 제2 성격은 제1 성격과 상이할 수 있다. 상기 구현예 중 또 다른 버전에서, 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제1 성격을 반영하는 상기 하나 이상의 제1 성격 어시스턴트 출력은 상기 제1 성격과 연관된 제1 어휘를 사용하여 결정될 수 있고, 그리고 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제2 성격을 반영하는 상기 하나 이상의 제2 성격 어시스턴트 출력은 상기 제2 성격과 연관된 제2 어휘를 사용하여 결정될 수 있고, 그리고 상기 제2 성격은 상기 제2 어휘가 상기 제1 어휘와 상이한 것에 기초하여 상기 제1 성격과 상이하다. 상기 구현예 중 추가 또는 대안적 버전에서, 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제1 성격을 반영하는 상기 하나 이상의 제1 성격 어시스턴트 출력은 상기 사용자에게 청각적으로 제시하기 위해 주어진 수정된 어시스턴트 출력을 제공하는데 활용되는 제1 운율 속성 세트와 연관될 수 있고, 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제2 성격을 반영하는 상기 하나 이상의 제2 성격 어시스턴트 출력은 상기 사용자에게 청각적으로 제시하기 위해 주어진 수정된 어시스턴트 출력을 제공하는데 활용되는 제2 운율 속성 세트와 연관될 수 있고, 그리고 상기 제2 성격은 상기 제2 운율 속성 세트가 상기 제1 운율 속성 세트와 상이한 것에 기초하여 상기 제1 성격과 상이한 것일 수 있다.
상기 구현예 중 일부 버전에서, LLM을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는 상기 대화 세션의 어시스턴트 쿼리에 대응하는 이전 대화 세션의 이전 어시스턴트 쿼리에 기초하여 이전에 생성된 하나 이상의 LLM 출력에 기초하여 및/또는 상기 대화 세션의 컨텍스트에 대응하는 이전 대화 세션의 이전 컨텍스트에 대해 이전에 생성된 하나 이상의 LLM 출력에 기초하여 LLM 모델을 사용하여 이전에 생성된 하나 이상의 LLM 출력을 식별하는 단계; 및 수정된 어시스턴트 출력 세트를 결정하기 위해 어시스턴트 출력 세트가 하나 이상의 LLM 출력으로 수정되게 하는 단계를 포함한다. 상기 구현예 중 일부 추가 버전에서, LLM 모델을 사용하여 이전에 생성된 하나 이상의 LLM 출력을 식별하는 단계는 복수의 이종 성격들 중 제1 성격을 반영하는 하나 이상의 LLM 출력 중 하나 이상의 제1 LLM 출력을 식별하는 단계를 포함할 수 있다. 상기 수정된 어시스턴트 출력 세트는 제1 성격을 반영하는 하나 이상의 제1 성격 어시스턴트 출력을 포함한다. 상기 구현예 중 일부 추가 버전에서, LLM 모델을 사용하여 이전에 생성된 하나 이상의 LLM 출력을 식별하는 단계는 복수의 이종 성격들 중 제2 성격을 반영하는 하나 이상의 LLM 출력 중 하나 이상의 제2 LLM 출력을 식별하는 단계를 포함한다. 수정된 어시스턴트 출력 세트는 제2 성격을 반영하는 하나 이상의 제2 성격 어시스턴트 출력을 포함할 수 있고, 그리고 제2 성격은 제1 성격과 상이할 수 있다. 이러한 구현예의 일부 추가적 또는 대안적 버전에서, 상기 방법은 상기 이전 대화 세션의 이전 어시스턴트 쿼리의 하나 이상의 용어에 대응하는 어시스턴트 쿼리 하나 이상의 용어를 포함하는 ASR 출력에 기초하여 상기 이전 대화 세션의 이전 어시스턴트 쿼리가 상기 대화 세션의 어시스턴트 쿼리에 대응한다고 결정하는 단계를 더 포함할 수 있다. 이러한 구현예의 일부 추가적 또는 대안적 버전에서, 상기 방법은 상기 어시스턴트 쿼리에 대응하는 ASR 출력의 하나 이상의 용어에 기초하여, 상기 어시스턴트 쿼리의 임베딩을 생성하는 단계; 및 상기 이전 대화 세션의 이전 어시스턴트 쿼리의 이전에 생성된 임베딩과 상기 어시스턴트 쿼리의 임베딩을 비교하는 것에 기초하여 상기 이전 대화 세션의 이전 어시스턴트 쿼리가 상기 대화 세션의 어시스턴트 쿼리에 대응한다고 결정하는 단계를 더 포함할 수 있다. 이러한 구현예의 일부 추가적 또는 대안적 버전에서, 상기 방법은 상기 이전 대화 세션의 하나 이상의 컨텍스트 신호에 대응하는 상기 대화 세션의 하나 이상의 컨텍스트 신호에 기초하여 상기 이전 대화 세션의 이전 컨텍스트가 상기 대화 세션의 컨텍스트에 대응한다고 결정하는 단계를 포함할 수 있다. 상기 구현예 중 일부 버전에서, 하나 이상의 컨텍스트 신호는 시간, 요일, 클라이언트 디바이스의 위치, 클라이언트 디바이스 환경의 주변 소음 중 하나 이상을 포함할 수 있다. 이러한 구현예의 일부 추가적 또는 대안적 버전에서, 상기 방법은 상기 대화 세션의 컨텍스트 신호에 기초하여, 상기 대화 세션의 컨텍스트의 임베딩을 생성하는 단계; 및 상기 이전 대화 세션의 이전 컨텍스트의 이전에 생성된 임베딩과 상기 하나 이상의 신호 컨텍스트 신호의 임베딩을 비교하는 것에 기초하여 상기 이전 대화 세션의 이전 컨텍스트가 상기 대화 세션의 컨텍스트에 대응한다고 결정하는 단계를 더 포함할 수 있다.
상기 구현예 중 일부 버전에서, 상기 대화 세션의 컨텍스트의 적어도 일부 및 상기 어시스턴트 쿼리의 적어도 일부에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는 상기 NLU 출력에 기초하여, 상기 음성 발화에 포함된 상기 어시스턴트 쿼리와 연관된 의도를 결정하는 단계; 상기 음성 발화에 포함된 상기 어시스턴트 쿼리와 연관된 의도에 기초하여, 상기 음성 발화에 포함된 상기 어시스턴트 쿼리와 연관된 의도와 관련된 적어도 하나의 관련 의도를 식별하는 단계; 및 상기 적어도 하나의 관련 의도에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하는 단계를 포함할 수 있다. 상기 구현예 중 일부 추가 버전에서, 상기 추가 어시스턴트 쿼리에 기초하여 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계는 상기 추가 어시스턴트 쿼리에 대한 응답인 상기 추가 어시스턴트 출력을 생성하기 위해 애플리케이션 프로그래밍 인터페이스(API)를 통해 상기 추가 어시스턴트 쿼리가 하나 이상의 제1-파티 시스템에 전송되게 하는 단계를 포함할 수 있다. 상기 구현예 중 추가적 또는 대안적 버전에서, 상기 추가 어시스턴트 쿼리에 기초하여 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계는 상기 추가 어시스턴트 쿼리가 하나 이상의 네트워크를 통해 하나 이상의 서드파티 시스템에 전송되게 하는 단계; 및 상기 추가 어시스턴트 쿼리가 상기 서드파티 시스템 중 하나 이상에 전송되는 것에 응답하여, 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 수신하는 단계를 포함할 수 있다. 상기 구현예 중 일부 추가적 또는 대안적 버전에서, 포함할 수 있다 LLM을 사용하여 결정된 하나 이상의 LLM 출력 또는 하나 이상의 추가 LLM 출력을 사용하여 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 및 대화 세션의 컨텍스트를 프로세싱하는 단계는 상기 LLM을 사용하여, 하나 이상의 추가 LLM 출력을 결정하기 위해 추가 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계; 및 하나 이상의 추가 LLM 출력에 기초하여 수정된 추가 어시스턴트 출력 세트를 결정하는 단계를 포함할 수 있다. 상기 구현예 중 일부 추가적 또는 대안적 버전에서, 포함할 수 있다 LLM을 사용하여 결정된 하나 이상의 LLM 출력 또는 하나 이상의 추가 LLM 출력을 사용하여 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 및 대화 세션의 컨텍스트를 프로세싱하는 단계는 상기 대화 세션의 추가 어시스턴트 쿼리에 대응하는 이전 대화 세션의 이전 어시스턴트 쿼리에 기초하여 이전에 생성된 하나 이상의 추가 LLM 출력에 기초하여 및/또는 상기 대화 세션의 컨텍스트에 대응하는 이전 대화 세션의 이전 컨텍스트에 대해 이전에 생성된 하나 이상의 추가 LLM 출력에 기초하여 LLM 모델을 사용하여 이전에 생성된 하나 이상의 추가 LLM 출력을 식별하는 단계; 및 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 세트가 하나 이상의 추가 LLM 출력으로 수정되게 하는 단계를 포함할 수 있다.
일부 구현예에서, 방법은 하나 이상의 순위 기준에 기초하여, 어시스턴트 출력의 슈퍼세트에 순위를 매기는 단계, 상기 어시스턴트 출력의 슈퍼세트는 적어도 상기 어시스턴트 출력 세트 및 상기 수정된 어시스턴트 출력 세트를 포함하며; 및 상기 순위에 기초하여, 상기 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력을 선택하는 단계를 더 포함한다. 상기 구현예 중 일부 버전에서, 방법은 상기 하나 이상의 순위 기준에 기초하여, 추가 어시스턴트 출력의 슈퍼세트에 순위를 매기는 단계, 상기 어시스턴트 출력의 슈퍼세트는 적어도 상기 추가 어시스턴트 출력 세트 및 상기 수정된 추가 어시스턴트 출력 세트를 포함하며; 및 상기 순위에 기초하여, 상기 수정된 추가 어시스턴트 출력 세트로부터 주어진 수정된 추가 어시스턴트 출력을 선택하는 단계를 더 포함한다. 상기 구현예 중 일부 추가 버전에서, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력이 상기 사용자에게 제시하기 위해 제공되게 하는 단계는 상기 주어진 수정된 어시스턴트 출력과 상기 주어진 수정된 추가 어시스턴트 출력을 결합하는 단계; 텍스트-투-스피치(TTS) 모델을 사용하여, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 캡처하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 생성하기 위해 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 프로세싱하는 단계; 및 상기 클라이언트 디바이스의 스피커를 통해 상기 사용자에게 제시하기 위해 상기 합성된 스피치 오디오 데이터가 청각적으로 렌더링되게 하는 단계를 포함할 수 있다.
일부 구현예에서, 방법은 하나 이상의 순위 기준에 기초하여, 어시스턴트 출력의 슈퍼세트에 순위를 매기는 단계, 상기 어시스턴트 출력의 슈퍼세트는 상기 어시스턴트 출력 세트, 상기 수정된 어시스턴트 출력 세트, 상기 추가 어시스턴트 출력 및 상기 수정된 추가 어시스턴트 출력 세트를 포함하며; 및 상기 순위에 기초하여, 상기 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력 및 상기 수정된 추가 어시스턴트 출력 세트로부터 주어진 수정된 추가 어시스턴트 출력을 선택하는 단계를 더 포함할 수 있다. 상기 구현예 중 일부 추가 버전에서, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력이 상기 사용자에게 제시하기 위해 제공되게 하는 단계는 텍스트-투-스피치(TTS) 모델을 사용하여, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 캡처하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 생성하기 위해 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 프로세싱하는 단계; 및 상기 클라이언트 디바이스의 스피커를 통해 상기 사용자에게 제시하기 위해 상기 합성된 스피치 오디오 데이터가 청각적으로 렌더링되게 하는 단계를 포함할 수 있다.
일부 구현예에서, 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하는 단계는 상기 음성 발화에 포함된 어시스턴트 쿼리의 적어도 일부를 프로세싱하는 것에 더 기초할 수 있다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고, 상기 방법은 클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서: 상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며; 상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며; 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 프로세싱하는 단계는: 대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하고, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며, 그리고 상기 대화 세션의 컨텍스트의 적어도 일부 및 상기 어시스턴트 쿼리의 적어도 일부에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하며; 상기 추가 어시스턴트 쿼리에 기초하여, 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계; 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력에 기초하여, 상기 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 수정된 어시스턴트 출력 세트를 프로세싱하는 단계; 및 상기 수정된 추가 어시스턴트 출력 세트 중에서 주어진 수정된 추가 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함한다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고, 상기 방법은 클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서: 상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며; 상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며; 및 대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계를 포함하고, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정된다. 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하는 단계는 (i) 상기 어시스턴트 출력 세트, (ii) 상기 대화 세션의 컨텍스트 및 (iii) 복수의 이종 성격들 중 제1 성격을 반영하는 상기 하나 이상의 LLM 출력 중 하나 이상의 제1 LLM 출력에 기초하여, 제1 성격 응답 세트를 생성하는 것을 포함한다. 방법은 상기 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함한다.
일부 구현예에서 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고, 상기 방법은 클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서: 상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며; 상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며; 대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며; 및 상기 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함한다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고, 상기 방법은 클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서: 상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며; 상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며; 상기 음성 발화의 프로세싱에 기초하여, 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정하는 단계; 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정하기로 결정하는 것에 응답하여: 대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며; 및 상기 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함한다.
본 명세서에서 개시된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예에서, 상기 음성 발화의 프로세싱에 기초하여, 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정하는 단계는 ASR(automatic speech recognition) 모델을 사용하여, ASR 출력 스트림을 생성하기 위해 오디오 데이터 스트림을 프로세싱하는 단계; NLU(natural language understanding) 모델을 사용하여, NLU 데이터 스트림을 생성하기 위해 ASR 출력 스트림을 프로세싱하는 단계; 상기 NLU 데이터 스트림에 기초하여, 음성 발화를 제공하는 사용자의 의도를 식별하는 단계; 및 상기 음성 발화를 제공하는 사용자의 의도에 기초하여 어시스턴트 출력을 수정할지 여부를 결정하는 단계를 포함한다.
일부 구현예에서, 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정하는 단계는 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 하나 이상의 계산 비용에 더 기초할 수 있다. 상기 구현예 중 일부 버전에서, 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 하나 이상의 계산 비용은 배터리 소비, 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 프로세서 소비 또는 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 레이턴시 중 하나 이상을 포함할 수 있다.
일부 구현예에서, 하나 이상의 프로세서들에 의해 구현되는 방법이 제공되고, 상기 방법은 자동화된 어시스턴트로 향하는 복수의 어시스턴트 쿼리들 및 복수의 어시스턴트 쿼리들 각각에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트를 획득하는 단계; 상기 복수의 어시스턴트 쿼리들 각각에 대해: 하나 이상의 대형 언어 모델(LLM)을 사용하여, 상기 주어진 어시스턴트 쿼리에 대한 응답인 대응하는 LLM 출력을 생성하기 위해 상기 복수의 어시스턴트 쿼리들 중 주어진 어시스턴트 쿼리를 프로세싱하는 단계; 및 상기 주어진 어시스턴트 쿼리 및/또는 상기 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 기초하여 클라이언트 디바이스에서 액세스할 수 있는 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계; 및 상기 클라이언트 디바이스에서 액세스할 수 있는 메모리에서 대응하는 LLM 출력을 인덱싱한 후, 클라이언트 디바이스 사용자와 상기 클라이언트 디바이스에 의해 구현되는 자동화된 어시스턴트 간의 현재 대화 세션의 일부로서: 상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되며; 상기 오디오 데이터 스트림을 프로세싱하는 것에 기초하여, 상기 음성 발화가 주어진 어시스턴트 쿼리에 대응하는 현재 어시스턴트 쿼리를 포함하고 및/또는 상기 음성 발화가 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 대응하는 현재 대화 세션의 현재 컨텍스트에서 수신되었다고 결정하는 단계; 및 상기 자동화된 어시스턴트가 상기 음성 발화에 응답하여 사용자에게 제시하기 위해 제공될 어시스턴트 출력을 생성할 때 대응하는 LLM 출력을 활용하게 하는 단계를 포함한다.
본 명세서에서 개시된 기술의 이들 또는 다른 구현예들은 다음 구성들 중 하나 이상을 각각 선택적으로 포함할 수 있다.
일부 구현예에서, 상기 자동화된 어시스턴트로 향하는 상기 복수의 어시스턴트 쿼리들은 상기 클라이언트 디바이스를 통해 사용자에 의해 이전에 제출되었다. 일부 구현예에서, 상기 자동화된 어시스턴트로 향하는 상기 복수의 어시스턴트 쿼리들은 각각의 클라이언트 디바이스를 통해 상기 클라이언트 디바이스의 사용자에 더하여 복수의 추가 사용자들에 의해 이전에 제출되었다.
일부 구현예에서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리를 프로세싱할 때 생성된 주어진 어시스턴트 쿼리의 임베딩에 기초할 수 있다. 일부 구현예에서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리를 프로세싱할 때 생성된 주어진 어시스턴트 쿼리에 포함된 하나 이상의 용어 또는 문구에 기초할 수 있다. 일부 구현예에서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트의 임베딩에 기초할 수 있다. 일부 구현예에서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 포함된 하나 이상의 컨텍스트 신호에 기초할 수 있다.
추가로, 일부 구현예들은 하나 이상의 컴퓨팅 디바이스들의 하나 이상의 프로세서들(예를 들어, 중앙 프로세싱 유닛(들)(CPU(들)), 그래픽 프로세싱 유닛(들)(GPU(들)) 및/또는 텐서 프로세싱 유닛(들)(TPU(들)))을 포함하며, 상기 하나 이상의 프로세서들은 연관된 메모리에 저장된 명령어들을 실행하도록 동작가능하며, 상기 명령어들은 전술된 임의의 방법들을 수행하게 하도록 구성된다. 또한, 일부 구현예들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 하나 이상의 프로세서들에 의해 실행가능한 컴퓨터 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 또한, 일부 구현예들은 앞서 언급된 방법들 중 임의의 것을 수행하도록 하나 이상의 프로세서들에 의해 실행가능한 컴퓨터 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.

Claims (42)

  1. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서:
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며;
    상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며;
    상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 프로세싱하는 단계는:
    대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하고, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며, 그리고
    상기 대화 세션의 컨텍스트의 적어도 일부 및 상기 어시스턴트 쿼리의 적어도 일부에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하며;
    상기 추가 어시스턴트 쿼리에 기초하여, 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계;
    상기 LLM을 사용하여 생성된 하나 이상의 LLM 출력 또는 하나 이상의 추가 LLM 출력을 사용하여 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 및 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 추가 LLM 출력 각각은 상기 대화 세션의 컨텍스트 및 상기 추가 어시스턴트 출력의 적어도 일부에 기초하여 결정되며; 및
    상기 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력과 수정된 추가 어시스턴트 출력 세트로부터 주어진 수정된 추가 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 오디오 데이터 스트림 프로세싱에 기초하여, 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답인 어시스턴트 출력 세트를 결정하는 단계는:
    ASR(automatic speech recognition) 모델을 사용하여, ASR 출력 스트림을 생성하기 위해 오디오 데이터 스트림을 프로세싱하는 단계;
    NLU(natural language understanding) 모델을 사용하여, NLU 데이터 스트림을 생성하기 위해 ASR 출력 스트림을 프로세싱하는 단계; 및
    NLU 스트림에 기초하여 어시스턴트 출력 세트가 결정되게 하는 단계를 포함하는, 방법.
  3. 청구항 2에 있어서, 상기 LLM을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는:
    상기 LLM을 사용하여, 하나 이상의 LLM 출력을 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계; 및
    하나 이상의 LLM 출력에 기초하여 수정된 어시스턴트 출력 세트를 결정하는 단계를 포함하는, 방법.
  4. 청구항 3에 있어서, 상기 LLM을 사용하여 하나 이상의 LLM 출력을 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는:
    복수의 이종 LLM 파라미터 세트들 중 제1 LLM 파라미터 세트를 사용하여 복수의 이종 성격들 중 제1 성격을 갖는 하나 이상의 LLM 출력을 결정하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계를 포함하며,
    상기 수정된 어시스턴트 출력 세트는 제1 성격을 반영하는 하나 이상의 제1 성격 어시스턴트 출력을 포함하는, 방법.
  5. 청구항 4에 있어서, 상기 LLM을 사용하여 하나 이상의 LLM 출력을 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는:
    복수의 이종 LLM 파라미터 세트들 중 제2 LLM 파라미터 세트를 사용하여 복수의 이종 성격들 중 제2 성격을 갖는 하나 이상의 LLM 출력을 결정하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계를 포함하며,
    수정된 어시스턴트 출력 세트는 제2 성격을 반영하는 하나 이상의 제2 성격 어시스턴트 출력을 포함하고, 그리고
    상기 제2 성격은 상기 제1 성격과 상이한 것인, 방법.
  6. 청구항 5에 있어서, 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제1 성격을 반영하는 상기 하나 이상의 제1 성격 어시스턴트 출력은 상기 제1 성격과 연관된 제1 어휘를 사용하여 결정되며, 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제2 성격을 반영하는 상기 하나 이상의 제2 성격 어시스턴트 출력은 상기 제2 성격과 연관된 제2 어휘를 사용하여 결정되며, 그리고 상기 제2 성격은 상기 제2 어휘가 상기 제1 어휘와 상이한 것에 기초하여 상기 제1 성격과 상이한 것인, 방법.
  7. 청구항 5에 있어서, 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제1 성격을 반영하는 상기 하나 이상의 제1 성격 어시스턴트 출력은 상기 사용자에게 청각적으로 제시하기 위해 주어진 수정된 어시스턴트 출력을 제공하는데 활용되는 제1 운율 속성 세트와 연관되며, 상기 수정된 어시스턴트 출력 세트에 포함되고 상기 제2 성격을 반영하는 상기 하나 이상의 제2 성격 어시스턴트 출력은 상기 사용자에게 청각적으로 제시하기 위해 주어진 수정된 어시스턴트 출력을 제공하는데 활용되는 제2 운율 속성 세트와 연관되며, 그리고 상기 제2 성격은 상기 제2 운율 속성 세트가 상기 제1 운율 속성 세트와 상이한 것에 기초하여 상기 제1 성격과 상이한 것인, 방법.
  8. 청구항 2 내지 7 중 어느 한 항에 있어서, 상기 LLM을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는:
    상기 대화 세션의 어시스턴트 쿼리에 대응하는 이전 대화 세션의 이전 어시스턴트 쿼리에 기초하여 이전에 생성된 하나 이상의 LLM 출력에 기초하여 및/또는 상기 대화 세션의 컨텍스트에 대응하는 이전 대화 세션의 이전 컨텍스트에 대해 이전에 생성된 하나 이상의 LLM 출력에 기초하여 LLM 모델을 사용하여 이전에 생성된 하나 이상의 LLM 출력을 식별하는 단계; 및
    수정된 어시스턴트 출력 세트를 결정하기 위해 어시스턴트 출력 세트가 하나 이상의 LLM 출력으로 수정되게 하는 단계를 포함하는, 방법.
  9. 청구항 8에 있어서, LLM 모델을 사용하여 이전에 생성된 하나 이상의 LLM 출력을 식별하는 단계는:
    복수의 이종 성격들 중 제1 성격을 반영하는 하나 이상의 LLM 출력 중 하나 이상의 제1 LLM 출력을 식별하는 단계를 포함하며,
    상기 수정된 어시스턴트 출력 세트는 제1 성격을 반영하는 하나 이상의 제1 성격 어시스턴트 출력을 포함하는, 방법.
  10. 청구항 9에 있어서, LLM 모델을 사용하여 이전에 생성된 하나 이상의 LLM 출력을 식별하는 단계는:
    복수의 이종 성격들 중 제2 성격을 반영하는 하나 이상의 LLM 출력 중 하나 이상의 제2 LLM 출력을 식별하는 단계를 포함하며,
    수정된 어시스턴트 출력 세트는 제2 성격을 반영하는 하나 이상의 제2 성격 어시스턴트 출력을 포함하고, 그리고
    상기 제2 성격은 상기 제1 성격과 상이한 것인, 방법.
  11. 청구항 8 내지 10 중 어느 한 항에 있어서,
    상기 이전 대화 세션의 이전 어시스턴트 쿼리의 하나 이상의 용어에 대응하는 어시스턴트 쿼리 하나 이상의 용어를 포함하는 ASR 출력에 기초하여 상기 이전 대화 세션의 이전 어시스턴트 쿼리가 상기 대화 세션의 어시스턴트 쿼리에 대응한다고 결정하는 단계를 더 포함하는, 방법.
  12. 청구항 8 내지 11 중 어느 한 항에 있어서,
    상기 어시스턴트 쿼리에 대응하는 ASR 출력의 하나 이상의 용어에 기초하여, 상기 어시스턴트 쿼리의 임베딩을 생성하는 단계; 및
    상기 이전 대화 세션의 이전 어시스턴트 쿼리의 이전에 생성된 임베딩과 상기 어시스턴트 쿼리의 임베딩을 비교하는 것에 기초하여 상기 이전 대화 세션의 이전 어시스턴트 쿼리가 상기 대화 세션의 어시스턴트 쿼리에 대응한다고 결정하는 단계를 더 포함하는, 방법.
  13. 청구항 8 내지 12 중 어느 한 항에 있어서,
    상기 이전 대화 세션의 하나 이상의 컨텍스트 신호에 대응하는 상기 대화 세션의 하나 이상의 컨텍스트 신호에 기초하여 상기 이전 대화 세션의 이전 컨텍스트가 상기 대화 세션의 컨텍스트에 대응한다고 결정하는 단계를 포함하는, 방법.
  14. 청구항 13에 있어서, 상기 하나 이상의 컨텍스트 신호는 시간, 요일, 클라이언트 디바이스의 위치, 클라이언트 디바이스 환경의 주변 소음 중 하나 이상을 포함하는, 방법.
  15. 청구항 8 내지 14 중 어느 한 항에 있어서,
    상기 대화 세션의 컨텍스트 신호에 기초하여, 상기 대화 세션의 컨텍스트의 임베딩을 생성하는 단계; 및
    상기 이전 대화 세션의 이전 컨텍스트의 이전에 생성된 임베딩과 상기 하나 이상의 신호 컨텍스트 신호의 임베딩을 비교하는 것에 기초하여 상기 이전 대화 세션의 이전 컨텍스트가 상기 대화 세션의 컨텍스트에 대응한다고 결정하는 단계를 더 포함하는, 방법.
  16. 청구항 2 내지 15 중 어느 한 항에 있어서, 상기 대화 세션의 컨텍스트의 적어도 일부 및 상기 어시스턴트 쿼리의 적어도 일부에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하기 위해 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계는:
    상기 NLU 출력에 기초하여, 상기 음성 발화에 포함된 상기 어시스턴트 쿼리와 연관된 의도를 결정하는 단계;
    상기 음성 발화에 포함된 상기 어시스턴트 쿼리와 연관된 의도에 기초하여, 상기 음성 발화에 포함된 상기 어시스턴트 쿼리와 연관된 의도와 관련된 적어도 하나의 관련 의도를 식별하는 단계; 및
    상기 적어도 하나의 관련 의도에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하는 단계를 포함하는, 방법.
  17. 청구항 16에 있어서, 상기 추가 어시스턴트 쿼리에 기초하여 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계는:
    상기 추가 어시스턴트 쿼리에 대한 응답인 상기 추가 어시스턴트 출력을 생성하기 위해 애플리케이션 프로그래밍 인터페이스(API)를 통해 상기 추가 어시스턴트 쿼리가 하나 이상의 제1-당사자 시스템에 전송되게 하는 단계를 포함하는, 방법.
  18. 청구항 16에 있어서, 상기 추가 어시스턴트 쿼리에 기초하여 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계는:
    상기 추가 어시스턴트 쿼리가 하나 이상의 네트워크를 통해 하나 이상의 서드파티 시스템에 전송되게 하는 단계; 및
    상기 추가 어시스턴트 쿼리가 상기 서드파티 시스템 중 하나 이상에 전송되는 것에 응답하여, 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 수신하는 단계를 포함하는, 방법.
  19. 청구항 16 내지 18 중 어느 한 항에 있어서, 상기 LLM을 사용하여 결정된 하나 이상의 LLM 출력 또는 하나 이상의 추가 LLM 출력을 사용하여 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 및 대화 세션의 컨텍스트를 프로세싱하는 단계는:
    상기 LLM을 사용하여, 하나 이상의 추가 LLM 출력을 결정하기 위해 추가 어시스턴트 출력 세트 및 대화 세션의 컨텍스트를 프로세싱하는 단계; 및
    하나 이상의 추가 LLM 출력에 기초하여 수정된 추가 어시스턴트 출력 세트를 결정하는 단계를 포함하는, 방법.
  20. 청구항 16 내지 18 중 어느 한 항에 있어서, 상기 LLM을 사용하여 결정된 하나 이상의 LLM 출력 또는 하나 이상의 추가 LLM 출력을 사용하여 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 및 대화 세션의 컨텍스트를 프로세싱하는 단계는:
    상기 대화 세션의 추가 어시스턴트 쿼리에 대응하는 이전 대화 세션의 이전 어시스턴트 쿼리에 기초하여 이전에 생성된 하나 이상의 추가 LLM 출력에 기초하여 및/또는 상기 대화 세션의 컨텍스트에 대응하는 이전 대화 세션의 이전 컨텍스트에 대해 이전에 생성된 하나 이상의 추가 LLM 출력에 기초하여 LLM 모델을 사용하여 이전에 생성된 하나 이상의 추가 LLM 출력을 식별하는 단계; 및
    수정된 추가 어시스턴트 출력 세트를 생성하기 위해 추가 어시스턴트 출력 세트가 하나 이상의 추가 LLM 출력으로 수정되게 하는 단계를 포함하는, 방법.
  21. 임의의 선행하는 청구항에 있어서,
    하나 이상의 순위 기준에 기초하여, 어시스턴트 출력의 슈퍼세트에 순위를 매기는 단계, 상기 어시스턴트 출력의 슈퍼세트는 적어도 상기 어시스턴트 출력 세트 및 상기 수정된 어시스턴트 출력 세트를 포함하며; 및
    상기 순위에 기초하여, 상기 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력을 선택하는 단계를 더 포함하는, 방법.
  22. 청구항 21에 있어서,
    상기 하나 이상의 순위 기준에 기초하여, 추가 어시스턴트 출력의 슈퍼세트에 순위를 매기는 단계, 상기 어시스턴트 출력의 슈퍼세트는 적어도 상기 추가 어시스턴트 출력 세트 및 상기 수정된 추가 어시스턴트 출력 세트를 포함하며; 및
    상기 순위에 기초하여, 상기 수정된 추가 어시스턴트 출력 세트로부터 주어진 수정된 추가 어시스턴트 출력을 선택하는 단계를 더 포함하는, 방법.
  23. 청구항 22에 있어서, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력이 상기 사용자에게 제시하기 위해 제공되게 하는 단계는:
    상기 주어진 수정된 어시스턴트 출력과 상기 주어진 수정된 추가 어시스턴트 출력을 결합하는 단계;
    텍스트-투-스피치(TTS) 모델을 사용하여, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 캡처하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 생성하기 위해 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 프로세싱하는 단계; 및
    상기 클라이언트 디바이스의 스피커를 통해 상기 사용자에게 제시하기 위해 상기 합성된 스피치 오디오 데이터가 청각적으로 렌더링되게 하는 단계를 포함하는, 방법.
  24. 임의의 선행하는 청구항에 있어서,
    하나 이상의 순위 기준에 기초하여, 어시스턴트 출력의 슈퍼세트에 순위를 매기는 단계, 상기 어시스턴트 출력의 슈퍼세트는 상기 어시스턴트 출력 세트, 상기 수정된 어시스턴트 출력 세트, 상기 추가 어시스턴트 출력 및 상기 수정된 추가 어시스턴트 출력 세트를 포함하며; 및
    상기 순위에 기초하여, 상기 수정된 어시스턴트 출력 세트로부터 주어진 수정된 어시스턴트 출력 및 상기 수정된 추가 어시스턴트 출력 세트로부터 주어진 수정된 추가 어시스턴트 출력을 선택하는 단계를 더 포함하는, 방법.
  25. 청구항 24에 있어서, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력이 상기 사용자에게 제시하기 위해 제공되게 하는 단계는:
    텍스트-투-스피치(TTS) 모델을 사용하여, 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 캡처하는 합성 스피치를 포함하는 합성 스피치 오디오 데이터를 생성하기 위해 상기 주어진 수정된 어시스턴트 출력 및 상기 주어진 수정된 추가 어시스턴트 출력을 프로세싱하는 단계; 및
    상기 클라이언트 디바이스의 스피커를 통해 상기 사용자에게 제시하기 위해 상기 합성된 스피치 오디오 데이터가 청각적으로 렌더링되게 하는 단계를 포함하는, 방법.
  26. 임의의 선행하는 청구항에 있어서, 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하는 단계는 상기 음성 발화에 포함된 어시스턴트 쿼리의 적어도 일부를 프로세싱하는 것에 더 기초하는, 방법.
  27. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서:
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며;
    상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며;
    상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 프로세싱하는 단계는:
    대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하고, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며, 그리고
    상기 대화 세션의 컨텍스트의 적어도 일부 및 상기 어시스턴트 쿼리의 적어도 일부에 기초하여 상기 음성 발화와 관련된 추가 어시스턴트 쿼리를 생성하며;
    상기 추가 어시스턴트 쿼리에 기초하여, 상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력을 결정하는 단계;
    상기 추가 어시스턴트 쿼리에 대한 응답인 추가 어시스턴트 출력에 기초하여, 상기 수정된 추가 어시스턴트 출력 세트를 생성하기 위해 수정된 어시스턴트 출력 세트를 프로세싱하는 단계; 및
    상기 수정된 추가 어시스턴트 출력 세트 중에서 주어진 수정된 추가 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함하는, 방법.
  28. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서:
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며;
    상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며;
    대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며, 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하는 것은:
    (i) 상기 어시스턴트 출력 세트, (ii) 상기 대화 세션의 컨텍스트 및 (iii) 복수의 이종 성격들 중 제1 성격을 반영하는 상기 하나 이상의 LLM 출력 중 하나 이상의 제1 LLM 출력에 기초하여, 제1 성격 응답 세트를 생성하는 것을 포함하며; 및
    상기 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함하는, 방법.
  29. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서:
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며;
    상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며;
    대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며; 및
    상기 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함하는, 방법.
  30. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    클라이언트 디바이스 사용자와 클라이언트 디바이스에 의해 구현된 자동화된 어시스턴트 간의 대화 세션의 일부로서:
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되고, 상기 음성 발화는 어시스턴트 쿼리를 포함하며;
    상기 오디오 데이터 스트림 프로세싱에 기초하여, 어시스턴트 출력 세트를 결정하는 단계, 상기 어시스턴트 출력 세트의 각 어시스턴트 출력은 상기 음성 발화에 포함된 어시스턴트 쿼리에 대한 응답이며;
    상기 음성 발화의 프로세싱에 기초하여, 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정하는 단계;
    상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정하기로 결정하는 것에 응답하여:
    대형 언어 모델(LLM, large language model)을 사용하여 생성된 하나 이상의 LLM 출력을 사용하여 수정된 어시스턴트 출력 세트를 생성하기 위해 상기 어시스턴트 출력 세트와 상기 대화 세션의 컨텍스트를 프로세싱하는 단계, 상기 하나 이상의 LLM 출력 각각은 상기 대화 세션의 컨텍스트의 적어도 일부와 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력에 기초하여 결정되며; 및
    상기 수정된 어시스턴트 출력 세트 중에서 주어진 수정된 어시스턴트 출력이 사용자에게 제시하기 위해 제공되게 하는 단계를 포함하는, 방법.
  31. 청구항 30에 있어서, 상기 음성 발화의 프로세싱에 기초하여, 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정하는 단계는:
    ASR(automatic speech recognition) 모델을 사용하여, ASR 출력 스트림을 생성하기 위해 오디오 데이터 스트림을 프로세싱하는 단계;
    NLU(natural language understanding) 모델을 사용하여, NLU 데이터 스트림을 생성하기 위해 ASR 출력 스트림을 프로세싱하는 단계;
    상기 NLU 데이터 스트림에 기초하여, 음성 발화를 제공하는 사용자의 의도를 식별하는 단계; 및
    상기 음성 발화를 제공하는 사용자의 의도에 기초하여 어시스턴트 출력을 수정할지 여부를 결정하는 단계를 포함하는, 방법.
  32. 청구항 30 또는 31에 있어서, 상기 어시스턴트 출력 세트에 포함된 하나 이상의 어시스턴트 출력을 수정할지 여부를 결정하는 단계는 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 하나 이상의 계산 비용에 더 기초하는, 방법.
  33. 청구항 32에 있어서, 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 하나 이상의 계산 비용은 배터리 소비, 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 프로세서 소비 또는 하나 이상의 어시스턴트 출력을 수정하는 것과 연관된 레이턴시 중 하나 이상을 포함하는, 방법.
  34. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    자동화된 어시스턴트로 향하는 복수의 어시스턴트 쿼리들 및 복수의 어시스턴트 쿼리들 각각에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트를 획득하는 단계;
    상기 복수의 어시스턴트 쿼리들 각각에 대해:
    하나 이상의 대형 언어 모델(LLM)을 사용하여, 상기 주어진 어시스턴트 쿼리에 대한 응답인 대응하는 LLM 출력을 생성하기 위해 상기 복수의 어시스턴트 쿼리들 중 주어진 어시스턴트 쿼리를 프로세싱하는 단계; 및
    상기 주어진 어시스턴트 쿼리 및/또는 상기 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 기초하여 클라이언트 디바이스에서 액세스할 수 있는 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계; 및
    상기 클라이언트 디바이스에서 액세스할 수 있는 메모리에서 대응하는 LLM 출력을 인덱싱한 후, 클라이언트 디바이스 사용자와 상기 클라이언트 디바이스에 의해 구현되는 자동화된 어시스턴트 간의 현재 대화 세션의 일부로서:
    상기 사용자의 음성 발화를 캡처하는 오디오 데이터 스트림을 수신하는 단계, 상기 오디오 데이터 스트림은 상기 클라이언트 디바이스의 하나 이상의 마이크에서 생성되며;
    상기 오디오 데이터 스트림을 프로세싱하는 것에 기초하여, 상기 음성 발화가 주어진 어시스턴트 쿼리에 대응하는 현재 어시스턴트 쿼리를 포함하고 및/또는 상기 음성 발화가 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 대응하는 현재 대화 세션의 현재 컨텍스트에서 수신되었다고 결정하는 단계; 및
    상기 자동화된 어시스턴트가 상기 음성 발화에 응답하여 사용자에게 제시하기 위해 제공될 어시스턴트 출력을 생성할 때 대응하는 LLM 출력을 활용하게 하는 단계를 포함하는, 방법.
  35. 청구항 34에 있어서, 상기 자동화된 어시스턴트로 향하는 상기 복수의 어시스턴트 쿼리들은 상기 클라이언트 디바이스를 통해 사용자에 의해 이전에 제출되었던 것인, 방법.
  36. 청구항 34에 있어서, 상기 자동화된 어시스턴트로 향하는 상기 복수의 어시스턴트 쿼리들은 각각의 클라이언트 디바이스를 통해 상기 클라이언트 디바이스의 사용자에 더하여 복수의 추가 사용자들에 의해 이전에 제출되었던 것인, 방법.
  37. 청구항 34 내지 36 중 어느 한 항에 있어서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리를 프로세싱할 때 생성된 주어진 어시스턴트 쿼리의 임베딩에 기초하는, 방법.
  38. 청구항 34 내지 36 중 어느 한 항에 있어서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리를 프로세싱할 때 생성된 주어진 어시스턴트 쿼리에 포함된 하나 이상의 용어 또는 문구에 기초하는, 방법.
  39. 청구항 34 내지 36 중 어느 한 항에 있어서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트의 임베딩에 기초하는, 방법.
  40. 청구항 34 내지 36 중 어느 한 항에 있어서, 상기 클라이언트 디바이스에서 액세스 가능한 메모리에서 대응하는 LLM 출력을 인덱싱하는 단계는 상기 주어진 어시스턴트 쿼리에 대한 대응하는 이전 대화 세션의 대응하는 컨텍스트에 포함된 하나 이상의 컨텍스트 신호에 기초하는, 방법.
  41. 시스템으로서,
    적어도 하나의 프로세서; 및
    실행될 때, 상기 적어도 하나의 프로세서로 하여금 청구항 1 내지 40 중 어느 한 항에 대응하는 방법을 수행하게 하는 명령어들을 저장하는 메모리를 포함하는, 시스템.
  42. 명령어들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체로서, 상기 명령어들은 실행될 때, 적어도 하나의 프로세서로 하여금 청구항 1 내지 40 중 어느 한 항에 대응하는 방법을 수행하게 하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020237042963A 2021-09-07 2021-11-30 자동화된 어시스턴트 응답(들) 생성에 대규모 언어 모델 사용 KR20240007261A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163241232P 2021-09-07 2021-09-07
US63/241,232 2021-09-07
US17/532,794 US20230074406A1 (en) 2021-09-07 2021-11-22 Using large language model(s) in generating automated assistant response(s
US17/532,794 2021-11-22
PCT/US2021/061214 WO2023038654A1 (en) 2021-09-07 2021-11-30 Using large language model(s) in generating automated assistant response(s)

Publications (1)

Publication Number Publication Date
KR20240007261A true KR20240007261A (ko) 2024-01-16

Family

ID=79171013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237042963A KR20240007261A (ko) 2021-09-07 2021-11-30 자동화된 어시스턴트 응답(들) 생성에 대규모 언어 모델 사용

Country Status (5)

Country Link
EP (1) EP4169015A1 (ko)
JP (1) JP2024521053A (ko)
KR (1) KR20240007261A (ko)
AU (1) AU2021463794A1 (ko)
WO (1) WO2023038654A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230184652A1 (en) * 2021-12-13 2023-06-15 Google Llc Enabling an automated assistant to leverage odor sensor(s) of client device(s)
CN117093679B (zh) * 2023-06-19 2024-04-02 无码科技(杭州)有限公司 一种大语言模型智能问诊对话方法、系统、设备及介质
CN116561286B (zh) * 2023-07-06 2023-10-27 杭州华鲤智能科技有限公司 一种对话方法及装置
CN116719911B (zh) * 2023-08-10 2023-10-31 成都不烦智能科技有限责任公司 自动化流程生成方法、装置、设备及存储介质
CN116992005B (zh) * 2023-09-25 2023-12-01 语仓科技(北京)有限公司 基于大模型及本地知识库的智能对话方法、系统及设备

Also Published As

Publication number Publication date
AU2021463794A1 (en) 2023-09-28
EP4169015A1 (en) 2023-04-26
JP2024521053A (ja) 2024-05-28
WO2023038654A1 (en) 2023-03-16

Similar Documents

Publication Publication Date Title
JP7064018B2 (ja) 複数の年齢グループおよび/または語彙レベルに対処する自動化されたアシスタント
KR102357218B1 (ko) 자연스러운 어시스턴트 상호작용
CN113557566B (zh) 动态地适配助理响应
JP7418526B2 (ja) 自動アシスタントを起動させるための動的および/またはコンテキスト固有のホットワード
US20230074406A1 (en) Using large language model(s) in generating automated assistant response(s
KR102599607B1 (ko) 자동화된 어시스턴트를 호출하기 위한 다이내믹 및/또는 컨텍스트 특정 핫워드
KR20240007261A (ko) 자동화된 어시스턴트 응답(들) 생성에 대규모 언어 모델 사용
US20230046658A1 (en) Synthesized speech audio data generated on behalf of human participant in conversation
US20230343324A1 (en) Dynamically adapting given assistant output based on a given persona assigned to an automated assistant
KR20230062612A (ko) 자동화된 어시스턴트를 위한 자연스러운 대화 활성화
US20240055003A1 (en) Automated assistant interaction prediction using fusion of visual and audio input
US20230215422A1 (en) Multimodal intent understanding for automated assistant
JP2024510698A (ja) アシスタントコマンドの文脈的抑制
CN117136405A (zh) 使用大型语言模型生成自动化助理响应
US11756533B2 (en) Hot-word free pre-emption of automated assistant response presentation
US20240031339A1 (en) Method(s) and system(s) for utilizing an independent server to facilitate secure exchange of data
US20240078374A1 (en) System(s) and method(s) for causing contextually relevant emoji(s) to be visually rendered for presentation to user(s) in smart dictation
KR20230158615A (ko) 자동화된 어시스턴트를 위한 소프트 엔드포인팅을 사용한 자연스러운 대화 활성화