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.
 
 

442 lines
12 KiB

WEBVTT
00:00.620 --> 00:02.630
행동할 시간입니다, 여러분
00:02.660 --> 00:04.670
콜랍을 준비했어요
00:04.670 --> 00:06.380
7주 차, 3일째예요
00:06.410 --> 00:08.240
계속 설정해뒀어요
00:08.540 --> 00:12.920
모델 이름을 체크했고 get get get을 할 시간이네요.
00:13.250 --> 00:19.940
첫 번째로 할 일은 얼굴 안기에 로그인하는 거예요
00:19.940 --> 00:23.810
얼굴 안기 로깅에 로그인한 후에는 여러분이 잘 모르는
00:23.810 --> 00:29.480
새로운 걸 할 거예요 무게와 바이어스 플랫폼에 로그인하는 거죠
00:29.690 --> 00:34.940
지난주에 무게와 편향성을 탐구하려고 이미 설정해 두셨을 수도 있지만 그렇지
00:34.940 --> 00:36.830
않다면 아주 간단해요
00:36.830 --> 00:38.150
물론 공짜고요
00:38.150 --> 00:43.550
무게와 편향 W와 B의 점과 I를 연결하세요
00:43.550 --> 00:50.630
무료 계정을 만들면 지팡이 API 키와 무게, 편향 API 키를 찾을 수
00:50.660 --> 00:51.530
있어요
00:51.530 --> 00:58.160
그리고 이 자물쇠 기호로 가서 구글 Colab에 비밀리에 추가해야 해요
00:58.220 --> 01:03.090
그렇게 하기 싫으시면 여기 있는 공책에 직접 입력하셔도
01:03.090 --> 01:03.840
돼요
01:03.840 --> 01:05.850
하지만 비밀을 사용하는 걸 추천해요
01:05.850 --> 01:09.990
무게와 편향을 설정하면 시작할게요
01:10.020 --> 01:15.420
그런 다음 데이터 세트를 로드하고 데이터 집합이 우리가 기대하는 건지 재빨리 확인할 수 있어요
01:15.450 --> 01:18.750
그럴 거라고 예상하고 기대하죠
01:18.780 --> 01:24.870
훈련 데이터 포인트가 얼마나 많은지 봅시다 400,000개를 찾고 있어요 400,000개의
01:24.870 --> 01:27.840
훈련 데이터 포인트죠 아주 많아요
01:27.840 --> 01:29.040
첫 번째를 보죠
01:29.040 --> 01:32.760
우리가 예상하는 대로 만들어 주세요
01:32.760 --> 01:39.570
이 훈련 데이터 포인트의 텍스트는 우리가 기대하는 프롬프트입니다 그리고 여기 가격이 있죠
01:39.570 --> 01:44.340
모델은 필사적으로 다음 토큰을 예측하고 get을 할
01:44.340 --> 01:45.120
거예요
01:45.510 --> 01:47.460
실제 가격도 나와 있어요
01:47.460 --> 01:49.950
가장 가까운 토큰으로 가는 게 보이죠
01:49.950 --> 01:51.660
우리가 찾는다고 말하는 거죠
01:51.660 --> 01:56.550
가장 가까운 1달러의 비용은 얼마일까요? 가장 가까운 1달러의 토큰은 얼마일까요?
01:57.100 --> 01:58.360
대가가 따르죠
01:58.390 --> 01:59.440
진짜 가격요
01:59.440 --> 02:03.940
테스트 데이터 세트를 보면∙∙∙ 오늘 그걸 사용하진 않을 거예요
02:03.940 --> 02:06.400
하지만 테스트 데이터 세트도 아주 유사하다는 걸 기억하실 거예요
02:06.430 --> 02:08.020
아주 작은 차이죠
02:08.020 --> 02:10.480
이다음에는 가격도 없어요
02:10.480 --> 02:12.070
가격은 달러라고만 쓰여 있어요
02:12.280 --> 02:16.360
그런 걸 잘하도록 모델을 훈련하고 있어요
02:16.750 --> 02:17.530
02:17.560 --> 02:23.890
저희가 로그인해서 무게와 바이어스에 로그인하도록 요청하면 무게와 바이어스 프로젝트를
02:23.890 --> 02:24.880
설정해요
02:24.880 --> 02:30.190
이 코드는 사실 이 줄이 있을 필요가 없어요 왜냐하면 얼굴을 안으면 이렇게 되거든요 만약
02:30.190 --> 02:33.160
실행을 시작했는데 이 줄을 실행하지 않았다면요
02:33.160 --> 02:39.700
하지만 가끔 이걸 추가해요 원한다면 매개 변수로 구성된 구성을 통과시킬 수도
02:39.700 --> 02:45.580
있거든요 그럼 무게나 편향에 나타날 추가 특성을 설정할 수 있죠
02:45.580 --> 02:47.470
유용한 정보네요
02:47.560 --> 02:50.290
어쨌든 이걸 실행하든 말든 맘대로 해요
02:50.320 --> 02:51.940
그게 그거죠
02:52.570 --> 02:55.310
네, 이건 아까 봤죠
02:55.310 --> 03:01.310
이 하이퍼 매개 변수를 가지고 4비트 수량화를 위해 비트 및 바이트 구성을 쓸지
03:01.340 --> 03:04.280
8비트 사용할지 결정하는 거죠
03:04.280 --> 03:06.320
물론 50센트짜리로 할게요
03:06.350 --> 03:08.390
계속 내려갈 거예요
03:08.390 --> 03:13.100
이제 토큰라이저와 모델을 로드할 차례예요
03:13.160 --> 03:16.220
토큰마이저를 로드하는 일반적인 코드죠
03:16.220 --> 03:22.670
이것은 상용적인 것이라고 말씀드렸었는데요 트레이너에게 모든 데이터
03:22.700 --> 03:30.950
포인트를 패드하고 싶다고 말합니다 최대 시퀀스 길이를 채우기 위해서요 그리고 문장 끝
03:30.950 --> 03:39.110
토큰들로 모든 것을 패드해야 합니다 글자 집합을 채우기 위해서요 시퀀스에서 토큰의 182개
03:39.110 --> 03:41.630
길이 말이죠
03:41.630 --> 03:44.570
이 토큰으로 오른쪽에 패드하죠
03:44.960 --> 03:52.490
그리고 여기 이 라인이 있는데요 이것은 또 다른 표준 문항으로 패드 토큰 ID를 생성 환경
03:52.520 --> 03:54.690
설정하는 것인데요
03:54.690 --> 04:00.930
이걸 저기에 넣은 이유는 나중에 경고를 막기 위해서예요 이걸 보지 않는다는
04:00.930 --> 04:05.490
경고요 하지만 어쨌든 이걸 받을 것 같아요
04:05.490 --> 04:09.420
그래서 이건 불필요한 경고를 인쇄하는 걸 피하죠
04:10.290 --> 04:17.730
마지막으로 메모리 발자국 프린팅으로 마무리합니다 5가 보이죠 4 비트 버전의 라마는 6GB가
04:17.730 --> 04:24.840
예상됩니다, 3이죠 180억 매개 변수 모델이죠
04:25.560 --> 04:27.300
세부 사항이 하나 더 있어요
04:27.300 --> 04:29.610
데이터 합성기라는 거예요
04:29.670 --> 04:37.020
이런 교묘한 방법이 있어요 훈련을 할 때 가격을 포함한 전체 배열을 통과시키면
04:37.020 --> 04:43.380
모델에서 많은 예시를 볼 수 있고 이런 토큰을 예측하는 능력이 점점
04:43.380 --> 04:46.230
좋아지죠 get it
04:46.230 --> 04:47.940
하지만 비트가 있죠
04:47.940 --> 04:55.260
사실 우린 달러 기호가 나올 때까지 모든 토큰을 예측하는 모델에
04:55.290 --> 04:57.000
관심 없어요
04:57.000 --> 05:00.060
여기 있는 토큰을 예측하는 법을 배우게 하는 거죠
05:00.060 --> 05:05.790
그래서 제품 설명을 얼마나 잘하는지 확인하느라 많은 시간을 들이지 않고
05:05.790 --> 05:10.200
그 가격에 집중할 수 있는 가격을 알아내길 원하죠
05:10.380 --> 05:15.120
그러려면 마스크라는 걸 만들어야 해요
05:15.270 --> 05:21.300
트레이너에게 프롬프트에 대해 배울 필요가 없다고 할 때 컨텍스트를 주기 위해
05:21.300 --> 05:23.310
이걸 고려하길 원하죠
05:23.310 --> 05:27.960
하지만 달러 기호 다음에 나오는 토큰을 예측하는 법을 배우세요
05:27.960 --> 05:34.860
마스크를 세팅하는 건 손이 많이 가고 네, 토큰으로 비트를 만들어야
05:34.860 --> 05:36.390
해요
05:36.390 --> 05:42.000
다행히도 안아주는 얼굴 덕분에 아주 쉬워졌습니다 모든 걸 대신 해주는 작고 실용적인 장치가
05:42.000 --> 05:42.330
있죠
05:42.330 --> 05:46.500
데이터 컬레이터라고 부르는데 오직 완성만을 위한 거죠
05:46.830 --> 05:49.420
LM, 그게 우리예요
05:49.450 --> 05:51.970
이제 완성만 하면 되는 거예요
05:51.970 --> 05:53.380
이 문장요
05:53.380 --> 05:59.800
응답 템플릿이라는 걸 만들어내는 겁니다 아주 거창하게 들리지만 그냥 다음에
05:59.800 --> 06:06.700
뭐가 올지 예측하라는 걸 나타내는 텍스트 덩어리가 무엇인지를 의미하죠
06:06.700 --> 06:10.480
이 경우엔 간단히 가격은 $s 사인이죠
06:10.480 --> 06:13.120
그 다음 일을 예측하게 하고 싶어요
06:13.120 --> 06:18.490
응답 템플릿에 넣고 뭔가를 만드는 거죠 데이터 콜렛터의 완성을
06:18.490 --> 06:23.800
위한 인스턴스요 응답 템플릿에만 전달하는 거죠
06:23.800 --> 06:30.550
토큰라이저라고 알려줘야 해요 그럼 그걸 이용해 트레이너로 가는 마스크된
06:30.550 --> 06:33.730
데이터 최종 세트를 빌드하죠
06:33.730 --> 06:35.230
잠시 후에 보실 수 있어요
06:35.230 --> 06:40.090
이건 아주 간단해요 막후에서 아주 정교한 작업을 하고 있죠 우릴
06:40.090 --> 06:41.320
쉽게 해줘요
06:42.010 --> 06:42.910
좋아요
06:43.270 --> 06:46.750
드디어 마지막 중요한 순간이에요
06:46.750 --> 06:50.090
많은 코드처럼 보이지만 사실 그렇게 많지는 않아요
06:50.270 --> 06:56.090
트레이너를 부를 거예요 두 개의 매개 변수를 통과시켜야 해요
06:56.090 --> 06:58.460
그중 하나는 로라 구성이에요
06:58.460 --> 07:02.960
hyperperameter는 로라 훈련과 관련이 있어요
07:02.960 --> 07:08.390
다른 하나는 감독하에 미세한 조율을 하는 거죠
07:08.390 --> 07:15.140
구성이란 훈련이 어떻게 작동해야 하는지에 대한 일반적인 거죠 제가 한 건 기본적으로 이런 것들을 노트북
07:15.140 --> 07:20.060
상단에 정의한 상수에서 끌어오기 위해 설정했어요 알파나 드롭 아웃 같은
07:20.060 --> 07:24.560
거요 그리고 별로 중요하지 않은 건 사용할 걸 여기 적어뒀어요
07:24.560 --> 07:28.610
이건 중요한 hyperperameter가 아니에요 그냥 특정
07:28.610 --> 07:30.110
값에 설정해야 하는 거죠
07:30.140 --> 07:34.910
로라 매개 변수에 대해 보다시피 알파를 넘깁니다 잘 아는 거죠 다시
07:34.940 --> 07:40.610
정의하진 않을게요 우리가 대상으로 하는 드롭아웃과 대상 모듈이요
07:40.610 --> 07:46.950
그래서 로라 구성과 훈련 매개 변수 SFT 구성에는 실행 이름 같은 게 있어요
07:46.950 --> 07:50.160
몇 개의 편성에서 작업하죠?
07:50.310 --> 07:52.170
아주 중요한 16살요
07:52.200 --> 07:56.610
제 경우에는 T4 박스에 있다면 그럴 수도 있겠네요
07:56.850 --> 08:00.660
그러데이션이 쌓이는 게 문제네요
08:00.750 --> 08:06.360
그리고 우리가 사용하기로 한 코사인 스케줄러의 학습률 같은 것도요
08:06.510 --> 08:12.960
그리고 여기 아래쪽에 허브에 푸시하는 걸 원한다고 돼 있어요
08:13.050 --> 08:19.050
저장할 때마다 즉, 배치 단계 5000개마다 이 모델을 허브에 푸시해야
08:19.050 --> 08:23.520
합니다 그래야 허브에 일련의 저장량을 얻을 수 있죠
08:23.520 --> 08:26.220
각각의 지점에서 모델을 볼 수 있어요
08:26.520 --> 08:32.700
그리고 이 이름을 부여하고 개인의 압류로 하고 싶다고 했어요 좋은 결과를
08:32.700 --> 08:36.570
얻을 때까지 아직 공개하지 않게요
08:37.710 --> 08:40.740
이게 마지막 선이에요
08:40.740 --> 08:43.990
특수 훈련 교관이라는 걸 만들었어요
08:43.990 --> 08:47.230
간단한 것만 몇 개 통과하죠
08:47.260 --> 08:49.630
첫째, 기본 모델을 알아야 해요
08:49.630 --> 08:54.940
섬세하게 조정해야 하는 기본 모델은 llama 3이죠 1번요
08:55.330 --> 08:57.490
2번, 훈련 데이터는요?
08:57.520 --> 08:58.510
그걸 전달해요
08:58.510 --> 09:00.430
로라의 조건은요?
09:00.430 --> 09:07.750
아시다시피 알파, r, 드롭아웃 토큰라이저도 있고 방금 설정한 훈련 매개
09:07.750 --> 09:09.430
변수도 있어요
09:09.430 --> 09:16.120
마지막으로 콜레이터를 통과시킵니다 교활한 객체죠 가격의 $ 기호를 찾아서
09:16.120 --> 09:17.770
알려주는 거예요
09:17.800 --> 09:20.110
그 전은 예측하지 마세요
09:20.440 --> 09:22.570
다음을 걱정하세요
09:22.990 --> 09:27.400
이건 트레이너를 설정하는 거고요
09:27.400 --> 09:36.190
다음 영상에서는 이 선 하나로 미세 튜닝 트레인을 작동시킬 거예요 이 선이 시작이죠
09:36.310 --> 09:37.990
멋진 순간이 될 거예요
09:37.990 --> 09:42.070
그럼 지체 없이 그걸 하러 가죠