WEBVTT
NOTE
Transcription provided by Podhome.fm
Created: 02/08/2026
21:02:53Duration: 3565.304
Channels: 1
1
00:00:05.120 -->
00:00:08.000Hello, and welcome to the AI Engineering Podcast,
2
00:00:08.000 -->
00:00:12.160your guide to the fast moving world of building scalable and maintainable AI systems.
3
00:00:19.685 -->
00:00:24.485Unlock the full potential of your AI workloads with a seamless and composable data infrastructure.
4
00:00:25.060 -->
00:00:32.739Bruin is an open source framework that streamlines integration from the command line, allowing you to focus on what matters most, building intelligent systems.
5
00:00:33.300 -->
00:00:41.255Write Python code for your business logic and let Bruin handle the heavy lifting of data movement, lineage tracking, data quality monitoring, and governance enforcement.
6
00:00:41.735 -->
00:00:48.935With native support for ML and AI workloads, Bruin empowers data teams to deliver faster, more reliable, and scalable AI solutions.
7
00:00:49.495 -->
00:00:55.255Harness Bruin's connectors for hundreds of platforms, including popular machine learning frameworks like TensorFlow and PyTorch.
8
00:00:55.910 -->
00:01:00.230Build end to end AI workflows that integrate seamlessly with your existing tech stack.
9
00:01:00.550 -->
00:01:05.510Join the ranks of forward thinking organizations that are revolutionizing their data engineering with Bruin.
10
00:01:05.750 -->
00:01:09.575Get started today at aiengineeringpodcast.com/bruin.
11
00:01:09.575 -->
00:01:14.135And for dbt cloud customers, enjoy a $1,000 credit to migrate to Bruin Cloud.
12
00:01:14.455 -->
00:01:27.340Your host is Tobias Maci, and today I'm interviewing Carter Huffman about his work in building an ensemble approach to low latency voice AI. So, Carter, can you start by introducing yourself? Hey. I'm Carter Hoffman. I'm the CTO and cofounder over at Modulate.
13
00:01:27.659 -->
00:01:29.340We do proactive
14
00:01:29.340 -->
00:01:33.820voice analysis understanding in Frontier Voice AI. Super nice to meet you.
15
00:01:34.140 -->
00:01:36.939And do you remember how you first got started in the ML and AI space?
16
00:01:37.465 -->
00:01:42.985Absolutely. Yeah. It was actually over at the Jet Propulsion Laboratory in Pasadena, California,
17
00:01:43.465 -->
00:01:47.305which is one of the NASA centers focused on the robotic exploration of space.
18
00:01:47.625 -->
00:01:52.825And I've been really into space, really into robots my whole life. And so when a recruiter came to JPL
19
00:01:53.170 -->
00:02:11.565to my school, and I, you know, kind of talked to him, and he was like, hey, you know, my job is landing robots on Mars. You want to come interview? I was like, oh, yeah, sure. You know, I don't do a ton of, like, space robotics. But yeah, absolutely. I'll come apply. And I got hired into the the machine learning and instrument autonomy group. So I helped make the spacecraft smarter. That's where I started.
20
00:02:11.965 -->
00:02:22.110And so in the context of what you're working on now, I know that you recently had an announcement about some of the restructuring and refactoring
21
00:02:22.110 -->
00:02:25.310of at least some component of your VoiceAI
22
00:02:25.870 -->
00:02:26.910capabilities.
23
00:02:26.910 -->
00:02:36.805And before we get too much into the details of that, I'm wondering if you could just unpack a little bit about what you mean by that term voice AI and how it is maybe differentiated
24
00:02:36.805 -->
00:02:41.045from a lot of the other AI applications that folks are likely using today.
25
00:02:41.685 -->
00:02:45.285Sure thing. Absolutely. So by voice AI, I really mean
26
00:02:45.630 -->
00:02:48.430machine learning and artificial intelligence models
27
00:02:48.510 -->
00:02:50.190that are built towards
28
00:02:50.270 -->
00:02:51.310understanding,
29
00:02:51.310 -->
00:02:52.270manipulating,
30
00:02:52.270 -->
00:02:53.230and producing
31
00:02:53.550 -->
00:02:55.310human voice signals.
32
00:02:55.630 -->
00:02:58.990And the reason why voice AI is kind of its own category
33
00:02:59.435 -->
00:03:03.195is because voice is a really interesting form of media.
34
00:03:03.355 -->
00:03:17.730You have text. You have images. You have video. You have voice. And if you've been following the trajectory of AI just in general over the past twenty years, you notice that people build models that tackle text, images, and video first.
35
00:03:18.130 -->
00:03:20.050Voice kinda trails behind,
36
00:03:20.370 -->
00:03:24.850and that's because voice is really, really technically difficult. There's a lot of data there,
37
00:03:26.085 -->
00:03:28.965but it all encodes
38
00:03:28.965 -->
00:03:37.765a ton of nuanced information that's very hard for us as human beings to verbalize and really recognize. Like, you can tell my tone is off
39
00:03:38.180 -->
00:03:45.300just because you're, like, evolutionarily built to notice that stuff. And when you try to reproduce that or manipulate that with a machine,
40
00:03:45.460 -->
00:03:48.020it's very, very difficult to get it perfect.
41
00:03:48.420 -->
00:03:52.020And if you do voice AI slightly less than perfect,
42
00:03:52.515 -->
00:03:56.675it becomes super noticeable and super, like, disconcerting.
43
00:03:56.754 -->
00:04:08.034Contrast with, like, generating an image of a face, you see a face in anything. So it's very easy to make a face even if there's a ton of cool research going on. So that's kind of why voice AI is its own separate thing.
44
00:04:09.050 -->
00:04:09.770And
45
00:04:10.250 -->
00:04:12.570another aspect of that is that,
46
00:04:13.050 -->
00:04:15.210actually, maybe one of the earlier
47
00:04:15.370 -->
00:04:22.650models that was introduced in this current era of generative models and transformer architectures
48
00:04:22.085 -->
00:04:27.125was the whisper model from open AI, which is very focused on voice
49
00:04:27.125 -->
00:04:28.005with the
50
00:04:28.325 -->
00:04:45.820caveat that it's only trying to convert that to a textual representation to increase the amount of corpora available for training of these language models. And I'm wondering if you can add a bit more nuance to some of the detail of what you're talking about with those elements of inflection and tone
51
00:04:45.900 -->
00:04:51.580and how that's differentiated from purely transcription based or being able to even do
52
00:04:52.045 -->
00:05:00.045speech to speech where I just wanna be able to take that voice signal, convert it to text, feed it to an LLM, generate some output, and then convert it back to voice.
53
00:05:00.685 -->
00:05:01.565Absolutely.
54
00:05:01.565 -->
00:05:02.445Yeah. So
55
00:05:02.765 -->
00:05:08.680doing that flow speech to text to speech works reasonably well when
56
00:05:08.760 -->
00:05:09.960the emotional
57
00:05:09.960 -->
00:05:14.280content sentiment or kind of long term context of a conversation
58
00:05:14.520 -->
00:05:16.360is relatively unimportant.
59
00:05:16.360 -->
00:05:23.175So you can get kind of reasonable responses and reasonable back and forth on short time scales in that situation.
60
00:05:23.414 -->
00:05:28.615But voice contains a ton more signal than just the, like, textual content
61
00:05:28.935 -->
00:05:43.510of of what you're saying. How you say it is super, super important. So, like, for example, you know, I I say, like, hey. I'm super excited to be here. I'm thrilled. Or I can say, like, yeah. I'm super excited to be here. I'm thrilled.
62
00:05:43.750 -->
00:05:55.105The exact same words. And if you transcribe it and feed it to an LLM, it will do exactly the same thing with those two signals. But you and I know that you would react to that statement extremely
63
00:05:55.105 -->
00:05:55.985differently.
64
00:05:56.465 -->
00:06:02.865And that's just one of the aspects. And there's a ton of, like, social relationship and context packed into
65
00:06:03.720 -->
00:06:09.320why am I expressing that emotion in that way. So that was what makes it difficult,
66
00:06:09.560 -->
00:06:18.680and that's kind of what makes it very important to be able to capture those other signals because you have to react almost in opposite ways depending on the tone and emotion of the voice.
67
00:06:19.775 -->
00:06:21.695And now digging into
68
00:06:21.855 -->
00:06:25.775some of the announcement of your ensemble listening approach,
69
00:06:25.935 -->
00:06:27.695what are some of the
70
00:06:28.575 -->
00:06:36.090challenges or constraints that are specific to voice AI that led you to putting in the effort to actually
71
00:06:36.890 -->
00:06:49.955researching and developing this approach to how to actually manage some of that input processing and some of the general expectations and requirements around how it's supposed to operate that led you down that path?
72
00:06:50.595 -->
00:06:51.395Absolutely.
73
00:06:51.395 -->
00:06:53.955So I would say there's two main constraints
74
00:06:53.955 -->
00:06:58.275that factored into our decision to pursue a totally new architecture.
75
00:06:58.595 -->
00:07:03.030Constraint number one is cost and processing power required.
76
00:07:03.509 -->
00:07:05.030Just transcribing,
77
00:07:05.110 -->
00:07:06.790analyzing a waveform,
78
00:07:07.110 -->
00:07:09.750even doing simple relatively simple operations
79
00:07:09.750 -->
00:07:19.065like detecting accent or detecting whether there's music in the background or what kind of background noise there is, those kinds of operations on an audio stream,
80
00:07:19.865 -->
00:07:21.225you can get
81
00:07:21.385 -->
00:07:28.110a little bit of the way there with relatively simple and cheap models. But to do a very good job,
82
00:07:28.430 -->
00:07:33.950you have to deploy much more powerful and expensive models. Like, there are transcription
83
00:07:33.950 -->
00:07:40.465services out there that cost, you know, anywhere from 10¢ to a dollar to process an hour of audio.
84
00:07:40.705 -->
00:07:42.705If you're a large social platform,
85
00:07:43.025 -->
00:07:44.865you could have 50,000,000,
86
00:07:44.865 -->
00:07:46.065a 100,000,000,
87
00:07:46.305 -->
00:07:51.185three billion hours of voice content on your platform each month.
88
00:07:51.665 -->
00:07:52.385And
89
00:07:52.810 -->
00:07:54.810you're not really gonna pay $3,000,000,000
90
00:07:54.810 -->
00:08:03.530a month to analyze that audio if you wanna do something useful with it. So on the one hand, you have to be really, really cost effective and efficient
91
00:08:03.610 -->
00:08:08.090at processing those audio signals if you're gonna do anything useful at scale.
92
00:08:08.705 -->
00:08:16.065So that's problem statement number one. Problem statement number two is that audio and especially voice conversations
93
00:08:16.065 -->
00:08:18.545in particular are very kind of like a
94
00:08:18.865 -->
00:08:21.345yeah. I I call it like a lumpy multimodal
95
00:08:21.345 -->
00:08:22.385distribution.
96
00:08:22.625 -->
00:08:23.665Right? Like, you have
97
00:08:24.210 -->
00:08:25.810different pockets
98
00:08:26.130 -->
00:08:26.770of
99
00:08:27.010 -->
00:08:28.370kinds of audio,
100
00:08:28.610 -->
00:08:32.050but within those pockets, there's a ton of shared similarities.
101
00:08:32.290 -->
00:08:32.770So
102
00:08:33.330 -->
00:08:35.810we're doing, like, a podcast conversation.
103
00:08:35.810 -->
00:08:40.714Right? We're in relatively high quality audio environment, relatively low background noise.
104
00:08:40.795 -->
00:08:42.154We're enunciating
105
00:08:42.315 -->
00:08:49.195relatively clearly or at least you are. I hope I am. And we have kind of these properties that are shared
106
00:08:49.435 -->
00:08:50.235among
107
00:08:50.635 -->
00:08:53.274other very similar audio environments.
108
00:08:53.620 -->
00:09:01.860And then contrast that with calling into a customer support center, and I'm on my phone. It's over telephony, so it's, like, eight kilohertz audio,
109
00:09:01.940 -->
00:09:13.495and I'm on a bus, and there are people talking in the background. And there are a ton of also calls like that, but that's a very different distribution. You take a model like Whisper and you apply it to that distribution,
110
00:09:13.735 -->
00:09:16.215it's gonna produce absolute junk.
111
00:09:16.375 -->
00:09:17.015Right?
112
00:09:17.335 -->
00:09:20.055So you have these different pockets
113
00:09:20.310 -->
00:09:29.590where you have a lot of voice conversations that are very similar to each other, but the pockets are very, very different and require very different modeling approaches.
114
00:09:29.750 -->
00:09:31.110And if you wanna build
115
00:09:31.510 -->
00:09:37.555a big model that can handle all of those different pockets, all of the different modes of that distribution,
116
00:09:37.954 -->
00:09:39.714it has to be extremely
117
00:09:39.714 -->
00:09:41.235flexible and powerful
118
00:09:41.315 -->
00:09:43.955to handle those different data distributions
119
00:09:44.035 -->
00:09:48.620equally well. If you build a model that's extremely powerful,
120
00:09:48.699 -->
00:09:51.980it's gonna be super cost effective, so you violate the first constraint.
121
00:09:52.060 -->
00:09:54.060So it's a really, really tricky situation,
122
00:09:54.060 -->
00:09:55.660which is why it required new tech.
123
00:09:56.139 -->
00:09:58.220And so digging into
124
00:09:58.300 -->
00:10:01.339the specifics of this Ensemble architecture,
125
00:10:01.420 -->
00:10:03.394what are some of the
126
00:10:04.035 -->
00:10:10.435high level details about how it actually addresses some of those complexities around the
127
00:10:10.675 -->
00:10:17.555high cost as well as high latency issues that come up when you're dealing with these large multipurpose
128
00:10:17.555 -->
00:10:18.274models
129
00:10:18.590 -->
00:10:29.150and then also tries to address some of the accuracy issues that you run into when you go to a smaller or more quantized model to address some of those latency considerations?
130
00:10:30.030 -->
00:10:30.990Absolutely.
131
00:10:30.990 -->
00:10:34.350Great question. So there are really two main properties
132
00:10:34.565 -->
00:10:38.565that led us to the Ensemble model architecture.
133
00:10:38.885 -->
00:10:43.125Property number one is that when we're talking about those multimodal
134
00:10:43.125 -->
00:10:44.245distributions,
135
00:10:44.725 -->
00:10:50.940because the similarities are so close to each other within a single kind of mode of that distribution,
136
00:10:51.980 -->
00:10:54.779all of the data is relatively
137
00:10:54.779 -->
00:10:55.580similar,
138
00:10:55.980 -->
00:11:01.180and so you don't need a ton of capacity. A small model could get you very far.
139
00:11:01.675 -->
00:11:05.035Small specialized models can perform with high accuracy
140
00:11:05.115 -->
00:11:06.955in certain circumstances,
141
00:11:07.435 -->
00:11:10.155but you lose a lot in terms of generalizability
142
00:11:10.155 -->
00:11:13.435if you are focused on a small model.
143
00:11:14.339 -->
00:11:15.060However,
144
00:11:16.019 -->
00:11:17.620the other insight
145
00:11:17.620 -->
00:11:20.740is that these distributions
146
00:11:21.060 -->
00:11:24.660continue on over the course of the conversation.
147
00:11:24.899 -->
00:11:29.140So you and I are having this high audio quality back and forth conversation.
148
00:11:29.705 -->
00:11:36.105We're very unlikely to switch to something like a noisy bus, low audio quality environment
149
00:11:36.345 -->
00:11:40.265halfway through the conversation. Or even more importantly, we're unlikely to be swapping
150
00:11:40.505 -->
00:11:45.950back and forth all the time. And you might have different distributions for different participants,
151
00:11:46.110 -->
00:11:48.350but they remain relatively
152
00:11:48.350 -->
00:11:51.230static over the course of a conversation.
153
00:11:51.709 -->
00:11:54.750So the way to bring these two things together
154
00:11:54.990 -->
00:11:57.149is that if you can isolate
155
00:11:57.149 -->
00:11:58.670quickly and efficiently
156
00:11:59.245 -->
00:12:00.925which distribution
157
00:12:01.165 -->
00:12:06.045you're in or which distribution each participant of the conversation is in,
158
00:12:06.525 -->
00:12:09.005then if you also have
159
00:12:09.325 -->
00:12:15.630a small model or a set of small models that are tuned specifically for that distribution,
160
00:12:16.269 -->
00:12:20.190you can pick the right model to apply to that distribution,
161
00:12:20.670 -->
00:12:25.230trust it will mostly do a good job over the whole course of the conversation,
162
00:12:25.550 -->
00:12:29.470and then course correct if something does change as it as it occasionally might.
163
00:12:30.185 -->
00:12:33.225So this is sort of like how a really big model
164
00:12:33.945 -->
00:12:39.945will find paths through the weights in the large network that are appropriate for different distributions.
165
00:12:39.945 -->
00:12:46.290But instead of having to run all the weights in the network or at least a large subset of the weights in the network,
166
00:12:46.690 -->
00:12:47.570you are
167
00:12:47.890 -->
00:13:00.545pre isolating down to a very, very small subset of the overall Ensemble model that you know ahead of time or know based on the first analysis of the data in the conversation
168
00:13:00.625 -->
00:13:02.865is going to be applicable to
169
00:13:03.025 -->
00:13:06.385likely the whole rest of the conversation distribution.
170
00:13:07.345 -->
00:13:08.465Architecturally,
171
00:13:08.465 -->
00:13:09.185having
172
00:13:09.425 -->
00:13:12.529more models increases the complexity
173
00:13:12.529 -->
00:13:21.890and potential for failure as well as the variety of failure modes as is the case with any complex distributed system. And so that definitely requires
174
00:13:21.890 -->
00:13:22.610having
175
00:13:22.930 -->
00:13:25.649a high degree of confidence
176
00:13:25.649 -->
00:13:26.930in the
177
00:13:27.215 -->
00:13:28.575orchestration,
178
00:13:28.655 -->
00:13:30.255the failure recovery,
179
00:13:30.495 -->
00:13:44.769and I imagine also some measure of fallback capability for the situation where the ensemble just catastrophically fails. And I'm just wondering if you can talk to some of the ways that you thought through and proved out this overall
180
00:13:45.009 -->
00:13:47.410engineering effort and what your
181
00:13:47.889 -->
00:13:55.170calculus was as far as which pieces you were able to pull off the shelf and what are the pieces that you had to engineer from whole cloth.
182
00:13:56.765 -->
00:13:57.645Great question.
183
00:13:58.125 -->
00:13:58.685So
184
00:14:00.125 -->
00:14:04.685one of the things that surprised us most when we started deploying
185
00:14:04.845 -->
00:14:07.005these Ensemble models
186
00:14:07.565 -->
00:14:08.925was really that
187
00:14:09.580 -->
00:14:11.100as they were
188
00:14:11.260 -->
00:14:12.700running inference,
189
00:14:13.899 -->
00:14:17.580we found it very hard to predict actually
190
00:14:17.899 -->
00:14:20.140which models were important
191
00:14:20.140 -->
00:14:21.100to the results
192
00:14:21.455 -->
00:14:33.135and which models were relatively unimportant to the results and when a model was doing a good job or when a model was doing a bad job. So the actually, the initial
193
00:14:34.360 -->
00:14:36.600idea, the initial architecture,
194
00:14:36.600 -->
00:14:38.279sort of the v one
195
00:14:38.519 -->
00:14:41.240of these ELMs in our particular
196
00:14:41.560 -->
00:14:43.560model Velma, sort of v one,
197
00:14:43.879 -->
00:14:45.480is much more of a static
198
00:14:46.345 -->
00:14:47.385ensemble
199
00:14:47.465 -->
00:14:49.625that is preselected
200
00:14:50.105 -->
00:14:52.505at conversation initialization.
201
00:14:52.505 -->
00:14:56.665So you would have, like, okay. We have a big ensemble of a bunch of different models.
202
00:14:56.905 -->
00:14:58.025As you mentioned,
203
00:14:58.265 -->
00:15:07.090a ton of models leads to a complex system, so you have to select down to a very sparse set of these models to actually deploy at runtime
204
00:15:07.170 -->
00:15:09.570other for a given conversation.
205
00:15:10.290 -->
00:15:10.770Otherwise,
206
00:15:11.595 -->
00:15:23.035complexity goes up, which means the cost and difficulty of orchestration goes up, which also means that the cost in general of running the system goes up. And we talked about cost being one of the big constraints earlier on.
207
00:15:23.435 -->
00:15:37.250So the initial idea was to statically select, like, okay. We know for a given language and a given, like, social chat environment or interview call environment or other things like that,
208
00:15:37.490 -->
00:15:38.930we can kind of test
209
00:15:39.195 -->
00:15:45.515based on some ground truth labeled data sets which subsets of models work best on these environments
210
00:15:45.755 -->
00:15:51.275and then just kind of do a lookup table and and statically look up which models to run and run those for the whole conversation.
211
00:15:51.920 -->
00:15:53.440And what we found
212
00:15:53.680 -->
00:15:55.519was that when that fails,
213
00:15:55.680 -->
00:15:57.920it fails very, very, very poorly
214
00:15:58.000 -->
00:15:59.760because these models are small.
215
00:16:00.000 -->
00:16:10.685And, individually, they don't generalize well. The whole ensemble generalizes well, but, individually, the models don't generalize well. If you pick the wrong small model, you're going to get very bad results.
216
00:16:11.165 -->
00:16:15.805So this led us to doing a ton of research into how do you cost effectively
217
00:16:16.204 -->
00:16:17.005monitor
218
00:16:17.805 -->
00:16:19.805the results of the models,
219
00:16:20.259 -->
00:16:26.180How do you spot check whether or not the models are performing well? And how do you course correct
220
00:16:26.420 -->
00:16:36.795and select different subsets of models if you know these aren't performing well? And this is the idea of the dynamic ensemble block, which is one of the cool pieces
221
00:16:37.035 -->
00:16:39.675of the ELM architecture that we invented,
222
00:16:40.155 -->
00:16:43.275where we realized that this is actually an optimization problem.
223
00:16:43.515 -->
00:16:46.555Each model has a cost to run-in
224
00:16:46.555 -->
00:16:53.510a given ensemble, like our ensemble of transcription models or an ensemble of emotion detection models,
225
00:16:54.070 -->
00:16:56.310each has an expected
226
00:16:56.310 -->
00:16:57.269accuracy
227
00:16:57.670 -->
00:16:58.709given
228
00:16:58.870 -->
00:17:02.550the distribution of audio that you're currently looking at.
229
00:17:03.110 -->
00:17:03.750And
230
00:17:04.525 -->
00:17:07.804they each have a degree of confidence
231
00:17:07.804 -->
00:17:10.524that you can have about their outputs.
232
00:17:11.165 -->
00:17:15.404And the optimization problem is that as you're running data through,
233
00:17:15.885 -->
00:17:21.360you're getting results from the models that you selected in the Ensemble.
234
00:17:21.680 -->
00:17:26.559You compare those results to each other to the rest of the context of the conversation
235
00:17:26.720 -->
00:17:29.280to figure out how much you trust those results.
236
00:17:29.914 -->
00:17:35.994And then the optimization problem is around the next part of the conversation, say, the next minute that you're analyzing.
237
00:17:36.235 -->
00:17:37.674For that next minute,
238
00:17:37.914 -->
00:17:41.674how do you optimize for accuracy while minimizing cost?
239
00:17:41.914 -->
00:17:44.840And that transforms that whole problem
240
00:17:45.000 -->
00:17:55.000down into a very well known, like, multi armed bandit exploration versus exploitation problem so you can deploy a ton of well known machinery to solving that optimally.
241
00:17:55.355 -->
00:18:00.155That was the really, really cool thing once we found out this surprise that
242
00:18:00.635 -->
00:18:03.034when the models go off the rails, they go really bad.
243
00:18:03.515 -->
00:18:05.595Yeah. As you're describing
244
00:18:05.595 -->
00:18:06.955the architecture,
245
00:18:06.955 -->
00:18:09.995it brings to mind two, I guess, complementary
246
00:18:11.059 -->
00:18:32.614aspects of prior art where you're talking about the optimization question. It brings to mind a lot of the cost based optimizers that go into SQL query planners, particularly for these large scale out distributed database engines or things like the Trino engine that allows you to be able to do predicate pushdowns based on what is the actual underlying storage.
247
00:18:33.335 -->
00:18:37.654And then in terms of being able to determine which particular
248
00:18:38.560 -->
00:18:53.440model or module you want to actually route to, it brings up a lot of the conversation that's happening right now about how to actually implement these multi agent systems and how to manage communication and routing between those different agents to be able to achieve the desired outcome.
249
00:18:55.125 -->
00:18:59.765Exactly. And I think that's what makes it so exciting and so
250
00:19:00.885 -->
00:19:02.565I don't wanna say possible,
251
00:19:02.565 -->
00:19:04.565you know, but at least tractable
252
00:19:04.805 -->
00:19:05.205to
253
00:19:06.320 -->
00:19:07.120develop
254
00:19:07.120 -->
00:19:09.760this Ensemble listening model architecture
255
00:19:09.760 -->
00:19:14.000as a, you know, what, 45 person start up, is that
256
00:19:14.960 -->
00:19:16.480as you described,
257
00:19:16.640 -->
00:19:19.120cost optimization problems are everywhere.
258
00:19:19.725 -->
00:19:27.325And we're really, really like, as a species, we're really good at solving cost optimization problems. So as soon as we found out, oh,
259
00:19:27.725 -->
00:19:31.565this really tricky part of analyzing conversations
260
00:19:31.565 -->
00:19:33.165cost effectively and accurately
261
00:19:33.540 -->
00:19:37.220can be transformed into a cost optimization problem.
262
00:19:37.460 -->
00:19:57.464That was the eureka where we were like, okay. We have the tools to actually deal with this. And you can deal with that in terms of, like, you know, what is your overall cost budget, but how sensitive are you to that? You can add in things like how many GPUs or clusters of GPUs we have available. Because one of the exciting things about cost optimization around
263
00:19:57.784 -->
00:19:59.304our small models
264
00:19:59.465 -->
00:20:08.809based architecture here is that you don't need the biggest and best GPUs. You can run on we're running on, you know, five, six year old GPUs sometimes because they're the most cost effective.
265
00:20:09.050 -->
00:20:12.650So you can make the optimization problem even more complicated,
266
00:20:12.890 -->
00:20:18.234but we have the optimizers to do that. And we've had them for decades, and they're really, really, really good.
267
00:20:19.355 -->
00:20:24.075The the routing question, I think, is a really, really fun research problem.
268
00:20:24.315 -->
00:20:28.955And the thing that makes multi agent systems writing so hard, in my opinion,
269
00:20:29.195 -->
00:20:32.390is that agents are so flexible.
270
00:20:33.590 -->
00:20:37.990Any agent could, in theory, do a wide variety of things,
271
00:20:38.470 -->
00:20:42.070take in a wide variety of inputs, produce a wide variety of outputs.
272
00:20:42.544 -->
00:20:51.104It's very flexible subcomponents of the system. So figuring out how to route to which one is optimal when many of them can do many of the tasks
273
00:20:51.265 -->
00:20:52.705can be very tricky.
274
00:20:52.865 -->
00:20:54.385This is an advantage to
275
00:20:54.940 -->
00:21:05.660the ensemble of small models approach, at least when trying to solve the routing problem, is that we know exactly what all of these small models do. We know exactly what their cost is. They don't have a thinking budget.
276
00:21:06.300 -->
00:21:10.414They don't really have a very flexible compute graph.
277
00:21:10.495 -->
00:21:12.654Each of these individual models
278
00:21:12.815 -->
00:21:16.334are relatively small and self contained and predictable.
279
00:21:16.335 -->
00:21:22.414And we also, because they're small, have a very good understanding of their output distribution
280
00:21:22.850 -->
00:21:29.650across different kinds of inputs that they might be given and what kind of accuracy ranges we can expect.
281
00:21:30.050 -->
00:21:33.010So in terms of routing between the different models,
282
00:21:34.130 -->
00:21:37.330making each of the individual nodes super predictable,
283
00:21:37.765 -->
00:21:42.004as we have turns that routing problem into
284
00:21:42.405 -->
00:21:44.085a pretty deterministic
285
00:21:44.085 -->
00:21:54.220kind of thing as opposed to something with agents where it's very easy for the agents to, like, get themselves into a loop or something like that. Or we're a very much a, like, directed graph
286
00:21:54.300 -->
00:21:56.299with some feedback loops,
287
00:21:56.380 -->
00:21:57.340asynchronous,
288
00:21:57.340 -->
00:21:58.379low priority
289
00:21:58.460 -->
00:22:04.780to do things like optimize selecting which models. But that doesn't get in the way of the feed forward processing of the data.
290
00:22:05.965 -->
00:22:09.964It also reminds me of at least my understanding
291
00:22:09.965 -->
00:22:12.364of the GPT five
292
00:22:12.365 -->
00:22:13.245category
293
00:22:13.245 -->
00:22:18.445of model deployments where my understanding is that it's not actually one monolithic
294
00:22:18.445 -->
00:22:19.164model.
295
00:22:19.404 -->
00:22:20.524It's actually several
296
00:22:20.929 -->
00:22:26.370sub models that are specialized for different cases, and they abstract that underneath
297
00:22:26.370 -->
00:22:41.475a routing layer that determines which model to actually use under the covers. And I'm wondering what are some of the aspects of prior art that you were able to pull from either anything that they've published or any other similar product launches that have happened over the past several months.
298
00:22:42.275 -->
00:22:43.315Absolutely.
299
00:22:43.955 -->
00:22:46.595We've been working with ensembles
300
00:22:46.595 -->
00:22:48.115of models for years.
301
00:22:48.610 -->
00:22:51.489So the prior art that we pull from
302
00:22:51.809 -->
00:22:54.049is mostly more from
303
00:22:54.370 -->
00:22:57.249traditional mixture of experts models
304
00:22:57.570 -->
00:22:59.249and traditional
305
00:22:59.570 -->
00:23:01.169hybrid systems
306
00:23:01.250 -->
00:23:02.049between
307
00:23:02.395 -->
00:23:04.235rules based and
308
00:23:04.635 -->
00:23:07.514neural network or black box kind of architectures
309
00:23:07.674 -->
00:23:09.674and combining those things together.
310
00:23:09.915 -->
00:23:10.794I also
311
00:23:11.275 -->
00:23:15.674it was really exciting. Got to pull on some of my work from JPL
312
00:23:15.960 -->
00:23:16.759where
313
00:23:17.640 -->
00:23:20.760we were doing a lot of investigations
314
00:23:20.760 -->
00:23:25.320into how can you deploy AI systems safely on spacecraft.
315
00:23:25.960 -->
00:23:26.600And
316
00:23:26.919 -->
00:23:28.039on a spacecraft,
317
00:23:29.205 -->
00:23:30.725doing something unpredictable
318
00:23:30.725 -->
00:23:40.085is often quite fatal. Right? If you accidentally turn your solar panels away from the sun, it's hard to recover from that if your battery goes dead.
319
00:23:40.565 -->
00:23:42.885And if you accidentally turn off your radio,
320
00:23:43.549 -->
00:23:46.190unless you have a fallback system, which they do,
321
00:23:47.230 -->
00:23:50.429it's hard to tell the spacecraft to turn it back on again.
322
00:23:51.070 -->
00:23:55.070So when you're deploying an AI system onto a spacecraft,
323
00:23:55.150 -->
00:23:57.870the number one lesson is bounding
324
00:23:58.264 -->
00:23:59.464the effects
325
00:23:59.465 -->
00:24:01.624that that one model can have
326
00:24:01.865 -->
00:24:13.919on the rest of your system. So no matter what the network says, like, hey. We need to go look at this rock next. It's the most important rock I've ever seen in my entire life. Ultimately,
327
00:24:13.919 -->
00:24:17.919the outputs of that model can be perfect or they can be garbage,
328
00:24:18.159 -->
00:24:22.559but they're all fed into more of a rules based, well understood,
329
00:24:23.280 -->
00:24:24.559constrained
330
00:24:24.720 -->
00:24:25.520optimization
331
00:24:25.520 -->
00:24:26.480algorithm
332
00:24:26.785 -->
00:24:31.184such that even if the AI encounters something completely unpredictable,
333
00:24:31.905 -->
00:24:34.145you've already got the predetermined
334
00:24:34.145 -->
00:24:36.144bounds to keep it from
335
00:24:36.545 -->
00:24:40.785completely crashing everything else. So this actually related back to
336
00:24:41.539 -->
00:24:42.980how we orchestrated
337
00:24:42.980 -->
00:24:48.739some of our models because we're using those input distribution features
338
00:24:48.980 -->
00:24:52.099and the results from some of our sub ensembles
339
00:24:52.100 -->
00:24:56.100to figure out, are we doing a good job at understanding this conversation?
340
00:24:56.764 -->
00:25:03.244But you might see the problem with that of we're using our models to figure out if our models are doing a good job.
341
00:25:03.725 -->
00:25:04.364And
342
00:25:04.845 -->
00:25:07.084if they're confused but confident,
343
00:25:07.164 -->
00:25:09.484you can mess up the entire conversation.
344
00:25:09.485 -->
00:25:12.860And some of the stuff we're doing is actually pretty,
345
00:25:13.260 -->
00:25:19.660like, high risk, high high reward kind of stuff. You know? We're deployed in social game stopping harassment.
346
00:25:19.900 -->
00:25:29.315You accidentally banned the victim instead of the aggressor in our harassment situation. That can cause a lot of real harm to a lot of real people. We look for extremism,
347
00:25:29.315 -->
00:25:46.190child safety incidents, other things like that. It's like, it can be relatively high cost if you get the stuff wrong. Of course, you have other safeguards on it, but it's still an important problem to get right. So if your models are just confident in their own abilities and you don't have a check on them, you can run into serious problems.
348
00:25:46.670 -->
00:25:55.615So that's why you were asking a little bit about off the shelf models earlier. There's actually a place for the large, highly general
349
00:25:56.415 -->
00:25:57.215models
350
00:25:57.375 -->
00:26:05.455in an ELM framework as kind of a supervisor or a check. So we actually have a suite of models in our different ensembles
351
00:26:05.720 -->
00:26:08.760that are very high capability,
352
00:26:08.760 -->
00:26:10.600high cost generalists.
353
00:26:10.920 -->
00:26:14.600And we will occasionally and this is, again, an optimization problem.
354
00:26:15.080 -->
00:26:17.800We will occasionally run them to check
355
00:26:18.465 -->
00:26:19.665the outputs
356
00:26:19.665 -->
00:26:22.225of our smaller, more specialized models
357
00:26:22.385 -->
00:26:28.065and make sure that they agree to a reasonable degree. And you can't run it too often or it gets expensive,
358
00:26:28.145 -->
00:26:34.860but you can't run that not at all. Otherwise, you fall into this confidence problem. So you have this kind of checking feedback loop,
359
00:26:35.100 -->
00:26:39.179and that's how you constrain your overall system
360
00:26:39.340 -->
00:26:49.085to do a pretty good job. But, again, a lot of that priority is coming from stuff that people were working on one, two decades ago. Some of these ideas, they're not super, super new.
361
00:26:50.045 -->
00:26:51.005And then
362
00:26:51.245 -->
00:26:56.125generalizing beyond the voice use case, what are some of the
363
00:26:56.980 -->
00:26:58.980environments or situations
364
00:26:58.980 -->
00:27:03.379that you would advocate for teams to explore,
365
00:27:03.779 -->
00:27:05.299either building their own
366
00:27:05.700 -->
00:27:14.735Ensemble approach or if there are any other off the shelf frameworks that allow for building this style of Ensemble model capability,
367
00:27:14.735 -->
00:27:15.455again,
368
00:27:16.095 -->
00:27:17.534not including the
369
00:27:17.775 -->
00:27:21.775multi agent use case because of the inherent flexibility involved.
370
00:27:24.370 -->
00:27:25.330Great question.
371
00:27:26.450 -->
00:27:27.169The
372
00:27:27.570 -->
00:27:28.450applicability
373
00:27:28.450 -->
00:27:30.050of Ensemble model
374
00:27:30.530 -->
00:27:32.130well, first, I would say
375
00:27:33.090 -->
00:27:35.169anybody working in a
376
00:27:35.410 -->
00:27:36.370regime
377
00:27:36.450 -->
00:27:37.970where you are going to do
378
00:27:38.605 -->
00:27:39.884a similar
379
00:27:40.044 -->
00:27:41.004task
380
00:27:41.085 -->
00:27:42.924many, many times over,
381
00:27:43.804 -->
00:27:45.804I would recommend looking into
382
00:27:46.044 -->
00:27:48.044small models in general
383
00:27:48.205 -->
00:27:49.485and ensembles
384
00:27:49.485 -->
00:27:50.684of small models
385
00:27:50.870 -->
00:27:54.470in the cases where you need a lot of general flexibility,
386
00:27:55.110 -->
00:27:57.830but all around a similar kind of task.
387
00:27:58.070 -->
00:28:00.470So the reason why ELMs were so
388
00:28:01.270 -->
00:28:03.750directly applicable to voice conversations
389
00:28:03.830 -->
00:28:05.430is because voice conversations
390
00:28:05.985 -->
00:28:07.904have a ton of shared properties.
391
00:28:08.145 -->
00:28:20.705You're always wanna gonna wanna get a transcript. You're always gonna wanna figure out who are these people that are talking. You're always gonna wanna figure out what emotion are they using, what accent are they using. Give me some basic demographics so I can understand the context.
392
00:28:21.260 -->
00:28:24.300Always gonna wanna understand the topics of discussion,
393
00:28:24.540 -->
00:28:31.420the intents of the people involved, like what are these people trying to achieve when they're discussing in order to understand that conversation.
394
00:28:31.660 -->
00:28:38.504And there are tens of billions of conversations that happen on this planet every single day, but they all fall into that structure.
395
00:28:38.825 -->
00:28:40.744And if you contrast with something like
396
00:28:41.145 -->
00:28:42.904just a large language model,
397
00:28:43.304 -->
00:28:51.959there's none of that structure of how must I analyze this data built into it. Even though the space of conversations,
398
00:28:52.039 -->
00:28:54.599all voice conversations is very, very general,
399
00:28:55.559 -->
00:28:58.599it's still a much, much more constrained
400
00:28:59.240 -->
00:29:13.475space of what kinds of things do you want to do to analyze this data than just say an arbitrary stream of text or an arbitrary stream of data, which is what the big foundation models are applicable to. So if you can identify that structure
401
00:29:13.635 -->
00:29:14.674and say,
402
00:29:15.635 -->
00:29:22.710I'm gonna be tackling a very diverse set of data, but they all need to be analyzed in similar ways,
403
00:29:23.669 -->
00:29:24.309then
404
00:29:25.110 -->
00:29:30.789deploying small models lets you take advantage of the cost efficiencies of those small models.
405
00:29:30.870 -->
00:29:37.404You can break the problem down into several pieces, like let's analyze emotion. Let's analyze transcription.
406
00:29:37.485 -->
00:29:42.684Let's do these other things. And if you still want to maintain the flexibility
407
00:29:43.005 -->
00:29:44.285and generality
408
00:29:44.285 -->
00:29:47.245of applying to a bunch of different distributions,
409
00:29:47.405 -->
00:29:48.845like different kinds of conversations,
410
00:29:49.600 -->
00:29:52.399then that's where you'll want ensembles of those models.
411
00:29:52.720 -->
00:30:00.479So that's that's where I would suggest looking into using ensemble models instead of just going straight for a big foundation model.
412
00:30:00.960 -->
00:30:01.919And then
413
00:30:02.295 -->
00:30:03.015the
414
00:30:03.415 -->
00:30:13.735large open question that I see a lot of people trying to deal with right now as a broader set of people are entering this ML and AI ecosystem
415
00:30:13.895 -->
00:30:21.549is how do I actually verify that anything that I changed didn't just completely destroy everything that I've been working on for the past six months?
416
00:30:21.790 -->
00:30:27.390And so one of the approaches that has gained a lot of popularity is the idea of evaluations.
417
00:30:28.110 -->
00:30:31.470There are also the observability aspects
418
00:30:31.470 -->
00:30:32.270of doing
419
00:30:32.794 -->
00:30:38.634real time analysis of model performance and outputs to determine if that is actually
420
00:30:39.034 -->
00:30:40.634producing the desired
421
00:30:41.115 -->
00:30:41.754result.
422
00:30:42.235 -->
00:30:43.355And as
423
00:30:43.355 -->
00:30:45.434you add this Ensemble
424
00:30:45.434 -->
00:30:47.275aspect to the overall
425
00:30:48.450 -->
00:30:49.889request path,
426
00:30:50.049 -->
00:31:02.130what are some of the ways that that complicates that question of how do I actually validate the overall functionality of the system as well as being able to do more isolated validation of those sub models?
427
00:31:03.395 -->
00:31:04.514It gives you
428
00:31:04.755 -->
00:31:06.994added complexity you need to handle,
429
00:31:07.395 -->
00:31:11.634but it also gives you a lot of power and tools to solve that complexity.
430
00:31:12.115 -->
00:31:13.874So the added complexity,
431
00:31:14.115 -->
00:31:24.660as you might guess, is the extraordinary number of different routes through the system that your data can take. So if I have some small models that are specialized to
432
00:31:24.900 -->
00:31:26.340high quality audio
433
00:31:26.660 -->
00:31:27.380and
434
00:31:27.685 -->
00:31:32.565my ensemble picks a model specialized to low quality audio instead,
435
00:31:33.045 -->
00:31:34.565the rest of the system,
436
00:31:34.805 -->
00:31:37.684all bets are off, anything downstream from that.
437
00:31:37.925 -->
00:31:42.005And because you're doing this dynamic optimization that I was talking about earlier,
438
00:31:42.325 -->
00:31:44.480where the results of models
439
00:31:44.480 -->
00:31:47.519running earlier in the conversation feed back
440
00:31:48.080 -->
00:31:52.719into the system to help it pick which models to run-in the future.
441
00:31:53.759 -->
00:31:55.199If you've got garbage
442
00:31:55.200 -->
00:31:58.000coming out of your models early in the conversation,
443
00:31:58.505 -->
00:32:04.184you can poison that decision making in those choices for later on in the conversation.
444
00:32:04.985 -->
00:32:08.985So it makes it really, really hard because of the sheer number of paths
445
00:32:08.985 -->
00:32:11.065the data can take through your Ensemble.
446
00:32:11.750 -->
00:32:16.309And the flip side is the Ensemble approach also gives you a lot of tools.
447
00:32:16.629 -->
00:32:17.269So
448
00:32:17.750 -->
00:32:21.669part one is the structure that I was talking about earlier.
449
00:32:21.830 -->
00:32:23.750So we know that a conversation
450
00:32:24.705 -->
00:32:28.864has these different pieces of structure that we're looking for.
451
00:32:29.105 -->
00:32:30.465And all of the
452
00:32:30.705 -->
00:32:32.144structured outputs,
453
00:32:32.145 -->
00:32:36.465like for example, the text content and emotion
454
00:32:36.705 -->
00:32:40.470content of what I'm saying are related.
455
00:32:40.870 -->
00:32:42.230They're not identical.
456
00:32:42.310 -->
00:32:47.669One's just not a strict function of the other. Otherwise, you wouldn't need the multiple models, but they're related.
457
00:32:48.070 -->
00:32:51.590And so for observability and debugging purposes,
458
00:32:51.830 -->
00:32:54.764one thing you can do, which we in fact do,
459
00:32:55.005 -->
00:32:57.885is check sentiment extracted
460
00:32:57.885 -->
00:32:59.085from text
461
00:32:59.245 -->
00:33:01.325and check emotional tone
462
00:33:01.325 -->
00:33:07.485and see if they're matching up relatively often. It's a statistical approach, not a deterministic
463
00:33:07.485 -->
00:33:08.605debugging tactic,
464
00:33:09.000 -->
00:33:10.760But you expect
465
00:33:11.400 -->
00:33:15.399different outputs from different pieces of your ensemble
466
00:33:15.400 -->
00:33:17.480to correlate in certain ways.
467
00:33:17.800 -->
00:33:21.800And so if I identify that for certain kinds of conversations,
468
00:33:22.345 -->
00:33:24.825like, let's say, low quality audio calls,
469
00:33:25.545 -->
00:33:30.985no matter what text is being output, my emotion model always thinks people are angry,
470
00:33:31.545 -->
00:33:35.065then I know that something's likely to be wrong.
471
00:33:35.550 -->
00:33:37.710And in certain situations,
472
00:33:37.710 -->
00:33:38.350again,
473
00:33:38.910 -->
00:33:43.390the emotion and the text might not match. But if they're completely uncorrelated
474
00:33:43.390 -->
00:33:46.190over a long a large amount of data,
475
00:33:46.510 -->
00:33:48.830then that gives you a pointer for what to look into.
476
00:33:50.485 -->
00:33:56.004And digging now into some of the specifics of these voice models,
477
00:33:56.165 -->
00:34:03.445I have a generalized understanding of the ways that large language models work in terms of these transformer architectures,
478
00:34:03.679 -->
00:34:11.920the attention mechanisms that are used, the variance there, the idea of these mixture of experts models for the case where you want to be able to incorporate more reasoning.
479
00:34:12.160 -->
00:34:24.795And I'm just curious how much of that is analogous in this case of audio and particularly voice focused models, and how much of the actual underlying architecture needs to shift because of the modality
480
00:34:24.795 -->
00:34:27.115and the specifics of speech?
481
00:34:28.075 -->
00:34:30.155It's actually very complementary.
482
00:34:30.474 -->
00:34:31.115So
483
00:34:31.515 -->
00:34:32.635when you're tackling
484
00:34:33.430 -->
00:34:34.710an audio
485
00:34:34.710 -->
00:34:35.510analysis
486
00:34:35.510 -->
00:34:36.390problem,
487
00:34:36.950 -->
00:34:38.230you're looking at
488
00:34:38.790 -->
00:34:41.430both how do I get the right
489
00:34:41.910 -->
00:34:42.710results
490
00:34:42.710 -->
00:34:45.030out of the underlying
491
00:34:45.030 -->
00:34:45.510data?
492
00:34:45.965 -->
00:34:52.045And then how do I interpret those to make broader sense of the conversation and do something useful with it?
493
00:34:52.685 -->
00:34:55.485The techniques that you're talking about around attention
494
00:34:55.885 -->
00:34:59.165and all sorts of other capabilities
495
00:34:59.165 -->
00:35:00.365for these models,
496
00:35:01.390 -->
00:35:08.670audio is a very long time scale kind of data, right? Like, you've got a 48 kilohertz audio signal.
497
00:35:09.070 -->
00:35:09.950That's
498
00:35:09.950 -->
00:35:30.800a ton of different data points for just a second where you might utter, like, you know, what, one or a couple of different phones make a couple of different sounds. So you're you're mapping this very, very, very high dimensional audio signal down to, even if you're doing emotion and all the nuance and everything, a much, much, much lower dimensionality
499
00:35:30.800 -->
00:35:31.600space.
500
00:35:32.800 -->
00:35:34.880Technologies like transformers
501
00:35:34.880 -->
00:35:44.175and even older school stuff from the twenty tens, you know, earlier twenty tens, like dilated convolutions and wave nets and things like that, All of these different strategies
502
00:35:44.815 -->
00:35:46.415and architectures
503
00:35:46.815 -->
00:35:47.775perform
504
00:35:47.934 -->
00:35:57.295very, very well on these longer sets of data. And a lot of the research that's been going into these very large models has been increasing their context windows
505
00:35:57.510 -->
00:36:00.550and how to efficiently handle and select
506
00:36:00.950 -->
00:36:04.390in extremely large data contexts
507
00:36:04.550 -->
00:36:07.270what parts of the data to pay attention to.
508
00:36:07.510 -->
00:36:09.750All of that is applicable in extracting
509
00:36:10.425 -->
00:36:14.825different pieces of information accurately from these audio signals.
510
00:36:15.385 -->
00:36:16.025But
511
00:36:16.345 -->
00:36:21.225the next layer up is really where a lot of the Ensemble
512
00:36:21.225 -->
00:36:22.025technology
513
00:36:22.025 -->
00:36:24.185that I've been talking about comes in.
514
00:36:24.425 -->
00:36:24.985So
515
00:36:25.450 -->
00:36:28.090when you're building an ensemble model,
516
00:36:28.970 -->
00:36:30.730if you can slot in
517
00:36:31.130 -->
00:36:33.770a better emotion detection model,
518
00:36:33.850 -->
00:36:42.535the whole ensemble's gonna work better. And the better emotion detection model might be replacing, say, a standard dilated convolution network
519
00:36:42.535 -->
00:36:45.975with a network that employs an attention mechanism
520
00:36:46.135 -->
00:36:46.935or
521
00:36:47.174 -->
00:36:48.695some other thing like that.
522
00:36:51.174 -->
00:36:58.260And that you have to change in terms of the Ensemble model is your priors on the accuracy of that model, assuming it gets more accurate,
523
00:36:58.420 -->
00:37:07.859and your cost parameters of the model, assuming it might cost more to run. And then once you've changed that, the rest of the Ensemble just works as it normally did. So they're very complementary.
524
00:37:09.444 -->
00:37:13.125Speaking to that longer horizon and the longer
525
00:37:13.684 -->
00:37:15.845window of attention that's necessary,
526
00:37:15.924 -->
00:37:28.200it also brings up the question of another trend that's becoming very popular in agentic contexts is the idea of agentic memory and being able to store and retrieve certain aspects of information
527
00:37:28.440 -->
00:37:29.400for later
528
00:37:29.880 -->
00:37:30.680usage.
529
00:37:30.760 -->
00:37:33.080And particularly if you're dealing with
530
00:37:33.480 -->
00:37:34.280a
531
00:37:34.359 -->
00:37:37.125minutes to hours long conversation
532
00:37:37.125 -->
00:37:38.885or even monologue.
533
00:37:39.125 -->
00:37:54.820Obviously, there are cases where you're going to overflow the available context window for even an ensemble model, and I'm just curious how you take advantage of some of these storage and retrieval questions for being able to do that
534
00:37:55.060 -->
00:37:55.700more
535
00:37:55.940 -->
00:37:57.140long horizon
536
00:37:57.140 -->
00:37:58.020analysis
537
00:37:58.020 -->
00:37:59.860of this high
538
00:38:00.100 -->
00:38:01.620information density
539
00:38:01.860 -->
00:38:02.420medium.
540
00:38:03.795 -->
00:38:06.355This is where knowing the structure
541
00:38:06.435 -->
00:38:26.950of your data is so important. It's like what's what's old is new again. Right? It's always been in machine learning, like, understand what data your models are going to operate on. Bring in domain expertise as well as do backprop through the neural net. Right? For something like a conversation, you could have a five hour long conversation,
542
00:38:27.109 -->
00:38:32.595but you have priors, very good priors on what data is actually important
543
00:38:32.915 -->
00:38:34.515to that conversation.
544
00:38:34.675 -->
00:38:37.795Right? You wanna know who are these people,
545
00:38:37.955 -->
00:38:43.155what are their intents right now, what have their intents and goals been through the course of the conversation,
546
00:38:43.670 -->
00:38:53.270How are they acting towards each other? What's the distribution of emotions? Like, for example, I sound pretty excited all the time. So when I deviate from that norm,
547
00:38:53.510 -->
00:38:55.590then that's information that's important.
548
00:38:56.505 -->
00:39:00.345By digging into, like, how do humans understand conversations,
549
00:39:00.345 -->
00:39:03.145like, what kinds of tasks are you trying to achieve
550
00:39:03.385 -->
00:39:05.385by analyzing these conversations,
551
00:39:05.464 -->
00:39:06.825you can actually pre
552
00:39:07.145 -->
00:39:09.065kind of preregister,
553
00:39:09.065 -->
00:39:10.185precreate,
554
00:39:10.505 -->
00:39:11.464preallocate
555
00:39:11.980 -->
00:39:16.940the the the pieces of information that are going to be broadly,
556
00:39:17.740 -->
00:39:19.020generally relevant
557
00:39:19.100 -->
00:39:19.900to
558
00:39:19.900 -->
00:39:39.570the conversation. If I'm gonna make if I'm if I'm gonna make a super, super simplified example, it's like, you know, pinning the header or pinning the rows in an Excel spreadsheet or something like that. It's like, yeah, you can kinda scroll back and look at a sentence that happened, like, three hours ago or a tab that's, you know or like a cell that's, like, you know, 200
559
00:39:39.570 -->
00:39:50.930rows over. But you always know that some of this data is going to be important and should be front and center and visible to your models at all times. So instead of for our use case, so instead of
560
00:39:51.250 -->
00:39:53.090trying to have some extremely
561
00:39:53.170 -->
00:39:54.050very flexible
562
00:39:54.725 -->
00:39:55.605dynamic
563
00:39:56.005 -->
00:40:01.845storage with absolutely no priors or structure on it, we have a ton of preallocated
564
00:40:01.845 -->
00:40:04.965structure around what's a running summary of the conversation.
565
00:40:05.045 -->
00:40:06.405Who are the participants?
566
00:40:06.485 -->
00:40:11.280What do they sound like? What's their general distribution of emotions
567
00:40:11.440 -->
00:40:13.200across the conversation?
568
00:40:13.200 -->
00:40:15.760All of these different things. And those are preregistered
569
00:40:15.760 -->
00:40:16.880as kind of a
570
00:40:17.920 -->
00:40:22.480fixed memory block that serves as the starting point for context
571
00:40:22.875 -->
00:40:26.155for all of the individual models in the ensemble.
572
00:40:26.555 -->
00:40:31.595And of course, some of the models can add more context and go in dynamically.
573
00:40:31.755 -->
00:40:43.020And of course, those things like the summary and the participant roles and the behaviors they're exhibiting, they change over time. But we always know that those pieces of information are going to be relevant. So it massively,
574
00:40:43.020 -->
00:40:45.420massively, massively simplifies
575
00:40:45.500 -->
00:40:47.260the memory problem
576
00:40:47.500 -->
00:40:48.700for this system,
577
00:40:48.860 -->
00:40:49.980and it also
578
00:40:49.980 -->
00:40:50.860reduces
579
00:40:50.860 -->
00:40:51.260the
580
00:40:51.785 -->
00:40:54.265ability to make weird errors.
581
00:40:54.265 -->
00:40:56.985Right? If you're thinking about a system with memory,
582
00:40:57.065 -->
00:40:59.785the system might be doing something really, really stupid.
583
00:41:00.025 -->
00:41:13.190And you're like, why is it doing this? And it's because, oh, it didn't have the right information in memory. Why didn't it have the right information in memory? Now you're going down a very long debugging path that is going to be very complicated.
584
00:41:13.589 -->
00:41:14.150And
585
00:41:14.550 -->
00:41:15.190by
586
00:41:16.069 -->
00:41:21.785changing how the system stores things in memory, you could change a ton of other behaviors without knowing it.
587
00:41:22.184 -->
00:41:23.145Preregistering
588
00:41:23.145 -->
00:41:24.265the structure
589
00:41:24.505 -->
00:41:31.944of the memory or even just a subset of the memory ahead of time means that your models will always have the relevant information
590
00:41:32.400 -->
00:41:38.160and reduces a ton of the errors that these very, very, very dynamics and flexible systems can have.
591
00:41:39.359 -->
00:41:40.880As you have been
592
00:41:41.920 -->
00:41:44.000exploring this architecture,
593
00:41:44.079 -->
00:41:46.160developing your own implementation
594
00:41:46.160 -->
00:41:47.119of it,
595
00:41:47.440 -->
00:41:47.599and
596
00:41:48.615 -->
00:41:51.575keeping an eye on just the overall ecosystem
597
00:41:51.575 -->
00:41:53.415of how people are
598
00:41:53.575 -->
00:41:54.695dealing with
599
00:41:55.015 -->
00:41:56.775these model deployments,
600
00:41:56.855 -->
00:41:58.215model optimization.
601
00:41:58.615 -->
00:42:00.215What are some of the complexities
602
00:42:00.215 -->
00:42:03.895that you as an engineering team have had to
603
00:42:04.250 -->
00:42:10.170come to terms with and address to be able to achieve this objective and some of the
604
00:42:10.569 -->
00:42:12.570useful learnings that you
605
00:42:13.609 -->
00:42:17.690developed in the process of actually getting to delivering this as a feature set?
606
00:42:19.705 -->
00:42:22.585Probably the biggest and most obvious
607
00:42:22.905 -->
00:42:25.705complexity that we've had to deal with and overcome
608
00:42:26.025 -->
00:42:29.224has been the fact that this Ensemble
609
00:42:29.224 -->
00:42:31.945listening model architecture by necessity
610
00:42:32.025 -->
00:42:33.785is a very distributed system.
611
00:42:34.329 -->
00:42:42.810In general, if you're going to run a neural network on a lot of data, you want to load the weights into the GPU and keep them there. You don't want to be swapping models in and out.
612
00:42:43.290 -->
00:42:45.050If you're going to do that for
613
00:42:45.690 -->
00:42:51.005a possibility of over one one hundred different models that you might run on any given piece of data,
614
00:42:51.484 -->
00:42:54.845some models can be shared in a single GPU.
615
00:42:54.925 -->
00:43:00.285But you're not going to fit all 100 models into one GPU or even a couple GPUs.
616
00:43:00.525 -->
00:43:01.885So you're starting to look at,
617
00:43:02.810 -->
00:43:04.730in order to run inference
618
00:43:04.810 -->
00:43:06.570on any individual
619
00:43:06.570 -->
00:43:07.530data point,
620
00:43:08.010 -->
00:43:12.810I'm going to need to route that data to a small subset
621
00:43:12.810 -->
00:43:13.450of
622
00:43:13.610 -->
00:43:15.610a bunch of different machines
623
00:43:16.025 -->
00:43:18.905with a bunch of different models loaded onto them.
624
00:43:19.305 -->
00:43:21.385So it very, very quickly becomes
625
00:43:21.865 -->
00:43:24.105a distributed computing problem.
626
00:43:24.905 -->
00:43:27.065When tackling a distributed problem,
627
00:43:27.305 -->
00:43:33.300the distributed problem becomes a lot harder if you need strong consistency guarantees.
628
00:43:33.859 -->
00:43:37.380One of the really nice things about modern machine learning
629
00:43:37.460 -->
00:43:40.740is that a lot of models can be very forgiving
630
00:43:40.819 -->
00:43:47.525when given errors or gaps in data. And we exploited that very, very heavily in the ELM architecture.
631
00:43:47.845 -->
00:43:49.125So instead of
632
00:43:49.445 -->
00:43:50.725asserting that
633
00:43:51.045 -->
00:43:55.125all of the different models in the ensemble must have their data available
634
00:43:55.770 -->
00:44:00.890by some sort of time or worse, locking until every single data point has come in,
635
00:44:02.250 -->
00:44:05.210we make sure that our data flow
636
00:44:05.610 -->
00:44:06.650goes from
637
00:44:07.450 -->
00:44:10.970less flexible models to more flexible models
638
00:44:11.155 -->
00:44:13.395in a pretty strict hierarchy,
639
00:44:13.395 -->
00:44:15.715at least for that feedforward processing.
640
00:44:16.355 -->
00:44:16.995So
641
00:44:17.315 -->
00:44:19.315if our less sophisticated
642
00:44:19.635 -->
00:44:21.635models, smaller models,
643
00:44:22.355 -->
00:44:24.115don't all return results
644
00:44:24.115 -->
00:44:26.435in a required amount of time,
645
00:44:27.279 -->
00:44:31.040The good news is that data is flowing into a more flexible
646
00:44:31.200 -->
00:44:32.480and more forgiving,
647
00:44:32.480 -->
00:44:34.480in some ways, model.
648
00:44:34.799 -->
00:44:38.160And we have a much greater ability
649
00:44:38.400 -->
00:44:46.735to account for and deal with missing data than we would if we were feeding into another super tiny, super specialized
650
00:44:47.535 -->
00:44:49.695model in the Ensemble.
651
00:44:50.175 -->
00:44:55.615So that's been a very, very strong rule of thumb for us. Always flow data from
652
00:44:56.070 -->
00:44:57.750less sophisticated,
653
00:44:57.830 -->
00:44:59.030smaller models
654
00:44:59.350 -->
00:45:00.150into
655
00:45:00.150 -->
00:45:02.710more flexible, more general models.
656
00:45:03.270 -->
00:45:07.590And that helps us account for these distributed computing errors
657
00:45:07.590 -->
00:45:10.150and still do a good job generally,
658
00:45:10.470 -->
00:45:13.305even in times of high model dropout.
659
00:45:13.945 -->
00:45:14.585And
660
00:45:15.385 -->
00:45:17.065as far as the
661
00:45:17.305 -->
00:45:21.305cost question of being able to deliver this functionality
662
00:45:21.465 -->
00:45:23.145more economically,
663
00:45:23.465 -->
00:45:26.345what are some of the ways that you're tracking the
664
00:45:26.510 -->
00:45:39.869real world impact of that, particularly given the distributed nature of the actual cost as well as the increased operational overhead and potentially headcount needed to be able to keep the system running?
665
00:45:42.585 -->
00:45:43.465Good question.
666
00:45:44.105 -->
00:45:46.985In terms of the additional complexity,
667
00:45:47.785 -->
00:45:49.145I would say that
668
00:45:49.625 -->
00:45:53.785most engineering systems have complexity in a variety of different places.
669
00:45:54.345 -->
00:45:54.985And
670
00:45:55.460 -->
00:45:56.180by
671
00:45:56.339 -->
00:45:57.380specifically
672
00:45:57.380 -->
00:46:01.780focusing on orchestrating a bunch of different models together,
673
00:46:02.420 -->
00:46:03.460we're solving
674
00:46:04.500 -->
00:46:07.780a ton of these different orchestration problems,
675
00:46:07.859 -->
00:46:10.180but they're all very similar problems.
676
00:46:11.165 -->
00:46:11.885So
677
00:46:13.165 -->
00:46:18.125it actually pays off for us to have a small number of really, really
678
00:46:19.165 -->
00:46:20.925deep knowledge experts
679
00:46:21.165 -->
00:46:21.885in
680
00:46:22.285 -->
00:46:24.045orchestrating systems of models
681
00:46:24.300 -->
00:46:27.260and then building reusable tools
682
00:46:27.580 -->
00:46:28.780to manage
683
00:46:28.940 -->
00:46:29.660those
684
00:46:29.740 -->
00:46:31.500different ensembles.
685
00:46:31.820 -->
00:46:33.500Given that we can do that,
686
00:46:33.900 -->
00:46:39.660we end up not having a huge amount of what I would call additional overhead
687
00:46:39.325 -->
00:46:40.765Because the alternative
688
00:46:41.085 -->
00:46:46.125is if you're working with a very, very, very big foundational model,
689
00:46:47.165 -->
00:46:49.485now you're trying to shard
690
00:46:49.805 -->
00:46:52.605that model across a bunch of different GPUs.
691
00:46:53.319 -->
00:46:56.359And if you're trying to do data communication
692
00:46:56.440 -->
00:46:59.720between different parts of, say, one neural network,
693
00:47:00.280 -->
00:47:01.560that's a situation
694
00:47:01.880 -->
00:47:02.520where
695
00:47:03.319 -->
00:47:08.599changes in data or dropout or distributed system failures can be very catastrophic.
696
00:47:09.215 -->
00:47:15.535It's very, very unpredictable what a neural network will do if you just cut out a little chunk of its weights.
697
00:47:16.335 -->
00:47:23.135And so you have to solve those distributed problems if you're building big, like very big foundation models
698
00:47:23.589 -->
00:47:26.230in strong consistency ways.
699
00:47:26.470 -->
00:47:30.230And you have to deploy a ton of really, really capable hardware
700
00:47:30.390 -->
00:47:32.710and network them in extremely
701
00:47:32.710 -->
00:47:34.630low latency setups
702
00:47:34.869 -->
00:47:37.270in order to do that kind of inference
703
00:47:37.385 -->
00:47:40.585in a way that results in a good customer experience.
704
00:47:41.305 -->
00:47:46.665By chunking down all of our models to be able to run on single machines or single GPUs,
705
00:47:47.224 -->
00:47:49.865we actually buy a ton of flexibility.
706
00:47:50.025 -->
00:47:51.705And so I wouldn't say it's
707
00:47:51.944 -->
00:47:52.744more complex.
708
00:47:53.360 -->
00:47:55.600It's a different kind of complexity,
709
00:47:55.840 -->
00:47:58.400and in some ways, actually more forgiving
710
00:47:58.400 -->
00:48:03.840than trying to be a model provider that just holds a really big foundational model.
711
00:48:04.560 -->
00:48:06.720And then
712
00:48:06.065 -->
00:48:08.065in terms of the
713
00:48:08.945 -->
00:48:11.665evolution of this style of architecture,
714
00:48:12.065 -->
00:48:14.305what are some of the impacts
715
00:48:14.305 -->
00:48:15.825that you foresee
716
00:48:16.465 -->
00:48:19.665these capabilities having on the broader industry
717
00:48:19.825 -->
00:48:25.340and the challenges that we're already running into as far as just brute force scaling and
718
00:48:25.500 -->
00:48:32.780increasing the number of parameters versus these more small specialized models, and then also how that factors into
719
00:48:32.940 -->
00:48:45.215the push to the edge of having this be a more naturally distributed system where you can have some of these very small models on the edge to determine whether to even propagate that request downstream.
720
00:48:46.575 -->
00:48:48.655I think that Ensemble
721
00:48:49.135 -->
00:48:49.935models
722
00:48:50.410 -->
00:48:52.010are going to
723
00:48:52.250 -->
00:48:53.290replace
724
00:48:53.370 -->
00:48:56.730a lot of existing foundation model use cases
725
00:48:56.970 -->
00:48:58.410and extend
726
00:48:58.730 -->
00:49:02.010a lot of other foundation model capabilities.
727
00:49:02.490 -->
00:49:05.050So in the replacing existing use cases,
728
00:49:07.665 -->
00:49:09.505I see Ensemble models
729
00:49:09.585 -->
00:49:11.425as being the right
730
00:49:11.745 -->
00:49:12.545tool
731
00:49:12.865 -->
00:49:13.985to solve
732
00:49:14.225 -->
00:49:15.185repeated
733
00:49:15.185 -->
00:49:16.705structured problems.
734
00:49:17.105 -->
00:49:19.985Again, even as general as conversation analysis,
735
00:49:20.640 -->
00:49:25.119that is a very general problem statement but much, much narrower than
736
00:49:25.359 -->
00:49:26.160arbitrary
737
00:49:26.160 -->
00:49:28.160operations on streams of data.
738
00:49:28.640 -->
00:49:32.160So if you're going to do a lot of conversation analysis,
739
00:49:32.775 -->
00:49:35.974it can pay off in terms of accuracy,
740
00:49:35.974 -->
00:49:37.494determinism, and cost
741
00:49:37.734 -->
00:49:38.535to
742
00:49:38.855 -->
00:49:42.455build out an ensemble to take advantage of that structure.
743
00:49:43.174 -->
00:49:45.175I think of the parallel as
744
00:49:45.815 -->
00:49:47.575if you have a novel task,
745
00:49:48.359 -->
00:49:53.320say, this is the first time I ever wanna just write down a transcript of this podcast.
746
00:49:53.720 -->
00:49:55.800You just go ask somebody to do it.
747
00:49:56.279 -->
00:49:59.079But if you need to transcribe 10,000 podcasts,
748
00:49:59.400 -->
00:50:02.519you don't go ask a human to transcribe 10,000 podcasts.
749
00:50:02.825 -->
00:50:05.545You ask a specially constructed
750
00:50:06.745 -->
00:50:07.545system
751
00:50:07.705 -->
00:50:09.945to do that transcription
752
00:50:09.945 -->
00:50:13.465because it's going to do that same work deterministically
753
00:50:13.705 -->
00:50:16.74010,000 times over. In a similar way,
754
00:50:17.140 -->
00:50:19.300these large model companies,
755
00:50:19.460 -->
00:50:21.300like OpenAI and Anthropic,
756
00:50:21.460 -->
00:50:22.260are building
757
00:50:22.500 -->
00:50:24.340basically artificial people.
758
00:50:25.060 -->
00:50:34.575And those systems are trying to be extremely, extremely general. But just as you wouldn't ask a real person to do the same repetitive task 10,000 times,
759
00:50:35.055 -->
00:50:40.095I think you also wouldn't ask an artificial person to do the same repetitive task
760
00:50:40.175 -->
00:50:48.09010,000 times. You're just wasting a ton of capacity in either case, and you would much rather prefer a deterministic,
761
00:50:48.330 -->
00:50:50.490accurate, and more cost effective
762
00:50:50.810 -->
00:50:53.610solution that takes advantage of the structure
763
00:50:53.930 -->
00:50:54.570and
764
00:50:54.730 -->
00:50:55.610repeatability
765
00:50:55.610 -->
00:50:57.450of the problem you're trying to tackle.
766
00:50:58.035 -->
00:50:59.555So a lot of
767
00:50:59.875 -->
00:51:01.875businesses and individuals
768
00:51:01.954 -->
00:51:05.475are using big foundation models to tackle
769
00:51:05.714 -->
00:51:06.755repetitive,
770
00:51:06.994 -->
00:51:10.194highly structured tasks just because they're so powerful.
771
00:51:10.960 -->
00:51:17.680But I think that is going to turn out to be very, very far from the most cost effective and scalable solution.
772
00:51:18.080 -->
00:51:20.480When you have these repeated situations,
773
00:51:20.720 -->
00:51:26.315you can deploy systems that are much better adapted to them. So I think that's
774
00:51:26.395 -->
00:51:28.795how Ensemble models will
775
00:51:29.355 -->
00:51:30.155replace
776
00:51:30.155 -->
00:51:39.434some of the applications of the larger foundation models. I think the flip side is they'll actually work in harmony to augment the intelligence and capabilities.
777
00:51:39.690 -->
00:51:45.450Right? So especially with things like like like chain of thought systems and memory systems,
778
00:51:45.609 -->
00:51:47.130having more compute
779
00:51:47.450 -->
00:51:50.730gives you access to more intelligence capabilities.
780
00:51:51.655 -->
00:51:55.015But if you're trying to do something like media understanding
781
00:51:55.015 -->
00:51:57.335or voice understanding or conversation
782
00:51:57.335 -->
00:51:58.295understanding,
783
00:51:58.695 -->
00:52:01.495you're spending a lot of your compute and your capacity
784
00:52:01.895 -->
00:52:03.335to process
785
00:52:03.335 -->
00:52:07.460that stream of data and get to a useful representation
786
00:52:07.460 -->
00:52:11.380of that data that the rest of the system can work with.
787
00:52:12.020 -->
00:52:13.700I see Ensemble models
788
00:52:13.780 -->
00:52:14.500as
789
00:52:14.580 -->
00:52:17.380basically becoming a suite of extremely
790
00:52:17.380 -->
00:52:18.260powerful
791
00:52:18.660 -->
00:52:21.380data processing tools
792
00:52:20.744 -->
00:52:23.545available to these more flexible agents
793
00:52:23.704 -->
00:52:27.785so that if you have an incoming data stream or a media stream,
794
00:52:28.025 -->
00:52:31.464the agent can deploy a tool like an ELM
795
00:52:31.545 -->
00:52:34.480to understand that stream, save,
796
00:52:34.720 -->
00:52:37.200again, 100000x
797
00:52:37.280 -->
00:52:41.680on the compute it would have by itself needed to understand that data stream,
798
00:52:41.920 -->
00:52:46.640and then take the representation of that data produced by the Ensemble model
799
00:52:47.075 -->
00:52:54.275and process it with all of that leftover compute that was available to it because it didn't have to understand the data itself.
800
00:52:55.075 -->
00:53:04.839And the real question I wanna know is when is this Voice AI going to eliminate the need to manually edit my podcasts?
801
00:53:05.799 -->
00:53:10.760It's coming. It's coming very, very soon. I think 2026
802
00:53:11.000 -->
00:53:12.440is already
803
00:53:12.805 -->
00:53:15.205starting off as an extraordinary
804
00:53:15.205 -->
00:53:17.045year for voice AI models.
805
00:53:17.125 -->
00:53:18.085You're seeing
806
00:53:18.405 -->
00:53:19.445increases
807
00:53:19.445 -->
00:53:20.165from
808
00:53:20.405 -->
00:53:23.125Ensemble models and other kinds of technologies
809
00:53:23.205 -->
00:53:26.565of 10, a 100 x in terms of cost,
810
00:53:26.805 -->
00:53:29.040in terms of scalability.
811
00:53:29.120 -->
00:53:31.200You're seeing improvements in accuracy,
812
00:53:31.200 -->
00:53:35.200not just on the normal standard clean data sets, but on tricky
813
00:53:35.440 -->
00:53:40.160conversation data sets. You're seeing voice AIs that are starting to be able to take instruction
814
00:53:40.815 -->
00:53:44.335and follow instructions and follow nuances
815
00:53:44.415 -->
00:53:46.575in order to be much, much more capable.
816
00:53:46.895 -->
00:53:50.575And you're starting to get to the level of accuracy and capability
817
00:53:50.655 -->
00:53:52.335that human beings
818
00:53:52.415 -->
00:53:55.840doing these kinds of tasks also exhibit.
819
00:53:56.080 -->
00:54:11.185So I think we're going to see a lot of really, really cool tech around voice AI coming out within the next twelve months. 2026 is gonna be a very, very exciting year for voice AI tech. Are there any other aspects of the work that you're doing at Modulate,
820
00:54:11.185 -->
00:54:12.945this overall Ensemble
821
00:54:12.945 -->
00:54:13.905architecture,
822
00:54:14.224 -->
00:54:15.585or the applications
823
00:54:15.585 -->
00:54:19.825that you're applying it to that we didn't discuss yet that you'd like to cover before we close out the show?
824
00:54:20.145 -->
00:54:28.390I think we've hit on the main points. I think for a different audience, it could be interesting to go into the determinism
825
00:54:28.390 -->
00:54:29.590and kind of
826
00:54:30.230 -->
00:54:31.430ability to
827
00:54:32.150 -->
00:54:33.030avoid
828
00:54:33.990 -->
00:54:37.670things like hallucinations better by using these
829
00:54:37.670 -->
00:54:40.155ensembles of small models.
830
00:54:40.395 -->
00:54:47.275But I think that's actually more applicable to, like, maybe almost like a a compliance or safety audience,
831
00:54:47.675 -->
00:54:55.850which is a lot of aspects of the things we're working in. So I think we actually hit on a a ton of the main topics I really wanted to cover. I'm feeling pretty good about this.
832
00:54:56.810 -->
00:55:13.655Alright. Well, for anybody who wants to get in touch with you and follow along with the work that you and your team are doing, I'll have you add your preferred contact information to the show notes. And as the final question, I'd like to get your perspective on what you see as being the biggest gaps in the tooling technology or human training that's available for AI systems today.
833
00:55:14.615 -->
00:55:15.415The
834
00:55:15.415 -->
00:55:18.775biggest problem with AI tooling and systems
835
00:55:18.935 -->
00:55:19.415is
836
00:55:19.750 -->
00:55:20.790understanding
837
00:55:21.030 -->
00:55:24.710where they fail and what kinds of failures they can exhibit.
838
00:55:25.190 -->
00:55:26.550Think of things like
839
00:55:26.710 -->
00:55:30.950customer support bots and voice bots that will just offer refunds
840
00:55:31.110 -->
00:55:37.105or even when they're out of policy or reset people's passwords even when they haven't authenticated,
841
00:55:37.345 -->
00:55:37.905or
842
00:55:38.385 -->
00:55:42.545will flirt with somebody because they started flirting with it.
843
00:55:43.505 -->
00:55:46.065These systems can go off the rails
844
00:55:46.145 -->
00:55:47.585very, very easily
845
00:55:47.825 -->
00:55:49.265and in unpredictable
846
00:55:49.265 -->
00:55:49.664ways.
847
00:55:50.349 -->
00:55:51.869And there is not
848
00:55:52.829 -->
00:55:56.670These large models are the epitome of a black box algorithm.
849
00:55:57.470 -->
00:55:59.470Even things like chain of thought,
850
00:55:59.950 -->
00:56:02.590it gives the illusion that you can understand
851
00:56:03.070 -->
00:56:04.589how the model operates.
852
00:56:05.505 -->
00:56:06.224But
853
00:56:06.625 -->
00:56:09.185there's actually a ton of
854
00:56:11.585 -->
00:56:15.664different kinds of failure modes and different kinds of behaviors
855
00:56:15.664 -->
00:56:17.744that these models can unpredictably
856
00:56:17.744 -->
00:56:18.464exhibit
857
00:56:18.710 -->
00:56:19.430from
858
00:56:19.670 -->
00:56:27.670the right random combinations of input data. And it's very, very hard to know or guarantee or even put bounds on
859
00:56:28.150 -->
00:56:31.910when you will experience the normal happy path operation
860
00:56:32.150 -->
00:56:33.750and when you will experience
861
00:56:34.464 -->
00:56:35.585a negative,
862
00:56:35.585 -->
00:56:36.625unexpected,
863
00:56:36.625 -->
00:56:38.625or out of distribution operation.
864
00:56:39.425 -->
00:56:40.865And I think
865
00:56:41.105 -->
00:56:43.265that in addition to
866
00:56:43.744 -->
00:56:44.545some
867
00:56:44.865 -->
00:56:47.825tools for testing and observability,
868
00:56:48.145 -->
00:56:51.040which are, I think, still relatively
869
00:56:51.040 -->
00:56:51.920primitive.
870
00:56:52.400 -->
00:56:56.240We are going to start looking for a lot of automated tooling
871
00:56:56.400 -->
00:56:57.280around
872
00:56:59.440 -->
00:57:00.960red teaming models,
873
00:57:01.040 -->
00:57:02.000finding
874
00:57:02.865 -->
00:57:03.665gaps
875
00:57:03.985 -->
00:57:04.785in
876
00:57:04.865 -->
00:57:06.545how models are running
877
00:57:06.785 -->
00:57:09.345on data and systems and data streams,
878
00:57:09.745 -->
00:57:10.305and
879
00:57:11.105 -->
00:57:20.460monitoring these systems at extremely high scale. Watch every single conversation that's going on just like you would monitor human interactions
880
00:57:20.460 -->
00:57:22.700at a very, very high level of scale.
881
00:57:23.020 -->
00:57:23.660And
882
00:57:23.980 -->
00:57:27.980right now, a lot of the tooling for observability and monitoring
883
00:57:28.780 -->
00:57:29.660rely on
884
00:57:30.215 -->
00:57:33.735looking at the model's own intermediate outputs.
885
00:57:33.975 -->
00:57:38.775Like if you have a voice bot that's doing speech to text to speech, you monitor the text.
886
00:57:39.015 -->
00:57:42.375But the problem with that is that you're monitoring a part of the system
887
00:57:42.775 -->
00:57:43.415that
888
00:57:43.630 -->
00:57:45.150you're trying to
889
00:57:45.390 -->
00:57:47.790observe the behavior of the whole system.
890
00:57:48.109 -->
00:57:50.350And so if a different part,
891
00:57:50.590 -->
00:57:56.990like the text to speech piece of the bot, is going wrong, if you're just monitoring the text part,
892
00:57:57.230 -->
00:58:01.325you're not going to know what's happening. So being able to observe
893
00:58:01.325 -->
00:58:03.405the behaviors of these models
894
00:58:03.565 -->
00:58:04.605and interacting
895
00:58:04.605 -->
00:58:06.445with each other and with people
896
00:58:06.685 -->
00:58:08.685in the same way that you would observe
897
00:58:09.005 -->
00:58:13.965human beings interacting with each other and being able to derive insights and debug
898
00:58:14.310 -->
00:58:15.350those things
899
00:58:15.990 -->
00:58:21.190is I think a really big gap and where a lot of these problems and failure modes and
900
00:58:21.430 -->
00:58:23.510newsworthy headlines are coming from.
901
00:58:24.070 -->
00:58:24.950Absolutely.
902
00:58:25.110 -->
00:58:33.035Well, thank you very much for taking the time today to join me and share the work that you and your team have put into developing this Ensemble architecture
903
00:58:33.035 -->
00:58:40.395and some of the interesting use cases for voice AI as differentiated from the textual interfaces
904
00:58:40.395 -->
00:58:42.475that have exemplified
905
00:58:42.475 -->
00:58:53.670the past couple of years. So I appreciate all the time and energy that you and your team are putting into that, and I hope you enjoy the rest of your day. Well, thank you so much for having me. It was wonderful to chat, and I really enjoyed it. I hope you enjoy your day too.
906
00:58:55.785 -->
00:59:03.865Thank you for listening. Don't forget to check out our other shows. The data engineering podcast covers the latest on modern data management, and podcast.init
907
00:59:03.865 -->
00:59:18.828covers the Python language, its community, and the innovative ways it is being used. Visit the site to subscribe to the show, sign up for the mailing list, read the show notes. And if you've learned something or tried out a project from the show, then tell us about it. Email hosts@aiengineeringpodcast.com
908
00:59:18.828 -->
00:59:19.548with your story.