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 그럼 지체 없이 그걸 하러 가죠