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 그럼 그때 봐요