1
00:00:00,441 --> 00:00:02,361
Vinoo Ganesh

2
00:00:02,361 --> 00:00:06,921
I'm the CEO and co-founder of Kepler.

3
00:00:08,181 --> 00:00:10,081
This is going to be kind of an interesting talk

4
00:00:10,081 --> 00:00:13,341
because it comes from what happened three months ago.

5
00:00:13,981 --> 00:00:16,601
So three months ago, I think there's a little bit of an overlap,

6
00:00:16,741 --> 00:00:20,941
but I gave a talk at AIE World Fair really around verification

7
00:00:20,941 --> 00:00:24,901
and why most institutions need verification

8
00:00:25,021 --> 00:00:29,101
in some form of the trust ecosystem of AI.

9
00:00:29,561 --> 00:00:38,961
Well, yesterday, most of you saw Jack and I were on stage talking about why Jack, who ran Citadel's biggest book and started Candlestick Capital, still doesn't trust AI.

10
00:00:40,161 --> 00:00:48,781
Since that three-month period, there's been about $270 million of VC money that got poured

11
00:00:48,781 --> 00:00:50,341
into formal verification layers.

12
00:00:50,641 --> 00:00:56,181
A VC actually took Kepler's own pitch deck and gave it to a competitor and produced something

13
00:00:56,181 --> 00:00:57,641
that has our same tagline.

14
00:00:57,961 --> 00:00:59,281
I'm not bitter, just a little.

15
00:00:59,481 --> 00:01:01,541
But the funny thing is they copied the wrong part.

16
00:01:01,981 --> 00:01:07,121
And so what I want to do is actually give you, the practitioners today, you can't just

17
00:01:07,121 --> 00:01:08,801
tack verification on at the end.

18
00:01:08,961 --> 00:01:14,201
And so when I gave that chat or that talk a few months ago,

19
00:01:15,261 --> 00:01:18,561
Anthropic had just published an article on how Kepler does what it does

20
00:01:18,561 --> 00:01:20,621
and why it's really powerful and really unique.

21
00:01:21,021 --> 00:01:25,801
So what I want to do is get into the technical side of how we do the thing that we do.

22
00:01:26,221 --> 00:01:29,181
And ultimately, this is driven by one very simple insight.

23
00:01:29,861 --> 00:01:31,421
Wall Street still doesn't trust AI.

24
00:01:32,701 --> 00:01:34,121
Most people think that's because of this.

25
00:01:35,101 --> 00:01:36,861
AI will estimate things.

26
00:01:36,861 --> 00:01:38,241
It will hallucinate things.

27
00:01:38,381 --> 00:01:40,421
A frontier model will make stuff up.

28
00:01:40,941 --> 00:01:43,201
And ultimately, it is, and that's a component of it.

29
00:01:43,401 --> 00:01:48,521
But the actual core underlying problem is we have a structural problem in this technology

30
00:01:48,521 --> 00:01:50,601
that we're all so desperate to use.

31
00:01:51,301 --> 00:01:56,021
Meaning, if you actually chat with people that are building RAG platforms, most of what

32
00:01:56,021 --> 00:01:59,861
they'll say is, well, the models will eventually get good or get better to the point that they

33
00:01:59,861 --> 00:02:01,261
will eliminate hallucination.

34
00:02:01,701 --> 00:02:03,401
That is a nonsensical term.

35
00:02:04,081 --> 00:02:05,561
You know another word for hallucination?

36
00:02:06,261 --> 00:02:06,701
Alpha.

37
00:02:07,541 --> 00:02:09,161
Alpha is how a firm makes money.

38
00:02:09,381 --> 00:02:12,081
The creativity that you have and that your analysts have

39
00:02:12,081 --> 00:02:15,881
is a mechanism through which you can be a unique firm.

40
00:02:16,261 --> 00:02:18,161
Otherwise, there should be only one company on earth.

41
00:02:18,621 --> 00:02:21,241
So when you ask these types of simple questions

42
00:02:21,241 --> 00:02:22,681
around where data comes from,

43
00:02:22,881 --> 00:02:25,561
there is a piece of this that the model will just make things up,

44
00:02:25,561 --> 00:02:28,421
and there's a piece of this that your firm's internal data

45
00:02:28,421 --> 00:02:31,401
is never actually reflected in this setup.

46
00:02:32,601 --> 00:02:34,241
So what are we seeing right now?

47
00:02:34,241 --> 00:02:36,501
we're seeing everyone with a checkbook

48
00:02:36,501 --> 00:02:37,641
buy everything they can.

49
00:02:37,881 --> 00:02:38,961
Every RAG platform,

50
00:02:39,261 --> 00:02:40,601
some firms are trying to build,

51
00:02:40,821 --> 00:02:43,561
some firms are running agent pilots.

52
00:02:43,781 --> 00:02:45,421
I had a customer meeting this morning

53
00:02:45,421 --> 00:02:46,221
where someone said

54
00:02:46,221 --> 00:02:48,321
they were actually an AI-first firm,

55
00:02:48,501 --> 00:02:50,681
which means they have one co-pilot agent running.

56
00:02:50,881 --> 00:02:51,521
All this stuff.

57
00:02:51,921 --> 00:02:55,461
So why are we not seeing the complete switch

58
00:02:55,461 --> 00:02:57,661
of fundamental investing becoming effectively,

59
00:02:57,981 --> 00:02:59,221
why are we not all Jane Street?

60
00:02:59,761 --> 00:03:01,421
Why has that not happened yet?

61
00:03:01,921 --> 00:03:04,121
And so the challenge really comes from

62
00:03:04,121 --> 00:03:07,781
this idea of in order for you to produce work product

63
00:03:07,781 --> 00:03:10,361
that you believe in, you have to trust it,

64
00:03:10,721 --> 00:03:12,981
meaning you have to blame somebody who gets it wrong.

65
00:03:13,301 --> 00:03:15,241
So we see numbers like this all the time,

66
00:03:15,441 --> 00:03:18,001
where 80% of finance execs trust numbers,

67
00:03:18,281 --> 00:03:20,221
but then 31% find those errors.

68
00:03:20,841 --> 00:03:22,821
So what do we actually need?

69
00:03:23,281 --> 00:03:26,041
We need a situation where the reviews

70
00:03:26,041 --> 00:03:28,701
that we're getting for AI apps, as builders ourselves,

71
00:03:29,321 --> 00:03:32,141
do more than just ragify things.

72
00:03:32,141 --> 00:03:38,221
And these are quotes we've actually pulled from specific, I don't want to say our competitors,

73
00:03:38,341 --> 00:03:42,761
but other people, where things demo super well and they behave like a really smart intern.

74
00:03:43,241 --> 00:03:47,781
Or things are right if you just hook up the right structured information, but that last

75
00:03:47,781 --> 00:03:49,321
10% still gets things wrong.

76
00:03:50,301 --> 00:03:54,421
So what I want to do is, we're lucky, we have great partners and folks like turbopuffer,

77
00:03:54,541 --> 00:03:59,081
and I gave a similar chat yesterday about this, but how do we actually do the verification?

78
00:03:59,081 --> 00:04:04,041
How do we architecturally build a system that does not hallucinate numerically?

79
00:04:04,641 --> 00:04:05,741
Let's talk about it.

80
00:04:06,461 --> 00:04:10,041
Now, wrong numbers or wrong facts come from three sources.

81
00:04:10,461 --> 00:04:13,501
Either one, you retrieved the wrong document.

82
00:04:13,521 --> 00:04:16,781
So I pulled a document, some random thing from somewhere else.

83
00:04:17,261 --> 00:04:18,521
How do you fix this?

84
00:04:18,741 --> 00:04:20,961
Well, by retrieving the right document.

85
00:04:21,221 --> 00:04:22,961
But that in itself is complicated.

86
00:04:23,241 --> 00:04:27,621
Is the right document my own firm's internal analysis of what this stock is going to be worth?

87
00:04:28,081 --> 00:04:32,401
Is it, let's say, some analyst who I really trust more than anyone else?

88
00:04:33,241 --> 00:04:34,121
That's piece one.

89
00:04:35,001 --> 00:04:35,921
Now, failure two.

90
00:04:36,161 --> 00:04:39,301
We get the right source, and we pull the wrong number out of that source.

91
00:04:39,881 --> 00:04:43,861
Let's say we're trying to figure out what the revenue for, I don't know, Palantir was

92
00:04:43,861 --> 00:04:45,321
back in 2023.

93
00:04:46,061 --> 00:04:51,961
Well, if I look at the 2025 10K that says Palantir's 2023 revenue was this, I better

94
00:04:51,961 --> 00:04:55,281
make sure that that number corresponds to 2023 and not 2025.

95
00:04:56,121 --> 00:05:00,301
So the fix here is really we have a filter that actually checks each citation.

96
00:05:00,841 --> 00:05:05,361
But this is still a problem because that filter only applies after the fact.

97
00:05:05,981 --> 00:05:09,781
And formal verification doesn't actually help here because the thing has already been produced.

98
00:05:10,881 --> 00:05:12,081
Three is the mental math.

99
00:05:12,541 --> 00:05:13,781
Models don't do math.

100
00:05:13,941 --> 00:05:15,461
They predict the next token.

101
00:05:16,061 --> 00:05:19,381
For those of you who are going to say we have deterministic models, great, we do.

102
00:05:19,601 --> 00:05:23,101
We also have one CPU cycle that's good at adding two numbers together.

103
00:05:23,101 --> 00:05:25,261
Why don't I use that CPU cycle?

104
00:05:25,961 --> 00:05:31,441
So third failure is let's use deterministic tools that we already have to actually compute

105
00:05:31,441 --> 00:05:35,161
numbers and entities rather than relying on some external tool.

106
00:05:36,621 --> 00:05:37,681
So here's what we do.

107
00:05:37,901 --> 00:05:40,201
This is the magic behind Kepler, at least for piece one.

108
00:05:40,321 --> 00:05:41,261
There's a whole bunch of other stuff.

109
00:05:41,901 --> 00:05:43,921
We are architected fundamentally differently.

110
00:05:44,701 --> 00:05:49,681
Code writes every number, and what code does and preprocessing does is we assign pointers

111
00:05:49,681 --> 00:05:55,321
to unique identifiers, meaning facts, meaning something like a number in a 10K.

112
00:05:55,781 --> 00:05:59,481
This operates in a giant preprocessing and contextualization step,

113
00:05:59,781 --> 00:06:04,181
such that all of this exists, going from unstructured data to a structured data store.

114
00:06:04,901 --> 00:06:07,821
Then the model is effectively a smart analyst.

115
00:06:07,901 --> 00:06:11,421
It figures out how to go about solving the problem,

116
00:06:11,621 --> 00:06:14,581
but not actually being the thing to solve the problem itself.

117
00:06:14,841 --> 00:06:15,821
So it plans.

118
00:06:16,481 --> 00:06:20,201
It says I'm going to go here and retrieve this source and retrieve this entity and do

119
00:06:20,201 --> 00:06:20,701
this thing.

120
00:06:21,901 --> 00:06:23,501
Code and math do the retrieval.

121
00:06:24,001 --> 00:06:30,141
By actually pulling a number out of a 10k at search time, that's a hugely expensive

122
00:06:30,141 --> 00:06:30,881
token cost.

123
00:06:31,321 --> 00:06:34,781
And Anthropic and OpenAI should thank you for paying all those tokens and token maxing,

124
00:06:34,961 --> 00:06:37,001
but most of your firms don't like that, at least anymore.

125
00:06:37,221 --> 00:06:39,721
I know there were people getting bonuses from token maxing for a while.

126
00:06:41,341 --> 00:06:46,521
Now, the next piece of this is really, once the model is actually read both these pointers,

127
00:06:46,921 --> 00:06:49,721
it can't structurally generate numbers.

128
00:06:50,161 --> 00:06:55,241
Meaning, unless the model actually has a mechanism of dereferencing that pointer,

129
00:06:55,661 --> 00:06:59,321
that number or that fact cannot be generated in Kepler's output.

130
00:06:59,941 --> 00:07:03,621
Now, we do run a post-processing step, which is the verification step.

131
00:07:03,761 --> 00:07:08,021
And this is the piece that was kind of funny, where the last company just copied the verification piece,

132
00:07:08,021 --> 00:07:11,021
but all the structural stuff beforehand didn't make it.

133
00:07:11,561 --> 00:07:13,761
So what you as a consumer actually see

134
00:07:13,761 --> 00:07:17,181
is you see something like the revenue was this amount to this amount,

135
00:07:17,321 --> 00:07:19,201
and you physically can click on these chips

136
00:07:19,201 --> 00:07:20,941
and see exactly how we got the information.

137
00:07:22,221 --> 00:07:24,621
Now, in my past life, I had an opportunity.

138
00:07:24,861 --> 00:07:26,661
I was head of business engineering at Citadel.

139
00:07:26,861 --> 00:07:29,901
So I worked across the firm to figure out effectively

140
00:07:29,901 --> 00:07:33,481
what do we need to produce software that helps us generate alpha.

141
00:07:34,001 --> 00:07:35,441
You know the crazy thing with Citadel?

142
00:07:36,101 --> 00:07:38,321
PMs are so talented and so smart,

143
00:07:38,521 --> 00:07:40,641
but they work when they're paired

144
00:07:40,641 --> 00:07:42,361
with deterministic tools and technology.

145
00:07:42,781 --> 00:07:44,401
That's kind of the magical insight

146
00:07:44,401 --> 00:07:45,581
behind fundamental investing.

147
00:07:46,241 --> 00:07:49,961
Fundamental investors are so good at understanding data,

148
00:07:50,201 --> 00:07:51,741
but that data has to be right.

149
00:07:52,161 --> 00:07:55,441
And so when you build a system like Kepler,

150
00:07:55,801 --> 00:07:56,801
what you effectively have to do

151
00:07:56,801 --> 00:07:58,661
is look up the right information

152
00:07:58,661 --> 00:08:01,461
and then be clever about the information you don't have.

153
00:08:01,921 --> 00:08:02,961
So let me give you the parallel.

154
00:08:03,661 --> 00:08:06,781
Most folks and most buy-side researchers or buy-side investors

155
00:08:06,781 --> 00:08:10,721
try to use tooling or build DCFs on their own,

156
00:08:10,781 --> 00:08:14,181
and then they find and search for information they don't have.

157
00:08:14,321 --> 00:08:16,601
They schedule GLG or guidepoint calls.

158
00:08:16,781 --> 00:08:17,921
They find experts.

159
00:08:18,181 --> 00:08:19,361
They speak to management.

160
00:08:19,821 --> 00:08:21,641
The same system actually applies here.

161
00:08:22,181 --> 00:08:24,501
So what we do is we pick the path,

162
00:08:24,621 --> 00:08:26,801
and we store the information deterministically

163
00:08:26,801 --> 00:08:28,761
that we can actually store deterministically.

164
00:08:29,141 --> 00:08:31,881
When we have information we can't store deterministically,

165
00:08:31,881 --> 00:08:35,461
we run similar pre-processing steps to grab information,

166
00:08:35,761 --> 00:08:38,741
store that information in a hybrid storage mechanism,

167
00:08:38,961 --> 00:08:40,461
which is a combination of turbopuffer,

168
00:08:40,601 --> 00:08:43,421
who's awesome, by the way, and a bunch of other mechanisms,

169
00:08:43,701 --> 00:08:47,041
and then we ultimately use a combination of re-ranking

170
00:08:47,041 --> 00:08:52,341
with literally old-school pointer dereferencing dot get methods

171
00:08:52,341 --> 00:08:54,081
to pull things into our system.

172
00:08:55,001 --> 00:09:00,081
Now, why this matters is a lookup cannot get it wrong.

173
00:09:00,381 --> 00:09:01,321
Search can.

174
00:09:01,881 --> 00:09:04,861
If you're running the same 10 searches with the same query,

175
00:09:05,041 --> 00:09:08,021
the probabilistic nature of models means there's inherent entropy.

176
00:09:08,781 --> 00:09:10,501
That's actually an opportunity.

177
00:09:10,821 --> 00:09:12,241
So that's what we've changed here.

178
00:09:13,301 --> 00:09:16,181
Now, how we do this is we break this down,

179
00:09:16,221 --> 00:09:18,701
and this occurs across the SEC world as well.

180
00:09:19,641 --> 00:09:22,821
We are frequently throwing candidate documents away,

181
00:09:23,421 --> 00:09:25,641
meaning we consistently have to look at

182
00:09:25,641 --> 00:09:28,841
not only what source is the right source for what information,

183
00:09:28,841 --> 00:09:32,641
but also which documents should we stop looking at kind of globally.

184
00:09:33,161 --> 00:09:37,801
So we're on ANN plus BM25 to get back a set of documents,

185
00:09:37,921 --> 00:09:38,801
usually up to 200.

186
00:09:39,621 --> 00:09:40,441
We do reciprocal.

187
00:09:41,021 --> 00:09:43,001
We effectively get 60 documents back.

188
00:09:43,141 --> 00:09:44,381
It's probably the best way to think about this.

189
00:09:45,441 --> 00:09:47,581
Then we do cross encoders.

190
00:09:47,721 --> 00:09:51,901
We try to figure out exactly the query and the actual document

191
00:09:51,901 --> 00:09:54,561
chunked together and get those results that way.

192
00:09:55,361 --> 00:09:59,021
What that allows us to do is we can search really wide.

193
00:09:59,321 --> 00:10:00,921
You know what LLMs aren't good at doing?

194
00:10:01,241 --> 00:10:02,561
Searching really wide.

195
00:10:03,081 --> 00:10:04,501
What they try to do is create a plan

196
00:10:04,501 --> 00:10:07,081
and find either the fastest or easiest

197
00:10:07,081 --> 00:10:09,081
breadth-first search mechanism,

198
00:10:09,761 --> 00:10:11,121
actually maybe depth-first search mechanism,

199
00:10:11,321 --> 00:10:13,761
of actually getting the first document and moving forward.

200
00:10:14,081 --> 00:10:15,921
So we allow this to search really wide

201
00:10:15,921 --> 00:10:17,881
and then narrow from there.

202
00:10:18,801 --> 00:10:21,381
The reason LLMs don't like searching wide

203
00:10:21,381 --> 00:10:22,881
is because it's expensive.

204
00:10:22,881 --> 00:10:25,001
It's because looking across a bunch of

205
00:10:25,021 --> 00:10:31,801
different sources is significantly worse than getting the reward function back with your first hit and going from there.

206
00:10:33,581 --> 00:10:49,461
Okay. So I want to talk a little about security here because it's super important. Kepler was built with a security-first mindset and security-first mentality. Now, client documents, and this is specifically targeted towards the builders here, this is the thing that no one's chatting about.

207
00:10:50,021 --> 00:10:55,161
Everyone is talking about the security of what OAuth token is used and what user-scoped

208
00:10:55,161 --> 00:10:56,781
mechanism of retrieving documents.

209
00:10:57,221 --> 00:10:57,941
Which is actually pretty scary.

210
00:10:58,841 --> 00:11:02,401
So let's talk about how things go wrong in these systems that people are trying to build

211
00:11:02,401 --> 00:11:03,481
and how you can fix it.

212
00:11:04,241 --> 00:11:06,641
First and foremost, you forget to filter the tenant.

213
00:11:07,101 --> 00:11:09,301
All of a sudden Citadel can search for all of Millennium's documents.

214
00:11:09,601 --> 00:11:10,661
You will be in a lot of trouble.

215
00:11:11,521 --> 00:11:13,881
Second, a caller claims to be another firm.

216
00:11:14,141 --> 00:11:18,761
Meaning I can claim that I'm impersonating this other entity and querying documents that

217
00:11:18,761 --> 00:11:18,941
way.

218
00:11:19,541 --> 00:11:22,741
Third, search returns information that's out of date.

219
00:11:23,021 --> 00:11:24,561
We've had this problem kind of globally

220
00:11:24,561 --> 00:11:26,261
and even Google search results.

221
00:11:27,081 --> 00:11:29,081
Fourth, direct read skips the search rules,

222
00:11:29,321 --> 00:11:30,581
meaning you're not actually querying

223
00:11:30,581 --> 00:11:31,901
the full corpus of information,

224
00:11:32,201 --> 00:11:33,381
or there's not an allow list.

225
00:11:33,601 --> 00:11:35,201
You only get back the single document

226
00:11:35,201 --> 00:11:35,921
that you did the search.

227
00:11:36,421 --> 00:11:38,301
Five, you hit an index that isn't populated.

228
00:11:39,521 --> 00:11:41,981
The way to actually solve all these problems,

229
00:11:42,061 --> 00:11:43,541
and there's individual things listed here,

230
00:11:43,861 --> 00:11:48,021
is actually scoping searches with security built in.

231
00:11:48,641 --> 00:11:52,101
That's another critical piece that I think a lot of people miss when they're trying to

232
00:11:52,101 --> 00:11:53,221
build these systems themselves.

233
00:11:54,361 --> 00:11:58,201
Inevitably, people will start caring about the security associated with querying this

234
00:11:58,201 --> 00:11:58,681
information.

235
00:11:59,421 --> 00:12:02,781
Alpha is the most elusive thing out there, especially for folks on Wall Street.

236
00:12:03,281 --> 00:12:08,661
Making sure you have a good mechanism of constraining the set of documents that come

237
00:12:08,661 --> 00:12:10,981
back with each query is really important.

238
00:12:13,421 --> 00:12:15,901
Now let's talk about verification, which is the last piece here.

239
00:12:15,901 --> 00:12:20,301
This is probably what we're known most for, but we do the other stuff I mentioned as well.

240
00:12:21,441 --> 00:12:27,461
How we do this is by preprocessing information and storing it deterministically,

241
00:12:27,801 --> 00:12:31,741
we have systems like code that actually write individual pointers.

242
00:12:32,181 --> 00:12:38,021
The model can only then read those pointers and grab information back if they exist in the database.

243
00:12:38,401 --> 00:12:42,121
If I grab something out of a hash map that doesn't exist, I don't get anything back.

244
00:12:42,561 --> 00:12:45,721
And so this combination is what allows us

245
00:12:45,721 --> 00:12:48,021
to actually make sure the information that we retrieved

246
00:12:48,021 --> 00:12:49,961
actually came from the source that it came from.

247
00:12:50,521 --> 00:12:53,901
Now, this is a kind of hidden version

248
00:12:53,901 --> 00:12:55,581
of what our source IDs look like,

249
00:12:55,601 --> 00:12:57,241
but these are hashes,

250
00:12:57,381 --> 00:12:59,261
and these are very simple things that you can do

251
00:12:59,261 --> 00:13:00,941
in your own system and your own setup

252
00:13:00,941 --> 00:13:03,261
to ensure that you're pulling back facts

253
00:13:03,261 --> 00:13:05,061
that, in fact, do exist.

254
00:13:06,401 --> 00:13:06,821
Cool.

255
00:13:07,421 --> 00:13:09,641
So that's a little bit about how we do verification.

256
00:13:09,981 --> 00:13:11,401
Now, I want to chat a little bit about

257
00:13:11,401 --> 00:13:14,081
what this enables kind of globally.

258
00:13:15,241 --> 00:13:18,361
This enables us to verify facts

259
00:13:18,361 --> 00:13:20,961
that come out of our grounded corpus of data.

260
00:13:21,541 --> 00:13:24,681
Now, you as a builder, or you as a startup creator,

261
00:13:24,861 --> 00:13:26,841
or you as someone who is trying to figure out

262
00:13:26,841 --> 00:13:28,621
how do I trust my outputs,

263
00:13:28,861 --> 00:13:30,361
really just need to do a couple of things.

264
00:13:30,581 --> 00:13:33,861
You need to show people that as you're creating these agents

265
00:13:33,861 --> 00:13:36,041
that are theoretically looking for alpha

266
00:13:36,041 --> 00:13:37,161
or whatever they'd be looking for,

267
00:13:37,401 --> 00:13:41,001
you're using information that is actually relevant and concrete

268
00:13:41,001 --> 00:13:43,141
and, most importantly, accurate

269
00:13:43,141 --> 00:13:45,381
to the set of people that you're trying to service.

270
00:13:45,781 --> 00:13:48,381
So we end up with a contract

271
00:13:48,381 --> 00:13:50,421
where citations are either verified,

272
00:13:51,701 --> 00:13:53,461
corrected at search time,

273
00:13:53,641 --> 00:13:55,161
or flat-out refused.

274
00:13:55,461 --> 00:13:57,701
This is crazy if you think about it.

275
00:13:58,401 --> 00:14:01,501
If a model cannot de-resolve that pointer,

276
00:14:01,841 --> 00:14:04,041
it cannot print that number out.

277
00:14:05,241 --> 00:14:07,361
So that's kind of an insane thing.

278
00:14:07,541 --> 00:14:09,681
It means that the whole, and not just a number,

279
00:14:09,921 --> 00:14:10,821
let's talk about facts,

280
00:14:11,001 --> 00:14:15,321
Like, we see these court cases all over of precedents being hallucinated.

281
00:14:15,681 --> 00:14:19,601
Well, why can't we create a system that just has the precedents stored deterministically

282
00:14:19,601 --> 00:14:24,741
and allows us to search through that list and not have a random court case that never existed

283
00:14:24,741 --> 00:14:25,881
all of a sudden start existing?

284
00:14:26,541 --> 00:14:31,401
So this mechanism and this technology actually becomes fairly globally applicable.

285
00:14:31,701 --> 00:14:34,501
And the reason I'm on stage telling you how we do what we do

286
00:14:34,501 --> 00:14:39,101
is because I'm terrified that Wall Street never trusts this technology

287
00:14:39,641 --> 00:14:42,341
because of the fear that so many other companies

288
00:14:42,341 --> 00:14:44,441
or so many build-it-at-home folks

289
00:14:44,441 --> 00:14:47,521
have been instituting in these organizations.

290
00:14:48,781 --> 00:14:50,141
It's gotten to the point where

291
00:14:50,141 --> 00:14:53,021
the vast majority of finance AI tools right now

292
00:14:53,021 --> 00:14:55,601
are being used to format PowerPoint presentations.

293
00:14:56,061 --> 00:14:59,141
We still haven't actually built a DCF cradle-to-grave,

294
00:14:59,221 --> 00:15:00,621
despite what most people are saying.

295
00:15:00,781 --> 00:15:03,581
And if we had, every single company on Wall Street

296
00:15:03,581 --> 00:15:04,761
would have adopted that overnight.

297
00:15:05,501 --> 00:15:06,601
So this is my fear.

298
00:15:06,821 --> 00:15:08,621
My fear comes from a very simple fact.

299
00:15:08,621 --> 00:15:11,121
For us to actually get value out of this technology,

300
00:15:11,421 --> 00:15:13,601
we need to be able to build technology

301
00:15:13,601 --> 00:15:16,141
that people actually can trust and can verify.

302
00:15:17,101 --> 00:15:18,381
That isn't just true in finance.

303
00:15:18,541 --> 00:15:19,581
It's true in a bunch of different industries.

304
00:15:20,241 --> 00:15:22,701
So please, take what you need to from this presentation

305
00:15:22,701 --> 00:15:24,761
and get people using this technology.

306
00:15:25,121 --> 00:15:26,921
Otherwise, we're all going to be out of a job.

307
00:15:27,901 --> 00:15:30,061
Now, I want to chat through what happened when we saw this.

308
00:15:30,341 --> 00:15:33,561
So when we went through this whole process,

309
00:15:33,981 --> 00:15:36,361
this is actually some of our real production data here,

310
00:15:37,581 --> 00:15:39,541
refusals are when the model

311
00:15:39,541 --> 00:15:42,281
is not able to produce a number.

312
00:15:43,081 --> 00:15:44,701
Meaning the model will say,

313
00:15:44,881 --> 00:15:46,281
I couldn't dereference this pointer,

314
00:15:46,541 --> 00:15:49,141
therefore I could not produce this number.

315
00:15:49,421 --> 00:15:51,881
We saw that drop super drastically.

316
00:15:52,201 --> 00:15:54,541
Now the reason that it didn't drop to zero

317
00:15:54,541 --> 00:15:57,181
is because models are still probabilistic.

318
00:15:57,801 --> 00:15:59,921
Meaning it can still make up numbers

319
00:15:59,921 --> 00:16:01,561
after the fact during inference.

320
00:16:01,821 --> 00:16:04,061
So there is another post-processing step

321
00:16:04,061 --> 00:16:05,801
after this that we have as well.

322
00:16:06,361 --> 00:16:10,761
But my point with this slide is just by creating a system

323
00:16:10,761 --> 00:16:12,901
where the models have to dereference their own pointers,

324
00:16:12,901 --> 00:16:17,781
you can actually create a very powerful, very verifiable AI platform.

325
00:16:18,581 --> 00:16:20,101
And that to me is my ask to all of you.

326
00:16:20,441 --> 00:16:22,121
As you go through the building process,

327
00:16:22,241 --> 00:16:23,661
as you go through the scoping process,

328
00:16:23,901 --> 00:16:25,481
any tool that you use,

329
00:16:25,681 --> 00:16:27,541
ask them if you can actually verify the numbers.

330
00:16:27,761 --> 00:16:30,201
Ask them if you can see where the sources are,

331
00:16:30,441 --> 00:16:32,801
not in terms of some after-the-fact annotation,

332
00:16:33,021 --> 00:16:35,781
but click on the number, whether it's a calculation,

333
00:16:35,781 --> 00:16:39,021
whether it's an extraction or some combination of the two

334
00:16:39,021 --> 00:16:40,721
to make sure you trust the insight.

335
00:16:41,881 --> 00:16:45,021
And all of this ultimately is going to be the unlock.

336
00:16:45,261 --> 00:16:49,561
So you, as a vendor or you as a builder, ask these questions.

337
00:16:50,321 --> 00:16:52,021
Does the model actually write pointers?

338
00:16:52,221 --> 00:16:54,761
Does it actually create a mechanism for verifying the output?

339
00:16:55,141 --> 00:16:57,241
Is every citation source checked?

340
00:16:57,621 --> 00:16:59,441
Is arithmetic source checked?

341
00:16:59,781 --> 00:17:02,321
Do you have a mechanism for stopping files

342
00:17:02,321 --> 00:17:05,081
that reach clients or customers that it shouldn't reach?

343
00:17:05,601 --> 00:17:09,301
And most importantly, what happens to a number that came from nowhere?

344
00:17:09,421 --> 00:17:12,081
What happens when a fact comes from nowhere?

345
00:17:12,341 --> 00:17:15,401
And how do I actually handle these kinds of hallucinations?

346
00:17:16,981 --> 00:17:22,741
So this whole platform is actually to make a very simple statement, very obvious,

347
00:17:23,041 --> 00:17:26,521
which is we can have the smartest models in the world.

348
00:17:26,581 --> 00:17:29,241
We can hit some crazy cool piece of technology,

349
00:17:29,241 --> 00:17:34,861
but we still have the same database problems that we've had from the beginning.

350
00:17:35,321 --> 00:17:40,141
which are, I cannot, if I search through a row

351
00:17:40,141 --> 00:17:43,261
and that value doesn't exist, I won't get a retrieval back.

352
00:17:43,781 --> 00:17:45,841
We're now out of the search phase of AI.

353
00:17:46,121 --> 00:17:47,941
We need to be building infrastructure.

354
00:17:48,301 --> 00:17:51,641
We need to be building scaffolding and harnesses and substrates,

355
00:17:51,781 --> 00:17:53,601
or whatever the cool VC term is these days,

356
00:17:53,801 --> 00:17:56,161
that actually enable us to make use of this technology.

357
00:17:56,521 --> 00:17:58,741
So this is my challenge and my ask to all of you.

358
00:18:00,041 --> 00:18:02,461
I hope you go out there and build something compelling,

359
00:18:02,461 --> 00:18:04,841
but I hope you build something compelling that you can trust.

360
00:18:05,081 --> 00:18:05,941
Thank you.
