이제 데이터 세트를 큐레이팅할 때가 됐어요
어떻게 할 거냐면요 얼굴을 안아서 얻은 각각의 데이터 포인트를 가지고
파이썬 객체로 변환할 겁니다 우리가 생성할 클래스로 항목이라고 부르는
객체죠
다른 모듈 항목을 셋업하는 건 정말 중요해요 파이썬 코드를 이용해서 이 클래스를 만들었습니다
주피터 노트북이 아니라 파이썬 코드 모듈에서 다루었습니다 여러 곳에서 다시 사용할 수 있습니다
주피터 노트북에 코드가 너무 많아서 어지럽지 않도록 말이죠
데이터 머깅을 위한 복잡한 코드를 포함하고 있습니다 데이터를 정리하기
위한 코드요 이 모듈을 보여드리고 말씀드릴게요
하지만 비트를 좀 더 자세히 살펴보고 더 자세히 이해하는
연습이 있어요
말씀드렸듯이 고유한 모듈 항목에 있어요 급이 다른 품목을 정의하죠
시작하기 전에 짚고 넘어가야 할 것은 get mebodel이라는 상수를 설정하는
것부터 시작한다는 점이에요. 180억 가지 변형 기본 모델이죠
라마 모델이 이 작업과 무슨 상관이냐고 하실지도 모르겠네요
오픈 소스는 다음 주에 공개해요
이번 주에는 개척 시대 모델을 미세 조정할 거예요
이게 그 답이에요
정해진 개수의 토큰 안에 들어가도록 데이터 세트를 만들 겁니다 라마 토큰라이저의
최대 토큰으로요
그렇게 하는 이유는 오픈 소스 모델을 사용할 때 더 저렴하고
쉽게 훈련할 수 있기 때문이죠
앞서 말했듯이 개척자 모델을 쓰면 비용이 줄어들 거예요 모두가 같은 조건에서
작업했으면 좋겠어요
프롬프트를 만들고 특정 수의 토큰에 수정할 때 프런티어 모델과 오픈
소스 모델이 같은 양의 정보를 얻도록 해야 해요
예산이 더 많고 더 큰 GPU로 훈련할 능력이 있거나 프론티어 모델로 예산을 더 쓸 수 있다면
컷오프를 연장해서 텍스트를 더 많이 쓸 수 있어요
하지만 제 생각엔∙∙∙ 보시면 아시겠지만 각각의 데이터 포인트에 텍스트가 많아요
개척 시대 모델과 오픈 소스 모델에 완벽하게 대응할 수 있어요
어쨌든 그래서 llama 모델을 살펴보는 겁니다 토큰라이저를
사용할 테니까요 글자의 수가 맞는지 확인하려고요
클래스 항목은 각각의 항목은 제목을 갖게 되고 가격은 물론 어플라이언스나
토큰 개수 같은 카테고리로 구성되죠 토큰은 몇 개인가?
가장 중요한 건 프롬프트입니다 LLM에 입력될 텍스트죠 훈련하거나
테스트할 때 사용될 거예요
간단히 말씀드리면, 이 코드를 직접 훑어보시고 스스로 만족하셔야 합니다.
제가 나쁜 짓을 하는 게 아니고 이 모든 게 좋은 일이고, 건전한 가정 환경과, 실밥을 치우는
일이라고요.
스크럽 디테일이라는 함수가 있는데 모델이 집중하기 힘들 것 같은 텍스트에서 뭔가를 제거하는
기능이에요
배터리도 포함해서요
다른 것들도 보이는데 제조업체마다 이름이 있어요
관련 없는 게 많거나 크게 관련 없는 게 많죠 소중한 토큰을 다 쓰는
것보다 제거하는 게 나을 것 같았어요
메서드 스크럽이 있어요 이상한 캐릭터를 제거하고 여러 공간을 하나로
합치는 거죠 레벡스 닌자를 위한 레벡스 스캐너를 사용해서요
당신한텐 쉬운 일이겠죠
다른 분들을 위해 이건 스크립트의 종류 중 하나로 재사용할 수 있습니다 문자열의 다양한 문제를
제거하는 방법으로요
주피터 공책으로 시험하면서 틀에 적힌 대로 작동하는지 확인할 수도
있어요
이 라인을 언급할게요 제가 넣은 추가 트릭이거든요 특정 경우에 유용하죠
이건 데이터를 깊이 파고들어야만 발견할 수 있는 일종의
예죠
아마존에는 설명서에 숫자를 인용하는 제품이 많더라고요
부품 번호와 호환 가능 어쩌고저쩌고요
그런 부분 번호는 대개 8자리, 8문자 길이 혹은 더 길고 문자와 숫자를 포함하죠
여기서 문제는 토큰으로 바뀔 때 토큰을 많이 쓴다는 겁니다 왜냐하면 토큰은
어떤 어휘에도 없기 때문이죠
결국 여러분은 토큰을 전부 쑤셔 넣어야 합니다 토큰에 대한 무제한 수용력을 부분 번호를 나타내는
토큰으로 채우는 거죠 우리 모델과는 전혀 상관없는 거예요
이 줄의 역할은 8자 이상의 글자가 있고 그 안에 숫자가 있는 단어가 있다면
그 단어를 삭제하라는 거죠
주의를 분산시킬 거예요
이걸 강조하는 이유는 다시 말씀드리지만 이런 발견은 데이터를 깊이 파고들어야만
발견할 수 있어요
많은 예시를 보고 이런 일이 일어나는 걸 보고 이걸 발견하게 되죠
이걸 시도해볼 기회가 있어요
모델을 재실행하면 지난 몇 주 동안 한두 번 했던 것 같은데 향상된
걸 발견하게 됩니다 데이터가 더 풍부해지고 정확도도 더 높아졌거든요
그게 중요한 과정이에요
그리고 메서드 PARSE를 사용하는데 데이터 포인트를 취하고 다양한 스크래핑과
스트러핑을 해서 프롬프트로 바꾸죠
프롬프트와 함께 그 안의 토큰 개수도 세죠
잠시 후에 프롬프트를 보실 거예요
프롬프트는 LLM으로 전달될 것인데 get을 완료하도록 요청될 거예요
비용은 얼마나 드는지 묻네요
비용이 들 거예요
프롬프트를 볼 수 있는 기능이 있어요
테스트 프롬프트라는 것도 있어요 프롬프트와 같지만
답을 보여주진 않죠
훈련 중에 사용될 프롬프트 안에 답이 있어요
그래서 훈련을 하다 보면 시험 시간에 답을 예측하는 능력이 점점 더 좋아져요. Get it.
답을 보여드리기 싫어요
텍스트를 주고 올바른 답이 나오는지 봐야죠
훈련과 테스트 프롬프트가 두 개 있는데요
나중에 데이터를 훈련 세트와 테스트 세트로 나누는 걸 얘기할 거예요
더 보게 될 거예요
나중에 더 명확해질 거예요
이게 아이템 클래스죠
이걸 좀 더 자세히 보세요
하지만 걱정 마세요 이 물건들을 보면서 많은 시간을 보낼 테니까요
Get it으로 이 기능성 기능에 대한 좋은 정보를 얻을 수 있어요
이제 여기서 할 것은 이 아이템 객체를 만드는 겁니다 데이터 집합에 있는 모든
것에 대해서요
지금 실행해보죠
이건 그 코드를 통해 실행되고 있어요
문지르는 거예요
파트 넘버 같은 걸 제거하는 거죠
이상한 캐릭터들을 공간으로 대체하는 거죠
프롬프트를 생성해서 여러 개의 토큰에 맞게 하는 것이죠
현재 모든 게 진행 중이고 4만여 개의 가전제품을 위한 일이 될 거예요
가격이 붙은 가전제품요
이제 마무리할 때가 된 것 같아요
다 익는 동안 제가 볼 준비를 할게요
다 됐어요
됐어요
첫 번째 것을 보도록 하죠
첫 번째 키트는 랙 롤러 스터드 조립 키트예요
아미의 풀 팩이 어쩌고저쩌고 부품을 대체한대요
이게 그 항목의 제목이고 가격은 9달러예요
그 항목의 제목에서 그걸 볼 수 있어요
파트 번호가 있어요 긴 파트 번호요
다른 것도 보죠
첫 번째 항목을 보죠
첫 번째 항목이죠
호환되는 A 도어 피벗 블록 호환이요
켄모어 키친에이드요
메이택 월풀 냉장고예요
다시 말하지만 많은 파트 번호가 있어요
이제 어떻게 되는지 보죠 이 함수가 생성된 항목을 프롬프트에서 볼게요
다시 해 봐요
프린트하죠
그래서 멋진 빈 행과 함께 형식이 나타나요
프롬프트가 말하는 게 이거예요
이건 얼마 정도 할까요?
그 얘기는 최대한 많이 할게요
나중에 봐요
왜 그렇게 했는지 장단점이 뭔지 얘기해 보죠
이건 얼마 정도 하나요?
여기 보면 한 줄은 제목이고 한 줄은 설명이에요
여러분이 보실 것은 이 부분 번호가 이 설명에서 뽑힌 겁니다 잘려진
걸 보실 수 있죠
패의 개수가 다 되면요
제가 보관한 건 180토큰이 조금 안 돼요
여기서 볼 수 있죠
이걸 읽어 보면 그 물건에 대한 풍부한 설명이 나와요
훈련에는 충분할 거예요
다음 사진을 보죠
이건 물론 피벗 블록이고요
도어 피벗 블록이에요
100번과 제빙기 기계요
삼성 부품이에요
여기 보시면 부품과 대체 부품들이 많이 들어 있어요
아까도 보셨듯이 이 공간은 저렴한 교체 부품
때문에 꽉 차게 될 거예요
하지만 좀 놀랍게도 이 부분은 118달러예요 그리 간단한 부분이 아니죠
이 삼성 조립식 아이스메이커 메크는 필요 없었으면 좋겠어요
자, 이건 훈련 시간을 보는 건데요
훈련할 때 통과시킬 것들이에요
모델에게 이걸 주고 훈련 기간 동안 이 가격을 어떻게 재현할지 배우게
될 거예요
시험 시간에는요?
모델이 효과가 있는지 평가할 때는 어떨까요?
100번 아이템을 봅시다 테스트 시간에 어떻게 하는지 보죠
그러죠
이걸 모델로 제공하세요
똑같은데 여기서 끝나죠
물론 그 아이디어는 모델은 이것의 정말 많은 예들을 봤을 거라는 거죠 정말 다양한
다양한 항목을 다루고 런타임에 이걸 다시 보여드릴 때 어떻게 완료하는지 알
겁니다 이 설명을 기반으로 미묘한 이해를 잘해서 이 가격을 완료하도록
돕겠죠
좋아요
이 아이템들에 토큰이 얼마나 많은지 봅시다 다른 다이어그램을 이용해서요
가장 많은 패가 178개인 걸 알 수 있어요
180까지 못 올라가고 평균 176까지 가죠 Get it
정말 꽉 들어찼어요
그래서 일반적으로 이 정도 양의 정보를 가진 데이터 세트를 선택하고 다듬었어요
180냥까지 나올 거예요
훈련할 때 큰 도움이 될 것입니다 아이템을 지원하는
데 필요한 최대 토큰의 수를 알 수 있고 프론티어 모델을 사용할 때 비용을 절감할
수 있기 때문이죠
네
그런 다음 우리가 선택한 이 아이템의 가격 분배를 다시 한 번 보죠
시작할게요
평균 가격이 100달러예요
최고 11,000달러까지 받을 수 있어요
잡초를 제거하는 과정에서 엄청나게 비싼 전자레인지를 제거했어요
하지만 여전히 꽤 비싼 걸 사야 해요
제가 위에 쓴 걸 복제하면 그게 뭔지 알 수 있어요
지금도 보시다시피 아주 저렴한 물건 쪽으로 유통되고 있어요 우리가 본
것처럼 부품을 대체하는 거죠
다음에 조사할 또 다른 지역이네요
이 데이터 집합을 시각화하는 건 앞으로 자주 하게 될
거예요
다양한 방식으로 많은 걸 하게 될 거예요
맷플로틀리브의 다양한 기능을 활용할 수 있어서 좋아요
그중 하나는 다양한 색상의 차트를 만들 수 있다는 거죠
그 색들이 뭔지 알고 싶으시면 Mattplotlib 페이지로
연결되는 링크를 달아 두었습니다 사용할 수 있는 다양한 색 배열을 설명하고 있습니다 xkcd
색상도 포함해서요
그걸 살펴보는 건 좋은 일이죠
이건 책갈피로 남기기 좋은 작은 단서예요
오늘 팁을 하나 더 드리자면 지금 하셔야 할 일은 아이템 클래스를
보시는 거예요
제가 너무 빨리 지나갔어요
데이터 머징 스크러빙이 좀 더 섬뜩하기 때문이죠 실제 데이터 예제에 근거해 데이터를
최대한 고품질로 만드는 거예요
제가 너무 자세히 설명해서 지루하지 않으셨다면 이제 직접 들어가서 자세히 보시리라
믿었기 때문일 거예요
JupyterLab을 이용해 이런 기능이 어떻게 데이터를 정화했는지 조사하고 이해하세요
덕분에 약 180개의 토큰이 생겼습니다 각 데이터 포인트에 대한 풍부한 설명과
단어들이죠 각각의 항목은 미래에 훈련과 테스트 프롬프트로 사용될 거예요
다음에는 더 많은 제품을 결합하도록 확장할 거예요
이 데이터 모음이 크다고 생각했다면 아직 아무것도 못 본 거예요
그러니 준비하세요
하지만 먼저 슬라이드 몇 개만 더 보고 마무리하죠