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.
517 lines
13 KiB
517 lines
13 KiB
WEBVTT |
|
|
|
00:00.560 --> 00:09.650 |
|
다시 한번 환영합니다 이곳은 우리가 가장 좋아하는 유피터 연구소입니다 데이터 과학자 실험자의 천국이죠 |
|
|
|
00:09.830 --> 00:17.000 |
|
8주 차에 나온 셋째 날 공책을 보면 이번에는 댓글이 거의 없는 걸 볼 수 |
|
|
|
00:17.000 --> 00:18.020 |
|
있어요 |
|
|
|
00:18.020 --> 00:23.540 |
|
생산 품질의 코드를 공책에 적었어요 |
|
|
|
00:23.630 --> 00:24.260 |
|
지금은요 |
|
|
|
00:24.260 --> 00:25.310 |
|
두 분은 프로예요 |
|
|
|
00:25.310 --> 00:30.260 |
|
와플을 많이 먹을 필요는 없어요 바로 시작하죠 |
|
|
|
00:30.470 --> 00:32.930 |
|
몇 가지 수입품부터 시작할게요 |
|
|
|
00:32.930 --> 00:39.530 |
|
오늘 퍼즐을 풀려면 환경 설정부터 해야 해요 그럼 첫 번째 퍼즐 조각을 |
|
|
|
00:39.560 --> 00:41.750 |
|
맞춰 보죠 get it |
|
|
|
00:42.080 --> 00:48.350 |
|
제가 Scraped 딜이라는 걸 몰래 수입했어요 언급하지 않고서요 어쨌든 |
|
|
|
00:48.380 --> 00:51.770 |
|
이 스크랩드 딜이 있으니 불러올게요 |
|
|
|
00:51.980 --> 00:56.810 |
|
Show Properue를 true로 설정합니다 뭘 하는지는 말 안 하고 |
|
|
|
00:56.810 --> 01:00.020 |
|
실행할게요 몇 분 걸리니까요 그냥 실행하죠 |
|
|
|
01:00.020 --> 01:01.460 |
|
그 후에 더 얘기할게요 |
|
|
|
01:01.460 --> 01:02.930 |
|
그럼 시작하죠 |
|
|
|
01:03.020 --> 01:04.850 |
|
출발해요 |
|
|
|
01:04.850 --> 01:06.860 |
|
뭘 긁어내죠? |
|
|
|
01:06.860 --> 01:07.220 |
|
좋아요 |
|
|
|
01:07.220 --> 01:10.310 |
|
패키지 안의 에이전트 폴더에 있어요 |
|
|
|
01:10.310 --> 01:14.210 |
|
할인 닷 파이에 나와 있어요 |
|
|
|
01:14.240 --> 01:16.760 |
|
할인 닷 파이를 보여드릴게요 |
|
|
|
01:16.790 --> 01:23.900 |
|
이건 파이썬 으로 구성된 모듈입니다 피드들을 정의하는 것으로 시작을 하죠 |
|
|
|
01:23.900 --> 01:31.790 |
|
URL에서 RSS로의 피드입니다 좋은 거래가 다양한 카테고리로 발표되는 유용한 |
|
|
|
01:31.880 --> 01:33.350 |
|
것들이죠 |
|
|
|
01:33.350 --> 01:38.210 |
|
이 부문들은 우리가 잘 아는 부문과 막상막하입니다 우리 모델은 |
|
|
|
01:38.210 --> 01:45.350 |
|
전자제품 컴퓨터, 자동차 그리고 스마트 홈 가든 부문에서 훈련받았거든요 |
|
|
|
01:45.350 --> 01:46.370 |
|
여기 영상이 있어요 |
|
|
|
01:46.370 --> 01:51.740 |
|
다른 것도 많아요 좀 더 기다릴 배짱이 있다면 여기에 비트를 |
|
|
|
01:51.740 --> 01:55.610 |
|
잔뜩 추가해 작업할 데이터 모음이 커지죠 |
|
|
|
01:55.610 --> 02:01.030 |
|
여기 몇 가지 유틸리티가 있는데 여러분이 원할 때 살펴볼 수 있어요 |
|
|
|
02:01.060 --> 02:06.910 |
|
추출물이라는 메서드와 함수가 있는데 HTML을 청소하고 유용한 텍스트를 반환하죠 |
|
|
|
02:06.910 --> 02:09.880 |
|
그리고 학급 간의 마찰도 있죠 |
|
|
|
02:09.880 --> 02:14.380 |
|
이건 RSS 피드에서 회수한 거래예요 |
|
|
|
02:14.410 --> 02:16.840 |
|
긁는 게 아니라 RSS에서 회수하는 거군요 |
|
|
|
02:16.840 --> 02:19.720 |
|
비트 박스도 좀 살펴볼 거예요 |
|
|
|
02:19.720 --> 02:21.790 |
|
어느 정도 사실인 거죠 |
|
|
|
02:22.060 --> 02:28.630 |
|
init에서 하는 일은 항목이라는 걸 갖는 거예요 그냥 값의 사전이죠 |
|
|
|
02:28.630 --> 02:30.160 |
|
우린 통과할 거예요 |
|
|
|
02:30.160 --> 02:32.650 |
|
RSS 피드에서 바로 얻을 수 있는 정보죠 |
|
|
|
02:32.680 --> 02:37.840 |
|
우리가 하는 일은 제목과 요약을 고르고 링크를 가져오는 거죠 |
|
|
|
02:37.840 --> 02:45.400 |
|
여길 보시면 URL을 갖고 그걸 페치하는 거죠 |
|
|
|
02:45.400 --> 02:47.500 |
|
그래서 긁어내고 있어요 |
|
|
|
02:48.520 --> 02:49.330 |
|
미안해요 |
|
|
|
02:49.510 --> 02:57.780 |
|
URL 페치잉을 하고 그 결과들을 입력하고 멋진 put으로 그걸 분석하죠 |
|
|
|
02:57.780 --> 03:04.620 |
|
첫째 주에 했던 것과 유사하죠 요청에서 검색한 URL 파싱 |
|
|
|
03:04.620 --> 03:06.600 |
|
때요 get이요. |
|
|
|
03:07.380 --> 03:08.220 |
|
네 |
|
|
|
03:08.280 --> 03:13.860 |
|
그리고 내용물을 스크럽하는 것도 있어요 |
|
|
|
03:14.190 --> 03:18.930 |
|
그런 다음 기능이 있다면 일부 기능을 구축하죠 |
|
|
|
03:18.930 --> 03:27.210 |
|
RSS 비트로 들어온 걸 깨끗하게 청소해서 레코드로 만드는 건 |
|
|
|
03:27.210 --> 03:30.390 |
|
다 긁어내는 코드예요 |
|
|
|
03:30.570 --> 03:33.090 |
|
그리고 인쇄하는 것도 있어요 |
|
|
|
03:33.690 --> 03:39.030 |
|
이 클래스 메서드 페치는 조금 전에 시작한 것으로 실행이 끝난 걸 |
|
|
|
03:39.060 --> 03:40.110 |
|
보실 수 있죠 |
|
|
|
03:40.260 --> 03:48.090 |
|
하는 일은 모든 피드를 반복하는 겁니다 피드 파서라는 걸 호출하죠 |
|
|
|
03:48.090 --> 03:48.090 |
|
파즈예요 |
|
|
|
03:48.090 --> 03:55.500 |
|
피드파서는 제가 가져온 패키지예요 RSS 피드를 끌어오게 해주는 유용한 패키지죠 |
|
|
|
03:55.500 --> 03:58.380 |
|
사전으로서 그걸 줘요 |
|
|
|
03:58.380 --> 04:06.180 |
|
파이썬 패키지로 Feedparer를 이용하고 있습니다 각각의 피드에서 가져온 상위 |
|
|
|
04:06.210 --> 04:08.940 |
|
10개만 가지고 올 수 있죠 |
|
|
|
04:08.940 --> 04:11.850 |
|
Get in get it up |
|
|
|
04:12.000 --> 04:15.990 |
|
물론 원한다면 더 많은 데이터를 가져올 수도 있어요 |
|
|
|
04:16.020 --> 04:19.200 |
|
지금은 그냥 그 숫자에 묶을게요 |
|
|
|
04:19.200 --> 04:23.790 |
|
각각의 캐릭터는 이게 우리 자신이에요 |
|
|
|
04:23.790 --> 04:28.800 |
|
그 항목을 위해 우리에 대한 예를 만들죠 |
|
|
|
04:28.800 --> 04:32.070 |
|
그 항목은 물론 우리가 방금 본 사전이죠 |
|
|
|
04:32.340 --> 04:36.000 |
|
시간이 좀 있어요 혹시 궁금하다면 여기서 자요 |
|
|
|
04:36.030 --> 04:42.390 |
|
할인 웹사이트에서 웹 페이지를 검색하러 get to를 하는 |
|
|
|
04:42.390 --> 04:46.590 |
|
거니까 반사회적이라고 생각했거든요 |
|
|
|
04:46.590 --> 04:52.950 |
|
수많은 요청이 들어온 그 웹사이트를 공격하면 짧은 시간 안에 하나씩 차례로 올라올 거예요 |
|
|
|
04:52.950 --> 05:01.040 |
|
웹 서버를 너무 혹사하거나 너무 많은 것을 요구하지 않도록 get 절약을 |
|
|
|
05:01.040 --> 05:04.250 |
|
하는 것이 좋은 방법이죠. |
|
|
|
05:04.250 --> 05:11.030 |
|
우리가 웹사이트에서 이런 계약을 회수하면 더 나은 시민이 |
|
|
|
05:11.030 --> 05:12.740 |
|
되는 거죠 |
|
|
|
05:12.740 --> 05:13.760 |
|
그래서 그렇게 했어요 |
|
|
|
05:13.790 --> 05:16.430 |
|
그 거래들이 이 공책에 담겨 있어야 해요 |
|
|
|
05:16.430 --> 05:21.080 |
|
하지만 먼저 이 유용한 모듈에서 몇 가지 다른 걸 언급할게요 |
|
|
|
05:21.260 --> 05:26.090 |
|
여기 세 가지 강좌가 있는데 잠시 후에 중요하게 다룰 거예요 구조화된 출력물들을 |
|
|
|
05:26.090 --> 05:28.820 |
|
어떻게 정의하는지 보여주거든요 |
|
|
|
05:28.940 --> 05:37.880 |
|
GPT 4에 답변을 요청할 때 클래스 딜을 정의하고 있습니다 클래스 딜 선택과 클래스 |
|
|
|
05:37.880 --> 05:39.350 |
|
기회죠 |
|
|
|
05:39.350 --> 05:43.010 |
|
이게 기본 모델의 서브클래스인 게 보이시죠 |
|
|
|
05:43.040 --> 05:49.100 |
|
베이스 모델은 파이댄틱 패키지에서 나온 건데 여러 가지 기능이 있어요 |
|
|
|
05:49.100 --> 05:57.920 |
|
그 중 하나는 아주 쉽게 클래스의 JSON 버전과 그 구조, 클래스 자체를 전환할 수 있게 해줍니다 |
|
|
|
05:57.920 --> 06:04.310 |
|
또한 클래스가 스키마에 충실하도록 시행할 수도 있어요 |
|
|
|
06:04.460 --> 06:08.000 |
|
여러분 중 많은 분이 아주 익숙하실 거예요 |
|
|
|
06:08.000 --> 06:08.810 |
|
현학적이군요 |
|
|
|
06:08.900 --> 06:15.560 |
|
하지만 그걸 사용하려면 기본 모델의 서브클래스인 새 클래스를 생성하면 돼요 |
|
|
|
06:15.770 --> 06:20.360 |
|
첫 번째 클래스는 거래라고 불러요 |
|
|
|
06:20.360 --> 06:25.010 |
|
제품 설명, 가격, URL 같은 것만 있는 거죠 |
|
|
|
06:25.040 --> 06:28.010 |
|
설명 가격 URL 예요 |
|
|
|
06:28.100 --> 06:31.280 |
|
거래 선택이라는 것도 있어요 |
|
|
|
06:31.280 --> 06:35.060 |
|
GPT 4에 대응하라고 요청할 거예요 |
|
|
|
06:35.060 --> 06:37.880 |
|
우린 거래를 원한다고 말할 거예요 |
|
|
|
06:37.880 --> 06:39.650 |
|
이게 중요한 거예요 |
|
|
|
06:39.650 --> 06:41.180 |
|
아주 간단해요 |
|
|
|
06:41.180 --> 06:48.500 |
|
딜이라고 부르는 단일 특성에 이런 딜의 리스트를 가진 뭔가죠 |
|
|
|
06:48.950 --> 06:50.690 |
|
그게 다인 것 같아요 |
|
|
|
06:50.690 --> 06:55.000 |
|
딜 선택은 딜 객체의 리스트를 원한다는 뜻이죠 |
|
|
|
06:55.000 --> 06:58.810 |
|
JSON 스피커로 이걸 생각해보면 뭐죠? |
|
|
|
06:58.840 --> 07:04.630 |
|
JSON 용어에서 이건 이런 모습입니다 이 딜 선택은 하나의 객체로 |
|
|
|
07:04.630 --> 07:07.750 |
|
오직 하나의 특성 딜을 갖고 있죠 |
|
|
|
07:07.750 --> 07:09.850 |
|
그게 목록이에요 |
|
|
|
07:09.940 --> 07:13.720 |
|
각각의 개체들의 목록이죠 |
|
|
|
07:13.720 --> 07:15.850 |
|
JSON으로 가면 이렇게 보일 거예요 |
|
|
|
07:15.880 --> 07:18.520 |
|
제품 설명도 있어요 |
|
|
|
07:22.960 --> 07:28.720 |
|
가격표는 플로트라고 해요 |
|
|
|
07:29.410 --> 07:35.620 |
|
URL 같은 것도 있고요 |
|
|
|
07:37.660 --> 07:41.590 |
|
URL 같은 거요 그럼 거래가 성사되죠 |
|
|
|
07:41.590 --> 07:44.920 |
|
아마 목록에 그런 게 아주 많을 거예요 |
|
|
|
07:44.920 --> 07:47.170 |
|
그럼 거래 선택이 완성되죠 |
|
|
|
07:47.170 --> 07:53.410 |
|
제가 방금 입력한 JSON을 보시면 이 클래스 정의와 비교해 보세요 |
|
|
|
07:53.410 --> 07:57.640 |
|
서로 어떻게 유사한지 더 명확해지길 바라요 |
|
|
|
07:58.090 --> 08:02.740 |
|
이건 이 구조의 JSON 표현이에요 |
|
|
|
08:02.770 --> 08:10.450 |
|
GPT 4에 구조화된 출력이 이 포맷에 있길 원한다고 할 때 여러분이 |
|
|
|
08:10.450 --> 08:16.600 |
|
응답하는 일종의 JSON이 되길 원한다고 하는 거죠 |
|
|
|
08:16.630 --> 08:18.250 |
|
그게 다예요 |
|
|
|
08:18.760 --> 08:23.560 |
|
그게 어떻게 작동하는지 감을 잡으셨으면 좋겠네요 |
|
|
|
08:23.740 --> 08:25.030 |
|
이건 삭제할게요 |
|
|
|
08:25.030 --> 08:26.320 |
|
그럴 필요 없어요 |
|
|
|
08:26.350 --> 08:31.210 |
|
마지막으로 언급할 것은 기회라는 클래스도 있다는 겁니다 여기서 정의한 것으로 |
|
|
|
08:31.210 --> 08:33.220 |
|
기본적으로 거래를 하는 거죠 |
|
|
|
08:33.220 --> 08:38.920 |
|
이 중 하나와 견적서요 견적은 나중에 사용할 겁니다 이 거래의 가치를 |
|
|
|
08:38.920 --> 08:40.570 |
|
평가할 때요 |
|
|
|
08:40.570 --> 08:46.780 |
|
그리고 할인은 단순히 거래 가격과 예상 가격의 차이죠 |
|
|
|
08:46.810 --> 08:50.230 |
|
이 제품은 얼마나 할인받을 수 있나요? |
|
|
|
08:50.620 --> 08:54.070 |
|
그게 설정이에요 |
|
|
|
08:54.370 --> 08:58.210 |
|
그럼 다시 이쪽으로 오시죠 |
|
|
|
08:58.510 --> 09:04.690 |
|
그 부분을 좀 고쳐 보죠 |
|
|
|
09:04.960 --> 09:09.430 |
|
그래서 우린 방금 도망치고 긁고 거래했어요 |
|
|
|
09:09.430 --> 09:10.510 |
|
도로시, 가져와요 |
|
|
|
09:10.660 --> 09:13.120 |
|
이제 몇 개인지 볼 수 있어요 |
|
|
|
09:13.150 --> 09:16.870 |
|
50건의 거래가 성사됐어요 |
|
|
|
09:16.900 --> 09:24.310 |
|
50개 세일을 하는 이유는 5개의 피드가 있는데 각각 10개씩 세일을 요구했기 때문이에요 |
|
|
|
09:24.310 --> 09:26.230 |
|
그럼 50명이 되는군요 |
|
|
|
09:26.380 --> 09:28.870 |
|
여러분이 기대하시는 게 그거이길 바라요 |
|
|
|
09:28.900 --> 09:35.590 |
|
거래 번호 44를 보면 프린트가 잘 됐어요 파이썬 마법 |
|
|
|
09:35.590 --> 09:42.940 |
|
기능을 사용했거든요 복제 기능을 잘 프린트하도록요 |
|
|
|
09:43.150 --> 09:46.660 |
|
그게 44번 계약 조건이에요 |
|
|
|
09:46.750 --> 09:49.770 |
|
전체 묘사를 해 보죠 |
|
|
|
09:49.770 --> 09:52.710 |
|
우리가 가진 정보는 이 비트에 다 있어요 |
|
|
|
09:52.740 --> 09:58.050 |
|
매일 거래되는 차고 저장장치 bla bla bla bla bla bla bla bla bla가 많아요 |
|
|
|
09:58.080 --> 10:00.750 |
|
배송비를 피하려면 설치를 선택하세요 |
|
|
|
10:01.380 --> 10:01.860 |
|
네 |
|
|
|
10:01.860 --> 10:04.230 |
|
그런데 말이죠 |
|
|
|
10:04.230 --> 10:07.260 |
|
그걸 보면 몇 가지 눈에 띌 거예요 |
|
|
|
10:07.290 --> 10:12.690 |
|
그중 하나는 RSS 피드에 가격이 따로 나오지 않는다는 거죠 |
|
|
|
10:12.690 --> 10:16.380 |
|
Get it의 가격은 모르고 모양만 알죠 |
|
|
|
10:16.380 --> 10:20.760 |
|
또 다른 특징은 가격조차 없다는 거예요 |
|
|
|
10:20.760 --> 10:22.590 |
|
얼마나 떨어졌는지 알 수 있죠 |
|
|
|
10:22.590 --> 10:27.690 |
|
무료 배송 같은 건 알려 주지만 이 제품과 관련된 가격은 |
|
|
|
10:27.690 --> 10:29.520 |
|
알려 주지 않아요 |
|
|
|
10:29.520 --> 10:30.900 |
|
그건 지루해요 |
|
|
|
10:31.050 --> 10:36.450 |
|
그래서 항상 적절하게 사용할 수 있는 건 아니에요 |
|
|
|
10:36.450 --> 10:41.430 |
|
파싱 작업을 통해 각각의 항목에 대해 제공되는 실제 가격이 얼마인지 |
|
|
|
10:41.430 --> 10:42.870 |
|
알아내야 해요 |
|
|
|
10:42.870 --> 10:51.950 |
|
이 아이템들을 보시면 여러 개를 하나로 묶은 것도 있어요 하나의 카피에요 |
|
|
|
10:51.950 --> 10:56.390 |
|
애플 워치의 다른 모델은 전부 20% 할인을 제공해요 |
|
|
|
10:56.480 --> 11:02.930 |
|
따라서 그걸 이해하고 원하는 걸 끌어내는 건 아주 어려울 겁니다 아주 힘들고 그걸 견고한 방식으로 |
|
|
|
11:02.930 --> 11:05.600 |
|
코드화하는 건 아주 어렵죠 |
|
|
|
11:05.600 --> 11:08.270 |
|
그래서 개척자 모델을 써야 해요 |
|
|
|
11:08.270 --> 11:16.250 |
|
GPT 40을 이용해서 각 RSS의 피드와 거래를 수집하고 그 거래를 뭔가로 |
|
|
|
11:16.250 --> 11:20.090 |
|
바꿀 겁니다 우리에게 유용한 거래죠 |
|
|
|
11:20.090 --> 11:26.240 |
|
50개 모두를 보내 이렇게 말할 겁니다 이 대형 세트에서 가장 명확하게 설명된 |
|
|
|
11:26.240 --> 11:32.420 |
|
최고의 계약 5개를 찾아 그걸 추려내서 요약해 우리에게 보내라고요 |
|
|
|
11:32.420 --> 11:34.730 |
|
구조화된 출력에서 그걸 원하죠 |
|
|
|
11:34.730 --> 11:39.620 |
|
어떤 형식을 원하는지 말하고 정확히 그 형식으로 답변해 달라고 요청할 |
|
|
|
11:39.620 --> 11:40.400 |
|
거예요 |
|
|
|
11:40.430 --> 11:44.000 |
|
이제 티를 입힌 거예요 |
|
|
|
11:44.000 --> 11:45.680 |
|
우리가 뭘 이루려는 건지 알잖아요 |
|
|
|
11:45.680 --> 11:48.110 |
|
다음 비디오에서 보여드릴게요
|
|
|