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 다 끝나면 다음 영상에서 만나요