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.
292 lines
8.2 KiB
292 lines
8.2 KiB
WEBVTT |
|
|
|
00:00.590 --> 00:03.320 |
|
그럼 지체 없이 get it로 들어가 보죠 |
|
|
|
00:03.350 --> 00:05.180 |
|
로라 말이에요 |
|
|
|
00:05.210 --> 00:07.430 |
|
낮은 순위 적응력이죠 |
|
|
|
00:07.670 --> 00:13.520 |
|
이 섹션에서 슬라이드 몇 개 동안 이론에 관해 얘기할 거예요 하지만 걱정 마세요 늘 그렇듯 바로 |
|
|
|
00:13.550 --> 00:16.160 |
|
연습할 거니까요 Get in get |
|
|
|
00:16.190 --> 00:19.250 |
|
이런 걸 이해하는 가장 좋은 방법은 직접 보는 거예요 |
|
|
|
00:19.250 --> 00:24.350 |
|
슬라이드 몇 개 본 후에 Colab을 누르고 실제로 살펴보죠 |
|
|
|
00:24.350 --> 00:26.480 |
|
하지만 먼저 컨텍스트를 설정하죠 |
|
|
|
00:26.480 --> 00:31.520 |
|
자, llama 3을 사용할 거예요 이번 주에 1달러예요 |
|
|
|
00:31.850 --> 00:34.340 |
|
라마 3도요 1은 세 가지 사이즈가 있어요 |
|
|
|
00:34.340 --> 00:42.680 |
|
80억 매개 변수로 700억에 달하는 거대한 규모입니다 무려 4050억이죠 |
|
|
|
00:42.890 --> 00:46.100 |
|
물론 더 작은 80억 달러도 받을 거예요 |
|
|
|
00:46.250 --> 00:53.630 |
|
하지만 그것도 너무 커질 거예요 현실적으로 훈련하기에는요 하나의 GPU |
|
|
|
00:53.660 --> 00:59.450 |
|
박스에 지불하고 싶은 비용으로요 80억 개의 무게라면 램 |
|
|
|
00:59.450 --> 01:01.370 |
|
32GB죠 |
|
|
|
01:01.400 --> 01:07.280 |
|
모두 더하면 메모리 안에 있는 모델이 됩니다. 훈련을 시작할 때 최적화 |
|
|
|
01:07.280 --> 01:14.210 |
|
실행을 할 수 있습니다. 각각의 값에 따라 그러데이션을 얻을 수 있어야 하죠. |
|
|
|
01:14.270 --> 01:18.080 |
|
메모리를 너무 많이 쓰는 거예요 |
|
|
|
01:18.110 --> 01:19.880 |
|
희망이 없었을 거예요 |
|
|
|
01:20.240 --> 01:27.110 |
|
시간도 엄청나게 오래 걸릴 거예요 최적화할 게 너무 많으니까요 80억 |
|
|
|
01:27.110 --> 01:30.470 |
|
개의 무게를 최적화하려면요 |
|
|
|
01:30.470 --> 01:32.870 |
|
처리할 게 많네요 |
|
|
|
01:33.200 --> 01:38.630 |
|
물론 이런 프런티어 연구소와 메타 연구소들이 대형 모델에 |
|
|
|
01:38.630 --> 01:46.850 |
|
많은 돈을 투자한 덕분이죠 한 대를 훈련하는 데 1억 달러 이상이 들었어요 |
|
|
|
01:46.850 --> 01:49.970 |
|
그래서 아마 우리가 쓸 만한 돈은 아닐 거예요 |
|
|
|
01:50.150 --> 01:59.870 |
|
그래서 기본 모델을 훈련하는 데 놀라울 정도로 적은 비용과 요령이 필요합니다 그래야 특정 |
|
|
|
01:59.900 --> 02:05.390 |
|
작업을 더 잘 수행할 수 있으니까요 기본 모델이 원래 |
|
|
|
02:05.390 --> 02:11.030 |
|
훈련받은 것과 공통점이 많다고 가정하면요 |
|
|
|
02:11.270 --> 02:18.500 |
|
로라가 뭔지 설명하기 전에 라마 건축 양식을 간단히 요약해 볼게요 |
|
|
|
02:18.530 --> 02:22.790 |
|
Get in GAME 이 과정에선 신경망 구조를 깊이 다루진 않을 거예요 |
|
|
|
02:23.060 --> 02:28.340 |
|
아주 자세히는 설명하지 않고 직관적으로 설명해 드릴게요 |
|
|
|
02:28.340 --> 02:35.510 |
|
라마 3은 어때요? 뉴런이 층층이 쌓여 있는 형태예요 |
|
|
|
02:35.660 --> 02:42.860 |
|
각 그룹이 구성된 이런 레이어 그룹이 32개예요 |
|
|
|
02:42.860 --> 02:45.740 |
|
각 그룹을 라마 디코더 층이라고 해요 |
|
|
|
02:45.740 --> 02:51.980 |
|
자기 주의력 계층과 다중 인터셉트론 계층 사일로 활성화 계층과 표준 계층이 |
|
|
|
02:51.980 --> 02:53.240 |
|
있어요 |
|
|
|
02:53.240 --> 02:55.220 |
|
잠시 후에 이걸 보죠 |
|
|
|
02:55.250 --> 02:58.040 |
|
이미 어떤 상황인지 알고 있을지도 몰라요 |
|
|
|
02:58.070 --> 02:59.840 |
|
이론적 배경이 있다면요 |
|
|
|
02:59.840 --> 03:03.410 |
|
그렇지 않다면 더 현실적이고 실재할 거예요 |
|
|
|
03:03.410 --> 03:07.040 |
|
콜랍에 있는 이 건축물을 보면요 |
|
|
|
03:07.370 --> 03:14.480 |
|
이 모든 매개 변수들이 이 큰, 이 계층 아키텍처에 달라붙어 32기가 |
|
|
|
03:14.510 --> 03:17.720 |
|
메모리를 차지해요 |
|
|
|
03:17.840 --> 03:22.520 |
|
이게 로라의 원대한 아이디어예요 |
|
|
|
03:22.550 --> 03:30.020 |
|
우선 이 추들을 전부 얼릴 거예요 |
|
|
|
03:30.050 --> 03:35.360 |
|
보통 최적화 과정에서는 신경망을 통해 전진 패스를 해요 |
|
|
|
03:35.570 --> 03:41.780 |
|
네트워크가 예측한 다음 토큰을 어떻게 분석할지 살펴보고 원래 토큰이 있어야 |
|
|
|
03:41.780 --> 03:46.700 |
|
할 것과 비교해 보세요 진짜 다음 토큰이 무엇일까요? |
|
|
|
03:46.700 --> 03:51.620 |
|
그런 다음 그걸 바탕으로 각 비트를 조금씩 바꿔서 |
|
|
|
03:51.650 --> 03:58.610 |
|
다음번에는 올바른 토큰을 예측할 수 있도록 하는 거죠 |
|
|
|
03:58.610 --> 04:00.530 |
|
그게 최적화의 개념이죠 |
|
|
|
04:00.560 --> 04:02.570 |
|
약간 웨이브 비트 같지만 느낌은 오죠 get it get it |
|
|
|
04:02.600 --> 04:03.110 |
|
말 그대로요 |
|
|
|
04:03.140 --> 04:03.830 |
|
수작업으로요 |
|
|
|
04:03.920 --> 04:09.230 |
|
하지만 로라의 콘셉트는 우선 이 모든 역기를 자유롭게 한다는 거죠 |
|
|
|
04:09.230 --> 04:16.320 |
|
80억 개의 무게는 최적화하지 않을 겁니다 너무 많으니까요 너무 많은 노브와 |
|
|
|
04:16.350 --> 04:19.080 |
|
그러데이션이 있어요 |
|
|
|
04:19.380 --> 04:27.330 |
|
대신 훈련하고 싶은 핵심 사항을 몇 가지 골라요 |
|
|
|
04:27.330 --> 04:35.310 |
|
이 층과 모듈 안에 이렇게 층층이 쌓인 구조물을 목표 모듈이라고 |
|
|
|
04:35.310 --> 04:36.840 |
|
해요 |
|
|
|
04:36.840 --> 04:39.960 |
|
그래서 이 표현 대상 모듈이 있는 거죠 |
|
|
|
04:39.960 --> 04:45.480 |
|
스타트렉에 나오는 비트 같다고 했는데 신경망의 층을 |
|
|
|
04:45.480 --> 04:51.300 |
|
말하는 거예요 훈련에 집중할 수 있지만 무게는 여전히 얼어 |
|
|
|
04:51.300 --> 04:52.200 |
|
있죠 |
|
|
|
04:52.890 --> 05:01.830 |
|
대신 새로운 매트릭스인 어댑터 매트릭스를 소개할 거예요 적은 수의 치수죠 실제 치수에 |
|
|
|
05:01.830 --> 05:05.700 |
|
비해서 치수가 많지는 않아요 |
|
|
|
05:05.730 --> 05:09.840 |
|
입체감이 작거나 계급이 낮을 거예요 |
|
|
|
05:09.840 --> 05:21.750 |
|
이 물질을 한쪽으로 몰면 이 물질을 표적 모듈에 바르는 기술을 익힐 |
|
|
|
05:21.750 --> 05:24.420 |
|
수 있어요 |
|
|
|
05:24.420 --> 05:27.030 |
|
그래서 목표 모듈을 수정할 거예요 |
|
|
|
05:27.030 --> 05:30.510 |
|
공식이 있는데 잠시 후에 말씀드릴게요 |
|
|
|
05:30.510 --> 05:36.390 |
|
하지만 이 공식은 미래에는 저 파란색 로 랭크 어댑터에 있는 값이 조금씩 바뀔 |
|
|
|
05:36.390 --> 05:37.950 |
|
거라는 걸 의미하죠 |
|
|
|
05:37.950 --> 05:42.060 |
|
대상 모듈에서 일어나는 일을 약간 바꿀 거예요 |
|
|
|
05:42.060 --> 05:48.240 |
|
등급도 낮고 차원도 낮아서 표적 모듈에 가해지는 무게가 적게 들도록 |
|
|
|
05:48.240 --> 05:49.800 |
|
개조했어요 |
|
|
|
05:50.820 --> 05:54.450 |
|
잠시 후에 보시겠지만 기술적인 문제가 있어요 |
|
|
|
05:54.480 --> 06:00.000 |
|
이 말을 꼭 해야겠네요 이런 신경망에서 치수가 작동하는 방식을 |
|
|
|
06:00.000 --> 06:06.120 |
|
보면 낮은 순위의 행렬은 두 가지예요 하나는 A, 하나는 B죠 |
|
|
|
06:06.420 --> 06:09.270 |
|
코드에는 로라 a와 로라 b라고 적혀 있어요 |
|
|
|
06:09.300 --> 06:11.310 |
|
행렬은 두 가지가 있어요 |
|
|
|
06:11.310 --> 06:16.230 |
|
그걸 아는 게 그리 중요하진 않지만 코드에서 그걸 보시도록 확실히 해두고 싶어요 |
|
|
|
06:16.230 --> 06:18.780 |
|
이걸 보면 두 행렬이 있다고 생각할 거예요 |
|
|
|
06:18.780 --> 06:20.910 |
|
Get을 대상 모듈에 적용해요 |
|
|
|
06:20.910 --> 06:22.290 |
|
말 되네요 |
|
|
|
06:22.710 --> 06:27.420 |
|
로라 프레스의 숨은 이야기가 아주 깊어요 |
|
|
|
06:27.420 --> 06:34.290 |
|
본래는 치수가 적은 작은 행렬을 많이 만들었어요 |
|
|
|
06:34.290 --> 06:36.060 |
|
훈련 대상이죠 |
|
|
|
06:36.060 --> 06:42.660 |
|
get을 훈련한 다음 간단한 공식을 이용해 목표 모듈에 적용할 거예요 |
|
|
|
06:42.990 --> 06:49.380 |
|
그렇게 기본 모델을 만들 수 있어요 get이 학습할수록 더 좋아지는 거죠 |
|
|
|
06:49.380 --> 06:53.910 |
|
로라 매트릭스 응용 프로그램 덕분이죠 |
|
|
|
06:53.910 --> 07:00.600 |
|
로라는 낮은 서열의 적응을 의미해요 서열도 낮고, 공간도 낮고 목표 모듈에 |
|
|
|
07:00.600 --> 07:02.130 |
|
적응하거든요 |
|
|
|
07:02.400 --> 07:02.970 |
|
됐어요 |
|
|
|
07:02.970 --> 07:07.650 |
|
많은 대화와 단어가 오가지만 잘 조합할 수 있는 직관을 가지길 |
|
|
|
07:07.650 --> 07:11.970 |
|
바랍니다 코드를 보면 그 직관이 더 명확해질 거예요 |
|
|
|
07:12.150 --> 07:19.230 |
|
다음 시간엔 하나만 더 간단히 얘기할게요 Q, 퀀타이즈요
|
|
|