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

신고하기

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

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

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

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

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

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

      임시저장함

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

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

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

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

      회원정보 연결

      Long context LLM : 2부 RoPE Extension Method

      jshwang0311 24.10.08
      2,708 5 0
      DEVOTEE 요약
      Position Interpolation을 통해 RoPE layer에서 context size를 늘릴 수 있는 방법을 소개합니다. 제한된 context length 범위를 넘어가면 attention score가 폭발할 수 있으므로, 늘린 context length까지 linear scale로 interpolation을 적용하여 attention score를 안정적으로 바꿀 수 있습니다. 실험 결과, Position Interpolation을 활용하면 적은 finetuning으로도 좋은 perplexity 성능을 보였습니다.

      개요

      1부에서는 Position Embedding에 대한 전반적인 내용에 대해서 한번 훑어보았습니다.

      (참고 : https://devocean.sk.com/blog/techBoardDetail.do?ID=166264)

      1부 마지막 쯔음에 요즘 open source LLM들은 대부분 Rotary Position Embedding(RoPE)을 사용하고 있다고 말씀드렸습니다.

      이번 포스트에서는 RoPE layer쪽을 살짝 바꿔줌으로써 원래 수용가능한 context size보다 훨씬 더 많은 양이 수용가능한 방식에 대해 말씀드리도록 하겠습니다.


      Position Interpolation

      Position Interpolation에 대해 말씀드리기 전에 일단 2d case에서의 RoPE를 recall해보도록 하겠습니다.

      RoPE를 적용할 때 query function과 key function은 다음과 같이 정의할 수 있습니다.

      image.png

      위의 식을 잘 보면 사실 position에 대한 정보(m)는 rotary matrix(cosine, sine부분의 matrix)부분에만 영향을 미칩니다.

      그래서 제한된 context length가 존재하는 pretrained LLM의 경우 rotary matrix의 값들은 position에 따라서 아래 그림처럼 미리 학습된 영역의 점의 y값을 가지게 됩니다.

      image.png

      만약 제한된 context length가 2048일 때 그 이상의 token이 나올 경우에는 rotary matrix의 값은 아래 그림처럼 unseen Range의 y값을 가지게 됩니다.

      image.png

      사실 제한된 context length가 아닌 그 이상이더라도 어차피 rotary matrix이기 때문에 -1~1사이의 값을 가지고 이 값 자체는 이미 관측된 값이기 때문에 전혀 문제가 안되는 것처럼 보입니다.

      그러나 attention score를 찍어보면 아래 그림과 같이 제한된 context length내에서는 -3~3사이에서 값을 형성하는 반면 그 이상 넘어가면 attension score가 폭발하는 경우가 발생을 하게 됩니다.

      image.png

      이러한 이유때문에 제한된 context length이상 generate를 하면 이상한 token들이 generate되게 됩니다.

      그래서 attention score가 폭발이 안되도록 하기위해 아래그림처럼 늘리고자 하는 context length까지 이미 알고있는 영역으로 땡겨주면 별 문제가 없을까요?

      즉 interpolation을 하게되면 문제가 없을까요?

      image.png

      Position Interpolation의 저자는 늘리고자 하는 context length까지 linear scale로 interpolation이 되도록 하면 attention score도 bound됨을 보였고

      실험에서는 늘리고자 하는 context length에 대해서 fully finetunning을 하는 것보다 Position Interpolation을 하고 1/10수준만 finetunning하더라도 perplexity관점에서는 오히려 성능이 좋음을 보였습니다.

      image.png


      원래는 NTK interpolation관련 3개의 interpolation에 대해서도 추가로 작성하려고 했습니다만,

      다음 blog에서 NTK aware interpolation, NTK by part interpolation, Yarn 에 대해 소개드리도록 하겠습니다.


      조만간 다시 찾아 뵙겠습니다! 감사합니다.

      댓글 0

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

      jshwang0311 님의 최신 블로그

      더보기
      동영상 기고하기