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.
328 lines
8.5 KiB
328 lines
8.5 KiB
WEBVTT |
|
|
|
00:00.710 --> 00:06.650 |
|
이제 도표를 보여드리면서 실감이 나게 해드릴게요 특히 출로라와 훈련하는 |
|
|
|
00:06.650 --> 00:11.810 |
|
방법에 대해서요 실제로 연습에서 하는 방법이죠 |
|
|
|
00:12.440 --> 00:16.280 |
|
먼저 포워드 패스 얘기를 해보죠 |
|
|
|
00:16.280 --> 00:20.780 |
|
이 다이어그램은 익숙하실 겁니다 제가 전에 사용한 것과 같거든요 |
|
|
|
00:20.810 --> 00:27.350 |
|
라마 3을 보여줬어요 우리가 수량화한 기본 모델은 80억 |
|
|
|
00:27.380 --> 00:31.340 |
|
매개 변수까지 전부 동결됐어요 |
|
|
|
00:31.340 --> 00:36.350 |
|
훈련의 일환으로 무게는 바꾸지 않을 겁니다 할 일도 메모리도 |
|
|
|
00:36.380 --> 00:43.400 |
|
너무 많고 80억 매개 변수를 변경하고 최적화하는 것도 너무 느리니까요 |
|
|
|
00:43.850 --> 00:50.630 |
|
여기 보면 여러 개의 추가 얼어 있는데요 노란색도 얼어 있지만 |
|
|
|
00:50.630 --> 00:53.180 |
|
대상 모듈을 나타내요 |
|
|
|
00:53.180 --> 00:55.940 |
|
어떤 색을 적용할지를요 |
|
|
|
00:56.330 --> 00:59.210 |
|
로라 어댑터를 가져오죠 |
|
|
|
00:59.210 --> 00:59.790 |
|
저기 있네요 |
|
|
|
00:59.820 --> 01:06.090 |
|
기술적으로 맞는다는 걸 기억하실지 모르겠는데 A와 B라는 어댑터가 |
|
|
|
01:06.090 --> 01:10.380 |
|
두 개 있어요 각각의 대상 모듈에 대해서요 |
|
|
|
01:10.440 --> 01:15.420 |
|
R이 부여한 차원성입니다 알파가 배율 요인인 걸 기억하실 거예요 |
|
|
|
01:15.420 --> 01:21.090 |
|
대상 모듈에 적용되는 방식만큼 간단합니다 알파 곱하기 A |
|
|
|
01:21.120 --> 01:22.380 |
|
곱하기 B죠 |
|
|
|
01:22.710 --> 01:24.450 |
|
그게 다예요 |
|
|
|
01:24.450 --> 01:27.750 |
|
이게 우리가 잘 아는 신경망이에요 |
|
|
|
01:27.780 --> 01:33.270 |
|
이 로라 어댑터로 웨이트를 훈련할 거예요 이건 약 109MB짜리 |
|
|
|
01:33.300 --> 01:36.090 |
|
웨이트예요 |
|
|
|
01:36.780 --> 01:38.280 |
|
네 |
|
|
|
01:38.280 --> 01:40.290 |
|
그럼 어떻게 되죠? |
|
|
|
01:40.290 --> 01:42.900 |
|
왼쪽에 입력 프롬프트가 있어요 |
|
|
|
01:42.900 --> 01:47.760 |
|
가격이 달러라면 다음 토큰이 그 다음이죠 |
|
|
|
01:47.760 --> 01:50.070 |
|
Get in get 예측을 잘해야 해요 |
|
|
|
01:50.520 --> 01:57.780 |
|
전진 패스란 입력 모드를 취하는 건데요 기본적으로 모델로 입력해 |
|
|
|
01:57.780 --> 02:02.400 |
|
다음 토큰을 예측해달라고 하는 거죠 |
|
|
|
02:03.360 --> 02:10.260 |
|
모델로 살펴보면 반대쪽에 예상되는 토큰 가격이 나와요 |
|
|
|
02:10.290 --> 02:11.820 |
|
그다음은 99명이에요 |
|
|
|
02:11.820 --> 02:17.970 |
|
다시 말하지만 우린 llama 3의 단순함을 이용하고 있어요 1번, 사실 99는 토큰 하나일 |
|
|
|
02:17.970 --> 02:19.170 |
|
뿐이죠 |
|
|
|
02:19.320 --> 02:20.400 |
|
아닌 건 아니죠 |
|
|
|
02:20.430 --> 02:23.730 |
|
세 자리 숫자라면 언제나 그렇죠 |
|
|
|
02:23.730 --> 02:27.300 |
|
그게 중요한 건 아니지만 비트가 우릴 좀 단순화시키죠 |
|
|
|
02:27.300 --> 02:29.190 |
|
그게 포워드 패스죠 |
|
|
|
02:29.220 --> 02:29.820 |
|
좋아요 |
|
|
|
02:29.850 --> 02:32.040 |
|
이제 손실 계산을 해 보죠 |
|
|
|
02:32.610 --> 02:33.780 |
|
다시 모였네요 |
|
|
|
02:33.780 --> 02:35.400 |
|
다음 토큰을 예측했어요 |
|
|
|
02:35.400 --> 02:41.400 |
|
이제 모델은 훈련 과정을 살펴볼 수 있어요 |
|
|
|
02:41.400 --> 02:44.010 |
|
우리 같은 경우는 위를 봐요 |
|
|
|
02:44.010 --> 02:45.960 |
|
다음 토큰이 뭐였을까요? |
|
|
|
02:45.960 --> 02:49.080 |
|
훈련 데이터가 있기 때문에 실제 다음 토큰을 알아요 |
|
|
|
02:49.080 --> 02:50.100 |
|
그게 뭐였죠? |
|
|
|
02:50.100 --> 02:51.810 |
|
89라고 치죠 |
|
|
|
02:51.810 --> 02:52.590 |
|
낮았어요 |
|
|
|
02:52.590 --> 02:54.000 |
|
우리가 틀렸군요 |
|
|
|
02:54.000 --> 02:55.800 |
|
10달러 차이예요 |
|
|
|
02:56.070 --> 02:57.370 |
|
틀렸을 수도 있고요 |
|
|
|
02:57.370 --> 03:00.280 |
|
다른 토큰으로 이게 10달러라는 걸 몰라요 |
|
|
|
03:00.280 --> 03:02.350 |
|
다른 토큰이란 걸 알 뿐이죠 |
|
|
|
03:02.710 --> 03:05.650 |
|
그래서 상실감이 좀 있어요 |
|
|
|
03:05.650 --> 03:10.180 |
|
잠시 후에 손실이 무엇인지 설명하고 다른 토큰으로 사용하면 왜 안 되는지 |
|
|
|
03:10.180 --> 03:11.500 |
|
설명해 드릴게요 |
|
|
|
03:11.500 --> 03:16.300 |
|
기술적인 부분을 짚고 넘어가겠지만 일단은 99개까지 예상했다고만 해두죠. Get |
|
|
|
03:16.300 --> 03:16.960 |
|
it! |
|
|
|
03:16.990 --> 03:18.670 |
|
실제 가격은 89예요 |
|
|
|
03:18.700 --> 03:20.050 |
|
손실이 생겼어요 |
|
|
|
03:20.680 --> 03:23.140 |
|
그게 손실 계산이고요 |
|
|
|
03:23.140 --> 03:29.350 |
|
세 번째 단계는 뒤로 가기 패스입니다 사람들이 뒤로 가기나 뒤로 전파라고 부르는 걸 들으실 수 있죠 |
|
|
|
03:29.350 --> 03:30.580 |
|
역증식이죠 |
|
|
|
03:30.760 --> 03:38.470 |
|
백프롭에서는 네트워크를 통해 살펴봅니다. 그러면 얼마나 비트를 |
|
|
|
03:38.470 --> 03:44.650 |
|
약간만 조정하면 얼마나 손실이 발생할까요? |
|
|
|
03:44.650 --> 03:48.850 |
|
저 무게에 대한 상실감이 얼마나 민감하죠? |
|
|
|
03:48.880 --> 03:54.280 |
|
매개 변수의 무게의 기울기라는 걸 제공하죠 |
|
|
|
03:54.280 --> 03:57.320 |
|
무게는 매개 변수와 동의어예요 |
|
|
|
03:57.560 --> 04:00.770 |
|
그럼 어떻게 네 |
|
|
|
04:00.800 --> 04:02.120 |
|
경사도가 어떻게 되죠? |
|
|
|
04:02.120 --> 04:05.240 |
|
무게를 바꾸면 손실이 얼마나 커질까요? |
|
|
|
04:05.240 --> 04:08.030 |
|
비트 박스를 개선하고 싶거든요 |
|
|
|
04:08.360 --> 04:14.120 |
|
저 빨간 삼각형은 델타를 나타내는 거예요 저기서 일어난 그러데이션 계산을 |
|
|
|
04:14.210 --> 04:16.100 |
|
보여주기 위해서요 |
|
|
|
04:17.180 --> 04:22.730 |
|
그리고 마지막 단계로 넘어가죠 4단계 최적화요 Get it |
|
|
|
04:22.940 --> 04:23.960 |
|
나오네요 |
|
|
|
04:23.960 --> 04:26.360 |
|
그래서 이런 경사가 있죠 |
|
|
|
04:26.420 --> 04:30.770 |
|
이제 올바른 방향으로 작은 걸음을 내디뎌야 해요 |
|
|
|
04:30.770 --> 04:36.830 |
|
로라 행렬의 매개 변수를 업데이트해야 하는데 비트가 조금 부족해요 |
|
|
|
04:36.830 --> 04:41.720 |
|
다음 번에 같은 inputFrompt를 선택하면 손실이 약간 더 낮아지죠 |
|
|
|
04:41.720 --> 04:42.890 |
|
비트가 더 나을 거예요 |
|
|
|
04:42.890 --> 04:48.200 |
|
올바른 방향으로 한 걸음 나아가고 있어요 학습률을 기준으로 얼마나 나아갈지 |
|
|
|
04:48.200 --> 04:48.980 |
|
결정하죠 |
|
|
|
04:48.980 --> 04:53.810 |
|
앞서 말했듯이 보폭이 작거나 큰 것에 장단점이 있어요 |
|
|
|
04:54.090 --> 05:00.690 |
|
기억하실지 모르겠지만 애덤 W. 최적화 프로그램은 아주 기발한 방법을 사용했어요 |
|
|
|
05:00.690 --> 05:06.720 |
|
기존의 그러데이션 수치를 그대로 유지하면서 기존의 그러데이션 수치를 그대로 |
|
|
|
05:06.720 --> 05:12.540 |
|
유지했죠 그래서 현명하게도 개선할 수 있는 방법을 찾아냈어요 |
|
|
|
05:12.660 --> 05:17.700 |
|
너무 꽉 찬 옷을 입거나 다른 위험을 감수하지 않도록 하는 것이기도 |
|
|
|
05:17.730 --> 05:18.810 |
|
하죠 |
|
|
|
05:19.200 --> 05:20.370 |
|
그렇게 하죠 |
|
|
|
05:20.370 --> 05:26.430 |
|
로라 어댑터가 개선되고 미래에는 기본 모델에 적용할 |
|
|
|
05:26.430 --> 05:29.700 |
|
텐데 조금 더 나아질 거예요 |
|
|
|
05:29.730 --> 05:36.390 |
|
다음번에는 손실이 더 적겠죠 그래서 훈련 손실이 줄고 있는 거예요 흔들리는 |
|
|
|
05:36.390 --> 05:40.740 |
|
도표도요 비트는 배우고 나아지고 있으니까요 |
|
|
|
05:41.070 --> 05:46.050 |
|
여기서 짚고 넘어갈 것은 체중과 변수가 변경된 매개 변수는 로라 |
|
|
|
05:46.050 --> 05:51.180 |
|
어댑터의 녹색 매개 변수입니다 llama 3에서는 어떤 매개 |
|
|
|
05:51.180 --> 05:55.620 |
|
변수도 변경하지 않아요 베이스 1이 너무 크고 매개 변수가 너무 많아요 |
|
|
|
05:55.620 --> 06:02.280 |
|
로라 기반의 훈련이 아닌 평범한 훈련이었다면 라마 |
|
|
|
06:02.280 --> 06:09.120 |
|
3 전체가 됐을 거예요 그러데이션을 계산하고 최적화 때 변경해야 |
|
|
|
06:09.120 --> 06:10.320 |
|
하는 모델이죠 |
|
|
|
06:10.320 --> 06:13.650 |
|
물론 메타 같은 대기업이 그런 거죠 |
|
|
|
06:13.680 --> 06:19.170 |
|
라마 3을 그렇게 훈련시켰어요 1인당 그리고 거기에 엄청난 돈을 들였는데 |
|
|
|
06:19.200 --> 06:25.620 |
|
우리는 그 돈을 쉽게 구할 수 없어서 로라 어댑터를 대신 쓰고 있는 거예요 |
|
|
|
06:26.190 --> 06:32.160 |
|
지금까지 최적화에 대한 요약이었습니다. 트레이닝 프로세스 전체에서 말이죠. |
|
|
|
06:32.160 --> 06:37.530 |
|
이미 대부분 명확하게 이해하셨겠지만 이 도표를 보고 이해하셨길 |
|
|
|
06:37.530 --> 06:41.310 |
|
바랍니다 모든 게 제자리를 찾았다는 뜻이죠 |
|
|
|
06:41.310 --> 06:47.550 |
|
다음 강의에서는 기술적인 면을 하나만 더 설명할게요 아주 중요한 기술적 측면으로 |
|
|
|
06:47.550 --> 06:51.570 |
|
예측과 손실 계산의 의미를 설명해 드리죠 |
|
|
|
06:51.600 --> 06:52.380 |
|
그때 봐요
|
|
|