토큰이들과의 활약에 돌아오신 걸 환영해요
지금 볼 것은 모델 지시 변수라는 건데요
채팅용으로 특별히 설계된 모델도 많습니다 사용자와의 채팅을 수행하기 위해서죠
GPT4 채팅도 마찬가지입니다 얼굴을 끌어안는 모델이 등장할 경우 베이스 모델과
이름이 같지만 끝에 지시 사항이 추가됩니다 이
지시 사항 사용 사례에 적절하게 사용되도록 설계됐다는 뜻이죠
특정 구조에서 특정 토큰으로 시스템 메시지와
사용자 메시지 지원 답변을 식별해 채팅을 하도록 훈련받았죠
많은 예시를 들면서 훈련된 방식의 일부일 뿐이죠
이 포맷에서 기대하죠 여러분께 뭔가 제공하면 좋겠네요 이제 루프를
닫을 테니까요 한참 전에 메시지 구조의 이유에 대해 시드를
심었던 거죠 독재 목록은 프론티어 모델을 할 때 아주 익숙해졌어요
이번엔 토큰라이저를 만들게요 메타 lemma 3을 이용해서요 180억 개요
그러니 낯익을 거예요
이것은 우리가 오픈AI나 클로드에서 많이 사용하는 독촉 목록 중 하나입니다 역할과 콘텐츠를
지정하는 거죠 역할 시스템은 시스템 메시지 사용자는 사용자 메시지에요
H깅페이스가 제공하는 토큰라이저는 특별한 기능을 수행해 채팅 템플릿을 적용하고 OpenAI
API 포맷의 이 포맷 메시지를 취합니다 올바른 구조로 전환해 이 모델이 기대하는 특정
프롬프트 유형에 사용되죠 훈련된 방식에 따라 토큰라이즈 = true 함수를
입력하면 일련의 숫자만 나올 뿐 무슨 일이 일어나는지 알 수
없어요
토큰화 = false라고 적었죠
Get in get은 텍스트 버전이에요
프린트해서 여러분이 보실 수 있도록 하겠습니다 이게 무엇으로 변환되었는가
하는 거죠 이 특정 대화에 대한 추론 시간에 모델로 펌프질되었어요
여기 있네요, 특별한 토큰 비긴즈 오브 텍스트와 헤더로 시작하네요
워드 시스템과 end 헤더도 있어요
그리고 절단 연도와 오늘 날짜에 대한 정보도 있어요
정말 특별하네요
라마 3 같아요 하나만요
이전 라마 가족들은 그런 적이 없었는데 제가 틀렸을 수도 있어요
그리고 이건 물론 우리가 제공한 시스템 메시지예요
User와 헤더를 위한 또 다른 스타트 헤더가 있어요
이건 사용자 메시지예요
또 다른 start 헤더와 보조란 단어가 있고 end 헤더가 있어요 모델이
보조 응답을 생성해야 하니까요
이 모델은 다음 순서로 이어집니다 이 시스템
지침을 신속히 따르는 지원군에 대한 대응이죠
이번 기회에 깨달으셨으면 좋겠어요 어떻게 이런 구조물을 지었는지요
모델과의 대화도 그렇게 생각해야 해요
하지만 결국 모델에는 이런 프롬프트가 들어갑니다 특별한 토큰이 들어
있는 프롬프트죠
그런 구조와 특별한 토큰으로 훈련했기 때문에 다음에 뭐가 필요한지
알아요
지원팀 응답요
채팅 인터페이스를 설명하는 거죠
get it의 경험을 쌓기 위해 모델 몇 명과 더 일해 보죠
전 특별히 세 가지 모델을 고를 거예요
파이 3은 마이크로소프트 모델이에요
퀸 2는 알리바바 클라우드에서 계속 언급했던 강력한 모델이에요
스타 코더 2는 코드 생성을 위해 설계된 모델이죠
세 회사가 협력해서 만든 회사로 서비스나우와 포옹하는
얼굴 그리고 엔비디아입니다 이 세 회사가 파트너십을 맺어
그룹스타 코더와 이 모델을 만들었죠
네
그럼 피3을 불러 볼까요?
오토 토큰라이저와 똑같은 접근법을 사용합니다 미리 훈련받은 모델이죠
지금은 저도 같은 문자를 보내고 있어요
LLM 엔지니어들에게 토큰라이저의 작동을 보여 줄 생각에 신나요
라마 3을 재인쇄할 거예요 토큰라이저 1개 토큰의 모습을 다시 보여드리죠
빈 선이 하나 있고 피3을 프린트할 거예요
결국 중요한 질문은 이겁니다 기본적으로 같은 토큰을 생산하나요? 아니면
다른가요?
한번 보죠
보면 아시겠지만 완전히 달라요
달라요
생성된 텍스트만 다른 게 아니라 메시지 특별 토큰의 시작인 이 첫 번째
것도 완전히 달라요
그걸 볼 수 있게 배치 디코딩을 하죠
토큰자이예요
닷 배치 해독법이에요
토큰이라고 해야겠네요
동등하게요
토큰요
get in the right 한번 볼까요?
Get in get은 완전히 달라요
사실, 흥미롭게도 조금 전에 한 말은 틀렸어요
53번의 경우 문장 시작 특별 토큰이 없어요 그냥 바로 들어가죠
아주 색다른 접근법이죠
좋아요
채팅 템플릿 적용을 이용해 53명이 채팅 템플릿을 어떻게 사용하는지 보죠
라마를 위해 다시 해 보죠
라마도 볼 수 있겠네요
그런 다음 나란히 같은 채팅 템플릿을 출력할 겁니다 같은 대화, 같은 53에 대한 같은
프롬프트를 위해서요
어떤지 보죠
이게 라마에게 필요한 거고 이건 피3에 해당하는 거예요
훨씬 짧죠
날짜에 안 들어가요
흥미롭게도 라마라는 단어는 헤더가 기본이었어요 워드 시스템과 엔드
헤더가 사용자와 엔드 헤더로 이어졌죠
파이 3의 경우 시스템을 위한 특별한 태그와 사용자를 위한 특별한 태그 보조를 위한 특별한
태그가 있어요
접근 방식이 완전히 달라요
흥미로운 점은 두 토큰라이저, 두 모델이 프롬프트를 get으로 보내는 방법에
다른 접근법을 취한다는 거죠
만약 잘못된 토큰라이저를 잘못된 모델로 사용한다면 가비지가
된다는 것을 아셔야 합니다. 왜냐하면 토큰이 다르고 구조가 다르다면 llama3에는
의미가 없기 때문이죠.
이제 퀸 2호도 똑같이 해 보죠
라마의 원조 버전을 볼 거예요
파이3 버전을 보여드리고 두 가지 버전을 보여드릴게요
저기 오네요
보시다시피 토큰라이저 세 개는 완전히 다른 결과를 볼 수 있죠
하이라이트 한 번 더 할게요
모델에 맞는 토큰라이저를 골라야 해요
채팅 템플릿을 적용해 보죠 같은 메시지를 전달하는 채팅 템플릿이
또 있어요
곧 알게 되겠죠
다섯, 셋, 퀸, 둘 이렇게 나란히요
어떻게 생겼는지 보죠
라마 사진은 이미 봤어요
53편은 이미 봤어요
그리고 이건 퀸의 두 번째예요
보시면 알겠지만 그 중간쯤에 있어요
비트도 라마랑 비슷해요
시작과 끝이라는 시스템도 있고요
그 다음은 사용자, 그 다음은 조수죠
그 둘 사이의 어디쯤이죠
그 어정쩡한 단어가 없어요
헤더 스페셜 태그가 없어요
이런 식으로 접근해요
흥미로운 제3의 접근법이죠 또 다른 변종으로 특별한 토큰을 사용해요
좋아요
마지막으로 스타 코더 2를 보여드릴게요
코드 생성 모듈이에요
토큰라이저를 가져갈 거예요
이 코드를 저기에 Put 할게요
안녕 세계, 안녕 세계 변수를 선택하는 거죠
그러면 hello를 출력하죠
그리고 그 사람도요
그런 다음 같은 인코드를 사용해 토큰으로 바꾸죠
이제 해야 할 일은 각각의 토큰을 프린트하는 것입니다. 그리고 무엇이 get이 되었는지, 어떤 텍스트를
나타내는지 매핑하는 것이죠.
여기 보시면 처음에 뭔가 있었어요 데프가 토큰 하나에 들어갔고
hello_ world와 Person이 나왔죠
여기 이건 탭을 반영할 겁니다 그런 다음 hello, 사람 괄호 닫기를 인쇄하죠
대충 감이 오실 겁니다 스타 코더 2 토큰라이저는 토큰라이저로 영어보다는 토큰라이저
코드를 중심으로 디자인됐죠
실험할 수 있는 게 있어요
먼저, 다양한 토큰라이저를 사용해보고 텍스트에서 토큰으로의 매핑을 탐색해보세요
어떤 단어인지 찾아봐요
라마 안에 토큰이 하나 있는 가장 희귀한 단어를 찾아보세요
토큰이거나 가장 긴 단어였을 거예요
실험도 좀 하고 여러분을 만족시켜 드릴게요
꽤 복잡한 코드를 가지고 있다면 이 스타 코더의 토큰라이저 토큰화가
더 효율적으로 이루어질 것입니다 토큰라이저의 영어 버전보다 더 효율적이죠
그때쯤이면 여러분은 오픈 소스 토큰라이저의 전문가가 되어 다음 단계인 모델에
도전할 준비가 될 거예요
먼저 슬라이드로 돌아가죠