WEBVTT

NOTE Sentence-level transcript of https://www.youtube.com/watch?v=AYFcmnQrZCg

NOTE One cue per sentence. Cue ids are the line anchors on /transcripts/AYFcmnQrZCg.html. A cue ends where the next begins, or 2 s after its last word.

s1
00:00:01.309 --> 00:00:03.309
[music]

s2
00:00:12.480 --> 00:00:13.200
My name's Frank.

s3
00:00:13.200 --> 00:00:17.720
I work at Coatue, which is a technology investment firm across public and private markets.

s4
00:00:17.720 --> 00:00:26.600
So, in our business, what you really need to do is be able to take high conviction bets on big themes and watch those play out.

s5
00:00:26.600 --> 00:00:29.000
I think honestly a career is the same way.

s6
00:00:29.000 --> 00:00:38.560
And last year when I joined Coatue, the bet that I wanted to make was I think that agents will have an even bigger impact in investing than they did at coding.

s7
00:00:38.560 --> 00:00:39.600
I know that's a big statement.

s8
00:00:39.600 --> 00:00:48.360
We're all here because of the transformat- transformative impact that AI has had in coding, but I really believe it strongly and today I want to talk a little bit about

s9
00:00:48.360 --> 00:00:52.120
the framework that we use to actually realize that impact.

s10
00:00:52.120 --> 00:01:04.040
So, at a high level, you can think about a hedge fund as a function that takes in two parameters, context external and context internal, and spits out one tuple,

s11
00:01:04.040 --> 00:01:06.880
selection, size, timing.

s12
00:01:06.880 --> 00:01:08.120
What stock?

s13
00:01:08.120 --> 00:01:09.120
How much?

s14
00:01:09.120 --> 00:01:10.000
When?

s15
00:01:10.000 --> 00:01:10.960
Right?

s16
00:01:10.960 --> 00:01:24.000
And I think this is a good framework to actually to ground our work, which is we're trying to solve this compression problem of how do you take all the information in the world and spit out this one simple tuple

s17
00:01:24.000 --> 00:01:31.400
and the product that we that we provide is essentially a time series of this tuple that constructs a portfolio.

s18
00:01:31.400 --> 00:01:34.440
So, let's start from the top, which is the inputs.

s19
00:01:34.440 --> 00:01:36.400
Very simple philosophy.

s20
00:01:36.400 --> 00:01:39.960
We use our screens, we look at stuff, we do work.

s21
00:01:39.960 --> 00:01:46.560
Every single thing that a human can see in pixels on the screen, an agent in your building should be able to see via API.

s22
00:01:46.560 --> 00:01:59.560
Uh the analogy I use is imagine you brought the smartest people ever, the greatest investors alive, and you brought them into your company, but you gave them a computer without logins to 75% of your services.

s23
00:01:59.560 --> 00:02:05.772
It it's almost how smart the system is if it doesn't have the tools to actually action that.

s24
00:02:05.772 --> 00:02:08.532
So, the two parts, external context, right?

s25
00:02:08.532 --> 00:02:09.812
No surprises here.

s26
00:02:09.812 --> 00:02:22.852
Think the news, prices, filings, all of that should be easily accessible and not via dragging and dropping, copy and pasting, like directly via API.

s27
00:02:23.212 --> 00:02:27.052
Internal context is just as important, right?

s28
00:02:27.052 --> 00:02:29.292
So, this is your own firm situation.

s29
00:02:29.292 --> 00:02:41.252
So, that might be our current positions, potential liquidity and risk requirements we have around certain names, and past case studies or um you know, history with a certain sector

s30
00:02:41.252 --> 00:02:43.012
or stock or management team.

s31
00:02:43.012 --> 00:02:44.932
That stuff's all super important.

s32
00:02:44.932 --> 00:02:52.052
So, this is the foundation and I think uh no credit to me, KKR has been an amazing leader on this for over a decade.

s33
00:02:52.052 --> 00:02:54.492
It's both technological and cultural.

s34
00:02:54.492 --> 00:03:00.572
We have an amazing data science team, amazing, amazing processes, amazing, amazing systems that bring all this in.

s35
00:03:00.572 --> 00:03:08.372
And just as importantly, we have a culture that is super, super rigorous and built from the ground up to capture all this insight.

s36
00:03:08.372 --> 00:03:20.172
For decades, we've filed every single note about every single trade, about every single decision we made or didn't make, about what went well and what didn't go well, and that's poised us to expose us to AI.

s37
00:03:20.812 --> 00:03:31.012
So, if you think about it, I probably can't just take all of those things, jam them into a context window, and get my magic three numbers and go home, right?

s38
00:03:31.012 --> 00:03:32.732
It can't be that easy.

s39
00:03:32.732 --> 00:03:37.492
You probably have to break down this function a bit further, right?

s40
00:03:37.492 --> 00:03:44.532
So, maybe the first step is I take in that external and internal context, and I gather it, right?

s41
00:03:44.532 --> 00:03:48.292
I want to gather it, I want to filter out what's relevant and not relevant.

s42
00:03:48.292 --> 00:03:51.612
Okay, well, I pulled some news articles about the NBA.

s43
00:03:51.612 --> 00:04:02.294
That probably isn't material to stocks, but oh, well, this is actually related to some local permitting that might actually impact data centers, like there's a lot of nuance in this gather step.

s44
00:04:02.294 --> 00:04:08.694
Um then you'll see probably next step is I need to analyze that information and form a view.

s45
00:04:08.694 --> 00:04:09.414
Right?

s46
00:04:09.414 --> 00:04:15.214
I actually need to think about what that means for the markets, public and private.

s47
00:04:15.214 --> 00:04:20.454
Uh and then I need to take that view and turn it into a decision.

s48
00:04:20.454 --> 00:04:24.174
A decision object has these three parameters, right?

s49
00:04:24.174 --> 00:04:26.614
These three sort of sub sub pieces.

s50
00:04:26.614 --> 00:04:37.614
So, you can see every single step has an input and an output and the input for the subsequent step is the output that the previous function generated.

s51
00:04:37.614 --> 00:04:44.254
I think as an engineer, this is a way for me to conceptualize the problem in a way that makes a lot of sense.

s52
00:04:44.254 --> 00:04:46.238
But even this it

s53
00:04:46.238 --> 00:04:46.374
[snorts]

s54
00:04:46.374 --> 00:04:49.934
really can't be as simple as writing three functions, right?

s55
00:04:49.934 --> 00:05:03.774
So, let's just to up really appreciate the scope and understand the full complexity of the problem, let's look into the first step, a tiny sub piece of tiny sub piece of just gathering information

s56
00:05:03.774 --> 00:05:08.694
and let's do a case study on interpreting the news, right?

s57
00:05:08.694 --> 00:05:22.014
So it's probably no secret to you guys that you know, news from Asia and Korean Korean media outlets has been super important this year because semis, AI have been a huge huge theme in the market,

s58
00:05:22.014 --> 00:05:22.974
huge theme.

s59
00:05:22.974 --> 00:05:34.534
And I think this is an area where AI is poised to have a lot of impact is reading uh Korean language news better than our completely non-Korean speaking staff,

s60
00:05:34.534 --> 00:05:35.454
right?

s61
00:05:35.454 --> 00:05:38.054
Uh I think I have a good thesis that this might be a good use case.

s62
00:05:38.054 --> 00:05:44.174
So you can imagine the first step is I have uh articles.

s63
00:05:44.174 --> 00:05:45.974
I need to collect the articles, right?

s64
00:05:45.974 --> 00:05:52.214
So, this could be an MCP, this could be a CLI, license the data feeds, clean the data feeds.

s65
00:05:52.214 --> 00:05:54.614
There's actually a lot of ways to do this.

s66
00:05:54.614 --> 00:05:59.014
And a lot of dimensions of freedom for how you can even just write this simple piece.

s67
00:05:59.014 --> 00:06:00.334
How do I chunk it?

s68
00:06:00.334 --> 00:06:04.934
When I pass it to the LLM, do I want to pull the images as images?

s69
00:06:04.934 --> 00:06:09.335
Do I want to pull the images and then turn the images into text?

s70
00:06:09.335 --> 00:06:17.255
There's actually a lot of knobs here, and I almost think about those knobs as like hyper parameters in a traditional machine learning system, right?

s71
00:06:17.255 --> 00:06:22.895
I think about each of these knobs as something for me to tune and optimize against.

s72
00:06:23.295 --> 00:06:26.775
Obviously, filtration, we talked about it.

s73
00:06:26.775 --> 00:06:29.575
Korean They're probably Korean NBA fans, right?

s74
00:06:29.575 --> 00:06:40.335
There's probably a bunch of stuff that's not necessarily material to the the names and themes and stocks in our portfolio that really, really matter, right?

s75
00:06:40.335 --> 00:06:44.695
So, I want to make sure that I filter those out.

s76
00:06:45.055 --> 00:06:49.695
There's this like translate/extract/should I summarize?

s77
00:06:49.695 --> 00:06:53.095
Should I extract this into some sort of structured form?

s78
00:06:53.095 --> 00:06:58.255
Again, so, so many ways to do this, so many ways to experiment how to expose information to the model.

s79
00:06:58.255 --> 00:07:02.335
And one of the reasons this is hard is it keeps changing.

s80
00:07:02.535 --> 00:07:03.775
And obviously, checking.

s81
00:07:03.775 --> 00:07:11.735
Checking like our own internal notes, our own internal views, potential conversations we've had, meeting recordings against these things.

s82
00:07:11.735 --> 00:07:14.855
We actually need to cross-reference those things.

s83
00:07:14.855 --> 00:07:21.415
Actually, the idea of pulling information from disparate sources and cross-referencing them, that's super powerful.

s84
00:07:21.415 --> 00:07:26.855
So, you'll see on on the right here I have code, LLM, LLM, code, person.

s85
00:07:26.855 --> 00:07:29.175
There's many, many ways to run these functions.

s86
00:07:29.175 --> 00:07:31.775
I think about Uh oh, yeah.

s87
00:07:31.775 --> 00:07:32.815
And finally, update.

s88
00:07:32.815 --> 00:07:36.615
Potentially, we update our views.

s89
00:07:36.615 --> 00:07:39.135
So, there's many ways to run these functions.

s90
00:07:39.135 --> 00:07:45.815
I think of each line as having a runner, and uh the most obvious one is code.

s91
00:07:45.815 --> 00:07:46.695
Code is very good.

s92
00:07:46.695 --> 00:07:50.295
It's fast, it's cheap, it's reliable.

s93
00:07:50.295 --> 00:07:59.015
So, for something like if the price-to-earnings ratio is less than 15, I should just use deterministic code for that.

s94
00:07:59.015 --> 00:08:08.777
Runner number two is statistics, classical machine learning, and you can imagine fitting a line to a regression for specific pattern.

s95
00:08:08.777 --> 00:08:15.937
This is very powerful because you can model much more complex relationships than just pure deterministic code, right?

s96
00:08:15.937 --> 00:08:23.217
And for even more complex relationships, the reason we're all here, LLMs, AI agents, that's another type of runner, right?

s97
00:08:23.217 --> 00:08:27.337
So, for something like summarization, that's the state of the art, right?

s98
00:08:27.337 --> 00:08:35.857
It's probably totally impossible to build a a bunch of if statements that can summarize better than a model modern LLM.

s99
00:08:35.857 --> 00:08:38.137
And of course, uh people.

s100
00:08:38.137 --> 00:08:40.417
People are important runners in the system, right?

s101
00:08:40.417 --> 00:08:45.257
So, uh imagine a function meetings the management team of a company.

s102
00:08:45.257 --> 00:08:51.657
I probably don't want to send, I mean, I like the new Unitree robots, but I probably don't want to see it send an LLM or an AI agent in to do that.

s103
00:08:51.657 --> 00:08:54.377
I probably don't want to send an if statement into that meeting.

s104
00:08:54.377 --> 00:09:04.977
I think there's many cases where, because of judgment and the ability to navigate the real world and all of these things, a person is the best runner for a given piece of the function.

s105
00:09:04.977 --> 00:09:08.697
And I think this is like a super super important point.

s106
00:09:08.697 --> 00:09:12.897
There is no glory in automating things for the sake of automating things.

s107
00:09:12.897 --> 00:09:17.257
The goal is not to take as many things and make them LLM as possible for us.

s108
00:09:17.257 --> 00:09:24.817
The goal is, for any given piece of this function, what can I do to maximize absolute quality?

s109
00:09:26.697 --> 00:09:30.897
And if you actually think about the function, it probably looks something like this.

s110
00:09:30.897 --> 00:09:34.777
It's probably not just a linear statement of a bunch of different things.

s111
00:09:34.777 --> 00:09:39.057
There's probably all kinds of branching logic and all kinds of ways to actually fork this.

s112
00:09:39.057 --> 00:09:50.097
So, maybe I want to collect the information and then translate it, and my main goal is to extract quotes and check those against sources to make sure that these are actually the things that people said, and and that's my approach.

s113
00:09:50.097 --> 00:09:51.297
But that might be totally wrong.

s114
00:09:51.297 --> 00:09:59.577
Maybe actually what I want to do is I want to dedupe, and then I want to filter, and then I want to pull external figures, or maybe I want to do something totally different.

s115
00:09:59.577 --> 00:10:06.497
I actually want to I'm passing in a note first, and I actually just want to find other confirmatory data points, or maybe I'm trying to write team.

s116
00:10:06.497 --> 00:10:09.097
Uh there's a million different ways to configure this.

s117
00:10:09.097 --> 00:10:15.298
So, yet again, more hyper parameters within the control flow, right?

s118
00:10:15.818 --> 00:10:24.818
So, so many ways to think about just this very simple problem, a polling, filtering, summarizing, aggregating the news for LLMs.

s119
00:10:25.018 --> 00:10:32.418
And each of these boxes probably has an optimal runner, right?

s120
00:10:32.418 --> 00:10:38.098
So, uh the optimal runner might be deterministic code for collection, right?

s121
00:10:38.098 --> 00:10:42.298
I'm polling last 24 hours for a given source.

s122
00:10:42.298 --> 00:10:44.498
That's deterministic code.

s123
00:10:44.498 --> 00:10:48.098
Filtration, decision models, maybe.

s124
00:10:48.098 --> 00:10:52.778
LLMs, statistical methods, a combination, right?

s125
00:10:52.778 --> 00:10:55.098
So, this probably understates the complexity.

s126
00:10:55.098 --> 00:10:57.138
The reality is most things are multi-runner.

s127
00:10:57.138 --> 00:11:03.778
Most things have deterministic code plus LLM plus statistical method or human with LLM in conjunction.

s128
00:11:03.778 --> 00:11:15.938
Uh the reality is this it's probably combinatorics between my four buckets, and there's even more buckets than that because within the LLM category, I can tune the model.

s129
00:11:15.938 --> 00:11:18.618
I can choose big model, small model, medium model.

s130
00:11:18.618 --> 00:11:20.258
I can tune thinking effort.

s131
00:11:20.258 --> 00:11:22.018
X high, high, medium.

s132
00:11:22.018 --> 00:11:23.378
I can tune harness.

s133
00:11:23.378 --> 00:11:24.618
I can choose the harness.

s134
00:11:24.618 --> 00:11:26.298
I can choose which skills load with the harness.

s135
00:11:26.298 --> 00:11:28.458
I can choose which hooks load with the skills.

s136
00:11:28.458 --> 00:11:32.018
So, yet again, more hyper parameters within my search space.

s137
00:11:32.018 --> 00:11:35.818
I have an absolutely enormous amount of hyper parameters within my search space.

s138
00:11:35.818 --> 00:11:38.378
And this is just for this one tiny problem, right?

s139
00:11:38.378 --> 00:11:39.778
I'm just filtering the news.

s140
00:11:39.778 --> 00:11:51.538
So, the way uh to think about breaking down these problems is what can I actually compartmentalize in a way that we can understand and evaluate because that's what I'm hill climbing against, right?

s141
00:11:51.538 --> 00:11:53.338
Otherwise, I'm just tuning these things.

s142
00:11:53.338 --> 00:11:57.738
I'm okay, well, that should actually be a machine learning system instead of an LLM.

s143
00:11:57.738 --> 00:11:59.378
That should be a little model that we train.

s144
00:11:59.378 --> 00:12:01.258
Oh, no, that should actually shouldn't be a model at all.

s145
00:12:01.258 --> 00:12:07.298
That should be an if statement or Oh, man, LLMs are really, really bad at translating that to portfolio impact.

s146
00:12:07.298 --> 00:12:14.419
It should really be a human on that step, but they're using uh a deterministic system to help them search and pull the information.

s147
00:12:14.419 --> 00:12:16.059
It could be all different things, right?

s148
00:12:16.059 --> 00:12:22.539
And if you don't have a North Star to hill climb against, you're just kind of you're just fidgeting around.

s149
00:12:22.539 --> 00:12:27.779
And I think I cannot convey enough that this is just one tiny thing we do.

s150
00:12:27.779 --> 00:12:34.859
Imagine every single data source that we pull in, there's probably more than just three transformations to get them to the intermediate output.

s151
00:12:34.859 --> 00:12:42.939
So, the actual graph of Kensho and funds like Kensho, it actually probably looks Oh, not like this.

s152
00:12:42.939 --> 00:12:45.379
This is my screensaver.

s153
00:12:46.019 --> 00:12:49.339
The actual graph probably looks something like this, right?

s154
00:12:49.339 --> 00:12:51.019
It's probably massively complex.

s155
00:12:51.019 --> 00:12:59.939
In each of those nodes, we just talked about at least 10 hyper parameters with at least 20 different valid values for them.

s156
00:12:59.939 --> 00:13:02.419
So, the search space is is basically infinite.

s157
00:13:02.419 --> 00:13:14.019
And figuring out how to actually lay this out in a way that you can comprehend both from technical perspective, but also absorb culturally, organizationally, that is the great challenge

s158
00:13:14.019 --> 00:13:16.819
of applying AI in investing.

s159
00:13:16.819 --> 00:13:28.379
And beyond investing, what we're really talking about is creating a state machine that can take information from the world and understand it well enough to make coherent decisions.

s160
00:13:28.379 --> 00:13:34.419
There's use cases for this far and above wider than just investment firms.

s161
00:13:34.419 --> 00:13:46.659
In policy, in nonprofits, in drug discovery, in corporate strategy, I think one of the most exciting things for me about being in forms like this is talking to other people in dis- different spaces

s162
00:13:46.659 --> 00:13:50.379
with different problems that kind of congeal on the same problem space.

s163
00:13:50.379 --> 00:13:51.779
I'd love to keep talking about this.

s164
00:13:51.779 --> 00:13:53.499
I'll hang out in the hallway afterwards.

s165
00:13:53.499 --> 00:13:57.754
Here are my socials, and thank you everyone for your time.

s166
00:13:57.754 --> 00:13:59.754
[applause]
