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.
 
 

709 lines
18 KiB

WEBVTT
00:00.440 --> 00:08.390
주피터 연구소에 잘 오셨습니다 이 플랫폼에서 보낸 시간의 에픽 엔딩이 될 텐데요
00:08.570 --> 00:14.540
지난 7주간의 멋진 마무리가 될 거예요
00:14.600 --> 00:19.130
가장 먼저 눈에 띄는 건 8주 차 폴더에 많은 일이 벌어지고 있다는 거예요
00:19.130 --> 00:24.140
여기 파일이 많은 건 우리가 풀어야 할 게 많다는 걸 보여주죠 이 큰 문제를 해결하기 위해
00:24.170 --> 00:26.660
해야 할 일이 많다는 걸요 Get it
00:26.960 --> 00:31.010
이 코드가 진행되는 동안 평소보다 더 빠른 속도로 움직일 거라는 의미죠
00:31.010 --> 00:36.860
하지만 괜찮습니다 지금 시점에서는 이미 능숙하고 LLM 엔지니어링의 달인이 되어
00:36.860 --> 00:42.740
가고 있으니까요 이제 제가 설명할 필요도 없겠죠 조수와 사용자 같은 사람들이 어디에
00:42.740 --> 00:44.210
있는지에 대해서요
00:44.210 --> 00:48.200
이제는 아주 오래된 뉴스죠
00:48.410 --> 00:54.770
네, 토큰이 뭔지 설명하고 있었는데 불과 몇 주 전이었다니 놀랍죠
00:54.770 --> 00:59.230
이제 에이전트 같은 인공지능 1을 경험할 준비가 됐어요
00:59.260 --> 01:02.830
시작 전에 get 절차가 있어요
01:02.890 --> 01:07.480
패키지를 좀 바꿨어요
01:07.480 --> 01:12.730
이 환경에 종속성이 있는 패키지를 추가했어요 이걸 아주 흥미로운 문제로
01:12.730 --> 01:14.650
만들기 위해서요
01:14.770 --> 01:20.950
그 말은 여러분이∙∙∙ 9월 말쯤에 코드를 불러오면 다시 코드를 불러와 패키지를
01:20.950 --> 01:26.380
업데이트해야 할 수도 있어요 제가 추가한 새로운 게 있으려면요
01:26.380 --> 01:27.970
아주 쉬운 일이죠
01:28.000 --> 01:32.050
여러분이 할 일은 프로젝트 홈 디렉터리에 가는 거죠
01:32.050 --> 01:33.640
LM 엔지니어링이죠
01:33.760 --> 01:37.480
PC용이라면 아나콘다 프롬프트가 있어야 해요
01:37.720 --> 01:43.540
최신 코드를 얻기 위해 깃 풀을 하고 콘다 인플루언서 업데이트를 실행해요
01:43.780 --> 01:50.710
파일을 환경으로 지정해요 yml과 prune은 목록에 없는 패키지를
01:50.710 --> 01:52.480
제거하라고 하죠
01:52.480 --> 01:57.400
아무것도 삭제하지 않은 것 같아요 어쨌든 이건 항상 실용적인 한 줄 대사예요
01:57.430 --> 02:02.330
새로운 환경으로 환경을 업데이트하는 데 필요한 거죠 yml 파일이요
02:02.750 --> 02:05.540
자, 시작하죠
02:05.540 --> 02:07.160
수법에 대해 얘기해보죠
02:07.160 --> 02:12.140
오늘 수업에 들어서면서 get은 하나만 남았어요
02:12.140 --> 02:13.970
수단을 들여오는 거죠
02:14.000 --> 02:15.080
됐어요
02:15.170 --> 02:23.210
토큰을 설정하지 않았다면 모듈 셋업이라는 명령줄을 실행해야
02:23.210 --> 02:25.190
해요
02:25.190 --> 02:31.010
실행 방법은 이 줄을 주석 처리 해제하고 저 문을 저기서 실행하는 거죠
02:31.040 --> 02:34.910
지금은 안 할게요 이미 해뒀거든요 환경 설정도요
02:34.910 --> 02:42.710
하지만 그렇게 하면 브라우저 창이 뜨고 양식을 승인하게 돼요
02:42.710 --> 02:46.190
그럼 Modal이 환경 변수를 설정해 주죠
02:46.190 --> 02:47.900
정말 멋진 것 같아요
02:47.990 --> 02:55.160
토큰을 가지고 겪는 어려움들 특히 오픈아이는 완전히 다른 경험이에요
02:55.160 --> 02:56.570
아주 간소화됐죠
02:56.570 --> 02:57.670
수법에 아주 좋죠
02:57.670 --> 03:01.990
패를 놓는 법을 제대로 터득한 것 같군요
03:01.990 --> 03:07.000
만약 그게 안 된다면 표준 플랫폼으로 가보세요 거기서 여러분의 토큰을 찾을
03:07.000 --> 03:11.590
수 있어요 OpenAI 같은 걸 위한 것과 거의 같은 방식으로요
03:11.590 --> 03:13.810
수동으로 설정할 수 있어요
03:13.930 --> 03:16.690
그래도 잘되면 좋겠어요
03:16.690 --> 03:17.860
전 그랬어요
03:17.860 --> 03:22.150
누가 봐도 일반적으로 사람들이 그렇게 하죠
03:22.690 --> 03:23.650
좋아요
03:23.650 --> 03:30.400
이제 다음 줄에서 hello라는 패키지에서 몇 가지를 불러오겠습니다 여기
03:30.400 --> 03:31.750
적어둔 거죠
03:31.750 --> 03:35.140
지금 당장 가서 어떻게 생겼는지 보여드릴게요
03:35.560 --> 03:37.990
이건 파이썬 일부분이에요
03:37.990 --> 03:39.880
파이썬 으로 된 코드네요
03:40.090 --> 03:41.590
이게 뭘 하는지 말씀드리죠
03:41.590 --> 03:43.150
그래서 모듈을 수입하죠
03:43.150 --> 03:46.150
몇 가지를 수입했어요
03:46.180 --> 03:51.130
앱 볼륨과 이미지를 위한 앱이요
03:51.340 --> 03:55.060
사실 지금 보니까 볼륨을 사용하지 않았네요
03:55.060 --> 03:56.840
그래서 그건 필요 없다고 생각해요
03:56.870 --> 03:58.700
간단한 게 좋아요
03:59.240 --> 04:02.300
그래서 이렇게 해요
04:02.330 --> 04:03.650
설정으로 시작해요
04:03.650 --> 04:07.070
어떤 인프라가 필요한지 설명하는 거죠
04:07.070 --> 04:11.030
이건 모듈의 예입니다 문서에서 비트로 언급하죠
04:11.030 --> 04:15.260
이건 코드로서의 인프라 유형이에요
04:15.260 --> 04:19.430
어떤 박스를 원하는지 코드를 사용해 설명할 수 있어요
04:19.460 --> 04:24.320
Google Colab에서 다양한 드롭다운을 선택해야 한다고 생각하신다면
04:24.320 --> 04:31.910
어떤 종류의 VM을 선택해야 하는지 Google Colab에서 어떤 런타임을 원하는지 말이에요 여기선 코드에서 지정해
04:31.910 --> 04:34.430
원하는 걸 선택할 수 있어요
04:34.430 --> 04:40.760
이미지가 필요하다고 하면 그게 데비언 운영체제가 되어야죠
04:40.760 --> 04:48.530
요청 패키지를 설치하려고 합니다 URL 웹 작업을 위한 아주 아주
04:48.530 --> 04:52.010
일반적인 표준 패키지죠
04:52.370 --> 04:59.650
GPU를 명시합니다 이 예제에선 사용되지 않았죠
04:59.650 --> 05:00.520
미안해요
05:00.700 --> 05:01.780
비트가 더 간단하죠
05:01.780 --> 05:05.800
이 예제에서는 GPU 사용은 안 할 겁니다 아주 단순하게 할 거니까요
05:06.160 --> 05:10.660
그래서 전 인사법을 알아요
05:10.690 --> 05:11.740
아주 간단해요
05:11.740 --> 05:12.640
일종의 함수예요
05:12.640 --> 05:13.150
안녕하세요
05:13.180 --> 05:14.710
문자열을 반환하죠
05:14.950 --> 05:25.120
이것은 불러오기 요청을 합니다 IP 정보라는 웹사이트로 가죠 io는 알아두면 유용하죠
05:25.120 --> 05:32.620
JSON 객체를 반환하는 유틸리티 중 하나로 IP 주소를
05:32.620 --> 05:35.560
설명하는 거죠
05:35.800 --> 05:42.790
그리고 JSON을 가져다가 도시, 지역, 나라를 뽑고 도시, 지역, 나라에서
05:42.790 --> 05:44.710
인사를 해요
05:44.860 --> 05:46.840
IP 주소로 판단한 거예요
05:46.870 --> 05:52.540
여러분이 어디 있든 안녕하세요를 할 겁니다 적어도 ISP가 서빙하는 곳에서요
05:52.550 --> 05:57.710
그래서 뉴욕과 가까운 곳에 갈 거예요 뉴욕이 아닐 수도 있고요
05:57.980 --> 06:01.520
아주 간단한 함수예요
06:01.550 --> 06:07.850
잠재적으로 흥미로운 건 여기 위에 있는 장식가예요 앱으로 장식한
06:07.850 --> 06:13.490
그러데이션 장식가죠 여기 이거요 모달 앱이요
06:13.490 --> 06:15.560
Hello.com 함수요
06:15.620 --> 06:18.020
이 이미지를 전달해요
06:18.020 --> 06:25.190
그 이미지는 디비언 이미지를 뜻해요 요청이 설치된 이미지죠
06:25.190 --> 06:31.340
그렇게 장식한다는 건 우리가 원할 경우 실행할 수 있는 그런 종류의 박스가
06:31.340 --> 06:33.860
되기를 원한다는 거죠
06:33.950 --> 06:35.510
그게 다예요
06:35.510 --> 06:37.940
그래서 그건 한쪽에 두죠 Put
06:37.940 --> 06:41.480
이게 현존하는 코드의 일부라고 상상할 수 있어요
06:41.480 --> 06:47.420
뭔가를 해야만 했고 이젠 실행하고 싶다고 말할 수 있는 것으로
06:47.420 --> 06:53.710
장식했어요 요청이 설치된 디비언 운영체제를 사용해서요
06:53.920 --> 06:57.520
이 안에 있는 건 그게 다예요 네
06:57.550 --> 06:59.020
아주 간단해요
06:59.080 --> 07:03.790
첫째 날 점으로 돌아가죠 주피터 공책요
07:04.420 --> 07:08.620
이제 그걸 불러오죠
07:08.740 --> 07:16.750
이제 hello를 호출할 수 있습니다 여기 가져오기 한 hello 함수를
07:16.750 --> 07:18.340
취할 수 있어요
07:18.370 --> 07:22.930
hello. local이라고 입력하면 돼요
07:22.930 --> 07:27.790
그 말은 방금 정의한 저 함수를 실행하고 싶다는 거죠 방금 이 함수를 본 거요
07:27.790 --> 07:30.730
제 로컬 상자에서 실행하고 싶다는 거죠
07:30.730 --> 07:32.920
이 주피터 공책에 넣고 싶어요
07:33.130 --> 07:34.270
get get을 해 보죠
07:34.600 --> 07:36.460
지금 실행 중이에요
07:37.300 --> 07:40.900
뉴욕 시포트에서 인사하는 거예요
07:40.930 --> 07:43.600
제 ISP가 거기 있나 봐요
07:44.050 --> 07:44.920
다시 해 보죠
07:44.950 --> 07:46.450
네, 일관성이 있네요
07:46.450 --> 07:48.340
로컬에서 실행되고 있어요
07:48.970 --> 07:53.370
그리고 이 사진을 보세요
07:53.400 --> 07:55.440
완전히 똑같아요
07:55.470 --> 07:58.260
로컬에서 원격으로 바꿨어요
07:58.260 --> 07:58.920
그게 다예요
07:58.950 --> 08:00.360
유일하게 변한 거죠
08:00.990 --> 08:02.400
어떻게 되나 보죠
08:05.850 --> 08:07.740
조금만 더 비트를 타 보죠
08:07.770 --> 08:11.070
버지니아 애시번에서 인사드려요
08:11.100 --> 08:17.910
완전히 다른 상태에서 실행되고 있어요 그러니 그걸 기대하시겠죠
08:17.910 --> 08:19.020
Get it, Get it 아시겠죠?
08:19.350 --> 08:21.060
가끔은 다르기도 해요
08:21.060 --> 08:23.820
그나저나 여기저기서 나오는 걸 봤어요
08:23.820 --> 08:30.630
로컬 대신 원격 호출을 하면 이 함수를 같은 코드 조각으로 호출할 수 있습니다 파이썬 코드와
08:30.630 --> 08:31.920
같은 거죠
08:31.920 --> 08:36.570
서버에 배포되어 그 서버에서 실행되고 있죠
08:38.280 --> 08:39.780
정말 마법 같은 일이죠
08:39.780 --> 08:44.580
마법 같아요 아주 간단하고 코드 몇 개를 배포하게 해주거든요
08:44.760 --> 08:47.970
지금은 라마라는 좀 더 복잡한 패키지를 만들고 있어요
08:49.000 --> 08:52.030
여기서 GPU 같은 게 나타나기 시작하죠
08:52.030 --> 08:57.160
보다시피 hello 예제와 연결했어요 그래서 이게 무엇이었는지에 대한 흔적이 있었던
08:57.160 --> 08:57.880
거죠
08:58.240 --> 09:04.120
우선 제 앱 라마에게 전화를 걸어요
09:04.750 --> 09:10.030
디비언 이미지도 넣는데 이번에는 토치 트랜스포머 비트, 바이트
09:10.030 --> 09:13.360
패키지 가속도 전부 넣을 거예요
09:13.360 --> 09:21.040
지금 저는 포옹하는 얼굴 토큰도 받고 있어요 제 방식의 비밀에서요 진작 보여 드렸어야
09:21.040 --> 09:22.390
하는 거죠
09:22.390 --> 09:27.310
잠시 후 Modal에서 그걸 설정하는 방법을 보여드릴게요 기밀에 도달하는 방법과 포옹하는
09:27.310 --> 09:29.320
얼굴 토큰을 설정하는 방법도요
09:29.350 --> 09:32.170
그렇게 하고 나면 이렇게 읽을 수 있어요
09:32.830 --> 09:39.430
T4 GPU를 원한다고 지정하고 있어요 물론 아주 저렴한 기본이죠
09:39.520 --> 09:41.470
여기 상속자가 있어요
09:41.950 --> 09:47.910
이제 생성 함수가 있네요
09:47.910 --> 09:51.990
문자열인 프롬프트를 받아 문자열을 반환하죠
09:52.770 --> 09:54.480
힌트 형식의 예시인데요
09:54.480 --> 09:55.920
잘 모르신다면요
09:55.920 --> 10:00.360
이번에는 여러 곳에서 할 거예요
10:00.360 --> 10:04.920
비트만 좀 있으면 분명해질 거예요
10:05.430 --> 10:13.110
이 함수도 장식했어요 이미지를 전달하고 비밀을 말하고 T4 GPU를
10:13.110 --> 10:18.600
원한다고 했죠 코드를 이용해 서버를 구성해요
10:18.780 --> 10:23.910
이건 로컬에서 실행할 뭔가를 작성하는 함수예요
10:23.940 --> 10:29.550
이걸 로컬에서 실행할 순 없어요 제 박스는 이런 llama 모델을
10:29.550 --> 10:32.820
로컬에서 실행할 만한 힘이 없거든요
10:32.820 --> 10:37.170
라마 CP 같은 것으로도 할 수 있는 방법이 있어요 익숙하신지 모르겠지만
10:37.170 --> 10:41.040
여기 쓰여 있는 대로는 못 할 거예요 한다고 해도 아주 느릴 거고요
10:41.280 --> 10:48.010
T4 GPU가 있는 박스에서 작업하고 싶어요 이렇게 하는 거죠
10:48.400 --> 10:51.430
이 코드는 아주 익숙하실 거예요
10:51.430 --> 10:53.620
여러분이 아는 구성이죠
10:53.620 --> 10:59.800
그럼 라마를 위한 네 개의 퀀타이즈 비트를 구체적으로 설명해야겠네요
11:00.160 --> 11:05.320
토큰라이저를 로드할 거예요 상용문서 같은 거요
11:05.320 --> 11:08.440
모델을 로드할 거예요
11:08.440 --> 11:17.110
그리고 프롬프트를 토큰으로 인코딩한 것도 볼 수 있는데요
11:17.140 --> 11:20.560
그런 경고를 피하려고 주의 마스크를 씌웠어요
11:20.650 --> 11:23.380
그리고 Model.생성기를 하죠
11:23.380 --> 11:25.000
입력값을 통과시키죠
11:25.000 --> 11:31.810
새 토큰 5개만 필요하고 응답은 하나만 필요하다고 하죠
11:31.810 --> 11:36.520
그 응답을 받아들여서 해독한 다음 돌려주는 거죠
11:36.550 --> 11:38.470
아주 간단해요
11:38.530 --> 11:43.900
이제 그걸 시작해 실행해보죠
11:44.130 --> 11:47.100
무슨 일이 일어나고 있어요
11:47.100 --> 11:52.200
우선, 제가 실제로 실행한 건 뭐죠?
11:52.200 --> 11:59.400
원격 함수를 호출했고 프롬프트에서 라마 모델로 보낸 건
11:59.400 --> 12:02.070
삶은 미스터리예요
12:02.070 --> 12:04.260
모두 혼자 서야 해요
12:04.290 --> 12:13.110
이다음은 어떻게 될지 다들 아셨으면 좋겠네요
12:13.110 --> 12:15.360
안 그러면 제가 늙었다고 느낄 거예요
12:15.570 --> 12:23.040
하지만 이건 물론 오프닝부터 마돈나의 기도처럼 이어지죠
12:23.040 --> 12:26.760
내 이름을 부르는 소리가 들리면 그때 부를게요
12:26.790 --> 12:29.310
그 말을 안 하는 게 너무 힘들어요
12:29.460 --> 12:33.750
이제 그 노래가 제 머릿속에서 오늘 하루 동안 들릴 거예요 HOLO
12:33.870 --> 12:35.040
하지만요
12:35.040 --> 12:35.310
12:35.340 --> 12:40.410
이 노래를 영원히 마음에 담아뒀다면 미안해요 하지만 노래가 정말 중독성 있어요 Put it's go
12:40.440 --> 12:45.220
어쨌든 지금 보이는 건 저 상자에서 일어나는 일이에요
12:45.370 --> 12:49.240
그 자체로 수정할 수도 있어요
12:49.420 --> 12:55.330
그리고 어디 보자 화면을 새로 고침할게요
12:56.890 --> 12:59.290
배포된 앱이 아니에요
13:04.270 --> 13:05.350
하루살이 앱요
13:05.350 --> 13:06.340
바로 그거예요
13:06.550 --> 13:08.620
잠시만요, 좀 찾아볼게요
13:08.710 --> 13:09.730
이게 끝이군요
13:09.730 --> 13:11.050
지금 뛰어요
13:11.080 --> 13:17.650
단기간 앱으로 운영되는데 2분 전에 시작됐어요
13:17.650 --> 13:22.570
클릭하면 상태가 실행 중인 걸 볼 수 있죠
13:22.990 --> 13:26.380
또 뭐가 있나 볼게요 get it
13:26.590 --> 13:29.680
컨테이너는 작동해요
13:31.990 --> 13:35.230
메모리와 CPU 코어를 볼 수 있어요
13:39.220 --> 13:42.960
T4 GPU가 보이죠 우리가 명시한 대로요
13:43.620 --> 13:52.740
그리고 또 볼 수 있는 게 안녕하세요 이 상자에 파이가 있어요
13:52.740 --> 13:59.730
라마도요 파이썬 파이썬의 대본 스크립트가 거기 있어요
14:00.390 --> 14:03.330
자, 시작하죠
14:03.360 --> 14:07.770
여기 온 김에 하나만 지적할게요 맨 위에 있는 건 비밀이에요
14:07.770 --> 14:12.540
비밀은 물론 비밀을 설정하는 곳이죠 포옹 얼굴 토큰이에요
14:12.540 --> 14:14.160
그러니 그렇게 하세요
14:14.310 --> 14:18.210
지금은 클릭하지 않을 거예요 포옹 얼굴 토큰 비밀이 드러나면 안 되니까요
14:18.270 --> 14:24.570
어쨌든 거기로 가면 됩니다 포옹하는 얼굴 토큰을 사용할 수 있는데
14:24.570 --> 14:30.240
그 코드는 여기서 잠깐 동안 배포되는 코드예요
14:30.840 --> 14:32.310
아직 작동하는군요
14:32.310 --> 14:35.550
이 시점에서 이 비디오를 고수해야겠네요
14:35.550 --> 14:39.420
제가 돌아오면 이미 성공했다고 나오네요
14:39.630 --> 14:43.690
Get it가 끝났다는 메시지를 받았어요
14:43.840 --> 14:45.280
그리고요
14:45.280 --> 14:45.880
어디 보죠
14:45.910 --> 14:46.180
14:46.180 --> 14:47.320
여기요
14:48.400 --> 14:49.870
get get을 해 보죠
14:49.900 --> 14:52.330
내 이름을 부르는 소리가 들려요
14:52.390 --> 15:00.010
네 개의 퀀트화된 라마의 비트조차 마돈나 노래를 완성하지 않을
15:00.040 --> 15:01.420
수 없었죠
15:01.690 --> 15:07.360
이 코드를 성공적으로 실행했어요
15:07.600 --> 15:22.900
이 단기적인 서비스를 이용해 퀀타이즈한 라마 모델 라마3를 작동했어요
15:22.900 --> 15:22.900
프롬프트를 완료하는 건 1가지 모델이죠
15:23.200 --> 15:24.070
좋아요
15:24.070 --> 15:30.100
돌아와서 살펴보고 모델을 배포할 시간이 될 겁니다 어떻게
15:30.100 --> 15:37.870
하는지 지난 시간에 빌드한 소유 모델에 API를 어떻게 놓는지 보죠
15:38.110 --> 15:39.550
잠시 후에 뵙죠