WEBVTT

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

NOTE One cue per sentence. Cue ids are the line anchors on /transcripts/jebp4V0vh30.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:13.440 --> 00:00:14.720
Hello.

s3
00:00:14.720 --> 00:00:16.160
Thank you for coming.

s4
00:00:16.160 --> 00:00:24.360
Um I'm going to talk to you about Agility Sites, how we call it as building hyper-personalized websites.

s5
00:00:24.360 --> 00:00:26.120
I'm not going to just talk about it.

s6
00:00:26.120 --> 00:00:28.840
I'm going to show you what we're building.

s7
00:00:28.840 --> 00:00:39.640
Um I've been working on on this project for for a bit now, and we'll try to show you what is possible today with with AI.

s8
00:00:39.640 --> 00:00:47.640
Uh I work at Adobe at a I'm a principal scientist at a product that not many people know, Adobe Experience Manager, content management.

s9
00:00:47.640 --> 00:01:00.880
We run a lot of uh website properties for big brands, and my background is in in open source, uh contributing to to a lot of foundations and projects.

s10
00:01:01.440 --> 00:01:06.560
What are Agility Sites, and how are we building this thing?

s11
00:01:06.560 --> 00:01:16.920
So, we're looking for sites that are uh looking at the what intent the user browsing uh has.

s12
00:01:16.920 --> 00:01:18.840
What is the user doing?

s13
00:01:18.840 --> 00:01:21.800
What is the user trying to achieve?

s14
00:01:21.800 --> 00:01:36.960
And the end goal is to personalize these pages for the for the current user browsing, so that eventually this uh drives uh higher engagement or uh conversions, whatever the marketing

s15
00:01:36.960 --> 00:01:39.800
teams want to want to achieve.

s16
00:01:39.800 --> 00:01:50.760
And these pages are personalized in real time based on the on the user that is uh accessing the site, and what is the what is the user doing.

s17
00:01:50.800 --> 00:01:53.440
The stack we're using is AMH delivery.

s18
00:01:53.440 --> 00:02:03.960
So, this is the part of the product we we have, uh where all the content is on the edge and then we have back end service that powers this experience

s19
00:02:03.960 --> 00:02:17.000
with different LLM providers LLM services we use Cerebras for fast inference or we can use also we tried bedrock and and a bunch of others.

s20
00:02:17.000 --> 00:02:22.240
I'll be showing Cerebras today and you will see the reason why.

s21
00:02:22.240 --> 00:02:33.320
The the engine that is personalizing this this bits is using the rich content and blocks.

s22
00:02:33.320 --> 00:02:40.360
So different blocks on the site are customized depending on on what the user persona is.

s23
00:02:40.360 --> 00:02:43.680
We don't want the the whole site to be generated.

s24
00:02:43.680 --> 00:02:47.920
I mean if you talk to marketing people they they have a very strict brand guidelines.

s25
00:02:47.920 --> 00:02:52.680
You don't want to just come up with our have some hallucinations there.

s26
00:02:52.680 --> 00:03:01.600
So the what is personalized is different sections of the site and we use the whole site as a corpus.

s27
00:03:01.600 --> 00:03:03.920
We built a rack from the whole site.

s28
00:03:03.920 --> 00:03:09.720
So what is generated is grounded on on the existing site.

s29
00:03:09.720 --> 00:03:13.440
We tried to solve the problem where one size fits all.

s30
00:03:13.440 --> 00:03:16.280
We want hyper-personalized experiences.

s31
00:03:16.280 --> 00:03:22.680
Also we want to help our customers to do more automatic authoring.

s32
00:03:22.680 --> 00:03:34.640
So not having to create thousands of different variations of the site but use AI for this and then do these multiple layers of of personalization.

s33
00:03:35.160 --> 00:03:39.280
Some examples of what we're doing or I'll show in the demo.

s34
00:03:39.280 --> 00:03:51.920
It's instant persona adaptation, query generation when the user search for something on the site, the page with the results is customized for them and also uh, something like recommendations

s35
00:03:51.920 --> 00:04:02.920
where after you browse the site for a period of time, we we can create a page that recommends something based on on on what you are what we think you are looking for.

s36
00:04:02.920 --> 00:04:17.160
For marketers, uh, they can define this strategy on natural language, and they can use analytics to to drive the loop of personalization, and what is the end goal, and how this

s37
00:04:17.160 --> 00:04:23.160
goes back again to change to adapt the personalization to improve that uh, whole cycle.

s38
00:04:23.160 --> 00:04:29.280
Everybody's talking about loops in this conference, so that's that's one of the loops there.

s39
00:04:30.080 --> 00:04:32.000
How the architecture look like?

s40
00:04:32.000 --> 00:04:47.480
So, it's a dynamic front end with some blocks, what I mentioned before, and with uh, edge delivery services is basically you compose these blocks, and uh, they are updated on on real time through with the AI.

s41
00:04:47.480 --> 00:05:00.520
The back end, uh, we we do the um, evaluation of the models and the providers, and one thing we realized is is that this is very dependent on the site.

s42
00:05:00.520 --> 00:05:11.120
So, we have a bunch of prompts, and we look uh, we run it across a huge variety of uh, models and providers, and then we look at the accuracy, we look at the speed,

s43
00:05:11.120 --> 00:05:22.880
but this is going to depend highly on what type of site, like how big is the site, how I don't know, what different what different um, area is the site

s44
00:05:22.880 --> 00:05:26.280
targeting, what what type of commerce it is, and so on.

s45
00:05:26.280 --> 00:05:31.600
So, we we run this this um, evaluation continuously.

s46
00:05:31.600 --> 00:05:33.280
We use uh, Promptfoo.

s47
00:05:33.280 --> 00:05:35.760
Uh, anybody heard about Promptfoo?

s48
00:05:35.760 --> 00:05:37.600
Okay, some people.

s49
00:05:37.600 --> 00:05:52.600
So, Promptfoo allows you to evaluate models um, prompts against my multiple models, providers, and you can do local models and any of the a bunch of open AI compatible

s50
00:05:52.600 --> 00:05:57.480
uh providers and and uh a lot of them, basically.

s51
00:05:57.480 --> 00:05:59.440
We look for two things.

s52
00:05:59.440 --> 00:05:59.880
Why?

s53
00:05:59.880 --> 00:06:01.560
Accuracy.

s54
00:06:01.560 --> 00:06:12.600
That's that's typically what people look for, but also we want the speed because we don't want the site generation to take more than 1 or 2 seconds, right?

s55
00:06:12.600 --> 00:06:26.080
Because people uh this is already uh proven that people want the the faster the site, the more conversions it it generates or the the better the experience it is for the user.

s56
00:06:26.080 --> 00:06:29.919
Um yeah, what I mentioned is different sites may have different requirements.

s57
00:06:29.919 --> 00:06:37.360
Uh so, you may have to run this uh evaluation of models depending on the site.

s58
00:06:37.680 --> 00:06:46.600
This is a an ex uh we we secured this some of these queries, so we have a 15 prompts for this example site.

s59
00:06:46.600 --> 00:07:00.919
Um we have uh at the top you can see with Cerebras on the Gemma 4 model that was announced last last week, we can get an average latency of 1.1 seconds generating a page.

s60
00:07:00.919 --> 00:07:06.120
You you can compare that to the second one, which is 4.6 seconds, right?

s61
00:07:06.120 --> 00:07:09.040
So, the difference is huge.

s62
00:07:09.040 --> 00:07:13.680
And that's why uh we use Cerebras for for this use case.

s63
00:07:13.680 --> 00:07:23.240
And uh you can see that different providers, different models have different um different speeds.

s64
00:07:23.240 --> 00:07:29.360
And here is uh let me I can show you the whole thing here.

s65
00:07:29.360 --> 00:07:31.080
Not this one, this one, right?

s66
00:07:31.080 --> 00:07:35.080
So, at the at the bottom we have other other tasks.

s67
00:07:35.080 --> 00:07:39.640
Sometimes uh maybe some of them may be good.

s68
00:07:39.640 --> 00:07:42.880
They don't need to be perfect, but they're good enough if they're fast enough.

s69
00:07:42.880 --> 00:07:53.360
So, that's going to be the the kind of decisions that you need to make on whether the model is good enough for your use case or not.

s70
00:07:53.360 --> 00:07:56.760
Yeah, we're looking Yeah, average 1.1 seconds.

s71
00:07:56.760 --> 00:08:01.560
And then the the next ones are going from 4 seconds higher.

s72
00:08:01.560 --> 00:08:12.160
And you don't need a huge LLM to do this sort of work because you are generating text, you are deciding where to put blocks and how to organize the website,

s73
00:08:12.160 --> 00:08:16.480
you don't need a lots of information for that.

s74
00:08:16.720 --> 00:08:22.520
So, this browsing and the queries uh is are being recorded.

s75
00:08:22.520 --> 00:08:35.000
So, these are the metrics or the the the data we gather from the user, and this is fed into the LLM to personalize the site.

s76
00:08:35.000 --> 00:08:44.160
And then in this example, we personalize the hero card, the products, the blog feeds, and and the navigation based based on the persona.

s77
00:08:44.160 --> 00:08:52.120
Also, what are some of the buttons like our call to action navigation, you can also we can also personalize those.

s78
00:08:52.120 --> 00:08:57.920
We we create and I'll show you the a for you page, which is a recommendation.

s79
00:08:57.920 --> 00:09:04.040
And this is a interesting one because this you could pre-generate, right?

s80
00:09:04.040 --> 00:09:10.360
As the user browses your site, you gather these signals, and you could keep generating in this.

s81
00:09:10.360 --> 00:09:14.160
So, in this case, you wouldn't need so such a big speed.

s82
00:09:14.160 --> 00:09:27.040
But but that's interesting because it it would be if a user wanted to buy something, you could just say, "Okay, for you, I will recommend these three products or or something like that."

s83
00:09:27.040 --> 00:09:35.720
Um Yeah, and then they can see this recommendation, and if they go there, that that could be pre-fetched for them.

s84
00:09:35.720 --> 00:09:40.840
And obviously, you have to keep updating it as the user navigates around the site and and so on.

s85
00:09:40.840 --> 00:09:52.240
So that that's also something to consider on the cost cost implications of doing multiple generations, multiple LLM calls.

s86
00:09:54.000 --> 00:10:00.760
When when the user runs a query, dynamic personalized page is shown to them.

s87
00:10:00.760 --> 00:10:07.840
When the these queries are also grouped into personas or intent types.

s88
00:10:07.840 --> 00:10:11.840
So what is this guy what is this guy trying to do in the site?

s89
00:10:11.840 --> 00:10:13.680
Is trying to buy something?

s90
00:10:13.680 --> 00:10:15.920
Is trying to just get information?

s91
00:10:15.920 --> 00:10:24.960
So you can get marketers to decide what type of groups, how many groups you want to have, how you want to deal with with customers.

s92
00:10:24.960 --> 00:10:31.440
And the AI will choose the the blocks and the suggestions for for those groups of people.

s93
00:10:31.880 --> 00:10:42.480
Um And we can adopt yes, the the different blocks, the the the sequence of the blocks and media.

s94
00:10:42.480 --> 00:10:43.720
You could also do media.

s95
00:10:43.720 --> 00:10:52.080
One of the things we consider is there was some a model announced today or yesterday the the nano banana light.

s96
00:10:52.080 --> 00:10:58.080
So you could even generate images very fast on the fly.

s97
00:10:58.080 --> 00:11:08.920
Obviously not as fast as text, but that's also something that would be I don't I don't know if it's that something like marketing people would want to have generated images.

s98
00:11:08.920 --> 00:11:13.720
That depends on on the quality a lot if it's on brand.

s99
00:11:13.720 --> 00:11:26.160
And the site in this example we have a a product site and then we have guides, experiences, blocks and the whole response of the LLM is grounded there.

s100
00:11:26.160 --> 00:11:28.360
And there's comparisons.

s101
00:11:28.360 --> 00:11:36.240
We can do comparisons between products that are tailor and the product pages can be tailored for the for the user.

s102
00:11:36.840 --> 00:11:39.720
Okay, this is this is a bit of the stack.

s103
00:11:39.720 --> 00:11:45.920
Um not going to spend too much time here, but the browser you have some layers.

s104
00:11:45.920 --> 00:11:59.400
You have the browser where the signals get get uh from I got I got I got so I got from the from the user and then we have the back end.

s105
00:11:59.400 --> 00:12:01.120
Uh we can have the back end.

s106
00:12:01.120 --> 00:12:03.600
We run this some of these in in Google.

s107
00:12:03.600 --> 00:12:06.080
Some of these are in our Cloudflare.

s108
00:12:06.080 --> 00:12:15.960
So, the back end is basically just calling the LLM and doing some reasoning using the rack that is built on on the site to do the generation.

s109
00:12:16.440 --> 00:12:33.840
And you have obviously you have to have the vector database, the inference uh machinery and uh that obvious business manager is doing the serving the the at the edge is serving the the pages and the static content.

s110
00:12:33.840 --> 00:12:46.800
So, let me show you because I think this is uh so, we call this uh audience of one because the idea of in marketing they they always dream on being able to personalize

s111
00:12:46.800 --> 00:12:49.080
things for each individual.

s112
00:12:49.080 --> 00:12:51.160
So, we call it yeah audience of one.

s113
00:12:51.160 --> 00:12:53.440
So, I have this this site.

s114
00:12:53.440 --> 00:12:57.800
Uh this is a site that is absolutely generated uh example site.

s115
00:12:57.800 --> 00:13:00.960
It's a coffee uh machinery.

s116
00:13:00.960 --> 00:13:08.520
So, I can go and and read some stories and I can go and look at some products.

s117
00:13:08.640 --> 00:13:11.760
Let's go and look at this product.

s118
00:13:11.760 --> 00:13:15.640
I can spend some time here.

s119
00:13:16.560 --> 00:13:20.720
Uh let's go and click here.

s120
00:13:20.720 --> 00:13:33.040
Okay, so I'm I'm browsing around the site and I have this debugging tool thing uh which Uh let me go here, I think.

s121
00:13:37.760 --> 00:13:40.040
Let's see.

s122
00:13:40.040 --> 00:13:47.200
So, down there is the signals that the that the browsing is giving us.

s123
00:13:47.200 --> 00:13:51.200
So, I don't know if you can see it much because I cannot see it much.

s124
00:13:51.200 --> 00:13:56.800
The So, the user is bucketed into the exploring category.

s125
00:13:56.800 --> 00:14:04.560
We have the pages that have have visited, and then we have how much time is spending on each page.

s126
00:14:04.560 --> 00:14:09.720
All of this data is now available for the LLM.

s127
00:14:09.720 --> 00:14:20.960
So, if I go here, I already have a for you page that was generated for me and based on my browser.

s128
00:14:21.760 --> 00:14:33.760
And you will not notice that it's slightly different than everything else, but if I go here and I run a query like I want I'm looking for a coffee

s129
00:14:33.760 --> 00:14:42.520
machine to uh prepare coffee while camping.

s130
00:14:44.280 --> 00:14:48.280
The site is this was just generated for me.

s131
00:14:48.280 --> 00:14:52.280
And then you're going to see some things like the text is customized.

s132
00:14:52.280 --> 00:14:57.320
Camping shouldn't mean compromising on your uh whatever routine.

s133
00:14:57.320 --> 00:15:14.360
Uh the coffee tips for camping um machinery that are being recommended are coffee agile and um or the nano, which are good for for the for a camping trip, right?

s134
00:15:14.360 --> 00:15:17.360
So, you saw how fast this was.

s135
00:15:17.360 --> 00:15:25.040
I'm going to run it here something similar that I had here and I can run it on the debug mode here.

s136
00:15:25.040 --> 00:15:29.600
And you will see, let's make this bigger.

s137
00:15:30.200 --> 00:15:33.480
Total time 164 seconds to generate the page.

s138
00:15:33.480 --> 00:15:35.800
So, this includes a round trip to the LLM.

s139
00:15:35.800 --> 00:15:45.480
This is using Cerebras Gemma 4. So, the the Gemma model from Google running on Cerebras on their very fast chips.

s140
00:15:45.480 --> 00:15:50.800
Uh we get 2,300 tokens per second.

s141
00:15:50.800 --> 00:15:52.560
Which is not bad.

s142
00:15:52.560 --> 00:15:53.690
I would say.

s143
00:15:53.690 --> 00:15:54.400
[snorts]

s144
00:15:54.400 --> 00:15:58.160
And if I run it again, uh probably something like that.

s145
00:15:58.160 --> 00:16:00.400
Uh the LLM time is 1 second.

s146
00:16:00.400 --> 00:16:04.480
And again, 2,200 tokens per second.

s147
00:16:04.480 --> 00:16:09.440
This is something that we only dreamed about before.

s148
00:16:10.360 --> 00:16:16.280
On the on this site example site, we have some other options.

s149
00:16:16.280 --> 00:16:25.839
Uh so, because we we've been showing this to customers, so we have the the ability to change the different models, temper temperature, tokens, and so on.

s150
00:16:25.839 --> 00:16:33.280
And we can uh we can show uh and try the different models and see how they behave.

s151
00:16:33.280 --> 00:16:42.000
Besides the automatic test with Prompt Full, then we can uh manually come and and click things and see and see how that how that works.

s152
00:16:42.000 --> 00:16:48.440
And uh we also have uh OfOneLabs.

s153
00:16:48.440 --> 00:16:54.960
So, we have we build this tool that generates an agentic site for any site we want.

s154
00:16:54.960 --> 00:17:01.400
So, if somebody wants to have a demo for a customer, come here and enter the URL.

s155
00:17:01.400 --> 00:17:03.520
In less than an hour, you have an agentic site.

s156
00:17:03.520 --> 00:17:07.280
I did this last week with the AI engineering site.

s157
00:17:07.280 --> 00:17:14.360
And I got this site that is just a search box and a few things.

s158
00:17:15.040 --> 00:17:18.199
let me open it here, the full page.

s159
00:17:18.199 --> 00:17:18.760
Not this one.

s160
00:17:18.760 --> 00:17:20.040
Yeah, okay.

s161
00:17:20.040 --> 00:17:25.839
So, I could say Europe AI conferences.

s162
00:17:25.839 --> 00:17:28.760
So, these suggestions are also AI generated.

s163
00:17:28.760 --> 00:17:40.040
And I get a page that is more focused on It should be more focused on on the on this European conferences.

s164
00:17:40.040 --> 00:17:48.840
If I go back, did I go I can search for anything the same way I did with with the Arco.

s165
00:17:48.840 --> 00:17:55.800
So, I as a specific There was someone that was generating a good comparison side to side.

s166
00:17:55.800 --> 00:17:56.680
Let me see if this one.

s167
00:17:56.680 --> 00:17:57.560
Okay, here.

s168
00:17:57.560 --> 00:17:58.680
This one.

s169
00:17:58.680 --> 00:18:03.600
I went and this generated a page with a pretty good comparison.

s170
00:18:03.600 --> 00:18:12.320
If I'm looking at two conferences and I need to decide, if I figure out that the user wants to do that, this is great because that gives them a side-by-side comparison

s171
00:18:12.320 --> 00:18:14.600
on the fly.

s172
00:18:14.720 --> 00:18:32.920
Now, this this is I think this is cool already, but then we have I have this idea that probably the I'm a bunch of people are we are talking about is the web that is is the web the future still and so on.

s173
00:18:32.920 --> 00:18:34.160
Nobody knows.

s174
00:18:34.160 --> 00:18:41.960
But we can also do something with this with this audience of one, this generative sites.

s175
00:18:41.960 --> 00:18:53.320
So, imagine you have you have your personal assistant and you ask a query through in this case through Google and you say I want to buy I don't remember what the query said.

s176
00:18:53.320 --> 00:18:59.720
It was something like I want to buy a machine and I get this on my Google TV.

s177
00:18:59.720 --> 00:19:00.200
Right?

s178
00:19:00.200 --> 00:19:04.360
So, this is absolutely personalized to my query.

s179
00:19:04.360 --> 00:19:04.960
Okay?

s180
00:19:04.960 --> 00:19:07.480
No, go back.

s181
00:19:08.280 --> 00:19:10.200
This is absolutely personalized to my query.

s182
00:19:10.200 --> 00:19:11.720
So, I'm there in my living room.

s183
00:19:11.720 --> 00:19:24.040
I don't need a phone, I don't need a computer, I don't need anything, just my voice and something that will kind of show me something that is absolutely personalized

s184
00:19:24.040 --> 00:19:26.560
to to me.

s185
00:19:29.880 --> 00:19:31.760
Okay, so that one.

s186
00:19:31.760 --> 00:19:40.440
So, what I was trying to show and hopefully you remember from this session is that this is now possible.

s187
00:19:40.440 --> 00:19:42.640
It's only going to get better from here on.

s188
00:19:42.640 --> 00:19:45.880
It's only going to get cheaper, it's only going to get faster.

s189
00:19:45.880 --> 00:19:54.560
And you will uh be able to have uh huge personalization options for sites and for other things.

s190
00:19:54.560 --> 00:19:57.640
And you can do this with intent driven.

s191
00:19:57.640 --> 00:20:00.120
So, what is the what is my user trying to do?

s192
00:20:00.120 --> 00:20:02.800
What does my user want to buy?

s193
00:20:02.800 --> 00:20:04.560
These sort of questions.

s194
00:20:04.560 --> 00:20:08.800
And you can uh assemble a page just for them.

s195
00:20:08.800 --> 00:20:18.960
And you can also do this with uh multiple models and and eventually it's just going to be faster and faster, right?

s196
00:20:18.960 --> 00:20:20.440
So, that's it.

s197
00:20:20.440 --> 00:20:24.120
Um thank you for coming and I hope you you got the idea.

s198
00:20:24.120 --> 00:20:24.864
Thanks.

s199
00:20:24.864 --> 00:20:26.864
[applause]
