스크립트
00:00:00Mein Name ist Bo. Ich werde hier über Echtzeit-Sprachagenten mit Frontier Intelligence sprechen.
00:00:18Eigentlich geht es darum, ein wenig darüber zu sprechen, wie wir bei
00:00:22Elise AI unser Sprachagenten-Framework aufgebaut haben, um Echtzeit-Sprache mit der
00:00:28Intelligenz auf dem Niveau der neuesten Modelle zu ermöglichen, die wir benötigen. Bevor ich beginne, möchte ich
00:00:36einige Parallelen dazu aufzeigen, warum wir uns für kaskadierte Sprachagenten entschieden haben
00:00:42und das insbesondere mit selbstfahrenden Autos vergleichen, an denen ich früher gearbeitet habe.
00:00:48Für mich machen kaskadierte Sprachagenten sehr viel Sinn, wenn man sie unter dem Aspekt
00:00:53betrachtet, sie in Wahrnehmung zu unterteilen – was bei selbstfahrenden Autos
00:00:59eben die Bounding Boxes, die Kamera und das Lidar sind. Bei Sprache wird es
00:01:05die Transkription sein, die im Grunde diese Signale aus der realen Welt
00:01:09in Datenelemente umwandelt, die das Sprachmodell oder welches Gehirn auch immer verarbeiten kann.
00:01:17Das zweite ist der Planungs-Stack, was ziemlich unkompliziert ist.
00:01:23Hier nimmt das Sprachmodell die Ausgaben der Wahrnehmungsstufe entgegen und erzeugt
00:01:29die Ergebnisse, die Sie zurück in die reale Welt ausgeben möchten. Und schließlich gibt es die Steuerungsschicht,
00:01:36bei der man im autonomen Fahren die Trajektorie nimmt, die der Planer ausgibt, und sie quasi
00:01:43in echte Steuersignale umwandelt, um das Auto zu lenken. Hier wandeln wir den Text in
00:01:50Audio um, mit dem wir die Gedanken unserer Sprachagenten ausdrücken. Und ja, hier werde ich mich also ein wenig vertiefen in
00:02:00jeder dieser Bereiche, und wir haben in jedem dieser Bereiche ein paar interessante Tricks entwickelt, um
00:02:08die Geschwindigkeit unserer Sprachagenten zu verbessern, ohne die Intelligenz zu opfern.
00:02:13Das erste ist also die Transkribiererschicht. Wir haben uns dieses Konzept ausgedacht, das wir
00:02:19den Streaming Speculative Transcriber nennen, bei dem wir effektiv einen schnellen Streaming-Transkribierer
00:02:24wie Flux über oder quasi unter ein Scribe v2 legen, einen genauen Batch-Transkribierer,
00:02:33der mehr Kontext verarbeitet. Er ist etwas langsamer, liefert aber genauere Erkennungen.
00:02:39Gehen wir also ein Szenario durch: In diesem Fall hat der Agent gerade gefragt:
00:02:44"Können Sie Ihren Namen und Ihr Geburtsdatum nennen?", der Benutzer wird antworten, und wir sehen, wie sich das
00:02:49zeitlich auswirkt. Zuerst erhalten wir die erste Erkennung. Wir erhalten sie
00:02:57aus der Streaming-Schicht. Die genaue Schicht, die Korrekturschicht, wird nicht ausgelöst, da es sich um denselben Text handelt.
00:03:05Wir erhalten einige weitere Streaming-Texterkennungen, und in diesem Fall wird die Korrekturschicht tatsächlich
00:03:11abgebrochen, da wir neuen Text erhalten haben – mehr Kontext und mehr Audio übertreffen also den alten genauen Text.
00:03:21Hier setzt nun die erste Korrektur an. Da die Scribe v2-Schicht versteht,
00:03:27worum es in der Frage geht, erkennt sie, dass hier von einem Namen und einem Geburtsdatum die Rede ist.
00:03:34Und dann noch ein paar weitere Erkennungen. Das ist nur Interpunktion, das interessiert uns nicht.
00:03:37Am Ende leiten wir diesen Text also an den Agenten weiter.
00:03:44Weiter geht es mit der Sprachmodell-Schicht. Da wir hier eher langsame, aber
00:03:52intelligente LLMs verwenden, möchten wir die Anzahl der Roundtrips wirklich reduzieren. Was uns zu vielen
00:03:58Inferenzschritten zwingt, sind Tool Calls. Eine Möglichkeit, das zu umgehen, besteht darin, Hintergrundagenten die Tool Calls
00:04:05für Sie erledigen zu lassen und die Tools wieder in den Kontext des Hauptagenten einzubringen, sodass dieser denkt,
00:04:13er habe den Tool Call selbst gemacht, obwohl das gar nicht der Fall war. Erinnern wir uns an die Erkennung von vorhin: Was also passiert, ist, dass jede dieser Erkennungen eine
00:04:26frühe Generierung des Agenten auslöst, wir diese aber nicht tatsächlich ausgeben, bis wir bestätigt haben, dass
00:04:38der Benutzer zu sprechen aufgehört hat. In diesem Fall sagt der Benutzer "Sicher". Der Agent weiß quasi, dass der Benutzer noch etwas sagen wird.
00:04:45Unser Hintergrund-Tool-Call, der uns dabei helfen soll, den Namen und das Geburtsdatum aus der Benutzererkennung zu ermitteln,
00:04:51wird nicht ausgelöst, also passiert da nicht viel. Die nächste Soforterkennung trifft ein. Sie besagt, dass es immer noch nicht wirklich ein Name ist.
00:05:02Unser Agent spielt quasi mit und macht dort weiter.
00:05:06Jetzt kommt mehr Kontext zurück. Der Agent hat das Gefühl, dass es da einen Namen geben sollte.
00:05:11Er wird bitten, ihn zu buchstabieren, weil er wahrscheinlich vermutet, dass hier ein Transkriptionsfehler vorliegt.
00:05:16Immer noch kein Name und kein Geburtsdatum. Und schließlich – erinnern Sie sich – ist dies unsere korrigierte,
00:05:22finale Soforterkennung des Transkribierers von Scribe v2.
00:05:27Hier wird unsere voreilige Agentengenerierung, die ohne Tool Calls erstellt wurde, abgebrochen,
00:05:34weil der Hintergrundagent endlich den Namen und das Geburtsdatum finden kann, nach denen er gesucht hat.
00:05:38Er wird also neu gestartet und nun verfügt der Agent tatsächlich über den Kontext, den er braucht.
00:05:45Und hier sehen Sie, wie wir das machen. Der Tool Call enthält hier ein wenig
00:05:49Intelligenz. Wir korrigieren Fehlschreibweisen von Namen
00:05:53und führen hier quasi einen phonetischen Abgleich durch.
00:05:57Und sobald wir verstanden haben, dass dies das Ende der Benutzereingabe ist,
00:06:02geben wir sie aus. Also recht Standard.
00:06:06Gut, und die nächste Ebene hier ist Text-to-Speech. Bei Text-to-Speech besteht das Ziel
00:06:12darin, das zu nehmen, was der Agent gesagt hat, während der Agent dies in einem Streaming-
00:06:16Verfahren ausgibt. Wir müssen also so schnell wie möglich Audio erzeugen. Im Idealfall können Sie
00:06:24bereits Audio abspielen, bevor der Agent überhaupt mit der vollständigen Texterstellung fertig ist. So lässt sich quasi
00:06:31die Latenz beim Abschließen der Generierung verbergen. Ich spiele jetzt also die Streaming-
00:06:39Ausgabe des Streaming-Agenten ab. Sie beginnt mit U. Und bevor ich tiefer darauf eingehe, gibt es
00:06:46ein neues Konzept, das wir hier vorstellen und das sich Prefix-Cache nennt. Der Prefix-Cache
00:06:52überprüft den Datenstrom des Agenten, um festzustellen, ob wir für diese Wortsequenz bereits
00:07:02Audio generiert haben, etwa aus einer vorherigen Generierung oder vielleicht derselben Generierung in diesem Gespräch.
00:07:10Er erkennt das Wort U. Bei diesem Prefix-Cache wollen wir nicht
00:07:17bei jedem einzelnen Wort sofort einen Treffer landen. Wir warten ein wenig länger. Nach
00:07:24drei Wörtern verzeichnet der Prefix-Cache unseren ersten Treffer. Und rechts sehen Sie unseren
00:07:31Standard-Text-to-Speech-Anbieter – Cartesia ist beispielsweise eine Text-to-Speech-Engine mit WebSocket-Unterstützung.
00:07:36Wir leiten den Agenten also durch den Cache und gleichzeitig durch das WebSocket.
00:07:45Weitere Token kommen an, mehr Caching, mehr Daten an das WebSocket gesendet. Hier gibt es nicht viel zu sagen.
00:07:51Und nun erhalten wir unser erstes einzigartiges Element: Wir haben ein Token gefunden, das tatsächlich
00:07:59einen Cache-Miss verursacht. Das macht Sinn, wenn wir vorherige Generierungen cachen. "You said your name"
00:08:05ist ziemlich gebräuchlich, aber sobald wir den Namen hinzufügen, führt das plötzlich zu einem Cache-Miss.
00:08:12An diesem Punkt geben wir tatsächlich unser gecachtes Audio aus. "You said your name is" wird
00:08:19ausgegeben, während der restliche Streaming-Text zurückkommt. Zu diesem Zeitpunkt hört der Benutzer den Agenten.
00:08:25Der Benutzer weiß nicht wirklich, was vor sich geht; für ihn wirkt es einfach wie extrem schnelle Antwortzeiten.
00:08:32Und jetzt fließt der verbleibende Text durch. An diesem Punkt haben wir bereits aus dem Cache ausgegeben.
00:08:38Der Cache hat seine Arbeit getan. Den Rest können wir quasi an Cartesia übergeben. Und hier ist der Trick,
00:08:46bei dem Cartesia das gesamte Transkript bis zu diesem Punkt gesehen hat. Für Cartesia ist nicht ersichtlich,
00:08:56dass dieser Prefix-Cache existiert. Es generiert einfach den vollständigen Satz mit
00:09:01standardmäßiger natürlicher Intonation. Aber wenn die Generierung zurückkommt, da wir das Audio
00:09:08bereits hier abgespielt haben, können wir das Audio von Cartesia tatsächlich unterdrücken
00:09:13und einfach den restlichen Teil abspielen. Der Benutzer bemerkt vielleicht einen ganz kleinen Schluckauf – ich spiele später noch etwas Audio ab, und
00:09:21Sie werden merken, dass Sie es wahrscheinlich kaum wahrnehmen können. Effektiv nehmen wir diesen Teil
00:09:28und geben ihn direkt aus, nachdem dieses Audio zu Ende abgespielt wurde. Für den Benutzer wirkt das also nahtlos.
00:09:35Und ja, das waren jetzt viele technische Details. Der beste Weg ist wohl,
00:09:43einfach einen Anruf abzuspielen und das in Aktion zu sehen. Ich habe hier also einen Anruf aufgezeichnet und wir hören uns an, was passiert.
00:09:53Hier sprechen wir mit Ihnen. Hier ist Bo, Frauenarztpraxis Elise am Apparat.
00:09:59Hallo, ich glaube, ich bin vielleicht schwanger und möchte einen Ultraschall zur Bestätigung vereinbaren.
00:10:03Das sind aufregende Neuigkeiten. Können Sie Ihren Namen und Ihr Geburtsdatum nennen?
00:10:08Sicher, es ist Elise Trial. Geburtsdatum 23.03.
00:10:15Vielen Dank. Sind Sie zum ersten Mal bei uns Patientin?
00:10:24Ja. Willkommen bei Bo, Frauenarztpraxis. Darf ich Ihnen einen Link per SMS senden, um Ihre Versicherungsinformationen hochzuladen?
00:10:34Sicher. Okay. Gesendet. Geben Sie mir Bescheid, sobald Sie ihn erhalten haben.
00:10:48Ich habe Ihre Versicherungsinformationen erhalten. Der früheste Termin, den ich habe, ist Donnerstag,
00:10:53der 2. Juli, um 10 Uhr. Moment, geben Sie mir eine Sekunde. Ich sehe kurz in meinem Kalender nach.
00:11:01Klar, lassen Sie sich Zeit. Haben Sie etwas für nächste Woche?
00:11:09Für nächste Woche kann ich einen Ultraschall bei Dr. Avery Stone in der North Clinic am Dienstag,
00:11:14dem 7. Juli, um 14 Uhr oder 15 Uhr anbieten. Passt einer davon für Sie?
00:11:20Ja, 14 Uhr passt. Super. Ihr Termin wurde gebucht. Wir freuen uns darauf, Sie dann zu sehen.
00:11:29Danke. Tschüss. Gut. Ja, das war es im Grunde auch schon.
00:11:35Ja, man sieht hier irgendwie – all dieses Streaming und, wissen Sie, es passiert eine Menge
00:11:43im Hintergrund. Und ja, das ist es, was Sprachagenten wirklich interessant macht.
00:11:48Und es lässt sich im Framework noch viel Aufwand betreiben, um wirklich eine
00:11:55natürliche Konversation zu erzielen, worauf wir aus sind.
00:11:59Okay. Ja, also, ich möchte im letzten Teil nur noch kurz etwas über
00:12:04Elyse erzählen. Ich denke, Elyse – unser Hauptsitz ist in New York, und wir
00:12:09versuchen, unsere Präsenz hier in der Bay Area auszubauen. Wir sind – ich denke, das ist vielleicht ein anderer Typ
00:12:15von Unternehmen, als die Leute ihn sich vorstellen, wenn sie an KI-Startups in San Francisco denken,
00:12:23wo wir uns tatsächlich sehr stark darauf konzentrieren, Menschen zu helfen und ihnen dort zu helfen, wo sie es
00:12:31am meisten brauchen, wie in den kritischsten Bereichen des Lebens. Wir arbeiten an Wohnen und im Gesundheitswesen, und wir sind sehr erfolgreich,
00:12:37und hier gibt es einen Link, um unserem Team beizutreten, und wir werden
00:12:45viel auf Twitter posten, sodass Sie uns auch unter @Elyse.ai folgen können. Ja, das war's.
00:12:57Wir werden also noch ein wenig mehr auf Twitter posten und wir werden noch ein wenig mehr auf Twitter posten.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기