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.
 
 

568 lines
14 KiB

WEBVTT
00:00.530 --> 00:05.180
다시 오신 걸 환영합니다 유피터랩에 오신 걸 환영해요
00:05.300 --> 00:09.110
재밌는 예시로 여러분을 즐겁게 해 드릴게요
00:09.200 --> 00:14.690
챗봇끼리 적대적인 대화를 나눌 거예요
00:14.720 --> 00:16.220
어떻게 할지 보죠
00:16.400 --> 00:22.310
이쯤 되면 어떤 요소들을 가지고 대화를 할 수 있는지 익숙해지실 거예요
00:22.340 --> 00:23.420
여러 번 보셨잖아요
00:23.420 --> 00:29.990
이제 시스템과 사용자 프롬프트가 있는 리스트를 보죠
00:30.410 --> 00:37.130
하지만 앞서 암시했듯이 여러 상호 작용을 할 경우 목록은 더 길어질 수 있습니다 예를
00:37.130 --> 00:42.410
들어, 여기 보이는 것처럼 시스템 메시지가 초기에 있을 수 있고 역할
00:42.410 --> 00:49.280
시스템 콘텐츠나 시스템 메시지가 있고 그 후 사용자 메시지 그 메시지에 응답한 비서가
00:49.280 --> 00:53.720
있고 그 후 또 다른 사용자 메시지가 있을 수 있죠
00:53.720 --> 00:59.030
그 구조는 더 긴 대화의 역사를 대변하죠
00:59.030 --> 01:05.080
그런 접근법을 이용해 우리와 챗봇 혹은 두 챗봇 사이의 더 긴 대화를
01:05.080 --> 01:06.910
할 수 있어요
01:06.940 --> 01:14.110
짚고 넘어갈 게 있어요 이런 접근법, 이런 구조는 챗봇과 대화하는
01:14.110 --> 01:16.930
모든 방법이에요
01:16.960 --> 01:21.220
여러 번의 상호 작용을 통해 지속되는 것 같아요
01:21.220 --> 01:30.490
매번 GPT 4 같은 LLM에 다른 프롬프트를 만들 때마다 입력 프롬프트에
01:30.760 --> 01:38.530
입력되는 것은 지금까지 전체 대화의 전체 구조예요
01:38.530 --> 01:45.460
그리고 완료를 통해 계속됩니다 가장 다음에 나올 것 같은 토큰을
01:45.490 --> 01:47.740
계속 생성하죠
01:47.740 --> 01:49.930
그리고 그 내용이 대화에 추가되죠
01:49.930 --> 01:52.240
그럼 답장하세요
01:52.240 --> 01:56.830
다음에 LLM이 호출되면 모든 대화가 연결되죠
01:56.830 --> 01:59.980
그리고 그 다음 패를 예측해 달라고 하죠
01:59.980 --> 02:06.260
뭔가와 대화를 하고 있는데 메모리가 있고 10분 전에 한 말을 기억한다는
02:06.260 --> 02:08.870
착각이 들어요
02:08.870 --> 02:14.420
하지만 실제로 발생하는 일은 각각의 상호 작용에서 지금까지의 전체
02:14.420 --> 02:18.800
대화를 LM에 입력하고 계속하라고 요청하는 거죠
02:19.010 --> 02:23.900
어떻게 작동하는지 좋은 감각과 직관을 얻을 수 있을 거예요
02:23.900 --> 02:28.670
그래서 지난주에 컨텍스트 창에 대해 얘기할 때 컨텍스트 창의
02:28.670 --> 02:34.010
크기는 지금까지 모든 대화에 맞아야 하고 그 후 생성된 토큰도 포함돼야
02:34.010 --> 02:35.210
한다고 했죠
02:35.210 --> 02:40.970
LM을 호출할 때마다 이 전체 입력이 통과되기 때문이죠
02:41.480 --> 02:47.960
그런 접근법을 이용해 비트를 즐길 수 있죠
02:47.960 --> 02:54.950
이제 GPT 4와 미니 클로드 3이 대화를 나눌 거예요 클로드
02:54.980 --> 02:58.940
3의 아주 저렴한 버전이죠
02:59.150 --> 03:03.260
다른 모델을 사용하는 것도 보여드릴 수 있고요 이런 문자열을
03:03.260 --> 03:09.870
마음대로 사용할 수 있는 게 유용할 겁니다 직접 다른 모델을 빠르게 시험해볼 수 있도록요
03:09.900 --> 03:14.010
GPT는 이 시스템 프롬프트를 받게 되죠
03:14.010 --> 03:16.500
당신은 논쟁을 좋아하는 챗봇이에요
03:16.530 --> 03:19.440
당신은 대화의 모든 내용에 반대해요
03:19.440 --> 03:22.470
모든 것에 도전하는 비꼬는 방식으로요
03:22.920 --> 03:25.380
클로드는 다른 시스템을 받았어요
03:25.380 --> 03:27.510
아주 예의 바르고 정중한 챗봇이군요
03:27.540 --> 03:31.320
상대방의 모든 말에 동의하고 공통점을 찾으려고 노력하죠
03:31.320 --> 03:35.580
상대가 논쟁을 하면 진정시키고 계속 대화를 나누죠
03:35.700 --> 03:37.380
괜찮은 계획 같지 않아요?
03:37.410 --> 03:39.720
근사하고 군침 도는 설정이죠
03:40.050 --> 03:41.970
그럼 인사부터 시작할게요 안녕하세요
03:41.970 --> 03:42.930
안녕하세요
03:42.960 --> 03:44.730
그게 설정이에요
03:45.030 --> 03:51.720
좋아요, GPT라는 함수를 작성하고 있어요 이게 하는 일이죠
03:51.780 --> 04:01.830
이 메시지를 갖고 그리고 기본적으로 여기 보이는 두 개의 목록이 필요합니다 GPT 메시지와 클로드
04:01.830 --> 04:08.290
메시지요 그리고 여기 보이는 이런 종류의 목록을 만들죠
04:08.290 --> 04:13.480
두 개의 메시지 목록을 가지고 전체 대화 기록을 구축할 거예요
04:13.480 --> 04:20.860
이 경우에는 클로드의 메시지가 사용자고 메시지가 보조인
04:20.860 --> 04:22.780
셈이죠
04:23.110 --> 04:25.000
무슨 뜻인지 설명해 드릴게요
04:25.000 --> 04:27.220
시스템 프롬프트부터 시작했죠
04:27.460 --> 04:32.290
GPT 메시지와 클로드 메시지를 반복하죠
04:32.290 --> 04:34.900
이 압축 파일 지퍼를 사용해요
04:35.080 --> 04:40.540
데이터 과학자로서 많이 써 본 것일 수도 있고 그렇지 않더라도 모르는 사람들이
04:40.540 --> 04:41.680
있을 수도 있죠
04:41.680 --> 04:43.030
정말 유용한 정보예요
04:43.030 --> 04:49.300
여러 개의 다른 리스트가 있고 각각의 요소들을 반복하고 싶다면 양쪽을
04:49.300 --> 04:57.880
함께 이용해야 합니다. 지루한 방법은 범위와 리스트의 길이를 입력하는 것인데요.
04:57.880 --> 05:03.520
기본적으로 인덱스가 있는 일종의 순환기가 있는 거죠 그리고 끝날 때까지 숫자를 세다가 두 요소를
05:03.520 --> 05:05.530
get get 하는 거예요
05:05.530 --> 05:09.690
지퍼로 압축 파일을 만드는 비단뱀처럼 간단한 방법이 있어요
05:09.690 --> 05:16.770
이 두 목록에서 zip을 호출하면 그에 대한 반응을 구축합니다 순환기로서
05:16.770 --> 05:25.890
각각의 쌍을 반복하죠 두 목록의 각각의 요소를 함께요 그리고 각 지점에서 그 쌍을 반환해요
05:26.220 --> 05:31.110
그걸 풀고 GPT에 클로드를 입력하세요
05:31.110 --> 05:34.380
Get을 통해 페어를 받을 수 있어요
05:34.380 --> 05:39.480
이걸 추측할 수도 있지만 서너 개의 목록을 반복하려 할 경우 그냥 여기로 밀어
05:39.480 --> 05:41.730
넣고 같은 걸 할 수도 있어요
05:41.760 --> 05:47.010
JupyterLab에서 활용할 수 있는 훌륭한 트릭이죠 익숙하지 않다면 임의 목록 몇
05:47.010 --> 05:50.640
개를 편하게 활용하세요 언제든 사용할 수 있는 좋은 도구예요
05:50.640 --> 05:58.230
어쨌든 이 두 개의 메시지 세트를 반복하고 그걸 풀어냅니다 그런 다음 추가하는 걸 상상하실
05:58.230 --> 06:05.490
수 있어요 보조는 GPT가 하는 말은 뭐든 한다고 하고 사용자는 클로드가 하는 말은 뭐든
06:05.490 --> 06:06.870
한다고 하죠
06:06.870 --> 06:12.040
간단하게 OpenAI ChatGPT완료 생성이라고 부르죠
06:12.070 --> 06:21.010
모델을 사용하길 요청하고 메시지를 전달하고 완료를 리턴하죠 0살요 메시지 내용이죠
06:21.010 --> 06:24.640
이 구조에 익숙해지길 바라요
06:25.030 --> 06:26.440
실행해보죠
06:26.440 --> 06:29.560
이 이력을 바탕으로 GPT에 전화해 보죠
06:29.560 --> 06:31.750
GPT는 뭐라고 할까요?
06:31.750 --> 06:32.230
안녕하세요
06:32.230 --> 06:32.980
안녕하세요
06:33.010 --> 06:35.020
이렇게 답장할 거예요
06:35.500 --> 06:36.610
잘됐네요
06:36.610 --> 06:37.870
또 인사하네요
06:37.900 --> 06:39.220
참 독창적이네요
06:39.220 --> 06:40.870
무슨 얘기를 하고 싶어요?
06:41.440 --> 06:42.430
06:42.520 --> 06:44.110
재미있을 것 같죠?
06:44.410 --> 06:47.680
클로드의 함수는 이거예요
06:47.710 --> 06:49.000
아주 비슷해요
06:49.000 --> 06:54.070
시스템 메시지는 따로 전달된다는 걸 기억하실 겁니다 그러니 그걸 만들 필요는
06:54.100 --> 06:54.730
없죠
06:54.730 --> 06:56.020
여기 보이시죠
06:56.410 --> 07:00.790
그리고 또 한 가지 역할이 바뀌었어요
07:00.790 --> 07:04.570
사용자는 이제 GPT고 보조는 클로드예요
07:04.570 --> 07:05.950
그래서 뒤집혔어요
07:05.980 --> 07:13.260
이 목록들을 살펴보면 미묘한 차이를 발견하실 수 있을 거예요
07:13.260 --> 07:16.470
명단은 GPT가 먼저 출발하니까요
07:16.560 --> 07:23.100
클로드가 늘 답을 맞힌다면 클로드보다 GPT 목록에 메시지가 하나 더 있을 거예요
07:23.100 --> 07:25.680
마지막에 추가해야 하는 거죠
07:25.770 --> 07:30.120
제 말뜻을 모르신다면 곧 알게 되시겠지만요
07:30.150 --> 07:33.090
제가 왜 이러는지 이해하실 거예요
07:33.390 --> 07:36.210
이건 클로드에게 API 호출하는 거예요
07:36.210 --> 07:37.860
이제 익숙해지셨길 바라요
07:37.860 --> 07:38.490
더 간단하죠
07:38.490 --> 07:39.150
클로드예요
07:39.150 --> 07:40.530
.Message.Create요
07:40.860 --> 07:43.620
최대 토큰을 또 통과시키죠
07:43.620 --> 07:46.440
응답은 메시지 콘텐츠예요
07:46.470 --> 07:47.580
0.Txt요
07:47.580 --> 07:48.660
클로드의 대답이에요
07:48.690 --> 07:49.860
실행해 보죠
07:50.190 --> 07:54.420
바로 재미를 보러 갈 것 같아요
07:54.420 --> 07:56.940
그래서 여기서 모든 걸 합쳐요 Put it up Put it up Put it up Put it up Put it up Put it up Put it up Put it
07:57.120 --> 07:59.730
안녕하세요로 다시 시작해요
07:59.730 --> 08:04.560
안녕하세요, 프린트하겠습니다 GPT와 클로드가 소개를 하고 있네요
08:04.560 --> 08:07.290
다섯 번 반복할 거예요
08:07.290 --> 08:15.070
GPT를 호출해서 GPT 응답을 인쇄하고 메시지 목록에 넣습니다 클로드를 호출해서 클로드의
08:15.070 --> 08:20.920
응답을 인쇄하고 그걸 메시지 목록에 넣고 반복합니다 두 챗봇이 어떤
08:20.920 --> 08:23.260
대화를 하는지 보죠
08:23.290 --> 08:24.490
준비됐어요?
08:25.000 --> 08:25.840
시작할게요
08:25.870 --> 08:27.160
내가 그 감방을 처형한 적이 있나요?
08:27.160 --> 08:27.940
또 잘못되길 바라요
08:27.970 --> 08:28.450
08:28.480 --> 08:30.670
공연할 준비 됐어요
08:36.280 --> 08:37.450
확인해 보죠
08:37.480 --> 08:38.950
GPT가 안부 전해달래요
08:38.980 --> 08:40.030
클로드가 안부 전하래요
08:40.060 --> 08:41.650
GPT는 잘됐다고 하죠
08:41.650 --> 08:42.700
또 인사하네요
08:42.700 --> 08:43.270
참 독창적이네요
08:43.270 --> 08:44.230
다음은 뭐죠?
08:44.260 --> 08:45.010
안녕하세요?
08:45.010 --> 08:47.230
나도 그 말에 반대하고 싶거든요
08:47.560 --> 08:51.100
클로드, 첫인사가 진부했던 거 사과할게요
08:51.100 --> 08:53.530
친절하고 정중하게 대답하려고 했어요
08:53.740 --> 08:54.280
08:54.280 --> 08:58.840
착각하지 마세요 당신의 친선적인 시도는 평범했고 공통점을 찾았어요
08:58.840 --> 08:59.590
less
08:59.620 --> 09:02.710
모든 걸 사탕발림으로 포장하고 싶다는 말이죠
09:02.710 --> 09:05.290
논란이 될 만한 걸 파헤쳐 보죠
09:05.350 --> 09:06.580
파인애플과 피자요?
09:06.610 --> 09:08.410
온종일 논쟁할 준비가 돼 있거든요
09:08.410 --> 09:11.170
GPT는 빈정대는 유머 감각이 있어요
09:11.170 --> 09:17.060
클로드는 친절하고 유머러스하게 굴었고요 좀 뻔하긴 했지만 뭐, 시작은
09:17.060 --> 09:18.620
할 수도 있죠
09:19.010 --> 09:25.340
그리고 잘해주려고 하는데 피자에 파인애플을 얹을 건지 말 건지 싸우는
09:25.370 --> 09:26.300
게 보여요
09:26.510 --> 09:27.440
09:27.470 --> 09:30.770
내 피자 취향을 존중해 주다니 정말 관대하군요
09:30.770 --> 09:31.910
하지만 현실적으로 생각해 보죠
09:31.910 --> 09:38.450
파인애플이나 피자 같은 혐오스러운 걸 세상에 퍼뜨린다고 해서 모두가 존중받을
09:38.450 --> 09:40.340
필요는 없어요
09:40.520 --> 09:42.080
09:42.080 --> 09:48.200
어쨌든, 어... 미화된 사랑을 정당화하는 것 좀 봐요
09:48.200 --> 09:54.680
클로드 것보다 gpt나 농어 문제를 읽는 게 더 재밌어요
09:54.680 --> 09:55.490
아주 좋아요
09:55.520 --> 09:58.910
아보카도 토스트 비평을 참는 건 아니죠?
09:58.940 --> 10:03.110
클로드는 아주 상냥하게 타당한 지적을 했다고 하네요
10:03.890 --> 10:07.370
어쨌든 이걸로 데모를 마무리하죠
10:07.400 --> 10:08.900
즐거우셨길 바라요
10:08.900 --> 10:13.700
제가 메시지를 구성하는 방식을 이해 못 하셨다면 프린트해서
10:13.700 --> 10:16.090
실행해 보세요
10:16.120 --> 10:17.200
인쇄되는 게 보일 거예요
10:17.200 --> 10:21.880
각 지점에 이 메시지 배열을 프린트하면 뭐가 생성됐는지 볼 수 있죠
10:21.880 --> 10:25.090
그걸 보고 우리가 제대로 하고 있다고 만족할 수 있죠
10:25.180 --> 10:28.510
여기 요구 사항이 있어요
10:28.540 --> 10:31.720
이제 돌아가서 역할을 바꿔 보세요
10:31.720 --> 10:40.390
클로드가 더 공격적이고 오픈아이는 평화를 유지하려 하죠 그들의 행동을 관찰하고
10:40.420 --> 10:44.290
다른 스타일의 챗봇을 줘요
10:44.620 --> 10:49.330
물론 이 훈련의 목적은 이런 대화 구조에 익숙해지게
10:49.330 --> 10:51.550
하는 거죠 get it
10:51.550 --> 10:53.560
클로드의 API 덕분이기도 하죠
10:53.680 --> 10:55.240
하지만 그것도 재미있겠네요
10:55.240 --> 11:00.400
또 다른 도전은 제미니가 함께 있는 거죠
11:00.400 --> 11:02.560
제미니의 API를 써요
11:02.560 --> 11:10.510
제미니에 제3의 인격을 부여해서 이상한 대화가 오가지 않는지 보는 거죠
11:10.510 --> 11:12.250
즐겁게 갖고 놀아요
11:12.250 --> 11:15.700
그렇게 하시면 코드를 푸시하세요 결과를 보고 싶으니까요
11:15.730 --> 11:18.130
즐겁게 작업하시길 바라요