From the uDemy course on LLM engineering.
https://www.udemy.com/course/llm-engineering-master-ai-and-large-language-models
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.
265 lines
7.1 KiB
265 lines
7.1 KiB
WEBVTT |
|
|
|
00:00.680 --> 00:08.750 |
|
그래서 앞으로는 모델을 훈련하고 미세 조정하고 미세 조정 모델을 만들 거예요 |
|
|
|
00:08.750 --> 00:15.170 |
|
이제 제가 할 일은 미래에 저장해둔 것 중 하나를 로드하는 겁니다 무슨 말인지 |
|
|
|
00:15.170 --> 00:16.160 |
|
아시겠죠 |
|
|
|
00:16.250 --> 00:21.230 |
|
Get it로 건축물을 보고 감을 잡을 수 있어요 |
|
|
|
00:21.320 --> 00:24.380 |
|
기본 모델이 아닌 걸 로드해 그걸 하죠 |
|
|
|
00:24.440 --> 00:31.910 |
|
미리 훈련받은 인과적 LLM용 자동차 모델 말고 페프트 모델요 매개 변수 |
|
|
|
00:31.910 --> 00:35.630 |
|
효율적인 미세 조정 모델이죠 |
|
|
|
00:35.630 --> 00:39.350 |
|
기본 모델이라고 하죠 여기 있는 거요 |
|
|
|
00:39.350 --> 00:40.760 |
|
미세 튜닝 모델이에요 |
|
|
|
00:40.760 --> 00:44.570 |
|
제가 이걸 한 후 저장한 모델 이름이에요 |
|
|
|
00:44.570 --> 00:45.950 |
|
로라 파인 튜닝이에요 |
|
|
|
00:45.950 --> 00:48.920 |
|
어떤 모습인지 보여 드리려고 이렇게 하는 거예요 |
|
|
|
00:48.950 --> 00:54.440 |
|
이건 아주 빨리 달릴 수 있어요 비교적 작으니까요 |
|
|
|
00:54.590 --> 00:56.870 |
|
크기를 한번 보죠 |
|
|
|
00:56.870 --> 01:02.270 |
|
메모리 공간은 기가바이트예요 |
|
|
|
01:02.270 --> 01:06.170 |
|
이것과 아주 비슷하니 익숙하실 거예요 |
|
|
|
01:06.320 --> 01:10.940 |
|
100MB 정도 차이가 나요 |
|
|
|
01:10.940 --> 01:12.440 |
|
한번 보죠 |
|
|
|
01:13.250 --> 01:18.470 |
|
이게 그 구조예요 |
|
|
|
01:18.740 --> 01:22.340 |
|
이제 그 장난은 안 쳐요 |
|
|
|
01:22.370 --> 01:24.530 |
|
전에 봤던 것과는 확실히 달라요 |
|
|
|
01:24.530 --> 01:26.360 |
|
지금 상황을 말씀드리죠 |
|
|
|
01:26.360 --> 01:32.480 |
|
우선, 여기 보이는 모든 건 라마가 있는 32개의 |
|
|
|
01:32.480 --> 01:35.420 |
|
층까지 똑같아요 |
|
|
|
01:35.420 --> 01:48.050 |
|
이제 주의력 레이어가 나왔네요 Q 프래, K 프래, V, O 프래, O가 |
|
|
|
01:48.320 --> 01:49.340 |
|
있죠 |
|
|
|
01:49.340 --> 01:53.930 |
|
여기 보시면 각각의 베이스 레이어가 있어요 |
|
|
|
01:53.930 --> 01:57.410 |
|
로라 A와 로라 B도 있어요 |
|
|
|
01:57.500 --> 02:05.380 |
|
여기가 아까 말한 A와 B 행렬들이에요 여기 32번 |
|
|
|
02:05.380 --> 02:07.060 |
|
보이죠? |
|
|
|
02:07.060 --> 02:11.260 |
|
제가 전에 말했던 로라 등급이에요 |
|
|
|
02:11.290 --> 02:14.050 |
|
32급 행렬들이에요 |
|
|
|
02:14.200 --> 02:16.270 |
|
네, 맞아요 |
|
|
|
02:16.300 --> 02:24.160 |
|
이 매트릭스 수학이 어떻게 적용되는지 잘 아신다면 32차원적 개념을 서로 |
|
|
|
02:24.160 --> 02:32.050 |
|
곱할 수 있도록 설계된 것을 보실 수 있습니다 이 기본 레이어에 적용할 수 있도록 |
|
|
|
02:32.050 --> 02:39.130 |
|
말이죠 그리고 이 기본 레이어에서는 약간의 변화를 줄 수 있죠 |
|
|
|
02:39.130 --> 02:44.170 |
|
물결무늬를 만들고 있어요 이론에 빠져들게 하려고요 비트들을 |
|
|
|
02:44.170 --> 02:45.760 |
|
곱할 거예요 |
|
|
|
02:45.790 --> 02:46.720 |
|
로라 A와 로라요 |
|
|
|
02:46.750 --> 02:53.890 |
|
B와 알파를 함께 배율 요인으로 선택하고 델타로 적용하는 거죠 |
|
|
|
02:53.890 --> 02:59.890 |
|
이 기본 층 위에는 드롭아웃이라는 하이퍼파라미터도 있어요 |
|
|
|
03:00.010 --> 03:01.870 |
|
그 얘긴 나중에 하죠 |
|
|
|
03:01.870 --> 03:04.360 |
|
이번 주에 얘기했던 세 가지 중 하나가 아니죠 |
|
|
|
03:04.990 --> 03:07.180 |
|
이 기능은 여기서 몇 번 보실 거예요 |
|
|
|
03:07.180 --> 03:13.060 |
|
네 개의 목표 모듈 중 다른 모듈을 보면 전부 로라 A와 로라 B가 |
|
|
|
03:13.060 --> 03:20.020 |
|
여기 있는데 다시 말씀드리면 로라 A와 로라 B가 있고 마지막으로 로라 |
|
|
|
03:20.020 --> 03:28.660 |
|
A와 로라 B가 여기 로라 A와 로라 B가 있죠 여기서 어댑터 매트릭스가 라마 경계의 구조에 |
|
|
|
03:28.660 --> 03:36.430 |
|
삽입되어 더 큰 모델을 적용하지만 훨씬 적은 범위에서 적용해요 |
|
|
|
03:36.460 --> 03:42.400 |
|
R 하이퍼파라미터에 명시된 32개의 차원이죠 |
|
|
|
03:43.510 --> 03:45.220 |
|
다른 건 바뀐 게 없어요 |
|
|
|
03:45.220 --> 03:48.880 |
|
다층 과셉트론 층도 정확히 같아요 |
|
|
|
03:49.060 --> 03:51.130 |
|
다른 건 다 똑같아요 |
|
|
|
03:52.090 --> 03:58.720 |
|
다시 한번 말씀드리지만 이 문제에 휘말리지 않으려고 노력해요 하지만 과거를 |
|
|
|
03:58.720 --> 04:06.490 |
|
돌아보면 납득이 돼요 IQ, IQ, IQ, IQ, IQ 4개 행렬에는 치수의 수가 있다는 |
|
|
|
04:06.760 --> 04:07.720 |
|
걸요 |
|
|
|
04:07.720 --> 04:14.530 |
|
각각 로라 A와 로라 B가 있고 매트릭스의 차원을 조합해서 |
|
|
|
04:14.530 --> 04:20.890 |
|
이 어댑터에 있는 무게의 총합을 알려주는 거예요 |
|
|
|
04:20.890 --> 04:25.210 |
|
그 말은 각 층에서 이 4개의 숫자를 합친다는 거죠 |
|
|
|
04:25.210 --> 04:31.990 |
|
32를 곱합니다. 모듈 그룹이 32개니까요. |
|
|
|
04:32.800 --> 04:37.120 |
|
각 매개 변수는 4바이트 숫자죠 |
|
|
|
04:37.120 --> 04:38.350 |
|
32개요 |
|
|
|
04:38.350 --> 04:43.570 |
|
크기를 계산하고 100만으로 나누면 메가바이트로 get이 되죠 |
|
|
|
04:43.870 --> 04:48.580 |
|
이해가 되시는지 모르겠지만 대략적인 건 |
|
|
|
04:48.580 --> 04:55.600 |
|
이해하셨길 바라요 로라 어댑터의 중량을 모두 더하면 총 2,700만 |
|
|
|
04:55.600 --> 05:02.830 |
|
개의 매개 변수가 있고 총 크기는 약 109MB예요 |
|
|
|
05:02.830 --> 05:07.190 |
|
109MB의 2,700만 매개 변수죠 |
|
|
|
05:07.190 --> 05:10.730 |
|
어댑터가 그만큼 크죠 |
|
|
|
05:11.030 --> 05:20.840 |
|
물론 그걸 전체적인 llama 매개 변수가 80억 개인 것과 비교하세요 크기는 32GB죠 |
|
|
|
05:20.840 --> 05:26.450 |
|
여기서 할 일이 많다는 걸 알 수 있어요 매개 변수도 많고 훈련할 것도 많지만 |
|
|
|
05:26.450 --> 05:33.290 |
|
흉물스러운 라마 3에 비하면 아주 작죠 1, 작은 변종도요 |
|
|
|
05:33.290 --> 05:41.360 |
|
이 안에 뭐가 많다는 건 알고 있었어요 무슨 말인지 다시 확인해 보세요 |
|
|
|
05:41.360 --> 05:46.490 |
|
그래도 직감이 돌아올 거예요 저차원 물질을 |
|
|
|
05:46.490 --> 05:53.840 |
|
이용하면 더 큰 건축물에 영향을 줄 수 있지만 크기가 작을수록 |
|
|
|
05:53.840 --> 06:00.320 |
|
비트도 더 적게 조정해야 한다는 거죠 |
|
|
|
06:00.680 --> 06:06.440 |
|
증거를 보여드리자면 이 숫자, 이 109MB는 얼굴을 안는 |
|
|
|
06:06.440 --> 06:09.870 |
|
데 필요한 파라미터의 크기예요 |
|
|
|
06:09.900 --> 06:17.130 |
|
얼굴을 끌어안고 있어요 제가 저장한 로라 어댑터를 보고 있죠 미세 튜닝 모델이요 |
|
|
|
06:17.130 --> 06:18.810 |
|
뭘 찾게 될까요? |
|
|
|
06:18.810 --> 06:22.320 |
|
이걸 보면 안전한 텐서를 찾죠 |
|
|
|
06:22.320 --> 06:26.070 |
|
그게 매개 변수 자체를 저장하는 파일이에요 |
|
|
|
06:26.310 --> 06:31.530 |
|
라마 3을 보시면 알 수 있죠 1번, 32GB로 크게 보이죠 |
|
|
|
06:31.530 --> 06:40.890 |
|
이걸 보면 매개 변수가 109MB인 게 보이죠 여기 추정값과 |
|
|
|
06:40.890 --> 06:42.540 |
|
일치해요 |
|
|
|
06:42.540 --> 06:49.830 |
|
Q 로라 기법으로 세밀하게 조정하고 있는 매개 변수의 크기예요 |
|
|
|
06:50.310 --> 06:55.200 |
|
적어도 직관적으로 어떤 일이 일어나고 있는지 파악하셨길 |
|
|
|
06:55.200 --> 07:01.470 |
|
바랍니다 최적화하는 기가바이트의 데이터 없이도 모델을 미세 조정하는 |
|
|
|
07:01.470 --> 07:05.250 |
|
트릭을 어떻게 구현할 수 있는지도요 |
|
|
|
07:06.000 --> 07:09.720 |
|
이제 마무리로 슬라이드로 돌아가죠
|
|
|