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.
 
 

625 lines
17 KiB

WEBVTT
00:00.620 --> 00:03.530
이제 데이터 세트를 큐레이팅할 때가 됐어요
00:03.530 --> 00:09.110
어떻게 할 거냐면요 얼굴을 안아서 얻은 각각의 데이터 포인트를 가지고
00:09.140 --> 00:14.780
파이썬 객체로 변환할 겁니다 우리가 생성할 클래스로 항목이라고 부르는
00:14.780 --> 00:16.430
객체죠
00:16.430 --> 00:22.310
다른 모듈 항목을 셋업하는 건 정말 중요해요 파이썬 코드를 이용해서 이 클래스를 만들었습니다
00:22.310 --> 00:29.450
주피터 노트북이 아니라 파이썬 코드 모듈에서 다루었습니다 여러 곳에서 다시 사용할 수 있습니다
00:29.450 --> 00:35.630
주피터 노트북에 코드가 너무 많아서 어지럽지 않도록 말이죠
00:35.630 --> 00:42.770
데이터 머깅을 위한 복잡한 코드를 포함하고 있습니다 데이터를 정리하기
00:42.770 --> 00:47.750
위한 코드요 이 모듈을 보여드리고 말씀드릴게요
00:47.750 --> 00:52.520
하지만 비트를 좀 더 자세히 살펴보고 더 자세히 이해하는
00:52.520 --> 00:54.050
연습이 있어요
00:54.110 --> 00:59.870
말씀드렸듯이 고유한 모듈 항목에 있어요 급이 다른 품목을 정의하죠
00:59.890 --> 01:05.980
시작하기 전에 짚고 넘어가야 할 것은 get mebodel이라는 상수를 설정하는
01:06.010 --> 01:11.560
것부터 시작한다는 점이에요. 180억 가지 변형 기본 모델이죠
01:11.920 --> 01:17.380
라마 모델이 이 작업과 무슨 상관이냐고 하실지도 모르겠네요
01:17.380 --> 01:20.080
오픈 소스는 다음 주에 공개해요
01:20.080 --> 01:23.560
이번 주에는 개척 시대 모델을 미세 조정할 거예요
01:23.950 --> 01:25.330
이게 그 답이에요
01:25.330 --> 01:33.460
정해진 개수의 토큰 안에 들어가도록 데이터 세트를 만들 겁니다 라마 토큰라이저의
01:33.460 --> 01:36.970
최대 토큰으로요
01:36.970 --> 01:41.200
그렇게 하는 이유는 오픈 소스 모델을 사용할 때 더 저렴하고
01:41.200 --> 01:43.900
쉽게 훈련할 수 있기 때문이죠
01:43.900 --> 01:48.610
앞서 말했듯이 개척자 모델을 쓰면 비용이 줄어들 거예요 모두가 같은 조건에서
01:48.610 --> 01:50.530
작업했으면 좋겠어요
01:50.530 --> 01:56.710
프롬프트를 만들고 특정 수의 토큰에 수정할 때 프런티어 모델과 오픈
01:56.710 --> 02:01.690
소스 모델이 같은 양의 정보를 얻도록 해야 해요
02:01.690 --> 02:09.190
예산이 더 많고 더 큰 GPU로 훈련할 능력이 있거나 프론티어 모델로 예산을 더 쓸 수 있다면
02:09.190 --> 02:14.260
컷오프를 연장해서 텍스트를 더 많이 쓸 수 있어요
02:14.260 --> 02:19.570
하지만 제 생각엔∙∙∙ 보시면 아시겠지만 각각의 데이터 포인트에 텍스트가 많아요
02:19.570 --> 02:25.270
개척 시대 모델과 오픈 소스 모델에 완벽하게 대응할 수 있어요
02:25.870 --> 02:30.670
어쨌든 그래서 llama 모델을 살펴보는 겁니다 토큰라이저를
02:30.670 --> 02:34.660
사용할 테니까요 글자의 수가 맞는지 확인하려고요
02:34.840 --> 02:42.280
클래스 항목은 각각의 항목은 제목을 갖게 되고 가격은 물론 어플라이언스나
02:42.310 --> 02:49.000
토큰 개수 같은 카테고리로 구성되죠 토큰은 몇 개인가?
02:49.000 --> 02:55.990
가장 중요한 건 프롬프트입니다 LLM에 입력될 텍스트죠 훈련하거나
02:56.020 --> 03:00.660
테스트할 때 사용될 거예요
03:01.770 --> 03:07.080
간단히 말씀드리면, 이 코드를 직접 훑어보시고 스스로 만족하셔야 합니다.
03:07.080 --> 03:13.950
제가 나쁜 짓을 하는 게 아니고 이 모든 게 좋은 일이고, 건전한 가정 환경과, 실밥을 치우는
03:13.950 --> 03:15.810
일이라고요.
03:15.810 --> 03:22.680
스크럽 디테일이라는 함수가 있는데 모델이 집중하기 힘들 것 같은 텍스트에서 뭔가를 제거하는
03:22.710 --> 03:24.360
기능이에요
03:24.390 --> 03:27.030
배터리도 포함해서요
03:27.150 --> 03:33.060
다른 것들도 보이는데 제조업체마다 이름이 있어요
03:33.060 --> 03:39.870
관련 없는 게 많거나 크게 관련 없는 게 많죠 소중한 토큰을 다 쓰는
03:39.900 --> 03:44.310
것보다 제거하는 게 나을 것 같았어요
03:45.030 --> 03:52.410
메서드 스크럽이 있어요 이상한 캐릭터를 제거하고 여러 공간을 하나로
03:52.440 --> 03:59.990
합치는 거죠 레벡스 닌자를 위한 레벡스 스캐너를 사용해서요
04:00.080 --> 04:03.500
당신한텐 쉬운 일이겠죠
04:03.530 --> 04:11.450
다른 분들을 위해 이건 스크립트의 종류 중 하나로 재사용할 수 있습니다 문자열의 다양한 문제를
04:11.450 --> 04:13.280
제거하는 방법으로요
04:13.280 --> 04:17.840
주피터 공책으로 시험하면서 틀에 적힌 대로 작동하는지 확인할 수도
04:17.870 --> 04:18.680
있어요
04:19.070 --> 04:24.890
이 라인을 언급할게요 제가 넣은 추가 트릭이거든요 특정 경우에 유용하죠
04:24.890 --> 04:29.270
이건 데이터를 깊이 파고들어야만 발견할 수 있는 일종의
04:29.270 --> 04:30.500
예죠
04:30.530 --> 04:38.180
아마존에는 설명서에 숫자를 인용하는 제품이 많더라고요
04:38.180 --> 04:42.650
부품 번호와 호환 가능 어쩌고저쩌고요
04:42.650 --> 04:50.720
그런 부분 번호는 대개 8자리, 8문자 길이 혹은 더 길고 문자와 숫자를 포함하죠
04:50.720 --> 04:56.570
여기서 문제는 토큰으로 바뀔 때 토큰을 많이 쓴다는 겁니다 왜냐하면 토큰은
04:56.600 --> 04:59.360
어떤 어휘에도 없기 때문이죠
04:59.360 --> 05:06.500
결국 여러분은 토큰을 전부 쑤셔 넣어야 합니다 토큰에 대한 무제한 수용력을 부분 번호를 나타내는
05:06.500 --> 05:11.330
토큰으로 채우는 거죠 우리 모델과는 전혀 상관없는 거예요
05:11.360 --> 05:19.190
이 줄의 역할은 8자 이상의 글자가 있고 그 안에 숫자가 있는 단어가 있다면
05:19.190 --> 05:23.180
그 단어를 삭제하라는 거죠
05:23.180 --> 05:24.950
주의를 분산시킬 거예요
05:25.160 --> 05:30.440
이걸 강조하는 이유는 다시 말씀드리지만 이런 발견은 데이터를 깊이 파고들어야만
05:30.440 --> 05:32.720
발견할 수 있어요
05:32.750 --> 05:37.190
많은 예시를 보고 이런 일이 일어나는 걸 보고 이걸 발견하게 되죠
05:37.190 --> 05:39.410
이걸 시도해볼 기회가 있어요
05:39.410 --> 05:44.630
모델을 재실행하면 지난 몇 주 동안 한두 번 했던 것 같은데 향상된
05:44.930 --> 05:51.860
걸 발견하게 됩니다 데이터가 더 풍부해지고 정확도도 더 높아졌거든요
05:52.460 --> 05:56.080
그게 중요한 과정이에요
05:56.530 --> 06:06.040
그리고 메서드 PARSE를 사용하는데 데이터 포인트를 취하고 다양한 스크래핑과
06:06.040 --> 06:10.180
스트러핑을 해서 프롬프트로 바꾸죠
06:10.420 --> 06:14.890
프롬프트와 함께 그 안의 토큰 개수도 세죠
06:14.890 --> 06:17.440
잠시 후에 프롬프트를 보실 거예요
06:17.440 --> 06:23.110
프롬프트는 LLM으로 전달될 것인데 get을 완료하도록 요청될 거예요
06:23.230 --> 06:25.510
비용은 얼마나 드는지 묻네요
06:25.510 --> 06:27.490
비용이 들 거예요
06:28.390 --> 06:31.870
프롬프트를 볼 수 있는 기능이 있어요
06:31.900 --> 06:36.580
테스트 프롬프트라는 것도 있어요 프롬프트와 같지만
06:36.580 --> 06:38.410
답을 보여주진 않죠
06:38.440 --> 06:42.370
훈련 중에 사용될 프롬프트 안에 답이 있어요
06:42.370 --> 06:48.160
그래서 훈련을 하다 보면 시험 시간에 답을 예측하는 능력이 점점 더 좋아져요. Get it.
06:48.160 --> 06:50.620
답을 보여드리기 싫어요
06:50.620 --> 06:54.540
텍스트를 주고 올바른 답이 나오는지 봐야죠
06:54.540 --> 06:58.680
훈련과 테스트 프롬프트가 두 개 있는데요
06:58.710 --> 07:03.660
나중에 데이터를 훈련 세트와 테스트 세트로 나누는 걸 얘기할 거예요
07:03.900 --> 07:05.520
더 보게 될 거예요
07:05.550 --> 07:07.350
나중에 더 명확해질 거예요
07:08.160 --> 07:10.740
이게 아이템 클래스죠
07:10.740 --> 07:13.650
이걸 좀 더 자세히 보세요
07:13.650 --> 07:17.880
하지만 걱정 마세요 이 물건들을 보면서 많은 시간을 보낼 테니까요
07:17.880 --> 07:21.840
Get it으로 이 기능성 기능에 대한 좋은 정보를 얻을 수 있어요
07:21.990 --> 07:30.720
이제 여기서 할 것은 이 아이템 객체를 만드는 겁니다 데이터 집합에 있는 모든
07:30.720 --> 07:33.120
것에 대해서요
07:33.450 --> 07:36.090
지금 실행해보죠
07:37.110 --> 07:40.620
이건 그 코드를 통해 실행되고 있어요
07:40.620 --> 07:43.200
문지르는 거예요
07:43.200 --> 07:45.540
파트 넘버 같은 걸 제거하는 거죠
07:45.540 --> 07:51.540
이상한 캐릭터들을 공간으로 대체하는 거죠
07:51.870 --> 08:00.140
프롬프트를 생성해서 여러 개의 토큰에 맞게 하는 것이죠
08:00.140 --> 08:08.060
현재 모든 게 진행 중이고 4만여 개의 가전제품을 위한 일이 될 거예요
08:08.060 --> 08:11.450
가격이 붙은 가전제품요
08:11.570 --> 08:14.870
이제 마무리할 때가 된 것 같아요
08:17.240 --> 08:20.990
다 익는 동안 제가 볼 준비를 할게요
08:20.990 --> 08:21.680
다 됐어요
08:21.830 --> 08:22.490
됐어요
08:22.490 --> 08:26.750
첫 번째 것을 보도록 하죠
08:28.040 --> 08:33.440
첫 번째 키트는 랙 롤러 스터드 조립 키트예요
08:33.440 --> 08:37.580
아미의 풀 팩이 어쩌고저쩌고 부품을 대체한대요
08:37.610 --> 08:43.940
이게 그 항목의 제목이고 가격은 9달러예요
08:43.940 --> 08:46.910
그 항목의 제목에서 그걸 볼 수 있어요
08:46.910 --> 08:50.390
파트 번호가 있어요 긴 파트 번호요
08:50.420 --> 08:51.260
다른 것도 보죠
08:51.260 --> 08:52.980
첫 번째 항목을 보죠
08:53.760 --> 08:56.310
첫 번째 항목이죠
08:56.340 --> 09:00.750
호환되는 A 도어 피벗 블록 호환이요
09:00.780 --> 09:01.680
켄모어 키친에이드요
09:01.680 --> 09:03.480
메이택 월풀 냉장고예요
09:03.510 --> 09:06.090
다시 말하지만 많은 파트 번호가 있어요
09:06.300 --> 09:18.390
이제 어떻게 되는지 보죠 이 함수가 생성된 항목을 프롬프트에서 볼게요
09:18.390 --> 09:20.070
다시 해 봐요
09:21.060 --> 09:22.260
프린트하죠
09:22.260 --> 09:25.740
그래서 멋진 빈 행과 함께 형식이 나타나요
09:28.410 --> 09:30.930
프롬프트가 말하는 게 이거예요
09:30.930 --> 09:33.570
이건 얼마 정도 할까요?
09:33.600 --> 09:35.640
그 얘기는 최대한 많이 할게요
09:35.670 --> 09:36.810
나중에 봐요
09:36.810 --> 09:42.300
왜 그렇게 했는지 장단점이 뭔지 얘기해 보죠
09:42.300 --> 09:45.210
이건 얼마 정도 하나요?
09:45.960 --> 09:52.780
여기 보면 한 줄은 제목이고 한 줄은 설명이에요
09:52.780 --> 09:58.870
여러분이 보실 것은 이 부분 번호가 이 설명에서 뽑힌 겁니다 잘려진
09:58.870 --> 10:00.970
걸 보실 수 있죠
10:00.970 --> 10:03.760
패의 개수가 다 되면요
10:03.760 --> 10:09.100
제가 보관한 건 180토큰이 조금 안 돼요
10:09.100 --> 10:10.930
여기서 볼 수 있죠
10:11.110 --> 10:16.300
이걸 읽어 보면 그 물건에 대한 풍부한 설명이 나와요
10:16.300 --> 10:18.730
훈련에는 충분할 거예요
10:19.330 --> 10:21.760
다음 사진을 보죠
10:22.000 --> 10:25.570
이건 물론 피벗 블록이고요
10:25.600 --> 10:27.130
도어 피벗 블록이에요
10:27.160 --> 10:33.070
100번과 제빙기 기계요
10:33.190 --> 10:35.650
삼성 부품이에요
10:36.100 --> 10:41.200
여기 보시면 부품과 대체 부품들이 많이 들어 있어요
10:41.200 --> 10:46.990
아까도 보셨듯이 이 공간은 저렴한 교체 부품
10:46.990 --> 10:50.400
때문에 꽉 차게 될 거예요
10:50.400 --> 10:56.460
하지만 좀 놀랍게도 이 부분은 118달러예요 그리 간단한 부분이 아니죠
10:56.880 --> 11:02.310
이 삼성 조립식 아이스메이커 메크는 필요 없었으면 좋겠어요
11:03.180 --> 11:09.120
자, 이건 훈련 시간을 보는 건데요
11:09.120 --> 11:12.330
훈련할 때 통과시킬 것들이에요
11:12.330 --> 11:20.940
모델에게 이걸 주고 훈련 기간 동안 이 가격을 어떻게 재현할지 배우게
11:20.940 --> 11:22.830
될 거예요
11:22.830 --> 11:24.810
시험 시간에는요?
11:24.810 --> 11:29.010
모델이 효과가 있는지 평가할 때는 어떨까요?
11:29.010 --> 11:35.880
100번 아이템을 봅시다 테스트 시간에 어떻게 하는지 보죠
11:35.880 --> 11:37.260
그러죠
11:39.660 --> 11:42.600
이걸 모델로 제공하세요
11:42.630 --> 11:46.590
똑같은데 여기서 끝나죠
11:46.620 --> 11:54.420
물론 그 아이디어는 모델은 이것의 정말 많은 예들을 봤을 거라는 거죠 정말 다양한
11:54.420 --> 12:01.980
다양한 항목을 다루고 런타임에 이걸 다시 보여드릴 때 어떻게 완료하는지 알
12:01.980 --> 12:09.120
겁니다 이 설명을 기반으로 미묘한 이해를 잘해서 이 가격을 완료하도록
12:09.120 --> 12:10.740
돕겠죠
12:12.030 --> 12:12.960
좋아요
12:12.990 --> 12:22.230
이 아이템들에 토큰이 얼마나 많은지 봅시다 다른 다이어그램을 이용해서요
12:22.230 --> 12:28.860
가장 많은 패가 178개인 걸 알 수 있어요
12:28.890 --> 12:32.850
180까지 못 올라가고 평균 176까지 가죠 Get it
12:32.850 --> 12:35.010
정말 꽉 들어찼어요
12:35.340 --> 12:43.650
그래서 일반적으로 이 정도 양의 정보를 가진 데이터 세트를 선택하고 다듬었어요
12:43.650 --> 12:47.250
180냥까지 나올 거예요
12:47.250 --> 12:51.470
훈련할 때 큰 도움이 될 것입니다 아이템을 지원하는
12:51.470 --> 12:57.830
데 필요한 최대 토큰의 수를 알 수 있고 프론티어 모델을 사용할 때 비용을 절감할
12:57.830 --> 13:00.350
수 있기 때문이죠
13:01.640 --> 13:02.450
13:02.450 --> 13:09.800
그런 다음 우리가 선택한 이 아이템의 가격 분배를 다시 한 번 보죠
13:10.160 --> 13:11.450
시작할게요
13:12.020 --> 13:16.190
평균 가격이 100달러예요
13:16.340 --> 13:21.560
최고 11,000달러까지 받을 수 있어요
13:21.560 --> 13:29.450
잡초를 제거하는 과정에서 엄청나게 비싼 전자레인지를 제거했어요
13:29.570 --> 13:31.760
하지만 여전히 꽤 비싼 걸 사야 해요
13:31.790 --> 13:36.440
제가 위에 쓴 걸 복제하면 그게 뭔지 알 수 있어요
13:36.590 --> 13:43.640
지금도 보시다시피 아주 저렴한 물건 쪽으로 유통되고 있어요 우리가 본
13:43.640 --> 13:46.730
것처럼 부품을 대체하는 거죠
13:46.730 --> 13:51.010
다음에 조사할 또 다른 지역이네요
13:51.910 --> 13:57.790
이 데이터 집합을 시각화하는 건 앞으로 자주 하게 될
13:57.790 --> 13:58.810
거예요
13:58.840 --> 14:01.420
다양한 방식으로 많은 걸 하게 될 거예요
14:01.450 --> 14:06.280
맷플로틀리브의 다양한 기능을 활용할 수 있어서 좋아요
14:06.280 --> 14:12.100
그중 하나는 다양한 색상의 차트를 만들 수 있다는 거죠
14:12.100 --> 14:16.660
그 색들이 뭔지 알고 싶으시면 Mattplotlib 페이지로
14:16.660 --> 14:23.110
연결되는 링크를 달아 두었습니다 사용할 수 있는 다양한 색 배열을 설명하고 있습니다 xkcd
14:23.110 --> 14:25.360
색상도 포함해서요
14:25.360 --> 14:27.610
그걸 살펴보는 건 좋은 일이죠
14:27.760 --> 14:32.680
이건 책갈피로 남기기 좋은 작은 단서예요
14:32.710 --> 14:38.800
오늘 팁을 하나 더 드리자면 지금 하셔야 할 일은 아이템 클래스를
14:38.830 --> 14:40.570
보시는 거예요
14:40.570 --> 14:42.100
제가 너무 빨리 지나갔어요
14:42.100 --> 14:49.660
데이터 머징 스크러빙이 좀 더 섬뜩하기 때문이죠 실제 데이터 예제에 근거해 데이터를
14:49.660 --> 14:53.770
최대한 고품질로 만드는 거예요
14:54.130 --> 14:59.680
제가 너무 자세히 설명해서 지루하지 않으셨다면 이제 직접 들어가서 자세히 보시리라
14:59.680 --> 15:01.780
믿었기 때문일 거예요
15:01.810 --> 15:10.510
JupyterLab을 이용해 이런 기능이 어떻게 데이터를 정화했는지 조사하고 이해하세요
15:10.510 --> 15:18.310
덕분에 약 180개의 토큰이 생겼습니다 각 데이터 포인트에 대한 풍부한 설명과
15:18.310 --> 15:26.890
단어들이죠 각각의 항목은 미래에 훈련과 테스트 프롬프트로 사용될 거예요
15:27.220 --> 15:34.000
다음에는 더 많은 제품을 결합하도록 확장할 거예요
15:34.000 --> 15:39.700
이 데이터 모음이 크다고 생각했다면 아직 아무것도 못 본 거예요
15:39.700 --> 15:41.260
그러니 준비하세요
15:41.260 --> 15:45.730
하지만 먼저 슬라이드 몇 개만 더 보고 마무리하죠