제가 이런 말 하는 게 지겹겠지만 진실의 순간이 왔어요
진실의 순간이 왔어요
보시다시피 전 정말 흥분돼요 여러분도 그렇길 바라요
이건 저희에게 아주 중요한 순간이에요
콜랍 비트를 7일간 사용하고 있는데요 솔직히 말하면 좀 야한
걸 준비했어요 아주 우람한 A100 GPU 박스를 골랐죠 콜랍 박스에서 가장 비싼 제품이에요
11점을 기록하네요 시간당 계산 단위 77개 현재 시세는 제가 잘못
안 게 아니라면 약 100개 단위 약 10달러네요
시간당 1달러 정도를 쓰는 거예요
지금은 가격이 때때로 바뀌어요
네, 이건 확실히 평소보다 싸지 않아요
이럴 필요 없어요
꼭 필요한 건 어디 보죠
런타임 타입을 변경하세요
t4 GPU를 사용할 수도 있어요
어떤 매개 변수를 변경할지 알려드릴게요, 괜찮을 거예요
하지만 몇 달러만 써도 블래스트를 경험하고 하이퍼 매개변수를
바꾸고 빠르게 훈련하고 싶다면 A100 박스를 사용하면 됩니다 GPU
40GB가 있는 박스의 힘을 경험해보세요
구글에 돈을 좀 쥐여줘도 괜찮아요 이렇게 즙이 많고
강력한 비트 박스가 있잖아요
어쨌든 파이프 설치부터 시작할게요
TRL 트랜스포머 강화 학습 프로그램인 HINGPace 라이브러리도 포함됩니다
SFT 트레이너가 감독한 파인 튜닝 트레이너로 오늘 저희가 할 트레이너죠
잠시 드릴 말씀이 있는데요 지난 비디오에서 훈련에 관해
조금 다뤘습니다 비트를 통해 하이퍼파라미터도
언급했고 전후 패스 훈련 과정도 조금 다뤘죠
어떤 사람들은 그런 게 익숙할 거예요
어떤 사람들은 당신의 머리 위에 있는 것을 요구할 수도 있습니다. HDTT를
더 잘 설명하기 위해 시간을 더 들이지 않을 수 있나요?
한 가지 말씀드리고 싶은 건 포옹하는 얼굴 덕분에 이 과정이 아주 쉬워졌다는 거예요
훈련에 있어서 진입 장벽이 너무 낮아서 직관력을 발휘하는
게 도움이 되긴 해요 최적화하고 올바른 방향으로 나아가는
직관력요
이론의 세부 사항을 알 필요는 없어요
하이퍼파라미터 조정할 만큼만 알면 돼요
매개 변수요
얼굴을 끌어안으면 훈련이 아주 쉬워져요
만약 어떤 것들이 여러분 머리 위를 지나갔다고 생각하신다면 걱정하지 마세요. 중요하지 않아요. HET
코드가 아주 명확할 거예요
이미 이 모든 걸 알고 최적화에 익숙하다면 아주 좋아요
그럼 훨씬 더 좋겠죠
그럼 더 쉽겠죠
수입을 좀 해 보죠
이제 매개 변수가 많이 생겼죠
기본 모델은 당연히 라마 3이고요 180억 달러요
프로젝트 이름은 잘 알죠
무게와 편향에 사용될 프로젝트 이름이에요
Get을 하면 비교할 수 있는 결과를 보여줄 거예요
H깅 페이스 허브에 업로드 할 때도 사용할 거예요
이 프로젝트에선 프라이서란 이름을 사용하고 있어요 가격과 관련된 뭔가처럼요
기억하실지 모르겠지만 GPT를 훈련할 때 프라이서 GPT라고 불렀어요
결과가 다를까 봐 프로젝트를 분리해 뒀어요 다른 양을 측정할 거라서 같은
프로젝트에 두면 헷갈릴 수 있거든요
그래서 프라이서라고 이름 지었어요
아, 안는 얼굴 사용자요 여기에 안는 얼굴 이름을 넣으세요
정밀 튜닝 모델을 허브에 post 하고 싶을 테니까요. 왜냐하면 여러분이 그것들을 소중히 여기고 미래에
사용하게 될 테니까요.
비밀로 간직할 수 있어요
그냥 여러분이 드실 거예요
데이터에 관해서는 데이터 세트를 로드해야 해요
여기선 선택할 수 있어요
몇 주 전에 데이터 큐레이션을 할 때 데이터 세트를 포옹 페이스 허브에 업로드했죠
이 선을 여기 둘 수 있어요 포옹 페이스 사용자 이름과 프라이서 데이터죠
우리가 부르는 이름이에요 로드할 수 있어요
아니면 그냥 이걸 보면서 데이터셋 작업하는 걸 보든지요 허깅페이스에
업로드 안 한 거요
안타깝네요
그래도 많은 일이 있었다는 건 알아요
하드코딩한 이 라인을 주석 처리 해제할 수 있어요
F는 필요 없어요
하드 코드화 했어요 허브에 데이터 가격을요 공개될 거예요
그냥 다운로드 하세요
좋아요
직접 업로드 안 해도 돼요
최대 시퀀스 길이는 데이터가 항상 조각되어서 179개의 토큰을
넘지 않게 됩니다 문장 시작에 토큰 몇 개를 더하고 끝에 검프한 것을 추가하면
최대 시퀀스 길이는 182개가 되죠
이건 아주 중요해요 모든 훈련 데이터 포인트가 여기에 맞물리거든요
GPU 메모리에 들어갈 만큼 작은 숫자여야 하죠
그래서 이 정도 양에 맞게 설명을 잘라낸 거예요
몇 가지 관리적인 것들을 살펴봅시다 각 실행의 실행 이름이라는 것을 생각해 냈습니다
간단하게 현재 날짜를 나타내는 것이죠
한 달요
낮과 시간요
1분
두 번째요
잠시 후에 그 이유를 알게 될 거예요
프로젝트 Run name이라고 입력할게요 Pricer요
그다음 하이픈, 날짜 허브 모델 이름을 입력하죠 모델을 저장하려는 건 사용자 이름이 될 거예요
그리고 이거요
네
왜 이걸 하냐고요?
그래서 사람들은 모델을 한 명만 쓰기도 해요
실행하면 같은 모델 리포지토리에 저장한 다른 버전을 업로드만 하면 되죠
허그페이스에서 하는 건 전부 깃 회수예요
그러니까 여러분은 여러분의 모델의 새 버전을 계속 푸시할 수 있는 겁니다 그것의
새 버전이 되는 거죠 코드의 새 버전을 확인하거나 버전의 코드를 푸시하는 것처럼요
모델 이름은 같지만 모델의 다른 버전일 수도 있죠
하지만 저는 다른 실행을 분리해서 다른 모델로 두는 걸 좋아합니다 그 안에 다른
버전이 있으니까요 다른 시대로서도 가능하고요
저는 분리하는 걸 좋아해요 다른 hyperperameter로 훈련했으니까요
그걸 기록하고 싶어요
전 이렇게 하는 게 좋아요
꼭 필요한 건 아니지만 도움이 될 거예요
그에 대한 느낌을 드리기 위해 run name을 선택해보죠 그것부터
시작하죠
지금 실행 이름을 보여드릴게요
여기 보이는 실행 이름은 현재의 날짜입니다 22일과 현재 시간이죠
우주 시간으로 이루어진 협회의 시간이죠
사실 지금은 12시 4분이 아니에요
그게 실행명이에요
또 뭐가 있었죠?
프로젝트 실행 이름과 허브 모델 이름이 있네요
프로젝트 실행 이름은 Pricer로 하고요
그리고 업로드 될 허브 모델 이름이죠
그래요?
실행된 후에 그 이름으로 모델을 생성할 거예요
모델 디렉터리를 보면 이런 게 잔뜩 보여요 너무 많이 실행했거든요 인정하는
것보다 더 많이요
하지만 정말 즐거웠어요
프라이서 모델은 많아요
전부 도망치고 있어요
이제 마무리할게요 방금 연결됐다가 끊겼다가 하네요
훈련에 사용하는 하이퍼파라미터는 매트릭스의 차원이에요
32명부터 시작할게요
아까 말했듯이 8명까지 줄일 수 있어요
특히 로우 박스라면요
괜찮을 거예요
로라, 알파는 더블 R이에요
이걸 8로 내리면 16이 되는 거죠
물론 목표 모듈이죠
너무 잘 아시네요
그게 뭔지는 말 안 해도 알겠죠
이건 라마 3의 기본 모델이에요
이 모듈이 목표예요
로라 중퇴는 지난번에 꽤 길게 설명한 거예요
정규화에 도움이 되는 방법입니다 새로운 데이터 포인트에 모델이 일반화되도록 하는
거죠 이 경우에는 10%의 뉴런을 가져다가 활성화되지 않게 하고 완전히 지워버리는
겁니다 훈련 과정에서 매번 다른 10%씩 뉴런을 제거하는 거죠
그 결과, 모델은 특정 뉴런에 지나치게 의존하지 않아요
전체 모델을 향상시키기 위해 전반적으로 학습합니다. 훈련 포인트를 받고 올바른 다음 토큰을
주는 것을요. 모델이 일반화되도록 돕죠.
10%도 10이에요 1은 아주 전형적인 출발점이에요
5%와 20%로 해보고 퀀트 포 비츠로 어떻게 하나 봐요
맞아요
4분의 1로 수량화하고 있어요
네
hyperperameter를 위한 hyperperameter 훈련용으로요
세 개 개 개혁에 사용할 계획이에요
한 명만 해도 돼요
한 번 만든 양이면 완벽한 결과가 나올 거예요
1만 6천 달러예요
같이 필요하실 것 같아요
끝내주는 A100 박스로요?
16번씩 포장할 수 있어요
이게 최대 시퀀스 길이인 걸 고려하면 전부 밀어넣을 수 있어요 40GB 메모리에
겨우 넣을 수 있죠
하지만 T4처럼 낮은 박스를 사용하고 싶다면 이 제품을 사용해
보는 게 좋을 거예요
더 높이 해봐요
GPU 메모리가 더 많으면 get get은 여전히 공짜죠
배치 사이즈를 위해 파워 2를 쓰는 게 관례예요
1, 2, 4, 8, 16명이요
이론상으로는 2의 제곱으로 설정했을 때 GPU 성능이
더 좋아진다는 여러 가지 불확실한 증거가 있는데요
하지만 비트에 관한 데이터는 항상 좀 모호해요
일반적으로 말하자면 GPU 위에 좀 더 많은 비트를 밀어 넣을 수 있다면
그렇게 해야죠
그래서 3개 분량도 주저 없이 만들 수 있어요
GPU 안에 넣을 수 있다면 배치 크기 2보다 더 빨리 실행될 거예요
비트가 더 잘 맞는다면 4개가 더 효율적일 거예요
일반적으로 권고하자면 GPU 크기에 맞는 걸 선택해서 그걸로 시작하고
상당한 공간을 확보하세요
저처럼 돈을 펑펑 쓰실 게 아니라면 16단계 그러데이션 누적 과정을 거치세요
저번에 설명했잖아요
메모리 증진에 도움이 되는 것 같아요
그래도 되지만 전 한 명과 함께 지내고 있어요
2-4시에 시도해 보세요
학습률은 정말 중요합니다 올바른 방향으로 나아가기 위해 최적화할 때
얼마나 걸음을 내딛는지가 중요하죠
학습률은 실험해 봐야 할 아주 중요한 하이퍼파라미터예요
그리고 이런 질문에는 정답이 없어요
학습률이 너무 높거나 너무 낮을 수 있어요
손으로 물결무늬를 만들 거예요 비트를 입어요
다시 말씀드리지만 여러분이 이루고자 하는 것은 모델이 사라졌다고 가정해
보세요 이렇게 크게 움푹 들어간 부분이죠
이 계곡을 찾고 저 계곡을 찾아야 해요
이 계단을 오르다가 골짜기 방향을 따라 내려가면 골짜기
바닥에 닿을 거예요
학습 속도가 너무 높으면 계곡을 넘었다 다시 돌아와야 해요 계곡 아래로 내려가면
안 되죠
학습률이 너무 낮으면요
작은 걸음을 내디디면서 계곡으로 가는 속도가 느려질 수도 있어요
작은 보폭 두 개에는 또 다른 문제가 있어요
하나의 큰 계곡이 아니라 작은 계곡이 있고 큰 계곡이 있다고 가정해 보죠
학습률이 너무 낮으면 작은 발걸음을 떼다가 저 작은 계곡으로 가라앉을 수도
있어요
작은 걸음을 내디딜 때마다 작은 계곡의 두 벽을 따라 올라가는데 그 계곡을
벗어나지 못해요
그래서 바로 옆에 훨씬 더 큰 밸리가 있다는 걸 전혀 알 수 없죠
그게 핵심적인 문제죠
학습 속도가 너무 낮으면 흔한 문제예요
사람들은 그걸 지역 내 최소량에 갇힌 거라고 하죠
이건 최소라고 하는데 여러분이 있는 곳의 로컬이죠
글로벌 최소치를 못 찾았군요 이 아래쪽에 있는 거요 로컬 최소치에
갇혀 있으니까요
학습률이 너무 낮으면 이런 문제가 생겨요
멋진 트릭이 있어요
학습률은 0으로 정했어요 00011 곱하기 10은 4죠
학습률 스케줄러라는 게 있는데 이 프로그램은 학습률을
다양하게 해서 세 개 시대에 걸쳐 학습률을 점점 줄여
줍니다 결국 0이 될 때까지요
그걸 줄 수 있어요
이 중 하나를 선택하면 다른 모양을 줄 수 있어요
코사인은 아주 좋은 제품이에요 학습 속도가 아주 느리게 시작하지만 점차 감소하고
있어요
끝에는 꼬리가 보여요
곧 시각적으로 보실 거예요
아주 좋은 기술이에요
최종 학습률 매개변수는 웜업 비율이라고 하는데요 훈련 과정
초기에 모델이 처음 데이터 포인트 몇 개에서 배울 게 많아서 불안정하다는
뜻이죠
처음에 학습률이 높으면 위험합니다 모든 게 뒤죽박죽이 되거든요
워밍업 비율은 낮은 학습율로 시작해서 최고가 될 때까지 워밍업하는
거예요
이제 코사인 트레일을 만들어 보죠
시각적으로도 볼 수 있어요
그래야 말이 되죠
하지만 이건 아주 합리적인 설정이에요
하지만 학습 시작률이 높거나 낮거나 다양한 스케줄러 유형을 실험할 수
있어요
마지막으로 최적화 장치예요
여기 peded Adam w를 선택할게요. W는 무게 감쇠 a peded Adam w 32 비트라는 뜻이에요.
융합이 잘되는 최적화 장치죠
최적의 장소를 찾는 건 잘하지만 메모리 소모에 따른 대가가 따르죠
여기 링크를 걸어 놨어요 다양한 최적화 방법을 소개한 We't go에 관한 글이에요
트랜스포머에 가장 많이 나오는 건 애덤과 애덤이에요
애덤이 아주 잘하네요 이전 평균 그러데이션을 저장하고 있거든요 최근 그러데이션보다
더 잘 활용하고 있어요
하지만 그걸 저장하면 추가 메모리 공간이 필요해요
비트는 좀 과한 메모리예요
메모리가 부족하다면 더 싸고 욕심이 덜한 최적화 장치를 선택해 메모리를 저장하세요
하지만 결과는 pageed Adam w보다 약간 나쁠 수도 있어요
마지막으로 행정적인 설정이 있죠
이 단계의 수는 제조 단계를 나타내요
진척을 줄여 무게와 편견을 줄여 현재 상황을 보여 주죠
이건 몇 단계에 걸쳐 허브로 모델을 업로드하고 적절한 버전을 저장하는 단계죠
무게와 편향으로 로깅을 하는지 아닌지를 보여줍니다 매개 변수를 보여드린 거죠
다음엔 트레이너에 대해 제대로 얘기해보죠 Get it