From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
391 lines
11 KiB
391 lines
11 KiB
WEBVTT |
|
|
|
00:00.740 --> 00:08.330 |
|
이제 랙의 가장 중요한 측면에 대해 얘기할 때가 됐습니다 벡터 개념이죠 |
|
|
|
00:08.360 --> 00:11.750 |
|
벡터와 벡터 내장법에 익숙하시다면 잠시만요 |
|
|
|
00:11.750 --> 00:13.610 |
|
빨리 훑어보도록 하죠 |
|
|
|
00:13.610 --> 00:17.570 |
|
몰랐던 걸 알게 될 수도 있어요 제가 설명한 대로요 |
|
|
|
00:17.570 --> 00:21.290 |
|
먼저 중요한 배경 정보가 있습니다 이 과정을 통해 다양한 |
|
|
|
00:21.290 --> 00:26.210 |
|
LMS에 관해 얘기해왔는데요 우리가 얘기한 거의 모든 LMS는 하나의 |
|
|
|
00:26.210 --> 00:30.380 |
|
종류였습니다 자동적 허용 LM이라고 불리는 거죠 |
|
|
|
00:30.380 --> 00:35.300 |
|
LM에는 완전히 다른 범주가 있습니다 자동 코드화라고 하죠 |
|
|
|
00:35.300 --> 00:36.500 |
|
차이가 뭐죠? |
|
|
|
00:36.530 --> 00:44.990 |
|
LMS 자동 이탈 LMS는 과거의 토큰 세트를 받고 시퀀스에서 다음 토큰을 생성해야 |
|
|
|
00:44.990 --> 00:49.070 |
|
합니다 미래 토큰이요 과거가 주어지죠 |
|
|
|
00:49.070 --> 00:52.400 |
|
계속 반복해서 다음 토큰을 생성하죠 |
|
|
|
00:52.400 --> 00:56.300 |
|
토큰의 역사를 보면 자동적 차별적인 LM이에요 |
|
|
|
00:56.300 --> 00:58.100 |
|
물론 그게 대세죠 |
|
|
|
00:58.100 --> 01:00.710 |
|
우리가 함께 일하는 대부분의 사람들이죠 |
|
|
|
01:00.710 --> 01:04.270 |
|
GPT 4호와 클로드 제미니 계획도 있고요 |
|
|
|
01:04.690 --> 01:11.380 |
|
자동 코드 형식이라는 것도 있습니다 과거와 현재, 미래를 모두 나타내는 완전한 |
|
|
|
01:11.380 --> 01:12.700 |
|
입력을 하죠 |
|
|
|
01:12.700 --> 01:18.670 |
|
입력 비트가 가득하고 입력 전체를 반영하는 출력 비트를 생성하죠 |
|
|
|
01:19.090 --> 01:22.120 |
|
그걸 현실화하려면 몇 가지 확실한 예가 있죠 |
|
|
|
01:22.120 --> 01:26.620 |
|
감정 분석은 문장을 보고 긍정인지 부정인지 판단하는 거예요 |
|
|
|
01:26.770 --> 01:30.940 |
|
분류 구역에서는 문장을 양동이에 담아 Put을 해요 |
|
|
|
01:31.420 --> 01:36.790 |
|
2주 전에 어깅페이스 파이프라인과 관련해 잠깐 탐구한 것들이죠 |
|
|
|
01:36.850 --> 01:40.360 |
|
둘 다 자동 코드 llms의 예죠 |
|
|
|
01:41.260 --> 01:46.300 |
|
또 다른 방법으로 사용되기도 합니다 벡터 내장이라는 것을 생성할 때 사용되죠 |
|
|
|
01:46.300 --> 01:48.700 |
|
오늘 얘기할 게 바로 그거예요 |
|
|
|
01:48.730 --> 01:54.520 |
|
벡터 엠베딩은 텍스트의 문장이나 다른 여러 가지를 취하는 방법인데 보통은 텍스트의 |
|
|
|
01:54.520 --> 01:55.570 |
|
문장이죠 |
|
|
|
01:55.570 --> 02:02.620 |
|
그걸 일련의 숫자로 바꾸는 거죠 어떤 면에선 그 텍스트의 의미를 반영하는 |
|
|
|
02:02.620 --> 02:04.360 |
|
일련의 숫자요 |
|
|
|
02:04.360 --> 02:07.000 |
|
그게 무슨 뜻인지 잠시 후에 살펴보죠 |
|
|
|
02:07.000 --> 02:13.640 |
|
지금은 좀 추상적으로 들리지만 아이디어는 텍스트를 숫자로 변환하는 겁니다 |
|
|
|
02:13.640 --> 02:17.960 |
|
그 숫자들은 공간의 한 점을 나타내는 비트죠 |
|
|
|
02:17.960 --> 02:22.670 |
|
텍스트를 세 개의 숫자로 바꾼다고 해보죠 엑스나 Y, Z로 |
|
|
|
02:22.670 --> 02:28.190 |
|
생각할 수 있어요 이건 공간에서 무언가가 있는 위치를 나타내죠 |
|
|
|
02:28.370 --> 02:33.800 |
|
보통 이렇게 하면 수백, 수천 개의 숫자로 변환돼요 |
|
|
|
02:33.800 --> 02:37.760 |
|
천 차원 공간에 있는 한 지점을 나타내는 거예요 |
|
|
|
02:37.760 --> 02:41.690 |
|
시각화하기가 좀 어렵죠 우린 3차원으로만 생각할 수 있으니까요 하지만 |
|
|
|
02:41.690 --> 02:42.620 |
|
생각은 같죠 |
|
|
|
02:42.620 --> 02:49.580 |
|
공간의 점을 반영하고 어떤 의미에서든 그 점은 자동 인코딩의 |
|
|
|
02:49.580 --> 02:55.250 |
|
예로 생성된 텍스트의 의미를 나타내죠 |
|
|
|
02:55.280 --> 02:58.640 |
|
구글의 버트예요 |
|
|
|
02:58.670 --> 03:02.540 |
|
첫 주에 버트 얘기를 했던 거 기억하시죠? |
|
|
|
03:02.570 --> 03:05.240 |
|
버트는 꽤 오래 출연했어요 |
|
|
|
03:05.390 --> 03:11.110 |
|
OpenAI의 오픈 인공지능 엠베딩도 있는데 자동 오토 젠코더 모델로 |
|
|
|
03:11.110 --> 03:14.680 |
|
이번 주에 래그 프로젝트에 사용할 거예요 |
|
|
|
03:15.160 --> 03:19.960 |
|
비트 코어의 의미에 대해 좀 더 얘기해 보죠 |
|
|
|
03:19.990 --> 03:28.690 |
|
먼저, 여러분은 단일 문자에 대한 벡터 중 하나를 만들 수 있습니다 토큰이나 다수의 문자 |
|
|
|
03:28.930 --> 03:34.660 |
|
단어, 문장, 단락, 전체 문서에 대한 것 혹은 추상적인 것에 |
|
|
|
03:34.660 --> 03:36.490 |
|
대한 것에요 |
|
|
|
03:36.490 --> 03:44.020 |
|
제 회사, 네뷸라처럼 재능이나 일자리 같은 것의 벡터를 만들어요 |
|
|
|
03:44.680 --> 03:49.930 |
|
이런 벡터들을 작업할 때 수백, 수천 개의 차원이 있는 경우가 많아요 |
|
|
|
03:49.930 --> 03:54.700 |
|
텍스트 한 덩어리를 나타내는 수천 개의 숫자처럼요 |
|
|
|
03:55.030 --> 04:01.420 |
|
이 숫자들이 입력값의 의미를 반영한다고 여러 번 말씀드렸죠 |
|
|
|
04:01.420 --> 04:03.010 |
|
그게 무슨 뜻이죠? |
|
|
|
04:03.040 --> 04:10.060 |
|
간단히 말해서, 이 말은 여러 단락의 텍스트가 서로 가까운 공간의 |
|
|
|
04:10.060 --> 04:14.720 |
|
비슷한 지점으로 매핑이 된다는 거죠. |
|
|
|
04:14.720 --> 04:18.800 |
|
이 텍스트 블록들은 비슷한 의미를 가져야 해요 |
|
|
|
04:18.800 --> 04:21.500 |
|
같은 단어를 쓸 필요는 없어요 |
|
|
|
04:21.500 --> 04:25.790 |
|
완전히 다른 단어일 수도 있지만 의미는 같아요 |
|
|
|
04:25.790 --> 04:32.090 |
|
벡터 공간에서 서로 가까워질 거예요 숫자로 바뀔 때 서로 가까워진다는 |
|
|
|
04:32.090 --> 04:35.540 |
|
건 비슷한 걸 의미하죠 |
|
|
|
04:35.540 --> 04:38.630 |
|
그게 기본 아이디어죠 |
|
|
|
04:38.630 --> 04:44.630 |
|
이 이면에는 좀 더 정교한 아이디어가 있어요 이 점을 포함해서요 이런 것들의 |
|
|
|
04:44.660 --> 04:49.400 |
|
의미 뒤에 숨은 벡터 수학이라고 불리는 걸 할 수 있어요 |
|
|
|
04:49.400 --> 04:54.050 |
|
그리고 이 예시가 있습니다. 아주 오래된 예시죠. |
|
|
|
04:54.050 --> 04:59.750 |
|
들어 보셨을 수도 있는데 킹이라는 단어가 있다고 가정해 봅시다 킹이라는 |
|
|
|
04:59.750 --> 05:05.720 |
|
단어를 가지고 벡터 인코딩을 이용해서 킹이라는 단어를 나타내는 공간의 |
|
|
|
05:05.720 --> 05:07.880 |
|
점을 찾는다고 해보죠 |
|
|
|
05:07.910 --> 05:11.990 |
|
인간이란 단어를 반영하는 벡터도 찾을 수 있죠 |
|
|
|
05:11.990 --> 05:14.510 |
|
여성이라는 단어를 반영하는 벡터도요 |
|
|
|
05:14.600 --> 05:21.790 |
|
킹이라는 단어에서 남자를 빼면 남자가 있는 방향으로 |
|
|
|
05:21.790 --> 05:28.750 |
|
뒤로 가고 여자가 있는 방향으로 전진하는 거예요 |
|
|
|
05:29.110 --> 05:36.160 |
|
당신은 왕이라는 개념을 받아들여서 남자를 여자로 대체하고 |
|
|
|
05:36.160 --> 05:41.470 |
|
싶다고 했어요 즉, 왕이라는 뜻이죠 |
|
|
|
05:41.470 --> 05:49.210 |
|
그리고 놀랍게도 이렇게 하면 벡터 공간에 들어가게 됩니다 퀸이라는 |
|
|
|
05:49.210 --> 05:53.890 |
|
단어가 있는 위치와 같은 위치죠 |
|
|
|
05:53.920 --> 06:00.220 |
|
그러니까 왕이라는 단어에서 왕의 의미를 따지고 남자 측면을 여자로 |
|
|
|
06:00.220 --> 06:06.850 |
|
대체하면 여왕이라는 단어의 의미를 반영하는 무언가가 되는 거죠 |
|
|
|
06:06.850 --> 06:13.780 |
|
그런 점에서 벡터들은 벡터들이 나타내는 단어의 의미를 반영하는 것 |
|
|
|
06:13.780 --> 06:19.660 |
|
같아요 비슷한 단어들이 서로 가까이 있다는 점과 벡터 수학을 |
|
|
|
06:19.660 --> 06:26.420 |
|
수행하는 능력도요 덕분에 개념 간의 관계를 이해할 수 있죠 |
|
|
|
06:27.860 --> 06:30.860 |
|
이게 래그랑 무슨 상관이죠? |
|
|
|
06:30.950 --> 06:32.930 |
|
여기서 모든 게 합쳐져요 |
|
|
|
06:32.930 --> 06:35.510 |
|
래그의 핵심 아이디어죠 |
|
|
|
06:35.540 --> 06:38.570 |
|
아까와 같은 도표예요 |
|
|
|
06:38.570 --> 06:40.550 |
|
비트보다 더 많은 걸 할 거예요 |
|
|
|
06:40.850 --> 06:43.970 |
|
상단엔 LM 인코딩이라는 새 상자가 있죠 |
|
|
|
06:44.000 --> 06:48.650 |
|
어떤 텍스트를 벡터로 바꿀 수 있는 거죠 |
|
|
|
06:48.650 --> 06:52.070 |
|
맨 밑에는 벡터 데이터 저장소가 있어요 |
|
|
|
06:52.100 --> 06:55.250 |
|
지식 기반 이전에 있던 데이터 저장소 같아요 |
|
|
|
06:55.250 --> 07:03.800 |
|
텍스트와 함께 텍스트를 나타내는 벡터도 저장할 수 있어요 텍스트의 의미를 |
|
|
|
07:03.800 --> 07:05.750 |
|
나타내는 벡터요 |
|
|
|
07:06.260 --> 07:07.130 |
|
좋아요 |
|
|
|
07:07.130 --> 07:08.990 |
|
이렇게 하죠 |
|
|
|
07:09.080 --> 07:12.260 |
|
사용자가 질문을 던지죠 |
|
|
|
07:12.290 --> 07:19.550 |
|
가장 먼저 할 일은 질문을 벡터로 바꾸는 겁니다 벡터화라고도 하죠 |
|
|
|
07:19.550 --> 07:22.360 |
|
에이미 미가 누구냐는 질문이라면요 |
|
|
|
07:22.360 --> 07:23.260 |
|
랭커스터요 |
|
|
|
07:23.260 --> 07:30.160 |
|
에이미 랭커스터가 누구인지를 질문의 의미로 해석하는 |
|
|
|
07:30.160 --> 07:31.870 |
|
거예요 |
|
|
|
07:33.100 --> 07:34.990 |
|
제가 다음에 할 말은 아마 짐작이 가실 거예요 |
|
|
|
07:35.020 --> 07:43.120 |
|
이제 벡터 데이터베이스로 가서 벡터 데이터베이스에서 벡터들이 에이미 랭커스터에 가까운 |
|
|
|
07:43.120 --> 07:49.180 |
|
곳에 있는 정보를 요청합니다 에이미 랭커스터가 누구인가요? |
|
|
|
07:49.180 --> 07:51.760 |
|
저 안에 있는 다양한 문서들을 보세요 |
|
|
|
07:51.760 --> 07:53.530 |
|
전부 벡터로 만들었어요 |
|
|
|
07:53.530 --> 07:58.000 |
|
에이미 랭커스터가 누구인지 궁금해할 벡터들이 있을 거예요 |
|
|
|
07:58.030 --> 08:04.630 |
|
벡터들을 제공하고 벡터로 바뀐 원래 정보와 텍스트를 제공하죠 |
|
|
|
08:04.630 --> 08:11.890 |
|
에이미 랭커스터의 항공 문서가 벡터와 가까운 곳에 있을 가능성이 높습니다 |
|
|
|
08:11.890 --> 08:15.910 |
|
에이미 랭커스터가 누구죠? |
|
|
|
08:16.810 --> 08:20.860 |
|
그래서 정보를 얻으면 텍스트를 get 하면 되죠 |
|
|
|
08:20.860 --> 08:26.570 |
|
이전의 장난감 예제처럼 그걸 LLM 프롬프트에 밀어넣으면 응답을 얻습니다 |
|
|
|
08:26.570 --> 08:29.870 |
|
아마도 추가적인 컨텍스트를 이용하겠죠 |
|
|
|
08:29.870 --> 08:32.210 |
|
그게 사용자에게 돌아가는 거죠 |
|
|
|
08:32.300 --> 08:38.600 |
|
장난감 예제와 같지만 관련 데이터를 찾는 데 훨씬 더 강력한 기술을 |
|
|
|
08:38.600 --> 08:45.620 |
|
사용합니다 벡터를 이용해 우리의 지식 중 어떤 것이 질문의 의미와 가장 |
|
|
|
08:45.620 --> 08:49.010 |
|
유사한지 이해하는 거죠 |
|
|
|
08:49.010 --> 08:51.410 |
|
그게 다인 것 같아요 |
|
|
|
08:51.410 --> 08:56.120 |
|
이번 주의 마무리가 되었네요. 왜냐하면 다음 시간에는 이것을 action에 넣고 |
|
|
|
08:56.120 --> 08:58.910 |
|
데이터베이스에서 벡터를 볼 것이기 때문이죠. |
|
|
|
08:58.940 --> 09:04.160 |
|
다음엔 랭 체인이라는 것도 살펴볼 겁니다 프레임워크가 훌륭하죠 |
|
|
|
09:04.160 --> 09:08.780 |
|
이런 응용 프로그램을 쉽게 만들도록 디자인됐어요 |
|
|
|
09:08.780 --> 09:10.550 |
|
전부 수동으로 할 수 있어요 |
|
|
|
09:10.550 --> 09:15.860 |
|
벡터를 생성해 다양한 API를 이용해 벡터 데이터베이스에 저장할 수 있죠 |
|
|
|
09:16.160 --> 09:19.610 |
|
랑 체인은 아주 간단해요 곧 보시겠지만요 |
|
|
|
09:19.640 --> 09:24.230 |
|
그래디오 경험과 좀 비슷할 겁니다 코드 두어 줄로 아주 |
|
|
|
09:24.230 --> 09:26.450 |
|
강력한 걸 하는 거죠 |
|
|
|
09:26.450 --> 09:28.160 |
|
그래서 기대돼요 |
|
|
|
09:28.160 --> 09:29.090 |
|
당신도 그랬으면 좋겠네요 |
|
|
|
09:29.090 --> 09:30.260 |
|
그때 봐요
|
|
|