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.
421 lines
11 KiB
421 lines
11 KiB
WEBVTT |
|
|
|
00:00.860 --> 00:07.880 |
|
우리가 가장 좋아하는 JupyterLab에 왔습니다 오늘 코딩할 게 아주 |
|
|
|
00:07.880 --> 00:08.780 |
|
많아요 |
|
|
|
00:08.810 --> 00:15.800 |
|
가장 먼저 눈에 띄는 건 둘째 날의 주피터 공책이 없다는 거예요 |
|
|
|
00:15.830 --> 00:21.590 |
|
5일간 작성된 주피터 공책도 있어요 우리가 할 일이 생겼다는 |
|
|
|
00:21.590 --> 00:22.610 |
|
증거죠 |
|
|
|
00:22.730 --> 00:27.080 |
|
비트는 제가 평소보다 공책을 빨리 작성할 수도 있다는 뜻이기도 |
|
|
|
00:27.080 --> 00:31.670 |
|
해요 비트가 돌아오면 직접 해 볼 기회가 생기는 거죠 |
|
|
|
00:31.910 --> 00:39.260 |
|
오늘은 좀 더 복잡한 접근법을 시도할 거예요 상품 가격 평가법이죠 한동안 해온 |
|
|
|
00:39.260 --> 00:41.390 |
|
것과 같은 거예요 |
|
|
|
00:41.630 --> 00:48.260 |
|
오늘 가장 중요한 부분은 같은 작업을 하기 위한 래그 파이프라인 해결책에 |
|
|
|
00:48.260 --> 00:49.970 |
|
접근하는 거예요 |
|
|
|
00:50.030 --> 00:55.520 |
|
직감적으로 봤을 때 랙을 사용하기에 아주 좋은 사례예요 |
|
|
|
00:55.520 --> 01:01.160 |
|
교육 데이터 집합에 400,000가지 가격이 있어요 |
|
|
|
01:01.220 --> 01:08.810 |
|
이것들을 데이터 스토어에 저장하고 모델을 호출할 때 유사한 제품들을 주면서 전동 |
|
|
|
01:08.810 --> 01:13.460 |
|
칫솔의 가격을 알려달라고 하면 어떨까요? |
|
|
|
01:13.460 --> 01:20.600 |
|
훈련 데이터에 있는 유사한 전동 칫솔 5개를 도움될 모델에 |
|
|
|
01:20.630 --> 01:22.070 |
|
주세요 |
|
|
|
01:22.070 --> 01:24.890 |
|
개척자 모델을 사용하는 게 아주 합리적이죠 |
|
|
|
01:24.890 --> 01:30.710 |
|
비슷한 점을 생각해 보면 개척지 모델에서 훨씬 유리하게 출발할 수 있어요. HMSII |
|
|
|
01:30.710 --> 01:32.030 |
|
HMSI HMSI |
|
|
|
01:32.120 --> 01:40.100 |
|
래그가 빛나야 할 좋은 예죠 정확한 데이터의 저장소가 있거든요 |
|
|
|
01:40.130 --> 01:44.090 |
|
최적의 조건에 딱 맞아요 |
|
|
|
01:44.180 --> 01:50.030 |
|
이 공책에서 할 일은요 지금 제가 있는 0번 공책은 8주 차 폴더인데 |
|
|
|
01:50.030 --> 01:57.260 |
|
400,000개의 훈련 데이터 포인트를 가진 벡터 데이터 저장소를 만들 거예요 |
|
|
|
01:57.260 --> 01:58.370 |
|
그게 중요하죠 |
|
|
|
01:58.370 --> 02:02.060 |
|
5주 차보다 훨씬 많이 했어요 |
|
|
|
02:02.540 --> 02:05.810 |
|
다음 공책 둘째 날에요 1번요 |
|
|
|
02:05.810 --> 02:09.380 |
|
2D로 시각화한 다음 3D로 시각화할 거예요 |
|
|
|
02:09.500 --> 02:10.910 |
|
빠른 노트들이네요 |
|
|
|
02:10.910 --> 02:16.910 |
|
하지만 촬영 2일째에 이런 걸 직접 경험하니 좋네요 Get it 3번요 |
|
|
|
02:16.940 --> 02:20.330 |
|
그런 다음 래그 파이프라인을 만들어 테스트하죠 |
|
|
|
02:20.330 --> 02:25.910 |
|
둘째 날에도요 여기선 공책 하나에 많은 걸 담을 수 있어요 |
|
|
|
02:25.940 --> 02:31.970 |
|
6주 차에 봤던 임의의 산림 처리기를 다시 쓸 거예요 |
|
|
|
02:32.270 --> 02:34.760 |
|
하지만 우린 그걸 개선한 버전을 할 거예요 |
|
|
|
02:34.760 --> 02:38.780 |
|
그런 다음 앙상블이라는 걸 만들 거예요 모든 모형을 사용할 수 있도록요 |
|
|
|
02:38.780 --> 02:41.660 |
|
함께 투표한다고 생각하면 돼요 |
|
|
|
02:41.690 --> 02:46.400 |
|
함께 문제를 해결하고 선형 조합을 선택해서 최고의 결과를 |
|
|
|
02:46.400 --> 02:47.660 |
|
내는 거죠 |
|
|
|
02:47.660 --> 02:49.460 |
|
Get up 할 게 많네요 |
|
|
|
02:49.460 --> 02:55.910 |
|
말씀드리고 싶은 것은 이미 강력한 제품 프로세서를 특수 LLM의 형태로 만들었다는 |
|
|
|
02:55.910 --> 02:57.410 |
|
점인데요 |
|
|
|
02:57.410 --> 03:00.590 |
|
왜 이렇게 많은 시간을 투자하는지 궁금하실 거예요 |
|
|
|
03:00.590 --> 03:02.060 |
|
답은 간단해요 |
|
|
|
03:02.090 --> 03:03.620 |
|
방금 제가 한 말이잖아요 |
|
|
|
03:03.620 --> 03:07.400 |
|
자신의 전문성을 확고히 하는 과정이라고 생각하세요 |
|
|
|
03:07.400 --> 03:10.790 |
|
Get이랑 더 연습하라고 하는 거예요 |
|
|
|
03:11.000 --> 03:20.840 |
|
에이전트 기반 함수를 구축하는 다른 양상으로 연습하는 거죠 같은 프로젝트에서 작업하면서요 |
|
|
|
03:20.840 --> 03:24.740 |
|
우린 뭘 하는지 알고 만족스럽죠 데이터가 있으니 더 큐레이팅할 필요가 |
|
|
|
03:24.740 --> 03:25.370 |
|
없어요 |
|
|
|
03:25.370 --> 03:29.180 |
|
그게 우리가 하려는 일에 동기를 부여해주면 좋겠네요 |
|
|
|
03:29.750 --> 03:36.170 |
|
좋아요, 그럼 지체 없이 환경 변수를 가져오기 실행할게요 익숙한 얼굴 껴안기로 |
|
|
|
03:36.200 --> 03:38.300 |
|
로그인하고요 |
|
|
|
03:38.300 --> 03:44.900 |
|
훈련 데이터를 로드하겠습니다 아까 있던 피클 파일이죠 일을 단순화하기 |
|
|
|
03:44.930 --> 03:47.930 |
|
위해 훈련 데이터를 로드했어요 |
|
|
|
03:47.930 --> 03:53.180 |
|
첫 번째 훈련 데이터 포인트 연료 펌프 모듈을 기억하실 거예요 |
|
|
|
03:53.180 --> 03:56.930 |
|
기억하신다면 프롬프트 호출할 수 있어요 |
|
|
|
03:56.930 --> 04:00.980 |
|
Get Frompts는 훈련에 사용된 익숙한 프롬프트죠 |
|
|
|
04:00.980 --> 04:02.660 |
|
이게 얼마짜리인지 말이에요 |
|
|
|
04:02.660 --> 04:07.280 |
|
가격과 가치가 여기 있네요 |
|
|
|
04:07.280 --> 04:08.210 |
|
네 |
|
|
|
04:08.240 --> 04:11.760 |
|
그동안 크로마 데이터스토어를 만들 거예요 |
|
|
|
04:11.760 --> 04:20.010 |
|
기억하실지 모르겠지만 5주 차에 이 스토어를 만들 때 123개의 문서가 있었어요 |
|
|
|
04:20.010 --> 04:29.340 |
|
제 기억이 맞는다면 123개의 덩어리가 우리 문서에서 빼냈죠 우리가 사용하도록 보장하는 가상 |
|
|
|
04:29.370 --> 04:31.740 |
|
회사의 문서였어요 |
|
|
|
04:31.740 --> 04:36.840 |
|
이번엔 400,000개의 문서가 있는 크로마 데이터스토어를 만들 거예요 |
|
|
|
04:36.840 --> 04:37.830 |
|
많네요 |
|
|
|
04:37.890 --> 04:38.940 |
|
부수지 않을 거예요 |
|
|
|
04:38.970 --> 04:39.840 |
|
당연히 안 해도 되죠 |
|
|
|
04:39.870 --> 04:41.610 |
|
이미 작은 조각이에요 |
|
|
|
04:41.760 --> 04:46.530 |
|
각각의 제품은 각각의 아이템으로 채도에 들어갈 거예요 |
|
|
|
04:46.800 --> 04:53.910 |
|
이 랙 파이프라인에는 랑체인을 쓰지 않을 거예요 직접 만드는 |
|
|
|
04:53.910 --> 04:56.190 |
|
게 더 좋거든요 |
|
|
|
04:56.280 --> 05:00.270 |
|
랑 사슬은 유용한 추상적 개념을 제공하지만 꼭 필요한 건 아니에요 |
|
|
|
05:00.300 --> 05:05.970 |
|
현재 수준에 이르면 그냥 LIms로 작업하면 |
|
|
|
05:05.970 --> 05:12.750 |
|
됩니다. 이런 추상화 계층이 꼭 필요하진 않아요. |
|
|
|
05:13.110 --> 05:15.900 |
|
그렇게 할 거예요 |
|
|
|
05:15.990 --> 05:25.560 |
|
채도 데이터베이스를 만들 거예요 여기 어디쯤에 호출했죠 |
|
|
|
05:26.520 --> 05:30.810 |
|
그 상표는 아까 뺐을 거예요 |
|
|
|
05:30.810 --> 05:32.190 |
|
지금 당장요 |
|
|
|
05:32.220 --> 05:33.330 |
|
미안해요 |
|
|
|
05:33.600 --> 05:42.210 |
|
여기에 다른 상수 DB = 제품_벡터 스토어를 추가할게요 |
|
|
|
05:42.930 --> 05:47.760 |
|
쓸모 있게 쓰려고 이 공책을 치우다가 너무 많이 치웠어요 |
|
|
|
05:48.150 --> 05:50.070 |
|
철자가 맞는다면 상품이 있어요 |
|
|
|
05:50.070 --> 05:51.090 |
|
벡터 스토어요 |
|
|
|
05:51.120 --> 05:52.620 |
|
됐어요 |
|
|
|
05:52.710 --> 05:55.710 |
|
다시 돌아가죠 |
|
|
|
05:55.740 --> 05:57.270 |
|
잠시 우회한 거죠 |
|
|
|
05:57.270 --> 06:00.840 |
|
그 경로로 크로마 데이터 저장소를 만들 거예요 |
|
|
|
06:00.870 --> 06:02.070 |
|
됐어요 |
|
|
|
06:02.220 --> 06:06.450 |
|
존재하는지는 확인하고 이미 존재한다면 삭제하죠 |
|
|
|
06:06.540 --> 06:07.680 |
|
그건 안 할 거예요 |
|
|
|
06:07.680 --> 06:10.950 |
|
제가 만든 벡터 스토어를 삭제할 거예요 |
|
|
|
06:10.950 --> 06:13.170 |
|
비트를 만드는 데 시간이 좀 걸려요 |
|
|
|
06:13.230 --> 06:15.060 |
|
그렇게 오래는 아니지만요 |
|
|
|
06:15.060 --> 06:17.940 |
|
하지만 직접 운영하게 해드리죠 |
|
|
|
06:18.450 --> 06:23.670 |
|
그래서 새로운 유형의 엠베딩을 사용할 거예요 |
|
|
|
06:23.670 --> 06:27.990 |
|
문장 변압기라는 걸 사용할 거예요 |
|
|
|
06:27.990 --> 06:34.800 |
|
얼굴을 감싸는 유용한 모델로 텍스트 덩어리를 384차원으로 매핑하죠 |
|
|
|
06:34.920 --> 06:38.310 |
|
시맨틱 검색 같은 것에도 이상적이죠 |
|
|
|
06:38.310 --> 06:41.640 |
|
벡터 내장 기능을 만드는 변압기 모델이죠 |
|
|
|
06:41.640 --> 06:47.130 |
|
예전에 랙 파이프라인을 만들 때 오픈AI 엠디딩을 사용했던 걸 기억하시나요? |
|
|
|
06:47.130 --> 06:52.980 |
|
그래서 이 두 가지를 함께 비교해 보면 서로 껴안는 얼굴 1번은 입체감이 |
|
|
|
06:52.980 --> 06:54.330 |
|
달라요 |
|
|
|
06:54.330 --> 07:00.240 |
|
오픈AI의 삽입 방식만큼 정확하진 않을 거예요 |
|
|
|
07:00.240 --> 07:03.690 |
|
하지만 무료에 빠르고 로컬에서 실행할 수 있죠 |
|
|
|
07:03.690 --> 07:08.250 |
|
마지막 포인트는 아주 중요합니다 왜냐하면 어떤 경우에는 데이터가 박스를 떠나지 않기를 |
|
|
|
07:08.250 --> 07:09.420 |
|
원할 수도 있거든요 |
|
|
|
07:09.420 --> 07:13.650 |
|
예를 들어, 제가 5주 차에 배정했던 프로젝트를 작업하고 |
|
|
|
07:13.680 --> 07:19.220 |
|
있다면 이메일 같은 것으로 개인 랙 데이터베이스를 구축하고 싶을 거예요 |
|
|
|
07:19.220 --> 07:23.990 |
|
안전한 방법이지만 오픈라이로 보내지 않고 직접 보내는 게 나을 수도 있습니다 |
|
|
|
07:23.990 --> 07:28.220 |
|
이렇게 하면 상자에서 꺼내지 않고도 쉽게 전송할 수 있죠 |
|
|
|
07:28.220 --> 07:31.100 |
|
안는 얼굴에서 모델을 로딩해요 |
|
|
|
07:31.130 --> 07:35.960 |
|
이 경고는 무시해도 될 것 같아요 미래에는 뭔가 달라져야 한다는 |
|
|
|
07:35.990 --> 07:36.740 |
|
경고죠 |
|
|
|
07:37.010 --> 07:42.920 |
|
이 모델을 생성하고 나면 Model.in코드를 호출할 수 있어요 |
|
|
|
07:42.950 --> 07:47.000 |
|
텍스트 문서 목록을 제출해요 |
|
|
|
07:47.000 --> 07:49.220 |
|
NFF 배열을 얻게 될 거예요. |
|
|
|
07:49.220 --> 07:54.590 |
|
첫 번째 것을 뽑고 벡터를 get 할 수 있어요 |
|
|
|
07:54.590 --> 07:55.550 |
|
꽤 빨랐어요 |
|
|
|
07:55.550 --> 07:57.680 |
|
대량으로 사용해도 효과적이죠 |
|
|
|
07:57.680 --> 08:06.080 |
|
이 벡터의 길이를 보면 384차원인 걸 알 수 있어요 |
|
|
|
08:06.110 --> 08:08.450 |
|
일단 출력해서 보죠 |
|
|
|
08:08.450 --> 08:09.920 |
|
거대한 벡터가 될 거예요 |
|
|
|
08:09.920 --> 08:10.490 |
|
저기 있네요 |
|
|
|
08:10.490 --> 08:18.260 |
|
벡터는 어떤 식으로든 숫자로 나타내는데 LM에 따라 다차원적인 |
|
|
|
08:18.260 --> 08:21.260 |
|
반사로 나타나죠 |
|
|
|
08:21.470 --> 08:27.770 |
|
그래서 한번 해 보고 감을 잡아 볼 가치가 있어요 |
|
|
|
08:28.430 --> 08:33.920 |
|
이제 이 유틸리티 메서드 설명을 작성하겠습니다 항목 하나를, 우리 항목 중 |
|
|
|
08:33.920 --> 08:36.950 |
|
하나를 그냥 텍스트 덩어리로 바꾸는 거죠 |
|
|
|
08:36.950 --> 08:41.600 |
|
보여드리기 위해 실행해 볼게요 기억하실지 모르겠지만 첫 번째 트레이닝 포인트 |
|
|
|
08:41.600 --> 08:45.320 |
|
같은 걸 보고 프롬프트를 보면 프롬프트는 이렇게 생겼어요 |
|
|
|
08:45.350 --> 08:54.320 |
|
만약 그것 대신에 해당 항목에 대한 설명을 호출하면 같은 것이 나오지만 앞에 있는 것들 없이 |
|
|
|
08:54.320 --> 08:59.870 |
|
가격 없이요. 그냥 제품에 대한 설명만 있는 거에요. |
|
|
|
09:00.050 --> 09:05.660 |
|
이제 벡터 데이터 저장소에 Put을 할 거예요 |
|
|
|
09:05.900 --> 09:08.720 |
|
코드를 실행하면 시간이 좀 걸려요 |
|
|
|
09:08.720 --> 09:13.910 |
|
완료될 때쯤엔 벡터 데이터 저장소에 있을 테니 여러분은 준비가 된 거죠 |
|
|
|
09:13.910 --> 09:16.820 |
|
이미 실행했어요 벡터 데이터 저장소가 이미 생성됐죠 |
|
|
|
09:16.820 --> 09:18.380 |
|
왼쪽을 보시면 돼요 |
|
|
|
09:18.380 --> 09:19.760 |
|
지금 하세요 |
|
|
|
09:19.760 --> 09:22.580 |
|
다 끝나면 다음 영상에서 만나요
|
|
|