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.
 
 

571 lines
15 KiB

WEBVTT
00:01.070 --> 00:04.640
유피터랩은 언제나 환영이죠 제가 제일 좋아하는 곳이에요
00:04.640 --> 00:07.790
지금은 5주 차 폴더에 있죠
00:07.790 --> 00:14.000
이건 5주 차에 작성된 첫째 날 주피터 노트예요 오늘 우리가 지낼 곳이죠 아주
00:14.000 --> 00:20.240
단순한 방식으로 DIY 래그 구현을 구축할 겁니다 하지만 이게 어떻게 작동하는지
00:20.240 --> 00:22.610
통찰력을 줄 거예요
00:22.700 --> 00:29.870
우선 쇼어햄에 있는 우리 보험 기술 회사에 대해 말씀드리죠
00:29.990 --> 00:37.400
회사 공유 폴더에 엑세스 권한이 있어요 노웨어 베이스라는 거죠 같은 주에 여기 5개
00:37.400 --> 00:41.690
폴더에 넣어뒀어요 여러분이 정독하세요
00:41.690 --> 00:48.260
열어보면 4개의 폴더가 있어요 회사 계약서, 직원과 제품 4개의
00:48.260 --> 00:53.660
다른 부서나 4개의 분야를 나타내는 것들이죠
00:54.020 --> 01:00.050
한 가지 언급할 것은 이미 짐작하셨겠지만 여기 회사 데이터가 꽤 많이
01:00.050 --> 01:03.450
있습니다 전부 완전히 허구예요
01:03.660 --> 01:07.440
이건 LLM이 만든 거예요
01:07.470 --> 01:14.940
몇 주 전에 했던 운동을 그대로 하면서 데이터 생성기를 작성해서 데이터 일부를 만드는 데 사용했어요
01:14.940 --> 01:19.020
몇몇 문서와 기타 등등의 관계를 유지하기 위해서요
01:19.050 --> 01:24.450
저도 몇 가지 수정을 추가하긴 했지만 거의 모든 것은
01:24.450 --> 01:28.530
GPT 4나 클로드가 생성했어요
01:29.370 --> 01:34.470
회사에서 이걸 잠깐 보죠 회사에 관한 게 몇 가지 있어요
01:34.470 --> 01:39.180
마크다운 문서라면 꽤 짧은 문서라고 생각해요
01:39.180 --> 01:46.440
이렇게 열 수 있으면 INurer Elmlm에 대한 평가서를 볼 수 있어요
01:46.440 --> 01:50.880
2015년에 에이버리 랭커스터가 설립한 것으로 알려져 있죠
01:50.880 --> 01:52.230
에이버리 이름을 쓸 거예요
01:52.260 --> 01:53.910
몇 번 만날 거예요
01:54.240 --> 01:57.030
원본 문서도 보여 드릴게요
01:57.030 --> 02:00.210
우리가 잘 아는 마크다운처럼 보여요
02:00.210 --> 02:03.850
그럼 계약의 지식 기반으로 돌아가 보죠
02:03.850 --> 02:10.540
계약에 관해 보다 실질적인 정보를 얻었는데요 계약 조건 갱신과 계약에 포함된
02:10.570 --> 02:15.130
기능은 나중에 중요하게 다루게 될 텐데요
02:15.130 --> 02:16.960
그러니 기억해 두세요
02:17.260 --> 02:19.150
다른 것들도요
02:19.510 --> 02:25.480
다시 지식 기반으로 돌아가서 직원들을 살펴보면 이건 다양한 직원들의 직원 인사
02:25.480 --> 02:26.770
기록이에요
02:26.770 --> 02:32.440
CEO인 에이버리 랭커스터도 인사팀의 기록이 있어요
02:32.770 --> 02:41.050
모두 인사 서류를 갖고 있고 제품에는 인큐어 엘름에서 제안한 다양한
02:41.050 --> 02:50.530
공지 사항이 적혀 있어요 자동차 보험에 대한 카 엘름도 있고 홈 엘름 등도 있죠
02:50.530 --> 02:55.600
이 문서들을 훑어보면 정말 사실적이라는 게 놀라워요
02:55.630 --> 02:59.800
프론티어 모델스 협찬이죠
02:59.920 --> 03:03.480
로드맵을 가지고도 훌륭한 제품 요약이에요
03:03.480 --> 03:04.500
좋아요
03:04.980 --> 03:06.360
03:06.390 --> 03:08.940
그 시절 첫날부터요
03:08.940 --> 03:10.800
그럼 어떻게 하죠?
03:10.830 --> 03:16.380
이 회사에 대한 질문을 하는 뭔가를 지금 작성하겠습니다 인위적으로
03:16.410 --> 03:20.700
찾아보고 프롬프트에 컨텍스트를 삽입하는 거죠
03:20.700 --> 03:22.110
수입도 좀 하고요
03:22.110 --> 03:25.470
이번에는 GPT 4 미니를 사용할 거예요
03:25.530 --> 03:31.170
이제 주스 얘기를 해보죠 get it get it
03:31.170 --> 03:40.560
그래서 여기서 하는 건 이건 Python 함수입니다 이 폴더 안에서 모든 콘텐츠를
03:40.560 --> 03:43.350
취해 리스트에 넣는 거죠
03:43.350 --> 03:44.100
직원들요
03:44.100 --> 03:51.600
따라서 직원은 이제 지식 기반/직원 파일명 목록이 되겠죠
03:51.600 --> 03:59.400
각각의 파일은 엉성한 코드인데 해킹을 당해서 파일의 이름을 취해요
03:59.640 --> 04:06.490
사실 직원의 플로이드 이름인데 거기에 성을 취하죠
04:06.520 --> 04:14.140
성을 분할해 파일을 열고 사전에 넣죠 키는 직원 이름이고
04:14.140 --> 04:17.080
문서는 문서예요
04:17.080 --> 04:20.020
이걸 실행해 보죠 이걸 보세요
04:20.020 --> 04:22.090
사전이 나올 거라고 기대해요
04:23.080 --> 04:24.760
미안해요
04:25.210 --> 04:28.570
문맥이나 사전이라고 하죠
04:28.570 --> 04:31.180
모든 키를 문맥 안에서 살펴보죠
04:31.390 --> 04:33.130
여기 열쇠요
04:33.130 --> 04:38.410
예상하셨겠지만 열쇠는 직원들의 성이에요
04:38.410 --> 04:42.040
그중 한 명은 CEO인 랭커스터예요
04:42.040 --> 04:44.560
랭커스터를 간단히 살펴보죠
04:44.560 --> 04:48.520
랭커스터 사전에서 간단히 찾아볼 수 있죠
04:48.520 --> 04:53.620
뱀이 인사 기록에서 하락 문서를 떼는 걸 봐야 해요
04:53.650 --> 04:58.990
마법 같은 일은 전혀 없어요 파일을 읽고 사전에 쑤셔 넣는 거요
04:58.990 --> 05:00.670
그게 다예요
05:01.480 --> 05:09.200
이제 이걸 확장해보죠 여기서 하려는 건 제품에 대해 정확히 같은 걸 하는 거예요
05:09.230 --> 05:16.520
제품 폴더를 보세요, 각각의 파일을 반복해 이름을 빼내고 같은 컨텍스트
05:16.520 --> 05:18.800
사전에 밀어 넣어요
05:18.800 --> 05:22.520
이제 보면∙∙∙ 먼저 실행하면∙∙∙ 잊지 않도록 하세요
05:22.520 --> 05:23.180
됐어요
05:23.180 --> 05:24.650
이제 건반을 보세요
05:24.650 --> 05:28.580
직원들의 성과 제품명을 조합한 게 보일 거예요
05:28.940 --> 05:32.570
이게 그 회사 성이랑 시장이에요
05:32.750 --> 05:33.620
다녀왔어요
05:33.620 --> 05:34.910
진정했어요
05:35.030 --> 05:38.150
제품명은 괜찮아요?
05:38.810 --> 05:40.130
준비됐죠?
05:40.160 --> 05:41.780
시스템 메시지예요
05:41.780 --> 05:47.180
보험 회사인지 아닌지 묻는 질문에 정확하게 대답하는 전문가죠
05:47.210 --> 05:49.100
간결하고 정확하게 대답하세요
05:49.100 --> 05:51.590
모르면 모른다고 하세요
05:51.590 --> 05:52.820
지어내지 마세요
05:52.820 --> 05:55.550
관련 맥락을 제공받지 못했다면요
05:56.060 --> 06:02.570
매우 신뢰할 만한 설명을 시스템에 입력하면 아무것도 발명하지 말라고
06:02.570 --> 06:08.790
경고하는 효과가 있어서 환각 증상을 막고 정확도를 높일 수 있죠
06:08.970 --> 06:13.500
나중에 다시 살펴보겠지만 기억해두실 가치가 있어요 이걸 여러분 노트북에
06:13.530 --> 06:20.550
두시거나 유용한 것 목록에 두시길 바랍니다 정확성이 필수적일 땐 프롬프트도 유용하거든요
06:20.940 --> 06:32.610
그걸 추가해 관련 컨텍스트 get이라는 함수를 만들 거예요
06:32.610 --> 06:35.490
이 함수가 하는 일은 아주 중요해요
06:35.490 --> 06:45.090
이건 메시지가 될 거예요 어떤 종류의 메시지든요
06:45.450 --> 06:53.160
컨텍스트를 반복할 거예요 컨텍스트에 있는 각각의 아이템에서 제목과 세부 사항을
06:53.160 --> 06:55.020
가져오는 거죠
06:55.020 --> 07:02.370
그리고 타이틀인지 아닌지 직원의 성인지 제품인지를 봅니다
07:02.370 --> 07:07.370
제품이라면요 메시지 어딘가에 있다면요
07:07.370 --> 07:14.030
랭커스터라는 단어가 메시지의 어디에 있든 간에 이 관련 컨텍스트 리스트에
07:14.030 --> 07:18.920
밀어넣을 것입니다 그리고 리스트를 반환하죠
07:18.950 --> 07:21.110
그게 무슨 뜻인지 보여드리죠
07:21.140 --> 07:34.670
관련 컨텍스트를 get 하고 완전히 무관한 걸 넘긴다면 고양이 같은 거요 아무것도 못 얻어요
07:34.700 --> 07:38.870
고양이는 보장 문제와 관련이 없어요
07:38.900 --> 07:46.160
그래서 에이버리 랭커스터가 누구인지를 입력하면, 만세! Tipet up! Tipet up! Tipet up! Tipet up! Tipet up! Tipet up!
07:46.190 --> 07:53.690
사실 아주 확실한 답이 나올 겁니다 우리가 기대하는 바로 그 답이죠 get it get it get it
07:53.840 --> 08:04.310
에이버리 랭커스터가 누구고 누가 차분한지 물으면 한번 보죠
08:04.370 --> 08:09.030
포함할 수 있는 두 가지 목록이 get을 받게 되죠
08:09.060 --> 08:10.800
네, 두 번째가 시작되는 게 보이시죠
08:10.800 --> 08:12.600
저게 기둥이에요
08:12.600 --> 08:17.940
에이버리의 문서와 열 문서가 담긴 목록을 받았죠 get it get it
08:18.450 --> 08:21.030
물론 아주 잘 부서지죠
08:21.030 --> 08:28.650
Avery 성을 빼고 Avery라고만 쓸게요 대문자 C 없이요 대소문자 구분이
08:28.650 --> 08:32.220
안 되는 매치도 아직 안 했거든요
08:32.220 --> 08:34.950
Get을 해도 얻는 게 없다는 걸 알게 되겠죠
08:34.950 --> 08:36.360
잘 부서져요
08:36.360 --> 08:39.780
기본 케이스에만 적용될 거예요
08:40.620 --> 08:46.950
이제 한 단계 더 나아가서 함수 추가 컨텍스트를 만들어 메시지를
08:46.950 --> 08:47.970
받죠
08:48.120 --> 08:53.190
간단히 어떤 관련 컨텍스트든 get이 되는 거죠
08:53.190 --> 08:56.370
뭔가를 찾으면 그걸 메시지에 추가하죠
08:56.370 --> 09:01.290
다음의 추가적인 컨텍스트가 이 질문에 대답하는 데 관련 있을 수 있다고 할 거예요
09:01.290 --> 09:04.320
지나간 것 위에 뭔가를 쌓는 거예요
09:04.320 --> 09:07.900
예를 들어보죠 질문을 다시 해보죠
09:07.960 --> 09:12.160
에이버리 랭커스터부터 시작할게요 긍정적인 예죠 나쁜 예도
09:12.160 --> 09:12.880
있어요
09:12.880 --> 09:17.170
에이버리 랭커스터가 누구고 감방을 운영해야 한다고요
09:19.270 --> 09:23.410
에이버리 랭커스터가 누구죠?
09:23.410 --> 09:24.700
뭐가 보이죠?
09:24.940 --> 09:25.840
그렇군요
09:25.840 --> 09:26.830
시작할게요
09:26.830 --> 09:29.650
에이버리 랭커스터가 누구죠?
09:29.680 --> 09:32.620
다음의 추가적인 맥락은 이 질문에 대답하는 데 관련이 있을 수 있죠
09:32.620 --> 09:34.540
세세한 부분까지 신경 써야 해요
09:34.750 --> 09:37.870
제가 반대 예시를 들어볼게요
09:37.870 --> 09:39.340
또 다른 문제요
09:39.340 --> 09:44.290
알렉스 랭커스터가 누구냐고 물으면 랭커스터라고 쓰여 있을 거예요
09:44.290 --> 09:47.530
물론 여전히 관련 컨텍스트라고 하죠
09:47.740 --> 09:50.380
물론 거기서 묘기를 놓쳤죠
09:50.380 --> 09:53.320
그래서 조잡해요
09:53.440 --> 09:56.470
문자열만 살펴보는 거예요
09:56.470 --> 10:01.570
하지만 최애 채팅 함수를 쓰려면 그 정도면 충분하죠
10:01.570 --> 10:04.510
이게 그라디오가 기대하는 함수라는 걸 기억하세요
10:04.510 --> 10:09.230
사용자 인터페이스를 빠르게 만들려면 현재 메시지와 메시지의 이력을 취해야 합니다
10:09.230 --> 10:12.200
이제 이게 여러분께 제2의 본성이 됐으면 좋겠네요
10:12.230 --> 10:20.510
히스토리를 OpenAI가 기대하는 형식으로 변환합니다 특정 구조의 독재 목록이죠
10:20.510 --> 10:23.660
그리고 이 멋진 전화를 걸죠
10:23.660 --> 10:28.880
메시지에 컨텍스트를 추가해 오픈AI에 보냈어요
10:28.880 --> 10:36.590
오픈AI 채팅 완료 역시 여러분께 제2의 본성이 되어 응답을 스트림으로
10:36.590 --> 10:38.150
보내드리죠
10:38.150 --> 10:40.190
실행해 보죠
10:40.280 --> 10:46.430
이제 마지막 단계는 그래디오에서 이걸 불러오는 한 줄 대사예요
10:46.760 --> 10:47.510
시작할게요
10:47.540 --> 10:49.370
어떤지 보죠
10:54.230 --> 10:56.000
이렇게 말해 보죠
10:56.060 --> 10:56.780
안녕하세요
10:59.510 --> 11:00.050
안녕하세요
11:00.050 --> 11:01.460
무엇을 도와드릴까요?
11:01.490 --> 11:06.410
에이버리 랭커스터가 누구냐고 물어보죠
11:08.620 --> 11:09.190
맞아요
11:09.190 --> 11:09.460
11:09.490 --> 11:10.570
랭커스터요
11:11.950 --> 11:21.670
물론 좋은 답변이 나왔죠 에이버리 랭커스터 정보가 입력된 정보를 오픈라이에 보냈다는 걸 알고
11:21.670 --> 11:24.940
있었으니까요 get it
11:25.300 --> 11:30.040
이제 뭐가 평온한지 말해 볼까요?
11:32.350 --> 11:34.870
혁신적인 자동차 보험 상품도 있죠
11:34.900 --> 11:35.770
다 됐어요
11:35.770 --> 11:40.660
제품에 대해 중점을 두고 있는 큰 컨텍스트에서 요약되는 정보가 엄청나게
11:40.660 --> 11:41.830
많아요
11:41.950 --> 11:45.370
로드맵을 통해 계속 개선할 수 있다고도 하죠
11:45.400 --> 11:46.390
좋아요
11:46.990 --> 11:50.110
누더기인 거 보이시죠?
11:50.110 --> 11:54.130
단순하지만 이게 바로 핵심이에요
11:54.220 --> 11:56.440
잠깐 끊고 얘기하죠
11:56.440 --> 11:57.760
내가 뭘 할지 알죠?
11:57.790 --> 12:02.380
에이버리가 누군지 물어볼게요
12:02.410 --> 12:09.950
사실 예전에 했던 대화가 들어 있어요 다시 시작해야겠네요
12:10.040 --> 12:11.570
새로운 대화를 해요
12:11.600 --> 12:15.470
안 그러면 에이버리가 누군지 알 거예요 아까 물어봤잖아요
12:15.470 --> 12:22.880
새로운 사용자 인터페이스를 가져와서 처음부터 시도해보죠 그런 장점은 주지 말고 그냥 물어보세요
12:22.910 --> 12:24.320
에이버리가 누구죠?
12:25.760 --> 12:30.170
죄송하지만 에이버리에 대한 정보가 없어요
12:30.470 --> 12:32.540
잘 부러지는 게 보이죠?
12:32.540 --> 12:34.430
성을 따야 해요
12:34.430 --> 12:46.040
성 철자를 틀려도 대문자 L이 없는 랭커스터는 망가지기 마련이니 이해하시죠?
12:46.040 --> 12:48.200
Get it
12:48.200 --> 12:51.620
추가 정보를 추가하는 효과적인 방법이죠
12:51.650 --> 12:57.140
더 정확한 답을 얻지만 글자가 정확히 일치해야 해요
12:57.140 --> 13:01.550
유연하지도 확장성도 낮은 해결책이죠
13:01.670 --> 13:03.140
더 잘할 수 있어요
13:03.140 --> 13:06.710
내일 우리가 할 일이 바로 그거예요
13:06.710 --> 13:09.350
이제 슬라이드로 돌아가죠