데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Meta Llama 4 토크나이저 분석

      singleheart 25.04.15
      2,387 2 0

      Meta에서 4월 5일 토요일에 Llama 4를 발표했습니다.

      이미 며칠 지나서 지금은 새로운 소식들에 묻힌 감이 있습니다만 요즘 AI가 하루하루가 다르기 때문이겠죠.

      메타에서 토요일에 부랴부랴 발표를 진행한 것도 더는 미룰 수 없었기 때문이라는 견해도 나오고 있습니다.

      image.png

      라마2와 3은 구조상 차이가 크지는 않았는데, 라마4는 이전 모델들과 여러 가지 차이가 있습니다. 우선 모든 크기에서 멀티모달 모델이고, MoE 구조를 채택했습니다.

      긴 입력을 지원하기 위해서 새로운 임베딩 알고리즘을 도입했습니다. 데이터가 고갈되면서 다시 아키텍처가 중요한 시대가 되는 것 같습니다.

      자세한 기술은 technical report가 발표된 뒤에 확인하기로 하고, 이 글에서는 내용이 모두 공개되어 있는 토크나이저만 살펴 보겠습니다.


      라마4 토크나이저

      라마4 토크나이저에 대한 분석은 이미 나와 있습니다.

      Sionic AI에서 라마 4는 한국어에 가장 친화적인 오픈소스 모델입니다는 분석을 발표했습니다.

      라마4 토크나이저에 포함된 한국어 관련 토큰 비중이 크게 증가했다는 내용입니다.

      비록 라마4의 공식 지원 언어에 한국어가 명시되지는 않았지만, 다국어 데이터를 늘리면서 한국어 데이터도 많이 늘어난 것으로 보입니다.


      한국어 효율

      그렇다면 라마4 토크나이저의 한국어 효율이 얼마나 향상됐는지 확인해 보겠습니다.

      위 분석글에서 한국어 텍스트가 몇 토큰으로 처리되는지 분석하지는 않았으므로 직접 확인해 보겠습니다.

      예시로 Meta Llama 3 간단한 분석에서도 보았던 데보션 매니페스토를 측정해 보겠습니다. 데보션 매니페스토는 아래와 같습니다:

      여기, 개발자들을 위한 지식의 바다가 있습니다. 우리는 당신이 끝없이 펼쳐진 이 바다 위에서 소통과 공유를 통해 보이지 않던 길을 찾아가길 원합니다.
      
      새로운 시대라는 높은 파도를 만나도 두려울 것 없는 실력 혁신이라는 신대륙을 발견하는 능력 그리고 우리는 믿습니다. 그 실력이 보다 나은 세상을 만들 거라고

      문장부호와 빈 칸을 포함해서 171글자로 된 데보션 매니페스토를 라마2 토크나이저에 입력하면 246토큰이 됩니다.

      라마2에서는 한글 토큰 비율이 낮아서 한글 한 글자를 세 개의 토큰으로 나타내는 경우가 있기 때문입니다.

      이보다 개선된 라마3 토크나이저에서는 93토큰이 됩니다. 거의 2글자당 1토큰 정도로 효율이 꽤 높아졌습니다.


      그렇다면 라마 4는 어떨까요? 확인 결과,

      76토큰이면 충분했습니다.

      확실히 한국어 토큰이 늘어난 효과가 있습니다.


      다른 오픈소스와 비교해 보면, OpenAI의 o200k_base 토크나이저가 88토큰이니까 라마4 토크나이저가 훨씬 효율적입니다.

      이 정도면 엑사원과 비슷한 수준이고 다국어 모델 중에서 최고 수준입니다.

      한국어에 중점을 둔 SKT A.X 토크나이저보다는 30% 정도 토큰을 더 사용합니다만 그래도 충분히 효율적이라고 볼 수 있겠습니다.

      비슷한 규모의 모델끼리는 토크나이저 효율이 높으면 언어 이해 및 생성 성능도 상승하는 경향이 있습니다.


      전반적인 특징

      아무래도 한국어 지원이 가장 중요한 부분이기 때문에 먼저 설명했습니다. 이제 라마4 토크나이저의 전반적인 특졍을 간단히 보겠습니다.

      라마3에서는 OpenAI의 cl100k_base에 다국어 토큰을 추가해서 만들어서 토큰의 80% 이상이 겹쳤는데 라마4는 Meta 독자적으로 토크나이저를 만들었습니다.

      토큰 수 (vocab size)는 정확하게 20만개를 맞추었습니다. 토크나이저 인코딩은 이전과 똑같이 BBPE이기 때문에 눈으로 개별 토큰이 무엇인지 보기는 어렵습니다.


      모델 활용을 위해 chat template도 크게 강화했습니다.

      도구와 함수 호출을 명시적으로 지원하고, 화자의 역할도 user와 assistant를 넘어서 tool이나 ipython등이 추가되었습니다.

      날짜와 시간 정보를 동적으로 생성하는 기능이 있어서 대화 중에 시간 관련 맥락도 제공할 수 있습니다.

      출력도 이미지와 코드블록 등을 처리할 수 있고 JSON 직렬화를 통해 구조화된 데이터를 생성할 수도 있게 되었습니다.

      예외처리 로직도 포함되어서 라마3보다 안정적으로 에이전트를 구성할 수 있습니다.


      이렇게 복잡한 로직을 처리하려면 일반 텍스트 토큰만으로는 오류가 발생할 수 있기 때문에 몇 가지 스페셜 토큰을 정의해 두었습니다.

      챗 템플릿 소스를 보면 <|header_start|>, <|header_end|>, <|eot|>, <|python_start|>, <|python_end|>, <|image|> 토큰을 사용하는 것을 확인할 수 있습니다.


      스페셜 토큰

      라마4를 직접 파인튜닝하거나 서비스에서 사용할 때에 스페셜 토큰의 역할을 이해해야 하는 경우가 생기는데 자세한 사용법은 라마 웹사이트를 참고하십시오.

      여기서는 몇몇 눈에 띄는 토큰만 언급하겠습니다.


      우선 라마 토크나이저는 GPT 계열이면서도 항상 텍스트의 시작을 나타내는 토큰을 사용합니다. (다른 토크나이저는 끝만 사용하는 경우도 많습니다)

      보통 begin of sentence를 줄여서 bos 토큰이라고 부르는데 요즘은 문장이 아니라 긴 텍스트를 포함할 수 있으므로 라마에서는 <|begin_of_text|>와 텍스트의 끝을 나타내는 <|eot|> 토큰을 사용합니다.

      <|end_of_text|> 토큰도 정의는 되어 있는데 실제로는 사용하지 않는 것 같습니다.


      출력을 생성할 때 중간 부분을 수정할 수 있도록 fill-in-the-middle 학습도 되어 있습니다.

      이를 지원하는 <|fim_prefix|>, <|fim_middle|>, <|fim_suffix|> 스페셜 토큰이 있습니다.


      멀티모달 모델인만큼 이미지를 처리하는 토큰들이 있는데 <|image_start|>, <|image_end|>, <|tile_x_separator|>, <|tile_y_separator|>, <|patch|>가 있었습니다.

      이미지 학습과 생성에 쓰이는 것으로 예상됩니다.


      특이하게 패딩 토큰을 <|pad|>가 아니라 <|finetune_right_pad_id|>로 정의하고 있습니다.

      보통 이것을 수정할 일은 없습니다만, 파인튜닝하거나 서빙할 때에는 확인하면 좋을 것 같습니다.


      아직 라마4 출시가 끝난 것이 아닙니다.

      베헤모스급 모델이 출시 대기중인데 라마3.1에서 405B가 출시된 사례를 보면 라마4.1로 베헤모스가 등장할 가능성이 있습니다.

      스카웃과 매버릭 모델도 개선 버전이 등장할 수 있고요. 딥시크 R2나 퀜3 등의 주요 오픈소스 모델이 조만간 발표될 것으로 예상되므로 흥미로운 봄이 될 것 같습니다.

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      singleheart 님의 최신 블로그

      더보기
      동영상 기고하기