Get it 여기까지 못 올 줄 알았죠?
주피터 연구소에서 개척지 모델을 세밀하게 조정하고 있어요
수입 부품부터 시작하죠
테스트 데이터도 가져오죠
기억하신다면 이건 250개의 테스트 예제를 실행할 수 있는 실용적인 코드입니다 아름다운
차트를 제공하죠
마지막에 우리 환경에서 끌어안는 얼굴 토큰을 로드합니다 이번에는 사용하지 않겠지만
이전처럼 항상 끌어안고 얼굴을 안는 건 어떨까요?
오픈AI를 사용할 거예요
그래서 저 선을 저기와 여기에 실행해야 해요
피클 파일에서 훈련 데이터와 테스트 데이터를 열어 이걸 하도록 하겠습니다
모든 걸 처음부터 다시 만들 필요가 없도록요
좋아요
이제 뭘 할지 얘기해보죠
오픈AI는 여러분이 훈련할 때 훈련에 사용한 예시를 50-100개 정도 사용하라고
권장해요
개척지 모델의 세밀한 조정은 음색과 스타일을 바꾸는 거예요 오류를
수정하고 어떤 상황에서는 정확도를 높이는 거죠
중요한 건 아니고 예시를 많이 넣는 것도 큰 의미가 없어요 GPT 4 시리즈 같은 모델은 너무 많은 데이터를 바탕으로
훈련되어서 여러분이 정말 하려는 건 여러분이 원하는 특정 작업의 예시를 충분히
제공하는 거예요 그래야 거기서 배울 수 있죠
네, 아주 많은 숫자를 추천하지 않는 건 아니지만 적어도 500은
뽑을 거예요 권장량보다 많죠
그리고 제가 실험해 봤는데 작은 수치보다 결과가 좋았어요
500가지 예시를 들어볼게요
지금은 아주 작은 사례만 있죠
텍스트는 아주 작아요 일반적으로 훨씬 더 큰 훈련 문서를 생각하고 있죠
그래서 저는 전혀 미안하지 않아요
지금은 미세한 조율이에요
한동안은 비어요 9월 23일까지는요 9월 말까지는요
하지만 무료가 아니게 되더라도 여러분이 지불하는 비용은 500개에 대한 추론만 수행하는
비용과 비슷합니다 이것도 역시 몇 센트로 측정되죠
그럼 지금으로서는 0달러 정도 되겠네요 5천 달러요, 그 정도 금액으로요
여전히 적은 금액이네요
말씀드렸듯이 9월 말까지는 무료예요
500개의 훈련 세트를 만들었어요 실제 훈련 세트인 400,000개와
비교해서요
50달러로 검증 받을게요
아까 언급했듯이 검증은 필요 없습니다 훈련 세트에서 한 번만
할 것이기 때문이죠
하지만 여러분께 보여드리면 유용할 것 같았어요 나중에 여러분 프로젝트에서 어떻게 사용할지
알 수 있게요
이 모든 게 여러분의 프로젝트에 따라 복제될 수 있거든요
이걸 실행해요
첫 단계는 Jsonl JSON 라인 데이터를 준비하는 거라고 말씀드렸죠 훈련 데이터를 이 포맷으로
변환하는 거예요
먼저 여러분이 잘 아는 메서드 함수를 작성했어요 메시지를 전달하는 함수죠 지난 시간에 했던
것과 정확히 일치해요
물품의 가격을 추정하고 가격으로만 답해야 해요 설명하지 말고요
사용자 프롬프트는 아이템에서 테스트 프롬프트를 가져오고요
그리고 1달러가 될 만한 건 다 빼고 빈 지폐로 바꿔요
최저 금액을 제시하는 게 아닙니다 개척지 연구소는 그런 추측이
필요 없죠
그리고 이것도 빼요 그게 사용자 프롬프트에 가는 거죠
그럼 전 보조에게 가격을 말하고 가격을 알려줘요
실행해 보죠
무슨 일인지 잘 모르실 수 있으니 예를 들어볼게요
모델이 처음 보는 0번 열차에 보내는 메시지예요
Get 롤 시스템이에요
시스템 프롬프트죠
만족스러운지 확인하고 사용자를 롤해요
이게 사용자 프롬프트예요
우리가 이 질문을 한 것 같네요 물음표는 얼마일까요?
델포이 어쩌고 하는 장황한 얘기도 들었어요 연료 펌프 모듈요
그리고 이건 비서의 대답이에요
가격은 226달러예요
그런 건 상상도 못 했어요 그런 건 상상도 못 했죠
자, 보세요
매일 새로운 걸 배우네요
어쨌든 이게 메시지 형식입니다 이 단계에선 아주 익숙할
거예요
이게 어떻게 완벽하게 만들어진 테스트, 아니 훈련 데이터 포인트인지 알 수 있습니다 우리가 모델에
제공할 것이죠
좋아요, 여기 JSON L을 만드는 함수가 있어요 여러분이 예상하는 대로 항목을 여러
개 받아들이죠
그런 항목을 반복할 거예요
각각의 객체를 위해 텍스트를 생성하죠
그런 다음 Json을 사용하죠 덤프 스트링을 덤프 스트링으로 전환해 단순한 문자열로 변환하죠
보세요, 문자열 하나에 추가하고 끝에 캐리지 리턴을 하죠
그리고 다시 리턴합니다 마지막 캐리지 리턴을 제거하고요
어떻게 작동하는지 보죠
먼저 실행해 보죠
나처럼 실수하지 마요
됐어요
이제 만들기를 해요 JSON
훈련 데이터를 제출하도록 하죠
앞의 세 곡만 통과시키죠 그래야 사람들이 안 몰려요
get get get 문자열이죠
그리고 문자열도 있어요
인쇄하는 게 더 쉬울 것 같아요
get을 해서 빈 선이 잘 보이게 만들어 줄게요
문자열입니다 문자열에 1, 2, 3개의 줄이 있죠
좀 휘감기고 있어요
각 행에 있는 메시지를 보면 훈련 데이터 포인트를 나타내요
네
지금까진 좋아요
이제 그 위에 구축된 함수가 있어요
그렇죠?
Jsonl은 항목을 취하고 파일 이름을 취해요
아주 간단해요
파일 이름을 열고 위의 함수를 호출해 써요
그에 대한 데모는 드릴 필요가 없을 것 같네요
실행해야 하지만 실제로 실행할 수 있어요
이제 훈련 데이터 집합을 볼게요. 잘 조율된 트레인 기억하시죠? 500개의 아이템이 있어요.
확인해 보죠
됐어요, 훈련 데이터 세트 전체에서 500개, 400,000개예요
전부 파일에 작성해 GPT 4에 업로드 하진 않아요
파인 튠 트레인 닷 JSON 파일에 그걸 적어요
그걸 실행하고 유효성 검증 세트를 가져다가 정확히 같은 걸 실행하죠
저 두 파일을 작성했는데 몇 초 전에 작성된 걸 보실 수 있죠
이걸 열면 열 수 있어요
JupyterLab에도 JSON 라인 편집기가 있어요 일반 편집기로
넘어가 보죠
여러분이 기대하는 대로 500개의 행이 있네요
자, 끝까지 갑니다 500줄이네요
모두 우리가 바라는 구조로 이루어져 있어요
잘 구성된 JSON이 아닌 걸 알 수 있어요 각 행은 잘 구성된 JSON 문서거든요
제가 장황하게 말하고 있지만 이걸 읽을 수 없고 JSON 문서로 파싱할
수 없는 게 중요해요 구성이 잘 된 JSON이 아니니까요
선이 분리돼 있어요
에디터로 여는 검증 파일이 50개 정도 될 거예요
50줄은 거의 비슷하게 말했어요
JSON 라인에서 어떻게 보이는지 보여드릴게요
편집자요
이렇게 생긴 멋진 편집기예요
각각을 열 수 있어요 JSON 개체 같죠
네
보세요
그렇게 시작을 했어야죠
아마도요
어떤 상황인지 잘 알 수 있죠
메시지가 왜 포장되는지에 대한 직관적인 감각을 발휘하죠
포장된 방식요
좋아요, 그게 파일이에요
그게 마지막 단계예요
이 부분요
오픈AI에 업로드 할 때가 된 것 같아요
OpenAI.Files.Create라고 이름 붙였어요
파일을 전달하고 목적이 미세하다고 말하죠
한 가지 주의할 게 있어요
이 파일을 전달할 때 반드시 전달해야 해요
이진법 파일로 열어야 합니다. 왜냐하면 그 파일은 바이너리 바이트로 되어 있어서 OpenAI로 스트리밍
될 것이니까요.
R이 아니라 RB로 해야 해요
아주 작은 뉘앙스만 조심하면 돼요
파일의 모든 내용을 OpenAI로 보내고 있어요
그 라인을 실행하는 데 1초가 걸리죠
무엇이 돌아왔는지 검사하면 파일 객체를 가져오죠.
특정 바이트의 개수가 있고요
객체는 파일이고 목적은 잘 조정되었고 상태는 처리되었어요
OpenAI는 이미 파일을 가져와서 처리하고 있어요
검증도 똑같이 할 거예요
실행하면 다 됐어요
다시 한 번 처리하죠
이 시점에서 우린 두 개의 JSON 파일을 만들었죠
하나는 훈련용이고 하나는 검증용이죠
우리 파일 시스템에 적어뒀어요
그리고 OpenAI에 업로드했습니다 OpenAI에서 파일 객체로 자리 잡고 있죠
다음 시간에는 미세한 조정을 할 거예요
거기서 봐요