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.
502 lines
13 KiB
502 lines
13 KiB
WEBVTT |
|
|
|
00:00.200 --> 00:02.360 |
|
구글 콜랍에 잘 오셨어요 |
|
|
|
00:02.360 --> 00:06.290 |
|
이제 토큰이들의 세계를 탐험해 볼까요? |
|
|
|
00:06.290 --> 00:11.360 |
|
먼저 할 일은 수입품 처리를 하는 거예요 |
|
|
|
00:11.600 --> 00:15.290 |
|
그걸 한 후 여기 이 문장을 언급하고 싶어요 |
|
|
|
00:15.290 --> 00:20.750 |
|
지난 강의에서 언급하는 걸 잊었는데 Colab에 추가했어요 어쨌든 |
|
|
|
00:20.780 --> 00:23.300 |
|
찾아서 제 설명을 읽어보세요 |
|
|
|
00:23.450 --> 00:28.220 |
|
콜랍의 포옹 사이트에 로그인해야 할 거예요 |
|
|
|
00:28.220 --> 00:31.370 |
|
그걸 위해 사용하는 코드가 이거죠 |
|
|
|
00:31.370 --> 00:36.890 |
|
먼저, 포옹하는 얼굴 계정을 아직 만들지 않으셨다면 포옹하는 얼굴 계정이 필요해요 |
|
|
|
00:36.890 --> 00:37.700 |
|
공짜예요 |
|
|
|
00:37.730 --> 00:40.910 |
|
정말 멋지고 절대 후회하지 않을 거예요 |
|
|
|
00:40.910 --> 00:46.970 |
|
안기페이스에 등록한 다음 설정으로 이동해 새 API 토큰을 생성하세요 |
|
|
|
00:46.970 --> 00:48.470 |
|
스스로 허락하는 거죠 |
|
|
|
00:48.470 --> 00:52.130 |
|
오늘은 올바른 권한이 필요 없지만 나중엔 필요할 테니 지금 설정하는 |
|
|
|
00:52.130 --> 00:53.060 |
|
게 좋아요 |
|
|
|
00:53.090 --> 00:59.570 |
|
다시 돌아와서 Colab의 이 키 섹션으로 가서 새 비밀을 추가하세요 |
|
|
|
00:59.570 --> 01:05.220 |
|
비밀은 HF_token이라고 하고 값은 여러분의 토큰이어야 해요 |
|
|
|
01:05.220 --> 01:12.270 |
|
이제 코드를 실행해서 기밀에서 HF 토큰을 가져오면 로그인 메서드를 호출할 |
|
|
|
01:12.300 --> 01:15.000 |
|
거예요 여기 불러왔죠 |
|
|
|
01:15.000 --> 01:18.180 |
|
로그인 방법은 얼굴을 안는 거예요 |
|
|
|
01:18.180 --> 01:19.470 |
|
바로 실행하죠 |
|
|
|
01:19.470 --> 01:20.760 |
|
다 됐어요 |
|
|
|
01:20.790 --> 01:23.400 |
|
여기 보면 권한이 있다고 나와 있죠 |
|
|
|
01:24.060 --> 01:31.950 |
|
토큰라이저에 대해 얘기해 보죠 환상적인 라마 3부터 시작할게요 1번, 메타의 상징적인 모델 오픈 |
|
|
|
01:31.950 --> 01:35.400 |
|
소스 모델의 길을 닦았죠 |
|
|
|
01:35.880 --> 01:42.240 |
|
llama 3을 사용하면요 1. 메타 서비스 약관에 먼저 서명하세요 |
|
|
|
01:42.240 --> 01:47.520 |
|
모델 페이지에 방문해서 얼굴 안기기를 하면 돼요 여기 링크가 있죠 |
|
|
|
01:47.520 --> 01:52.680 |
|
그 페이지 상단에 서명하기 위해 해야 할 간단한 지침이 있어요 |
|
|
|
01:52.830 --> 01:57.270 |
|
이메일 주소를 제공해야 하는데 포옹하는 얼굴 계정과 일치하는 |
|
|
|
01:57.270 --> 01:59.610 |
|
이메일 주소가 좋아요 |
|
|
|
01:59.610 --> 02:01.370 |
|
I'm get it's get it. 일이 빨리 끝난다는 뜻이죠 |
|
|
|
02:01.370 --> 02:04.370 |
|
몇 분 내로 승인될 거예요 |
|
|
|
02:04.370 --> 02:07.610 |
|
토요일 밤늦게까지 여러 번 해 봤어요 |
|
|
|
02:07.610 --> 02:09.680 |
|
아주 빨리 승인을 받았어요 |
|
|
|
02:09.740 --> 02:13.460 |
|
정말 꼼꼼해서 그런 건지 자동화되어 있어서 그런 건진 모르겠지만 |
|
|
|
02:13.550 --> 02:15.350 |
|
정말 빠르네요 |
|
|
|
02:15.770 --> 02:20.810 |
|
이 서비스 서명 약관에 뭔가 해로운 게 있다고 생각하실까 봐 말씀드리는데 작은 글씨를 읽어 보시면 |
|
|
|
02:20.810 --> 02:26.420 |
|
lemma 3을 사용하지 않도록 확실히 하는 거예요 1번, 비도덕적인 행동과 선한 의도가 |
|
|
|
02:26.420 --> 02:30.770 |
|
있을 경우입니다 이 수업에서는 그런 경우가 많죠 |
|
|
|
02:30.770 --> 02:34.400 |
|
그러니 서명하는 건 문제가 안 될 거예요 |
|
|
|
02:34.400 --> 02:39.590 |
|
그렇게 하면 라마다 3의 모든 변수를 볼 수 있죠 1번요 |
|
|
|
02:39.590 --> 02:43.070 |
|
하나의 간판이 가족 전체에 적용돼요 |
|
|
|
02:43.370 --> 02:49.070 |
|
라마 3이나 2 같은 구형 라마 모델을 사용하려면 모델 |
|
|
|
02:49.070 --> 02:53.060 |
|
가족에 가서 계약서에 서명해야 해요 |
|
|
|
02:53.450 --> 02:57.650 |
|
혹시 하기 싫거나 당장 승인해 주지 않는 것 같으면 |
|
|
|
02:57.650 --> 03:00.200 |
|
나중에 시작해도 돼요 |
|
|
|
03:00.230 --> 03:05.490 |
|
아니면 제가 3번 실행하는 걸 보셔도 돼요 1, 다른 토큰라이저와 작업하기 시작하면 |
|
|
|
03:05.490 --> 03:06.840 |
|
그걸 선택하세요 |
|
|
|
03:06.840 --> 03:12.510 |
|
하지만 이걸로 토큰라이저를 만드는 건 여기 이 한 줄이죠 |
|
|
|
03:12.690 --> 03:21.810 |
|
안는 얼굴에는 오토 토큰마이저 클래스가 있습니다 이 모델을 위해 필요한 토큰마이저의 서브클래스를 |
|
|
|
03:21.810 --> 03:23.070 |
|
생성하죠 |
|
|
|
03:23.100 --> 03:24.330 |
|
그건 너무 걱정하지 마세요 |
|
|
|
03:24.330 --> 03:31.410 |
|
오토 토큰마이저를 이용하면 됩니다 미리 훈련된 것을 이용해 수업 메서드를 호출합니다 즉, 미리 훈련된 모델이 |
|
|
|
03:31.410 --> 03:35.790 |
|
있다면 토큰마이저를 이용하여 이를 위해 개발하면 된다는 거죠 |
|
|
|
03:35.820 --> 03:36.960 |
|
그게 이름이에요 |
|
|
|
03:36.960 --> 03:38.760 |
|
이게 우리가 사용하는 모델이에요 |
|
|
|
03:38.760 --> 03:41.610 |
|
안아주기 얼굴 허브에서 바로 가져올 수 있는 거죠 |
|
|
|
03:41.610 --> 03:45.690 |
|
메타 라마 3이에요 180억 달러요 |
|
|
|
03:45.720 --> 03:51.930 |
|
이 트러스트 원격 코드는 true입니다 토큰라이저를 가져오면 모델의 |
|
|
|
03:51.930 --> 03:55.140 |
|
일부인 코드가 있을 수 있어요 |
|
|
|
03:55.140 --> 03:57.750 |
|
메타가 누군지 안다고 했잖아요 |
|
|
|
03:57.780 --> 04:01.570 |
|
이건 괜찮으니까 믿어도 돼요 |
|
|
|
04:01.840 --> 04:04.030 |
|
그것만 빼면 괜찮을 거예요 |
|
|
|
04:04.030 --> 04:06.040 |
|
그저 추악한 경고만 남겨요 |
|
|
|
04:06.040 --> 04:10.930 |
|
어글리 경고가 싫으면 그냥 Put을 해요 |
|
|
|
04:11.950 --> 04:12.550 |
|
네 |
|
|
|
04:12.550 --> 04:15.970 |
|
이것과 함께 다음으로 할 일은 텍스트를 이용하는 거예요 |
|
|
|
04:16.000 --> 04:24.040 |
|
LLM 엔지니어들에게 토큰라이저의 작동을 보여드릴 수 있어 기쁩니다 텍스트를 문자열로 만들어 Tokenizer.incode로 |
|
|
|
04:24.040 --> 04:27.160 |
|
호출하죠 |
|
|
|
04:27.160 --> 04:30.070 |
|
그 결과의 토큰을 인쇄하죠 |
|
|
|
04:30.760 --> 04:31.720 |
|
여기 있네요 |
|
|
|
04:31.750 --> 04:33.400 |
|
아주 간단한 거예요 |
|
|
|
04:33.400 --> 04:34.720 |
|
그냥 번호표예요 |
|
|
|
04:34.720 --> 04:35.860 |
|
그 이상은 아니에요 |
|
|
|
04:35.860 --> 04:37.390 |
|
증표는 마법과 아무 상관 없어요 |
|
|
|
04:37.390 --> 04:38.440 |
|
그냥 숫자일 뿐이에요 |
|
|
|
04:38.440 --> 04:40.960 |
|
이 숫자들이 그 텍스트를 나타내죠 |
|
|
|
04:40.990 --> 04:43.600 |
|
몇 개나 있는지 보죠 |
|
|
|
04:43.630 --> 04:50.320 |
|
우리가 준 문자에 편지가 몇 통이나 있었는지부터 말해보죠 |
|
|
|
04:50.350 --> 04:53.560 |
|
글자가 61개나 돼요 |
|
|
|
04:53.560 --> 04:56.260 |
|
이제 패의 수를 세면 돼요 |
|
|
|
04:56.260 --> 05:02.510 |
|
대략적으로 토큰 하나에 몇 글자가 매개되는지 기억하시나요? |
|
|
|
05:02.540 --> 05:06.110 |
|
평균 4개예요 |
|
|
|
05:06.110 --> 05:06.440 |
|
대강요 |
|
|
|
05:06.440 --> 05:12.890 |
|
경험상 네 글자는 토큰이 되어야 해요 영어를 많이 안다면 말이죠 |
|
|
|
05:12.890 --> 05:16.880 |
|
61통의 글자가 예상되네요 |
|
|
|
05:16.970 --> 05:19.790 |
|
15토큰 정도 예상해요 |
|
|
|
05:19.820 --> 05:20.780 |
|
get get을 해 보죠 |
|
|
|
05:20.780 --> 05:21.980 |
|
15토큰요 |
|
|
|
05:21.980 --> 05:22.520 |
|
됐어요 |
|
|
|
05:22.550 --> 05:25.280 |
|
토큰이 정확히 15개예요 |
|
|
|
05:25.610 --> 05:31.940 |
|
이 디코딩을 통해 토큰을 다시 텍스트로 바꿀 수 있어요 |
|
|
|
05:31.940 --> 05:35.150 |
|
그래서 원문을 재창조할 거예요 |
|
|
|
05:35.150 --> 05:39.020 |
|
Get it은 비슷하면서도 약간 달라요 |
|
|
|
05:39.020 --> 05:44.180 |
|
보다시피 get get은 우리가 기대하는 텍스트예요 |
|
|
|
05:44.180 --> 05:50.990 |
|
그런데 그 앞에 새로운 게 있어요 여기 재미있는 거요 비스듬한 대괄호로 기호 시작보다보다보다보다보다보다보다보다보다보다보다보다가 |
|
|
|
05:50.990 --> 05:55.010 |
|
텍스트 집합이죠 |
|
|
|
05:55.040 --> 05:55.910 |
|
이게 뭐죠? |
|
|
|
05:55.910 --> 06:01.090 |
|
이건 특별한 토큰이란 건데요 제가 강조 표시한 모든 게 하나의 토큰에 매핑된 |
|
|
|
06:01.120 --> 06:01.900 |
|
거죠 |
|
|
|
06:01.930 --> 06:09.340 |
|
사실 여기 이 128,000 토큰은 특별한 토큰으로 우리 모델에 |
|
|
|
06:09.370 --> 06:14.740 |
|
프롬프트의 텍스트의 시작을 알려주고 있어요 |
|
|
|
06:14.950 --> 06:20.710 |
|
그 목적으로 LM의 특별한 지표가 된 거죠 |
|
|
|
06:20.740 --> 06:24.550 |
|
이렇게 생각하실지도 몰라요 |
|
|
|
06:24.580 --> 06:28.960 |
|
그렇다면 변압기의 구조가 그런 종류의 토큰을 기대하도록 설정되어야 |
|
|
|
06:28.990 --> 06:30.820 |
|
한다는 뜻인가요? |
|
|
|
06:30.910 --> 06:35.920 |
|
지금은 아주 편하실지 모르겠지만 제 대답은 안 된다는 거예요 |
|
|
|
06:35.920 --> 06:37.270 |
|
그런 뜻이 아니에요 |
|
|
|
06:37.300 --> 06:43.000 |
|
이 말은 훈련 중에 본 모든 훈련 사례가 이런 식으로 설정됐다는 |
|
|
|
06:43.000 --> 06:44.080 |
|
뜻이에요 |
|
|
|
06:44.080 --> 06:48.250 |
|
훈련 예시는 이 특별한 토큰에서 시작됐죠 |
|
|
|
06:48.250 --> 06:52.780 |
|
훈련을 통해 그런 걸 기대하며 익숙해졌죠 |
|
|
|
06:52.780 --> 06:58.330 |
|
최상의 결과를 내기 위해서는 같은 방법을 써야 하죠 |
|
|
|
06:58.390 --> 07:02.210 |
|
새로운 먹이를 줄 때 추론할 때 나타나요 |
|
|
|
07:02.990 --> 07:04.670 |
|
이해가 되셨길 바라요 |
|
|
|
07:04.700 --> 07:08.360 |
|
다른 방법으로 해독할 수도 있어요 |
|
|
|
07:08.360 --> 07:13.940 |
|
그걸 토큰과 함께 실행하면 하나의 문자열 대신 이런 문자열 |
|
|
|
07:13.940 --> 07:19.550 |
|
집합을 얻게 됩니다 각각의 문자열이 토큰을 나타내는 거죠 |
|
|
|
07:19.550 --> 07:24.080 |
|
말씀드렸듯이 이 첫 번째 토큰이 이렇게 변했어요 |
|
|
|
07:24.080 --> 07:27.920 |
|
그러면 그게 어떻게 작동하는지 볼 수 있죠 |
|
|
|
07:28.130 --> 07:30.920 |
|
몇 가지 주의할 점이 있어요 |
|
|
|
07:30.920 --> 07:36.080 |
|
바로 보실 수 있듯이, 그중 하나는 대부분의 경우 워드를 토큰에 매핑한 것입니다. 왜냐하면 여기에는 아주 |
|
|
|
07:36.080 --> 07:37.730 |
|
간단한 단어들이 있으니까요. |
|
|
|
07:37.730 --> 07:43.370 |
|
정말 신나요, 토큰 하나에 4자 이상으로 매핑되긴 하지만요 흔한 단어니까요 |
|
|
|
07:43.370 --> 07:45.380 |
|
단어 선택에 포함돼 있죠 |
|
|
|
07:45.620 --> 07:53.180 |
|
또 하나 주목할 점은 GPT 토큰라이저와 마찬가지로 단어 시작을 의미하는 |
|
|
|
07:53.180 --> 07:58.700 |
|
겁니다 단어 앞의 이 공백은 토큰의 일부죠 |
|
|
|
07:58.700 --> 08:09.150 |
|
그래서 AM은 단어의 시작으로 쓰이고 알파벳 AM은 문자 조각인 AM을 나타내는 다른 토큰이에요 |
|
|
|
08:09.150 --> 08:13.560 |
|
더 복잡한 무언가에 속해 있을 수 있죠 |
|
|
|
08:14.250 --> 08:20.640 |
|
토큰라이저 같은 것이 토큰 두 개로 나뉘는 것도 보이실 겁니다 하나는 워드 토큰이고 |
|
|
|
08:20.640 --> 08:23.130 |
|
다른 하나는 ISA죠 |
|
|
|
08:23.460 --> 08:28.740 |
|
ISA로 끝나는 단어가 참 흥미롭네요 |
|
|
|
08:28.740 --> 08:33.120 |
|
여러 가지 끝에 걸렸을 수도 있어요 그것도 토큰화의 |
|
|
|
08:33.150 --> 08:34.350 |
|
일부죠 |
|
|
|
08:34.380 --> 08:37.890 |
|
또 하나 주목할 점은 대소문자를 구별한다는 거죠 |
|
|
|
08:37.890 --> 08:43.860 |
|
보시다시피 대문자 T로 시작하는 토큰이 저기로 옮겨졌어요 |
|
|
|
08:45.120 --> 08:53.040 |
|
마지막으로 말씀드리고 싶은 건 토큰라이저라는 단어예요 |
|
|
|
08:53.070 --> 08:58.500 |
|
토큰라이저 닷 단어집을 실행하면 get이 나와요 |
|
|
|
08:58.500 --> 09:03.980 |
|
단어와 숫자 조각 사이를 오가는 완전한 지도 사전이죠 |
|
|
|
09:04.310 --> 09:06.590 |
|
잘 안 알려진 것들이 있어요 |
|
|
|
09:06.590 --> 09:12.620 |
|
사용할 수 있는 토큰이 정말 많아요 여기엔 꽤 이상한 토큰들도 있어요 다른 언어의 |
|
|
|
09:12.740 --> 09:15.920 |
|
토큰이거나 다른 목적으로 사용되고 있죠 |
|
|
|
09:16.190 --> 09:22.580 |
|
서너 글자 정도가 아니라 다양한 걸 볼 수 있어요 |
|
|
|
09:22.610 --> 09:26.630 |
|
꽤 많이 인쇄했어요 |
|
|
|
09:26.870 --> 09:32.840 |
|
여기서 보여드릴 게 또 있어요 우리 사전을 쭉 넘기면서 보여드리죠 |
|
|
|
09:33.050 --> 09:34.040 |
|
Get it, Get it, Get it, Get it, get, it, it, it! 이리 와요 |
|
|
|
09:34.250 --> 09:41.990 |
|
주석 인쇄도 할 수 있다는 거예요 |
|
|
|
09:42.440 --> 09:48.470 |
|
어, 추가된 단어라고 하는 건데, 제가 아까 말했던 특별한 토큰이에요 |
|
|
|
09:48.650 --> 09:53.840 |
|
예약된 특별한 토큰이 여러 개 있는데요 죄송합니다, 맨 |
|
|
|
09:53.840 --> 10:01.860 |
|
위에 보이는 건 보캡에서 예약된 특별한 토큰으로 LM에 신호를 보내기 위해 사용되죠 |
|
|
|
10:01.890 --> 10:02.580 |
|
글의 시작이죠 |
|
|
|
10:02.610 --> 10:03.570 |
|
그게 다예요 |
|
|
|
10:04.020 --> 10:06.150 |
|
예약된 것도 있고요 |
|
|
|
10:06.180 --> 10:11.100 |
|
그리고 시작 헤더, ID와 헤더를 두죠 |
|
|
|
10:11.100 --> 10:12.690 |
|
다른 것도 있어요 |
|
|
|
10:12.690 --> 10:14.190 |
|
파이썬 태그도요 |
|
|
|
10:14.220 --> 10:17.070 |
|
뭔가 특별한 게 있어요 |
|
|
|
10:17.070 --> 10:25.470 |
|
어떤 이유에서든지 이 토큰들은 특별한 토큰들입니다. 이 특별한 토큰들을 단어 선택에 포함시키면 |
|
|
|
10:25.470 --> 10:33.300 |
|
유용하게 쓰일 것입니다. 그리고 훈련 중에 제공해서 추론을 할 때나, 모델을 실행할 |
|
|
|
10:33.330 --> 10:38.850 |
|
때 텍스트를 생성할 때, 이 토큰들을 이용해서 모델에 무언가를 |
|
|
|
10:38.850 --> 10:42.180 |
|
표시할 수 있어요. |
|
|
|
10:42.960 --> 10:43.530 |
|
좋아요 |
|
|
|
10:43.560 --> 10:47.580 |
|
라마 3 모델은 좀 비트가 있었죠 |
|
|
|
10:47.640 --> 10:49.290 |
|
라마 3요 토큰라이저 1개요 |
|
|
|
10:49.320 --> 10:56.670 |
|
잠시 후에는 이 기능이 채팅방에 어떻게 적용되는지 살펴볼 거예요 |
|
|
|
10:56.670 --> 10:59.640 |
|
그런 다음 다른 토큰라이저로 놀 거예요 |
|
|
|
10:59.640 --> 11:00.390 |
|
그럼 그때 봐요
|
|
|