WEBVTT


00:00:13.099 --> 00:00:13.599
[Speaker 0]: Okay. Hello, everyone.

00:00:16.560 --> 00:00:17.060
I think this is the start of the Q&A session.

00:00:25.119 --> 00:00:25.599
So people can just ask me questions here.

00:00:28.259 --> 00:00:28.380
Or I think maybe these questions are going to

00:00:30.560 --> 00:00:30.980
be read by someone. Yes,

00:00:34.680 --> 00:00:35.060
thank you. Should I start doing that?

00:00:39.280 --> 00:00:39.400
I also know that there's questions in the

00:00:41.320 --> 00:00:41.480
either pad room, so I could start out

00:00:42.280 --> 00:00:42.780
answering those as well.

00:00:45.020 --> 00:00:45.300
[Speaker 1]: Right, sure. Whichever way you prefer.

00:00:46.860 --> 00:00:47.220
If you prefer to read the questions yourself,

00:00:48.940 --> 00:00:49.080
by all means, or if you would prefer me to

00:00:50.080 --> 00:00:50.280
read them to you, that also works.

00:00:50.580 --> 00:00:50.920
[Speaker 2]: Oh, I see.

00:00:51.600 --> 00:00:51.760
[Speaker 0]: Why don't you read them to me?

00:00:53.260 --> 00:00:53.760
I think it'll just be more interesting then.

00:00:56.820 --> 00:00:57.160
[Speaker 1]: Sure. OK, let's see. The first question is,

00:00:58.360 --> 00:00:58.860
what is your use case for embedding,

00:01:00.060 --> 00:01:00.560
mainly for searching?

00:01:06.180 --> 00:01:06.340
[Speaker 0]: Yeah, I mean, I think the use case really is

00:01:12.100 --> 00:01:12.320
searching. And I think it is very useful when

00:01:15.060 --> 00:01:15.320
you're searching for something in a vague

00:01:18.280 --> 00:01:18.780
way. Just to give you an example,

00:01:23.860 --> 00:01:24.360
I have a note system called EKG.

00:01:25.760 --> 00:01:26.260
I type all my notes on it.

00:01:28.620 --> 00:01:29.120
You can find it on GitHub and Melba.

00:01:34.140 --> 00:01:34.400
But I wrote something at some point a year

00:01:35.840 --> 00:01:36.020
ago or something. I wrote something that I

00:01:36.600 --> 00:01:36.980
just vaguely remembered.

00:01:38.800 --> 00:01:38.940
Oh, this was about a certain kind of

00:01:41.580 --> 00:01:41.760
communication. I wanted communicating to

00:01:43.280 --> 00:01:43.479
large audiences. There's some interesting tip

00:01:44.700 --> 00:01:45.060
that I wrote down that was really cool.

00:01:49.920 --> 00:01:50.080
And I was like, well, I need to find it.

00:01:52.260 --> 00:01:52.640
So I did an embedding search for something

00:01:55.479 --> 00:01:55.979
like, you know, tips for communicating.

00:01:58.979 --> 00:01:59.100
Like those words may not have been in what I

00:02:00.020 --> 00:02:00.520
was trying to find at all,

00:02:02.680 --> 00:02:03.180
But it was able to find it.

00:02:05.840 --> 00:02:06.260
And that is something that's very hard to do

00:02:07.200 --> 00:02:07.360
in other ways. Like, you know,

00:02:08.520 --> 00:02:08.720
if you had to do this with normal search,

00:02:09.199 --> 00:02:09.660
you have to do synonyms.

00:02:10.940 --> 00:02:11.200
And like maybe those synonyms wouldn't cover

00:02:11.960 --> 00:02:12.340
it. Like with embedding,

00:02:13.940 --> 00:02:14.160
you can basically get at like the vague

00:02:14.960 --> 00:02:15.460
sentiment. You're like,

00:02:17.320 --> 00:02:17.560
you know, you're, you know,

00:02:19.520 --> 00:02:19.700
you can really query on like what things are

00:02:21.760 --> 00:02:22.260
about as opposed to what words they have.

00:02:25.600 --> 00:02:26.100
Also, it's super good for similarity search.

00:02:27.720 --> 00:02:27.900
So you could say, look,

00:02:30.040 --> 00:02:30.240
I have a bunch of things that are encoded

00:02:31.400 --> 00:02:31.900
with embeddings that I want to show.

00:02:34.120 --> 00:02:34.280
For example, you can make an embedding for

00:02:35.220 --> 00:02:35.380
every buffer. You'd be like,

00:02:37.060 --> 00:02:37.200
well, show me buffers that are similar to

00:02:38.740 --> 00:02:38.980
this buffer. That doesn't sound super useful,

00:02:40.440 --> 00:02:40.940
but this is the kind of thing you could do.

00:02:45.300 --> 00:02:45.480
And so if you have a bunch of notes or

00:02:46.720 --> 00:02:46.920
something else that you want to search on,

00:02:48.240 --> 00:02:48.740
you'd be like, what's similar to this buffer?

00:02:51.500 --> 00:02:51.760
Or what notes are similar to each other?

00:02:53.040 --> 00:02:53.540
What buffers are similar to each other?

00:02:55.380 --> 00:02:55.880
It's super good for this sort of thing.

00:03:00.780 --> 00:03:01.280
And it's also good for this kind of retrieval

00:03:03.080 --> 00:03:03.520
augmented generation, where you sort of,

00:03:05.080 --> 00:03:05.280
you retrieve things and the purpose is not

00:03:06.600 --> 00:03:06.880
for you to see them, but then you pass that

00:03:12.040 --> 00:03:12.180
to the LLM. And then it's able to be a little

00:03:14.340 --> 00:03:14.800
bit more accurate because it has the actual

00:03:15.760 --> 00:03:16.260
text that you're trying to,

00:03:18.960 --> 00:03:19.180
that is relevant, and it can cite from and

00:03:20.720 --> 00:03:20.820
things like that. And then it could give you

00:03:22.260 --> 00:03:22.660
a much better answer that's kind of,

00:03:25.520 --> 00:03:25.680
you know, not just from its own little neural

00:03:26.320 --> 00:03:26.820
nets and memory.

00:03:31.920 --> 00:03:32.120
[Speaker 1]: Cool, thanks. Let's see,

00:03:35.740 --> 00:03:36.100
next question. What do you think about embed

00:03:40.160 --> 00:03:40.660
Emacs manual versus GPT's Emacs manual?

00:03:45.480 --> 00:03:45.660
[Speaker 0]: I'm not exactly sure what this question is

00:03:46.980 --> 00:03:47.480
trying to say. So I mean,

00:03:51.000 --> 00:03:51.140
if someone wrote that and wants to expand on

00:03:55.080 --> 00:03:55.320
it a little bit, but I think that maybe

00:03:58.420 --> 00:03:58.920
you're saying like you could embed,

00:04:00.280 --> 00:04:00.780
have embeddings for like various,

00:04:02.520 --> 00:04:02.720
like every paragraph or something of the

00:04:04.540 --> 00:04:04.680
Emacs manual. But it's also the case that

00:04:06.500 --> 00:04:07.000
like GPT is already for sure already read it,

00:04:09.760 --> 00:04:09.960
right? And so you could ask questions that

00:04:13.460 --> 00:04:13.780
are about Emacs and our ELISP or whatever

00:04:15.200 --> 00:04:15.700
part of the manual you want to find.

00:04:19.760 --> 00:04:20.240
And it will do a reasonably good job,

00:04:22.280 --> 00:04:22.780
especially the better models will do a

00:04:24.620 --> 00:04:24.940
reasonably good job of saying you something

00:04:26.040 --> 00:04:26.540
that is vaguely accurate.

00:04:29.440 --> 00:04:29.860
But if you do this retrieval augmented

00:04:30.580 --> 00:04:31.080
generation with embeddings,

00:04:32.640 --> 00:04:33.140
you can get something that is very accurate.

00:04:36.700 --> 00:04:36.960
At least I think. I haven't tried it,

00:04:38.760 --> 00:04:39.020
but this is a technique that works in other

00:04:43.040 --> 00:04:43.260
similar cases. So you can also imagine like,

00:04:44.320 --> 00:04:44.500
oh, this whole thing I said,

00:04:47.860 --> 00:04:48.120
like, oh, you can query for vague things and

00:04:49.140 --> 00:04:49.600
get parts of the manual,

00:04:52.680 --> 00:04:53.000
perhaps. I'm not exactly sure if that would

00:04:55.120 --> 00:04:55.520
be useful, but maybe. Usually when I'm

00:04:57.040 --> 00:04:57.180
looking things up in the Emacs manual or

00:04:58.320 --> 00:04:58.780
Elist manual, I have something extremely

00:05:00.020 --> 00:05:00.300
specific and I kind of know where to look.

00:05:02.960 --> 00:05:03.080
But having other ways to get at this

00:05:04.000 --> 00:05:04.500
information is always good.

00:05:10.240 --> 00:05:10.740
[Speaker 1]: Right. Looks like they added a clarification

00:05:12.280 --> 00:05:12.720
if you would like to read that yourself,

00:05:14.180 --> 00:05:14.680
or would you like me to read it for you?

00:05:17.640 --> 00:05:18.140
[Speaker 0]: Yeah. Yes, OK. It says,

00:05:20.460 --> 00:05:20.740
I've never tried. Yeah,

00:05:21.500 --> 00:05:21.820
the question is like OK,

00:05:23.100 --> 00:05:23.240
there is a difference between the kind of

00:05:23.860 --> 00:05:24.360
thing as I just described.

00:05:26.200 --> 00:05:26.600
I have not tried the difference with the EMAX

00:05:31.560 --> 00:05:31.980
manual itself. It'd be interesting to see

00:05:33.700 --> 00:05:33.960
what this is, but I would expect like these

00:05:35.140 --> 00:05:35.600
techniques, the retrieval augmented

00:05:38.840 --> 00:05:39.340
generation is generally pretty good.

00:05:41.240 --> 00:05:41.740
And I suspect it would,

00:05:43.580 --> 00:05:43.780
I would bet money on the fact that it's gonna

00:05:45.820 --> 00:05:46.240
give you, you know, better results than just,

00:05:48.160 --> 00:05:48.360
you know, doing a free form query without any

00:05:49.440 --> 00:05:49.940
retrieval augmented generation.

00:05:54.240 --> 00:05:54.640
[Speaker 1]: Cool. Let's see. Next question.

00:05:56.380 --> 00:05:56.880
When deferring commit messages to an LLM,

00:05:59.700 --> 00:05:59.920
what, if anything, do you find you might have

00:06:02.940 --> 00:06:03.440
[Speaker 0]: lost? Yeah, it's a good question.

00:06:06.060 --> 00:06:06.560
When deferring anything to a computer,

00:06:08.860 --> 00:06:09.360
like, you know, I used to have to remember

00:06:11.200 --> 00:06:11.700
how to get places, and now,

00:06:14.540 --> 00:06:15.040
you know, on the few occasions which I drive,

00:06:16.560 --> 00:06:16.720
like, It could just tell me how to get

00:06:21.960 --> 00:06:22.280
places. So similar things could occur here

00:06:24.960 --> 00:06:25.460
where like, okay, I'm just leaving the LLM.

00:06:27.380 --> 00:06:27.680
And so I'm kind of missing out on some

00:06:30.040 --> 00:06:30.220
opportunity to think coherently about a

00:06:32.440 --> 00:06:32.680
particular commit. Particular commits are

00:06:36.140 --> 00:06:36.540
kind of low level. I don't think it's usually

00:06:39.340 --> 00:06:39.840
relatively obvious and what they're doing.

00:06:42.600 --> 00:06:42.800
And in this case, I think there's not much

00:06:44.220 --> 00:06:44.540
loss. But for sure, in other cases,

00:06:46.400 --> 00:06:46.900
if you're starting to get into situations

00:06:48.640 --> 00:06:48.800
where it's writing your emails and all this

00:06:52.920 --> 00:06:53.300
stuff. First of all, it's in 1 sense,

00:06:55.580 --> 00:06:56.040
I'm not sure you might be losing something by

00:06:57.520 --> 00:06:57.780
delegating things. On the other hand,

00:06:59.120 --> 00:06:59.280
you know, when you're interacting with these

00:07:01.280 --> 00:07:01.560
LLMs, you have to be extremely specific about

00:07:03.120 --> 00:07:03.240
what you want, or else it's just not going to

00:07:07.540 --> 00:07:07.680
do a good job. And that might actually be a

00:07:09.440 --> 00:07:09.860
good thing. So the question might be that

00:07:11.820 --> 00:07:12.240
maybe you might gain things by using an LLM

00:07:13.860 --> 00:07:14.060
to do your work. It might not actually even

00:07:15.060 --> 00:07:15.400
save you that much time,

00:07:18.480 --> 00:07:18.640
at least initially, because you have to kind

00:07:20.460 --> 00:07:20.660
of practice again super specific about what

00:07:22.740 --> 00:07:22.900
you want to get out of the output it's going

00:07:26.940 --> 00:07:26.980
to give you so like oh I'm you know maybe you

00:07:29.600 --> 00:07:29.820
know you're on the emacs devel mailing list

00:07:31.780 --> 00:07:31.980
and you're like okay write this email about

00:07:34.000 --> 00:07:34.140
this about this And here's what I want to

00:07:35.370 --> 00:07:35.460
say. And here's the kind of tone I want to

00:07:36.020 --> 00:07:36.420
use. And here's the like,

00:07:37.660 --> 00:07:38.160
oh, you might want to specify like everything

00:07:39.620 --> 00:07:40.120
that you kind of want to get into this.

00:07:42.180 --> 00:07:42.680
Usually it's easier just to write the email.

00:07:45.600 --> 00:07:46.100
But I think that practice of kind of

00:07:48.080 --> 00:07:48.420
understanding what you want is not something

00:07:52.680 --> 00:07:53.180
you normally do. And I think it's going to be

00:07:56.040 --> 00:07:56.480
an interesting exercise that will help people

00:07:57.280 --> 00:07:57.540
understand. That said,

00:07:58.860 --> 00:07:59.020
I haven't done that much of that,

00:07:59.900 --> 00:08:00.040
so I can't say, oh, yeah,

00:08:01.080 --> 00:08:01.440
I've done this and it works for me.

00:08:03.000 --> 00:08:03.120
Maybe. I think it's an interesting thing to

00:08:03.120 --> 00:08:03.620
explore.

00:08:07.720 --> 00:08:08.220
[Speaker 1]: Sure. Thanks. Let's see.

00:08:10.840 --> 00:08:11.140
Let's see. Can you share your font settings

00:08:13.440 --> 00:08:13.740
in your Emacs config? Those are some nice

00:08:14.200 --> 00:08:14.700
fonts for reading.

00:08:18.900 --> 00:08:19.200
[Speaker 0]: Yeah, I think I was using Menlo at the time.

00:08:20.840 --> 00:08:20.980
Unfortunately, I don't save those kinds of

00:08:21.940 --> 00:08:22.200
things, like a history of this.

00:08:24.000 --> 00:08:24.500
I've kind of switched now to,

00:08:27.340 --> 00:08:27.540
what was that? I think I wrote it down in

00:08:29.440 --> 00:08:29.940
the, I switched to MunaSpace,

00:08:31.920 --> 00:08:32.420
which just came out like a week or 2 ago,

00:08:33.340 --> 00:08:33.840
and is also pretty cool.

00:08:35.440 --> 00:08:35.940
So I think it's Menlo.

00:08:37.380 --> 00:08:37.760
The internal question,

00:08:38.400 --> 00:08:38.900
what font are you using?

00:08:42.020 --> 00:08:42.340
[Speaker 1]: Indeed, yeah. It looks like someone guessed

00:08:43.780 --> 00:08:44.280
as well that it might be Menlo.

00:08:47.680 --> 00:08:48.040
OK, Cool. Yeah, next question.

00:08:48.900 --> 00:08:49.400
In terms of standardization,

00:08:53.260 --> 00:08:53.520
do you see a need for the medium to large

00:08:55.840 --> 00:08:56.160
scale effort needed? And then they also

00:08:56.960 --> 00:08:57.460
elaborate about it.

00:09:03.600 --> 00:09:04.100
[Speaker 0]: Yeah, I mean, I do think,

00:09:06.040 --> 00:09:06.300
I don't know if it's large scale,

00:09:08.000 --> 00:09:08.500
but at least it's probably medium scale.

00:09:10.320 --> 00:09:10.520
There's a lot of things that are missing that

00:09:12.260 --> 00:09:12.400
we don't have right now in emacs when you're

00:09:13.660 --> 00:09:14.160
dealing with LLMs. 1 is,

00:09:18.240 --> 00:09:18.420
a prompting system. And by that,

00:09:21.820 --> 00:09:22.020
I mean, you know, prompts are just like big

00:09:24.520 --> 00:09:24.720
blocks of text, but there's also senses that

00:09:28.260 --> 00:09:28.420
like prompts need to be composable and you

00:09:30.480 --> 00:09:30.660
need to be able to iterate on parts of the

00:09:36.600 --> 00:09:37.100
prompt. And so it's also customizable.

00:09:38.940 --> 00:09:39.060
Users might want to customize it.

00:09:41.260 --> 00:09:41.360
On the other hand, it's not super easy to

00:09:43.820 --> 00:09:44.320
write the prompt. So you want really good

00:09:47.900 --> 00:09:48.040
defaults. So the whole prompt system is kind

00:09:51.360 --> 00:09:51.460
of complicated. That needs to be kind of

00:09:52.580 --> 00:09:52.760
standardized, because I don't think there's

00:09:54.380 --> 00:09:54.720
any tools for doing something like that right

00:09:58.380 --> 00:09:58.880
now. I personally use my system,

00:10:00.220 --> 00:10:00.600
my note system for EKG.

00:10:01.720 --> 00:10:01.920
I don't think that's appropriate for

00:10:02.800 --> 00:10:03.120
everyone, but it does,

00:10:04.480 --> 00:10:04.640
I did write it to have some of these

00:10:06.540 --> 00:10:06.760
capabilities of composability that I think

00:10:08.360 --> 00:10:08.860
are useful for a prompt generation.

00:10:11.940 --> 00:10:12.280
It'd be nice to have a system like that,

00:10:15.660 --> 00:10:16.160
but for general use. I don't,

00:10:17.840 --> 00:10:18.060
this is something I've been meaning to think

00:10:18.840 --> 00:10:19.000
about, like how to do it,

00:10:19.760 --> 00:10:19.920
but like this, you know,

00:10:21.260 --> 00:10:21.660
if someone's interested in getting this area,

00:10:26.120 --> 00:10:26.420
like, I would love to chat about that or,

00:10:27.600 --> 00:10:27.980
you know, I think there's a lot of

00:10:31.020 --> 00:10:31.260
interesting ideas that we could have to have

00:10:34.080 --> 00:10:34.540
a system that allows us to make progress

00:10:38.860 --> 00:10:39.360
here. And also, I think there's more to

00:10:40.520 --> 00:10:40.900
standardization to be done.

00:10:42.820 --> 00:10:43.140
1 thing I'd also like to see that we haven't

00:10:47.020 --> 00:10:47.220
done yet is a system for standardizing on

00:10:48.060 --> 00:10:48.560
getting structured output.

00:10:49.640 --> 00:10:50.140
This is gonna be super useful.

00:10:52.280 --> 00:10:52.780
I have this for open AIs API,

00:10:53.560 --> 00:10:54.060
cause they support it.

00:10:55.940 --> 00:10:56.040
And it's really nice, cause then you can

00:10:57.440 --> 00:10:57.660
write elist functions that like,

00:10:59.380 --> 00:10:59.880
okay, I'm going to call the LLM.

00:11:00.760 --> 00:11:01.000
I'm gonna get structured output.

00:11:02.040 --> 00:11:02.160
I know what that structure is going to be.

00:11:03.480 --> 00:11:03.680
It's not going to be just a big block of

00:11:05.660 --> 00:11:06.040
text. I could turn it into a,

00:11:07.000 --> 00:11:07.480
you know, a P list or something.

00:11:09.280 --> 00:11:09.480
And then I could get the values out of that P

00:11:11.880 --> 00:11:12.260
list. And I know that way I could do,

00:11:14.220 --> 00:11:14.720
I could write actual apps that are,

00:11:18.300 --> 00:11:18.720
you know, very, very sort of,

00:11:20.200 --> 00:11:20.680
you know, useful for very specific purposes

00:11:21.900 --> 00:11:22.400
and not just for text generation.

00:11:24.000 --> 00:11:24.320
And I think that's 1 of the most important

00:11:27.100 --> 00:11:27.540
things we want to do. And I have some ideas

00:11:28.840 --> 00:11:29.160
about how to do it. I just haven't pursued

00:11:31.640 --> 00:11:32.040
those yet. But if other people have ideas,

00:11:34.340 --> 00:11:34.540
I think this would be really interesting to

00:11:35.520 --> 00:11:36.020
add to the LLM package.

00:11:37.260 --> 00:11:37.760
So contact me there.

00:11:42.100 --> 00:11:42.600
[Speaker 1]: Awesome. Quick note before we continue.

00:11:44.440 --> 00:11:44.540
So I'm not sure how long we're going to be on

00:11:46.040 --> 00:11:46.280
stream for, because this is the last talk

00:11:48.640 --> 00:11:49.120
before the break. If we are on the stream

00:11:49.840 --> 00:11:50.200
long-term, then great.

00:11:51.820 --> 00:11:52.300
But if not, folks are welcome to continue

00:11:53.320 --> 00:11:53.680
writing questions on the pad.

00:11:55.140 --> 00:11:55.280
And hopefully, Andrew will get to them at

00:11:58.020 --> 00:11:58.280
some point. Or if Andrew maybe has some extra

00:11:59.960 --> 00:12:00.140
time available and wants to stay on

00:12:01.640 --> 00:12:01.920
BigBlueButton here, then folks are also

00:12:03.940 --> 00:12:04.340
welcome to join here and chat with Andrew

00:12:08.940 --> 00:12:09.240
directly as well. Okay,

00:12:10.740 --> 00:12:10.900
awesome. So yeah, the next question is,

00:12:12.040 --> 00:12:12.400
what are your thoughts on the carbon

00:12:14.060 --> 00:12:14.560
footprint of LLM usage?

00:12:17.200 --> 00:12:17.700
[Speaker 0]: Yeah, it's a really interesting question.

00:12:23.180 --> 00:12:23.360
I don't have any particular knowledge or

00:12:25.440 --> 00:12:25.580
opinions about that. It's something I think

00:12:26.980 --> 00:12:27.180
we should all be educating ourselves more

00:12:32.240 --> 00:12:32.380
about. It is really, I mean,

00:12:33.040 --> 00:12:33.220
there's 2 parts of this,

00:12:35.380 --> 00:12:35.500
right? They take a, there's a huge amount of

00:12:37.160 --> 00:12:37.360
carbon footprint involved in training these

00:12:38.720 --> 00:12:39.220
things. Then running them is relatively

00:12:42.540 --> 00:12:42.880
lightweight. So the question is not

00:12:44.440 --> 00:12:44.920
necessarily like once it's trained,

00:12:46.480 --> 00:12:46.640
like I don't feel like it's a big deal to

00:12:48.280 --> 00:12:48.560
keep using it, but like training these things

00:12:50.680 --> 00:12:51.180
is kind of like the big carbon cost of it.

00:12:53.680 --> 00:12:54.160
But like right now, the way everything's

00:12:56.040 --> 00:12:56.260
going, like every, you know,

00:12:59.060 --> 00:12:59.560
all, you know, the top 5 or 6 tech companies

00:13:00.900 --> 00:13:01.400
are all training their LLMs,

00:13:03.580 --> 00:13:03.740
and this is all costing a giant amount of

00:13:06.820 --> 00:13:07.060
carbon probably. On the other hand these same

00:13:08.560 --> 00:13:08.680
companies are pretty good about using the

00:13:10.260 --> 00:13:10.440
least amount of carbon necessary you know

00:13:12.340 --> 00:13:12.740
they have their own their tricks for doing

00:13:13.260 --> 00:13:13.760
things very efficiently.

00:13:22.100 --> 00:13:22.360
[Speaker 1]: Cool next question, LLMs are slow and

00:13:24.000 --> 00:13:24.340
responding. Do you think Emacs should provide

00:13:26.680 --> 00:13:27.180
more async primitives to keep it responsive?

00:13:29.380 --> 00:13:29.880
Like the URL retrieve is quite bad at

00:13:31.720 --> 00:13:31.760
building API clients with it.

00:13:31.920 --> 00:13:32.420
Building API clients with it?

00:13:36.400 --> 00:13:36.900
[Speaker 0]: Yeah. Well, OK, so first of all,

00:13:40.240 --> 00:13:40.740
people should be using the LLM client.

00:13:48.740 --> 00:13:48.900
And So right now, 1 thing I should have

00:13:50.220 --> 00:13:50.440
mentioned at the top is that there are new

00:13:52.500 --> 00:13:52.640
packages that I recorded this talk that you

00:13:54.480 --> 00:13:54.920
just saw several months ago.

00:13:57.780 --> 00:13:58.180
And so like Elama, there's this package Elama

00:13:59.700 --> 00:14:00.080
that came out that is using the LM package.

00:14:02.440 --> 00:14:02.680
And so for example, it doesn't need to worry

00:14:05.140 --> 00:14:05.580
about this sort of thing because it just uses

00:14:07.560 --> 00:14:07.920
LLM and package and the LLM package worries

00:14:11.680 --> 00:14:11.820
about this. And while I'm on the subject of

00:14:12.540 --> 00:14:12.720
things I forgot to mention,

00:14:15.140 --> 00:14:15.340
I also should just mention very quickly that

00:14:17.020 --> 00:14:17.520
there is now an open source model,

00:14:21.680 --> 00:14:21.960
Mistral. And so that's kind of this new thing

00:14:23.860 --> 00:14:24.240
on the scene that happened after I recorded

00:14:26.240 --> 00:14:26.420
my talk. And I think it's super important to

00:14:28.660 --> 00:14:28.820
the community and important that we have the

00:14:30.620 --> 00:14:31.120
opportunity to use that if we want to.

00:14:33.160 --> 00:14:33.660
Okay, but to answer the actual question,

00:14:37.660 --> 00:14:38.100
there has been some talk about the problems

00:14:40.680 --> 00:14:40.840
with URL retrieve in the URL package in

00:14:42.200 --> 00:14:42.700
general in EmacsDevEl.

00:14:46.760 --> 00:14:47.080
It's not great. I would like to have better

00:14:50.900 --> 00:14:51.040
primitives. And I've asked the author of

00:14:54.060 --> 00:14:54.560
Please PLZ to kind of provide some necessary

00:14:56.120 --> 00:14:56.620
callbacks. I think that's a great library.

00:15:00.280 --> 00:15:00.360
And I'd like to see that kind of like,

00:15:01.320 --> 00:15:01.680
It's nice that we have options,

00:15:03.340 --> 00:15:03.520
and that is an option that uses curl on the

00:15:05.140 --> 00:15:05.640
back end, and that has some benefits.

00:15:09.060 --> 00:15:09.280
So there's this big debate about whether we

00:15:10.600 --> 00:15:11.100
should have primitives or just use curl.

00:15:13.340 --> 00:15:13.420
I'm not exactly sure what the right call is,

00:15:15.320 --> 00:15:15.820
but there has been discussions about this.

00:15:19.540 --> 00:15:20.040
[Speaker 1]: Excellent. And someone commented that GPTEL

00:15:21.820 --> 00:15:22.200
is async and apparently very good at tracking

00:15:22.300 --> 00:15:22.800
the point.

00:15:26.680 --> 00:15:27.180
[Speaker 0]: Yes, yes, GPTEL has similar functionalities

00:15:29.800 --> 00:15:30.040
to LLM, although I believe it's going to move

00:15:33.040 --> 00:15:33.540
to LLM itself sometime soon.

00:15:39.480 --> 00:15:39.860
[Speaker 1]: Next question, speaking of which,

00:15:42.440 --> 00:15:42.560
anyone trained or fine-tuned or prompted a

00:15:44.680 --> 00:15:44.760
model with their org data yet and applied it

00:15:46.560 --> 00:15:47.040
to interesting use cases like planning,

00:15:47.920 --> 00:15:48.340
scheduling, et cetera,

00:15:49.320 --> 00:15:49.820
and maybe care to comment?

00:15:54.620 --> 00:15:55.120
[Speaker 0]: I don't know anyone who is doing that.

00:15:55.860 --> 00:15:56.360
I think it is interesting.

00:15:57.800 --> 00:15:58.300
Like this is what I kind of mentioned at the

00:16:01.060 --> 00:16:01.300
very end of the talk. There is a lot of stuff

00:16:02.440 --> 00:16:02.540
there like you could you know if you

00:16:04.760 --> 00:16:04.920
especially mean an LLM can kind of work as

00:16:07.940 --> 00:16:08.160
sort of like a secretary kind of person that

00:16:12.180 --> 00:16:12.440
could help you prioritize Still it's a

00:16:14.760 --> 00:16:14.920
slightly unclear how what the best way to use

00:16:16.480 --> 00:16:16.720
it is So I think there's more of a question

00:16:18.340 --> 00:16:18.480
for the community about like what people have

00:16:21.140 --> 00:16:21.320
been trying. I see someone has mentioned that

00:16:23.400 --> 00:16:23.900
they are using it for weekly review.

00:16:26.940 --> 00:16:27.180
And it's kind of nice to like,

00:16:29.060 --> 00:16:29.380
maybe you could read your agenda or maybe

00:16:30.480 --> 00:16:30.780
this for like weekly review.

00:16:32.040 --> 00:16:32.240
It could like read all the stuff you've done

00:16:33.340 --> 00:16:33.480
and ask you questions about it.

00:16:35.020 --> 00:16:35.280
And like, what should happen next?

00:16:36.520 --> 00:16:36.780
Or like, is this going to cause a problem?

00:16:39.060 --> 00:16:39.280
Like, I can, I can understand if that could

00:16:40.860 --> 00:16:41.180
happen? That's like, that's kind of nice.

00:16:43.660 --> 00:16:44.160
And this kind of people have had good success

00:16:48.540 --> 00:16:48.760
out of using these LLMs to bounce ideas off

00:16:49.920 --> 00:16:50.420
of are, you know, for,

00:16:52.680 --> 00:16:52.800
you know, I've seen people say that like they

00:16:55.360 --> 00:16:55.600
want, they use it for reading and they kind

00:16:58.520 --> 00:16:58.740
of dialogue with the LM to kind of like do

00:16:59.500 --> 00:17:00.000
sort of active reading.

00:17:02.500 --> 00:17:02.860
So you can imagine doing something similar

00:17:04.400 --> 00:17:04.740
with your tasks where it's sort of you're

00:17:06.560 --> 00:17:06.760
engaged in dialogue about like planning your

00:17:08.880 --> 00:17:09.000
tax with some with a alum that could kind of

00:17:10.800 --> 00:17:11.180
understand what those are and ask you some

00:17:13.780 --> 00:17:13.940
questions I think it. You know,

00:17:16.839 --> 00:17:17.040
if it'd be nice. So, the problem is like

00:17:18.480 --> 00:17:18.980
there's no great way to share all this stuff.

00:17:20.720 --> 00:17:21.220
I guess if you have something like this,

00:17:23.300 --> 00:17:23.720
put it on Reddit. If you don't have Reddit,

00:17:24.599 --> 00:17:24.880
I don't know what to do.

00:17:26.000 --> 00:17:26.500
I would say put it somewhere.

00:17:28.840 --> 00:17:29.020
At the very least, I could maybe open up like

00:17:31.320 --> 00:17:31.820
an LLM discussion session on the LLM package

00:17:34.000 --> 00:17:34.500
GitHub, But not everyone likes to use GitHub.

00:17:36.100 --> 00:17:36.180
I don't know. It'd be nice if there's a

00:17:38.940 --> 00:17:39.060
mailing list or IRC chat for this sort of

00:17:40.840 --> 00:17:41.340
thing. But there isn't at the moment.

00:17:46.560 --> 00:17:46.720
[Speaker 1]: All right. Let's see. I think that's the end

00:17:48.080 --> 00:17:48.580
of the questions on the pad so far.

00:17:51.020 --> 00:17:51.180
There was also some discussion or some

00:17:52.260 --> 00:17:52.760
chatter, I believe, on IRC.

00:17:54.560 --> 00:17:54.820
I'm not sure. Andrew, are you on IRC right

00:18:00.060 --> 00:18:00.260
[Speaker 0]: I am, but I don't think I'm on any place that

00:18:01.400 --> 00:18:01.640
has the chatter. So if there's chatter,

00:18:02.440 --> 00:18:02.940
then I'm not seeing it.

00:18:04.600 --> 00:18:05.100
[Speaker 1]: now? Okay. Yeah, it was in the emacsconf-dev

00:18:06.760 --> 00:18:07.260
channel.

00:18:09.600 --> 00:18:10.100
[Speaker 0]: Okay, let me see if I can.

00:18:25.600 --> 00:18:25.840
Oh, yes. I mean, I could see the channel,

00:18:27.520 --> 00:18:27.840
but I missed whatever came before.

00:18:29.340 --> 00:18:29.480
So if there's anything you want to kind of

00:18:30.840 --> 00:18:31.340
call out, I can try to answer it here.

00:18:35.320 --> 00:18:35.640
[Speaker 1]: OK, cool. I believe at least 2 other folks

00:18:37.500 --> 00:18:38.000
who are participating in the discussion there

00:18:40.120 --> 00:18:40.620
who have also joined here on BigBlueButton,

00:18:42.440 --> 00:18:42.940
Codin Quark and AeonTurn92.

00:18:47.000 --> 00:18:47.480
So you folks, if Andrew is still available

00:18:50.460 --> 00:18:50.640
and has time, you're welcome to chat here and

00:18:53.000 --> 00:18:53.320
ask questions or discuss here as well.

00:18:55.580 --> 00:18:55.840
[Speaker 0]: 1 Thank you. Thank you for your help,

00:18:57.740 --> 00:18:58.080
and thank you for reading all the questions.

00:18:59.700 --> 00:18:59.820
[Speaker 1]: AUDIENCE 2 Cheers, and thanks to you for a

00:19:00.540 --> 00:19:01.040
great talk and the discussion.

00:19:01.880 --> 00:19:02.380
[Speaker 0]: AUDIENCE AUDIENCE 1 Thank you.

00:19:03.140 --> 00:19:03.640
[Speaker 1]: AUDIENCE 2 Cheers.

00:19:07.900 --> 00:19:08.040
[Speaker 0]: So I'll just, I will wait here and see if

00:19:08.320 --> 00:19:08.760
there's any questions.

00:19:10.760 --> 00:19:11.260
If not, I will log off after a few minutes.

00:19:15.900 --> 00:19:16.080
[Speaker 2]: Well, I guess since we were mentioned that

00:19:18.480 --> 00:19:18.980
there was a small chat about local alarms.

00:19:22.640 --> 00:19:23.000
Because chat dpt is nice,

00:19:25.600 --> 00:19:26.100
no, but privacy concerns,

00:19:27.380 --> 00:19:27.880
and it's not free and stuff.

00:19:31.000 --> 00:19:31.500
Which, so The question is,

00:19:36.960 --> 00:19:37.460
what is the promise for local models?

00:19:39.660 --> 00:19:40.160
[Speaker 0]: Yeah, so local is definitely...

00:19:41.380 --> 00:19:41.880
[Speaker 2]: Or at least open source.

00:19:45.680 --> 00:19:46.120
[Speaker 0]: Yeah, so there is a local open source model,

00:19:47.960 --> 00:19:48.460
Misral, which you could run.

00:19:51.340 --> 00:19:51.840
The LLM package allows you to use,

00:19:56.120 --> 00:19:56.260
I think there's 3 kind of local things you

00:19:58.100 --> 00:19:58.440
could use. Like many of these things,

00:20:00.220 --> 00:20:00.480
there's like many kind of ways to do the same

00:20:03.960 --> 00:20:04.460
sort of thing. So LLM is supporting OLAMMA

00:20:10.240 --> 00:20:10.520
and LLAMMA-CPP. And let's see,

00:20:12.240 --> 00:20:12.740
1 other. Which 1 is it?

00:20:18.420 --> 00:20:18.700
And maybe that's it. Maybe the,

00:20:21.820 --> 00:20:21.940
oh, GPT for all. So each 1 of these kind of

00:20:23.100 --> 00:20:23.600
has slightly different functionality.

00:20:26.820 --> 00:20:27.180
For example, I think GPT for all doesn't

00:20:31.780 --> 00:20:32.280
support embeddings. And I hear that Olama's

00:20:33.740 --> 00:20:34.240
embeddings are kind of currently broken.

00:20:35.920 --> 00:20:36.420
But basically they should support everything.

00:20:39.100 --> 00:20:39.600
And the open source models are,

00:20:43.180 --> 00:20:43.380
so the local models are reasonably good.

00:20:44.760 --> 00:20:44.900
Like I don't think you'd use them and be

00:20:46.200 --> 00:20:46.639
like, what is this horrible nonsense?

00:20:50.200 --> 00:20:50.380
Like it's, it gives you relatively good

00:20:51.820 --> 00:20:52.120
results. Like it's not gonna be at the level

00:20:56.060 --> 00:20:56.320
of like GPT 3.5 or 4, but it's not far away

00:20:57.720 --> 00:20:58.220
from GPT 3.5, I think.

00:21:02.380 --> 00:21:02.880
[Speaker 2]: I'm just saying that Olam has like a presets

00:21:05.940 --> 00:21:06.300
for connecting the actual working servers for

00:21:06.300 --> 00:21:06.800
Olama?

00:21:08.560 --> 00:21:08.760
[Speaker 0]: So, I'll try. Yeah, so you could,

00:21:09.860 --> 00:21:10.040
what you could do is you could like for

00:21:11.940 --> 00:21:12.100
example you could download Olama which is

00:21:15.780 --> 00:21:15.940
just a way of setting up local models and

00:21:17.320 --> 00:21:17.780
running local models on your machine.

00:21:18.580 --> 00:21:18.820
So typically what it does,

00:21:19.720 --> 00:21:20.020
you like download a program,

00:21:23.720 --> 00:21:23.800
let's say Olama. Then Olama will have the

00:21:24.940 --> 00:21:25.440
ability to download models.

00:21:27.240 --> 00:21:27.360
And so you could choose from just a host of

00:21:29.280 --> 00:21:29.440
different models. Each 1 of these things has

00:21:30.200 --> 00:21:30.440
a bunch of different models.

00:21:31.920 --> 00:21:32.080
So it downloads all these things to your

00:21:36.600 --> 00:21:37.020
machine. But I would say that the key problem

00:21:40.200 --> 00:21:40.580
here is that it requires a fairly beefy

00:21:40.580 --> 00:21:41.080
machine.

00:21:42.600 --> 00:21:43.100
[Speaker 2]: So. Yeah, yeah, of course.

00:21:45.060 --> 00:21:45.300
Why I was asking, because you briefly

00:21:46.440 --> 00:21:46.880
mentioned that there are some Israeli

00:21:52.300 --> 00:21:52.440
servers. I understand that they run it like a

00:21:53.680 --> 00:21:54.000
government or stuff like that?

00:21:55.440 --> 00:21:55.940
No, no, sorry. People want everyone?

00:21:59.340 --> 00:21:59.620
[Speaker 0]: I don't, I mean, maybe you've said something

00:22:00.620 --> 00:22:01.020
that sounded like Israeli servers.

00:22:01.620 --> 00:22:02.120
[Speaker 2]: Okay, okay.

00:22:04.920 --> 00:22:05.080
[Speaker 0]: I think- There's no government LLMs as far as

00:22:06.820 --> 00:22:07.280
I know. Although, I'm sure the governments

00:22:08.200 --> 00:22:08.700
are working on their own LLMs,

00:22:10.980 --> 00:22:11.480
et cetera. But yeah, basically your choices

00:22:15.060 --> 00:22:15.220
are spend a, I mean, if you use open AI or

00:22:16.080 --> 00:22:16.580
something or anything else,

00:22:17.960 --> 00:22:18.460
you're really not spending any money.

00:22:20.560 --> 00:22:20.840
Like I've never been able to spend any money

00:22:23.680 --> 00:22:24.020
on OpenAI. Like unless you're doing something

00:22:25.840 --> 00:22:26.280
very intensive and really are using it to,

00:22:28.000 --> 00:22:28.180
you know, if you're using it for your

00:22:29.620 --> 00:22:29.780
personal use, it's just hard to spend any

00:22:31.720 --> 00:22:31.960
money. But on the other hand,

00:22:32.780 --> 00:22:32.860
it's not free. So you can,

00:22:33.040 --> 00:22:33.540
you know,

00:22:36.300 --> 00:22:36.680
[Speaker 2]: Actually, it's rather cheap.

00:22:37.680 --> 00:22:38.180
There's no question about that.

00:22:40.580 --> 00:22:40.920
The problem is that it has a bad track record

00:22:41.580 --> 00:22:42.080
on privacy.

00:22:45.540 --> 00:22:46.040
[Speaker 0]: Yes, that's, I think that is a key problem.

00:22:48.120 --> 00:22:48.280
This is probably the number 1 reason why you

00:22:51.840 --> 00:22:52.340
might want to use a local AI,

00:22:54.720 --> 00:22:55.220
a local LLM. Another 1 is like,

00:22:57.400 --> 00:22:57.900
you may not agree with the decisions.

00:23:00.360 --> 00:23:00.820
You know, there's a lot of trust and safety

00:23:05.140 --> 00:23:05.440
stuff that these companies have to do.

00:23:09.020 --> 00:23:09.240
Like they don't want like the LMs to kind of

00:23:11.400 --> 00:23:11.640
like give you, like tell you how you can make

00:23:13.180 --> 00:23:13.580
meth or how you can make a bomb,

00:23:14.960 --> 00:23:15.460
which they would do. They would totally do

00:23:19.580 --> 00:23:20.080
it. So, But each time you kind of restrict

00:23:22.540 --> 00:23:22.680
what is happening with what you can get out

00:23:23.860 --> 00:23:24.360
of the LM, it gets a little worse.

00:23:24.960 --> 00:23:25.440
So some people

00:23:27.040 --> 00:23:27.540
[Speaker 2]: want to have local. That's expected.

00:23:31.080 --> 00:23:31.400
I guess even open source language modules

00:23:33.540 --> 00:23:34.040
will soon have HR spaces because it's simply

00:23:34.720 --> 00:23:35.220
a legal issue.

00:23:40.760 --> 00:23:41.140
[Speaker 0]: I think that's true. I also think that there

00:23:42.880 --> 00:23:43.040
probably will be, although I don't know of

00:23:45.060 --> 00:23:45.300
any offhand, that will are completely

00:23:46.960 --> 00:23:47.200
uncensored. I know people are interested and

00:23:48.240 --> 00:23:48.480
are running uncensored models.

00:23:49.440 --> 00:23:49.940
I don't know how to do it.

00:23:52.280 --> 00:23:52.780
I think it's a little bit dubious,

00:23:54.960 --> 00:23:55.040
but some people do want to do it.

00:23:56.280 --> 00:23:56.780
There's another reason for using local

00:24:02.280 --> 00:24:02.780
servers. Do you have any recommendation for

00:24:05.500 --> 00:24:05.720
models to run locally and also comments on

00:24:06.780 --> 00:24:07.280
whether a GPU is required?

00:24:14.040 --> 00:24:14.160
Usually a GPU, well, you can run it without a

00:24:16.960 --> 00:24:17.460
GPU, but it does run much better.

00:24:19.480 --> 00:24:19.980
Like for example, I think when I used,

00:24:22.560 --> 00:24:23.060
Lama is sort of like a standard.

00:24:27.160 --> 00:24:27.320
This was the model for that Facebook came out

00:24:31.380 --> 00:24:31.880
with for local use. And It was,

00:24:37.260 --> 00:24:37.760
yeah, it's good. It's,

00:24:40.400 --> 00:24:40.900
but it's now it's I think,

00:24:44.620 --> 00:24:44.920
Mistral is kind of like has a better

00:24:46.480 --> 00:24:46.800
performance, But there's also different model

00:24:51.000 --> 00:24:51.500
sizes. There's 7B, like the Lama 7B is OK.

00:24:52.940 --> 00:24:53.440
The Mistral 7B, 7 billion,

00:24:54.800 --> 00:24:55.300
are like, basically it'll take like,

00:24:58.380 --> 00:24:58.880
you can run it with like 16 gigs of RAM,

00:25:02.720 --> 00:25:03.040
is pretty good. It's probably about as equal

00:25:06.900 --> 00:25:07.000
to the LLAMA13B. Those are the number of

00:25:08.360 --> 00:25:08.860
parameters, if I remember correctly.

00:25:10.680 --> 00:25:11.180
And then there's a 7B,

00:25:12.340 --> 00:25:12.840
which I've never been able to run.

00:25:16.120 --> 00:25:16.620
And even if the 7B, if you run it without a

00:25:19.640 --> 00:25:20.140
GPU, it takes quite a while to answer.

00:25:22.080 --> 00:25:22.580
I think I've had experiences where it took

00:25:23.940 --> 00:25:24.440
literally like several,

00:25:26.480 --> 00:25:26.780
like 5 minutes before it even started

00:25:28.880 --> 00:25:29.100
responding, but you do eventually get

00:25:32.220 --> 00:25:32.580
something. And it could be that like things

00:25:33.840 --> 00:25:33.960
have gotten better since the last time I

00:25:35.440 --> 00:25:35.940
tried this, because things are moving fast.

00:25:38.360 --> 00:25:38.860
But it is super recommended to have a GPU.

00:25:42.440 --> 00:25:42.620
This is the problem. It's kind of like,

00:25:43.840 --> 00:25:44.180
yes, free software is great.

00:25:46.880 --> 00:25:47.120
But if free software is requiring that you

00:25:50.460 --> 00:25:50.760
have these kind of beefy servers and have all

00:25:52.000 --> 00:25:52.500
this hardware, that's not great.

00:25:53.600 --> 00:25:54.100
I think there's a case to be made.

00:25:55.680 --> 00:25:56.180
[Speaker 1]: a hardware

00:25:59.040 --> 00:25:59.540
[Speaker 0]: with slots instead of a laptop.

00:26:01.560 --> 00:26:02.060
Yeah, yeah, that's right.

00:26:03.660 --> 00:26:03.960
[Speaker 2]: Ideally, you can have Ideally,

00:26:07.400 --> 00:26:07.660
it would be nice if FSL for all things could

00:26:12.040 --> 00:26:12.540
run something for open source model.

00:26:16.320 --> 00:26:16.640
And not free, but the key point is that it's

00:26:16.640 --> 00:26:17.140
Libre?

00:26:22.580 --> 00:26:23.080
[Speaker 0]: Yes, so actually I think Google does do that.

00:26:24.720 --> 00:26:24.800
I'll have to look it up,

00:26:27.560 --> 00:26:27.820
but I haven't explored this yet.

00:26:31.220 --> 00:26:31.720
But Google's server, which LLM does support,

00:26:33.800 --> 00:26:34.300
supports arbitrary models.

00:26:36.420 --> 00:26:36.600
So you can run LLMA or things like that.

00:26:38.940 --> 00:26:39.200
The problem is that even if you're running

00:26:40.320 --> 00:26:40.820
Mistral, which has no restrictions.

00:26:42.940 --> 00:26:43.140
So this is the kind of thing that like the

00:26:44.900 --> 00:26:45.060
Free Software Foundation cares a lot about.

00:26:47.240 --> 00:26:47.740
Like you want it to be like no restrictions,

00:26:49.740 --> 00:26:49.840
legal restrictions on you as you run the

00:26:52.080 --> 00:26:52.580
model. So even if it's running Mistral,

00:26:54.800 --> 00:26:55.300
just by using the server,

00:26:58.460 --> 00:26:58.660
the company server, it will impose some

00:26:59.440 --> 00:26:59.900
restrictions on you probably,

00:27:02.320 --> 00:27:02.480
right? There's gonna be some license that you

00:27:04.760 --> 00:27:05.260
have to, or something you have to abide by.

00:27:08.480 --> 00:27:08.600
So I think, yes, it depends on how much you

00:27:09.280 --> 00:27:09.780
care about it, I guess.

00:27:19.500 --> 00:27:19.640
I should find out more about that and make

00:27:21.580 --> 00:27:22.080
sure that it's a good point that I should,

00:27:23.980 --> 00:27:24.180
you know, people should be able to run free

00:27:25.920 --> 00:27:26.280
models over the server.

00:27:28.320 --> 00:27:28.440
So I should make sure we support that in the

00:27:40.360 --> 00:27:40.860
LLM package. So, is there any other questions

00:27:48.240 --> 00:27:48.740
Or is otherwise we can end the session.

00:28:00.800 --> 00:28:01.040
Yeah, all right. Thank you.

00:28:02.440 --> 00:28:02.940
Thank you. Thank you everyone who listened.

00:28:04.540 --> 00:28:05.040
I'm super happy like I,

00:28:06.560 --> 00:28:07.060
the interest is great.

00:28:08.900 --> 00:28:09.220
I think there's great stuff to be done here

00:28:10.960 --> 00:28:11.140
and I'm kind of super excited what we're

00:28:11.940 --> 00:28:12.160
going to do in the next year,

00:28:13.140 --> 00:28:13.440
so hopefully, like next year,

00:28:14.600 --> 00:28:14.760
and the conference we have something even

00:28:16.440 --> 00:28:16.560
more exciting to say about LLM and how they

00:28:17.320 --> 00:28:17.820
can be used with Emacs.

00:28:19.620 --> 00:28:20.120
So thank

00:28:30.060 --> 00:28:30.560
you