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.
 
 

469 lines
13 KiB

WEBVTT
00:00.260 --> 00:05.780
좋은 소식은 이게 데이터 세트 큐레이션에 관한 마지막 영상이라는 거예요
00:05.810 --> 00:08.120
데이터 세트 큐레이션이 지겨웠을 거예요
00:08.120 --> 00:10.970
이제 하나만 더 하면 끝이에요
00:11.000 --> 00:16.370
그래서 우린 아주 훌륭한 데이터 세트를 만들었어요 아주 자랑스럽게 여겨야 하죠
00:16.370 --> 00:19.610
마지막으로 살짝 보죠
00:19.760 --> 00:23.030
궁금한 게 하나 있어요
00:23.060 --> 00:24.710
그래도 물어볼 거예요
00:24.710 --> 00:30.740
물건의 가격과 관련이 있을까요?
00:30.740 --> 00:35.570
물건의 길이에 따라 관련이 있어요
00:35.570 --> 00:41.960
가격이 높은 물건일수록 정보가 더 많은 상황을 상상할 수 있죠
00:41.960 --> 00:44.420
그걸 이해해야 해요
00:44.600 --> 00:48.170
모델에게 그런 걸 빨리 배울 수 있거든요
00:48.170 --> 00:52.730
어떻게 접근할지 전통적인 접근법을 보면 좋은 감이 오죠
00:52.730 --> 01:01.220
이건 멋진 산란도예요 엑스 축의 개별 크기를 보여줄 거예요
01:01.250 --> 01:07.970
설명의 길이를 보여줄 거예요 y축에서는 가격을 보여주고요
01:08.060 --> 01:12.350
전체 샘플 데이터 세트를 살펴보죠
01:12.740 --> 01:13.700
자, 시작하죠
01:13.700 --> 01:15.950
여기 잘 나온 사진이 있어요
01:15.950 --> 01:20.210
이 그림에는 400,000점이 있어요
01:20.360 --> 01:23.330
볼거리도 많고요
01:23.330 --> 01:26.420
보시다시피 소화할 게 많아요
01:26.450 --> 01:34.490
흥미로운 패턴이 일어나고 있어요 가격이 이런 경계선에서 더 자주 나타나죠
01:34.490 --> 01:43.370
799달러짜리 상품도 있고요 보다시피 더 저렴한 제품도 많아요
01:43.370 --> 01:52.610
분명히 상관관계가 있는 게 보이실 거예요 설명이 긴 물건들은 때때로
01:52.610 --> 01:59.480
더 비싼 물건이라는 추세를 보이는 거죠
01:59.480 --> 02:03.750
하지만 그 일과 관련해서 중요한 상관관계가 있는지는 확실하지 않아요
02:03.750 --> 02:06.750
뭔가 있긴 한데 심각한 건 아니에요
02:06.750 --> 02:12.780
전통적인 머신 러닝을 적용하면 큰 상관관계를
02:12.780 --> 02:15.270
찾지 못할 거예요
02:15.270 --> 02:21.660
일종의 다이어그램을 예로 들게요 데이터의 다양한 양상에 대한 통찰력을 얻기
02:21.660 --> 02:23.610
위한 거죠 Get it
02:24.330 --> 02:27.510
잠시 더 얘기하고 싶은 건 토큰이에요
02:27.750 --> 02:34.830
오픈 소스 모델에 대해 실제로 훈련하게 되면 Get 토큰으로 더 많이 작업할 겁니다
02:34.830 --> 02:38.640
지금 토큰을 살펴볼 가치가 있어요
02:38.640 --> 02:44.790
함수 리포트를 작성했는데 아이템을 하나 가져와서 프롬프트를 프린트합니다
02:44.790 --> 02:48.630
훈련 때 사용될 전체 훈련 프롬프트죠
02:48.630 --> 02:54.930
마지막 10개의 토큰을 프롬프트에 입력하면 디코딩이 되는 것이죠
02:54.930 --> 02:59.010
마지막 10개의 토큰까지의 행적을 볼 수 있어요
02:59.010 --> 03:02.250
왜 마지막 10개가 있는지 궁금하시다면 잠시 후에 보여드리죠
03:02.250 --> 03:08.550
무작위로 40,000번을 선택해 실행해보죠
03:08.580 --> 03:09.060
03:09.090 --> 03:12.840
여기 이건∙∙∙ 여기 있는 텍스트 전부 죄송해요
03:12.840 --> 03:18.390
LLM으로 보내져 배울 수 있는 프롬프트죠
03:18.630 --> 03:22.170
최대한 비용이 많이 들 거라고 할 거예요
03:22.170 --> 03:23.790
그런 다음 설명을 get 하죠
03:23.790 --> 03:30.090
가격은 이겁니다 가격은 1달러로 반올림한 거고요
03:30.180 --> 03:36.750
아이템 코드를 보시면 훈련 프롬프트를 만들 때 가장 가까운 달러로 회전하는 것을
03:36.780 --> 03:37.860
알 수 있죠
03:37.950 --> 03:44.520
마지막 10개의 토큰을 보면 어떻게 된 건지 알 수 있죠 아래에 프린트했어요
03:44.550 --> 03:46.110
그 10패는 뭐죠?
03:46.110 --> 03:53.010
이제 마지막 몇 개의 토큰을 보여드릴게요 가격은 하나의 토큰에 매핑되고
03:53.040 --> 04:02.130
워드 스페이스의 시작을 가진 토큰을 받습니다 워드의 시작과 함께 달러의 시작을 가진 토큰이죠
04:02.130 --> 04:07.410
그리고 숫자 34는 하나의 특정 토큰에 매핑되고요
04:07.680 --> 04:12.450
이건 라마 토큰라이저의 기능 중 하나예요
04:12.450 --> 04:18.000
GPT처럼 세 자리 숫자마다 토큰을 갖고 있어요
04:18.000 --> 04:21.120
다른 모델의 토큰이 그렇지 않은 경우도 있어요
04:21.210 --> 04:27.120
우리 프로젝트에 필수적인 건 아니지만 나중에 비트를 보면 좀 더 간단해질 거예요
04:27.180 --> 04:32.250
마침표는 토큰 하나와 더불어∙∙∙ 더불어∙∙∙ 0은 토큰을 받아요
04:32.280 --> 04:35.130
샘플을 하나 더 해 보죠
04:36.930 --> 04:42.000
완전히 다른 장소에서 뭔가 해 보자고요
04:42.720 --> 04:44.100
10,000번요
04:44.280 --> 04:47.550
이건 가격이 저렴해요
04:47.580 --> 04:51.930
9천 달러인데 가격이 9천 달러예요
04:51.960 --> 04:58.110
데이터셋 398,000의 끝에 있는 것으로 가보죠
04:58.620 --> 05:05.740
이건 코일오버 댐퍼 키트예요
05:05.740 --> 05:10.240
가격은 765달러예요
05:10.240 --> 05:15.430
또 한 번 765가 토큰 하나에 매핑되는 걸 보실 수 있어요
05:15.430 --> 05:22.090
이제 만족하셔야 해요 이 샘플은 가장 싼 것부터 분류했어요 각
05:22.120 --> 05:25.840
항목의 샘플을 다 살펴봤거든요
05:25.840 --> 05:28.990
가장 가까운 달러로 동그랗게 돌려요
05:28.990 --> 05:35.170
가장 싼 제품은 낮은 제품군으로 분류하고 가장 비싼 제품은 높은 제품군으로
05:35.170 --> 05:36.100
분류해요
05:36.100 --> 05:43.390
이렇게 효과를 얻는다고 만족하실 수 있습니다 1부터 999까지의 숫자는 모두 토큰 하나에
05:43.390 --> 05:46.780
매핑됩니다 여기 나와 있는 것처럼요
05:46.780 --> 05:54.190
다시 한번 말씀드리지만 수량이나 감마 혹은 피 쓰리 토큰라이저를 보면 그렇지 않다는
05:54.190 --> 05:55.870
걸 알 수 있어요
05:55.960 --> 06:02.350
나중에 비트가 좀 유용할 것 같긴 한데 꼭 필요한 건 아니고 나중엔 꼭 필요해요
06:02.350 --> 06:07.060
양자 제미니 3호 같은 다른 모델을 실험하고 싶다면 스위치만
06:07.090 --> 06:08.620
켜면 돼요
06:08.650 --> 06:15.430
여기 보면 여러 개의 토큰에 매핑되어 있습니다. 하나의 3자리 토큰이 아니라요.
06:16.690 --> 06:20.260
안도의 한숨을 내쉬네요
06:20.260 --> 06:22.630
데이터 큐레이션을 통과했어요
06:22.630 --> 06:27.460
마지막 단계는 마무리하고 허브에 업로드 하는 거죠
06:27.460 --> 06:33.520
가장 먼저 할 일은 데이터 세트를 섞는 겁니다 가장 싼 순서대로 분류하면
06:33.520 --> 06:35.710
전혀 좋지 않으니까요
06:35.710 --> 06:38.650
먼저 잘 뒤섞인 데이터 집합이 필요해요
06:38.800 --> 06:44.350
먼저 무작위 씨앗을 설정했어요 항상 정확히 같은 데이터로 작업하도록 확실히 하려고요
06:44.350 --> 06:50.230
그래야 제가 하려는 것과 정확히 같은 걸 복제해서 같은 결과를 얻을 수 있으니까요 get
06:50.260 --> 06:51.340
it
06:51.520 --> 06:59.290
랜덤을 사용해요 섞어서 섞은 다음 첫 400,000개를 훈련 데이터로 가져가요
06:59.290 --> 07:01.900
그 다음 2000년은 테스트 세트죠
07:01.930 --> 07:03.220
이제 알겠어요
07:03.250 --> 07:05.230
데이터 과학자들은 울죠
07:05.260 --> 07:11.380
보통 테스트 데이터는 최소 5%에서 10%가 필요해요
07:11.470 --> 07:16.270
얼마든지 그렇게 하셔도 돼요 여기 데이터 포인트가 8,000개
07:16.300 --> 07:17.350
있거든요
07:17.350 --> 07:21.490
더 많은 샘플을 채취해 더 큰 데이터를 얻을 수도 있죠
07:21.520 --> 07:27.310
우리한테는 필요 없을 거예요 왜냐하면 테스트에 몇백 개만 사용할 거니까요
07:27.310 --> 07:30.160
그럼 아주 정확한 결과가 나오죠
07:30.160 --> 07:34.090
계속 더 많이 시험하면 결과도 감소하죠 Get it
07:34.090 --> 07:39.340
이 프로젝트의 목적에는 충분하지만 최선의 관행이죠
07:39.370 --> 07:40.630
최선의 관행인지는 모르겠어요
07:40.660 --> 07:47.620
일반적인 관행은 적어도 5%를 테스트 데이터 집합에 비축하는 것이고 때로는 5%를
07:47.620 --> 07:52.810
테스트에 비축하고 5%를 유효성 검증에 비축하는 것이죠
07:52.870 --> 07:58.930
이 목적에는 필요 없지만 원한다면 얼마든지 할 수 있어요 관리할 추가 데이터
07:58.930 --> 08:00.880
집합으로 가질 수 있죠
08:01.030 --> 08:02.300
어쨌든 그렇게 할 거예요
08:02.300 --> 08:03.320
전부 뒤섞을 거예요
08:03.320 --> 08:08.630
훈련 데이터 400,000개와 테스트 세트 2000개로 나뉘었죠
08:08.660 --> 08:14.480
그럼 첫 번째 테스트 요소를 보죠
08:14.480 --> 08:19.640
여러분이 기억하는 테스트 프롬프트는 답을 공개하지 않은 프롬프트죠
08:19.640 --> 08:24.680
이게 전송될 프롬프트∙∙∙ 죄송합니다 훈련 프롬프트를 먼저 보고 테스트 프롬프트를
08:24.680 --> 08:25.310
보죠
08:25.340 --> 08:27.470
훈련 시기가 해답을 갖고 있어요
08:27.470 --> 08:31.310
훈련용 문자가 가장 가까운 비용으로 얼마가 드는지를 보여주죠
08:31.310 --> 08:35.120
델포이 연료 펌프 모듈이에요
08:35.390 --> 08:37.430
그리고 네
08:37.460 --> 08:37.910
어때요?
08:37.910 --> 08:39.470
227달러예요
08:39.470 --> 08:41.300
전 전혀 몰랐을 거예요
08:41.300 --> 08:47.450
이건 훈련의 일부로 LM으로 보내질 것의 예입니다 설명과
08:47.450 --> 08:50.240
가격이 포함돼 있거든요
08:50.480 --> 08:54.380
테스트 프롬프트를 보죠
08:54.410 --> 09:01.280
테스트 프롬프트는 사용될 뭔가를 보여줄 겁니다 설명은 있지만
09:01.280 --> 09:02.990
가격은 없죠
09:02.990 --> 09:07.400
이게 테스트 세트의 첫 번째 항목이에요
09:07.400 --> 09:09.350
자, 됐어요
09:09.470 --> 09:17.960
첫 250가지 테스트 포인트들의 가격 분배를 빠르게 살펴봅시다. 왜냐하면 이 포인트들은 모델
09:17.960 --> 09:22.430
테스트에 가장 많이 사용되는 포인트들이거든요.
09:22.430 --> 09:26.750
다양한 가격대가 잘 분포돼 있어요
09:26.780 --> 09:33.410
높은 영역에서는 이 모델이 비싼 물건을 다룰 수 있는지 테스트할 것들이 많아요
09:33.410 --> 09:41.360
그리고 다수가 저렴한 제품으로 테스트 데이터에 다양한 가격대가 포함되어
09:41.360 --> 09:42.530
있죠
09:43.340 --> 09:51.650
자, 마지막으로 이제 이걸 일련의 훈련과 테스트 프롬프트로 바꿀게요
09:51.650 --> 09:58.910
방금 본 테스트 프롬프트와 가격표를 뽑아내는 거죠
09:59.390 --> 10:03.590
이 코드는 포옹하는 얼굴에 업로드 돼요
10:03.620 --> 10:10.820
안는 얼굴 허브에 적합한 데이터셋 객체로 바꿀 겁니다 데이터셋에 대한 Fromex를 호출하고
10:10.820 --> 10:14.330
dataset 독감에 넣는 거죠
10:15.050 --> 10:22.940
마지막으로 이 라인은 데이터 세트를 안아주는 페이스 허브에 업로드 합니다 계속 사용하거나
10:22.940 --> 10:26.000
앞으로 다운로드 할 수 있도록요
10:26.000 --> 10:33.110
get me fine 튜닝이 끝나면요 하지만 이미 작동했으니 실행하진 않을 거예요
10:33.110 --> 10:35.300
그리고 이건 당신의 사용자이름을 입력하세요.
10:35.300 --> 10:46.100
업로드해 놨어요, 제 어, 죄송합니다 제 사용자 이름에 업로드해 놨어요
10:46.100 --> 10:51.800
그렇게 데이터를 검색할 수도 있어요
10:51.830 --> 10:55.820
이 모든 데이터 큐레이션을 합선시키고 싶다면요 그런 일은 없길 바라지만요
10:56.210 --> 11:07.230
마지막으로 이 기차를 돌려서 피클 파일로 만들어 볼게요
11:07.230 --> 11:12.270
절여서 파일에 넣을 거예요 앞으로 로드할 수 있게요 목록 작성하는
11:12.300 --> 11:16.050
이 복잡한 과정을 다시 거칠 필요가 없도록요
11:16.050 --> 11:23.520
파이썬 을 잘 아신다면 파이썬 을 파일에 덤프하는 아주 쉬운 방법이에요
11:23.520 --> 11:28.710
이제 실행하면 새 파일이 두 개 생기죠 test.pickle과 Tack.pickle이요
11:28.710 --> 11:32.340
트레이닝과 테스트 데이터 세트를 포함하죠
11:33.090 --> 11:36.900
이로써 데이터 큐레이션을 마쳤어요
11:36.900 --> 11:44.820
데이터 집합을 더 살펴보고 확인하기 위해 이 작업을 진행할 텐데요. 서로
11:44.970 --> 11:53.220
다른 데이터 포인트를 토큰화하는 작업입니다. 그러면 항상 세 자릿수가 하나의
11:53.220 --> 11:59.490
토큰으로 토큰화되고 토큰의 감각을 얻을 수 있죠.
11:59.820 --> 12:03.720
그럼 마무리로 슬라이드로 다시 만나죠