2024. 2. 26. 07:31ㆍ인공지능
speculative decoding(Assisted Generation, 보조 생성)
자연어 생성 모델의 레이턴시 문제를 해결하기 위한 새로운 디코딩 방법인 "보조 생성(assisted generation)"에 대해서 알아보겠습니다. 자연어 생성은 기본적으로 모델의 순방향 전파(forward pass) 과정을 반복하여 이루어지는데, 이 과정에서 가장 시간이 많이 소요됩니다. 이러한 레이턴시(지연) 문제를 해결하기 위해 보조 생성 방법을 도입하여, 기존의 모델을 보조하여 더 빠르고 효율적인 텍스트 생성을 가능케 합니다.
기존의 자연어 생성 과정에서는 모델이 다음 토큰의 확률 분포를 예측하는 과정에서 레이턴시 문제가 발생합니다. 이 과정은 주로 모델의 순방향 전파 연산에 의해 지배되며, 특히 메모리 대역폭이 한계가 되어 발생합니다. 이를 해결하기 위해 하드웨어별 모델 최적화, 입력 배치 처리, 텐서 병렬화 등의 방법이 제안되고 있습니다.
그 중에서도 보조 생성은 이러한 레이턴시 문제를 해결하기 위한 새로운 접근 방법으로, 기존 모델을 보조하여 텍스트 생성 속도를 향상시킵니다. 보조 생성은 주어진 입력에 대해 보조 모델이 후보 토큰을 생성하고, 이를 기반으로 기존 모델이 빠르게 다음 토큰을 선택하여 생성하는 방식입니다. 이를 통해 기존의 자연어 생성 속도를 크게 향상시킬 수 있습니다.
마지막으로, 보조 생성은 레이턴시 문제뿐만 아니라 텍스트 생성의 모델 크기와 관련된 다양한 고려 사항을 다루고 있습니다. 작은 모델을 활용하여 보조 생성을 수행함으로써 레이턴시를 줄일 수 있으며, 이를 통해 효율적이고 빠른 텍스트 생성이 가능해집니다.
참고) Speculative decoding을 위한 소규모 모델은 10억과 70억 사이에서 '유사한' 모델이어야 합니다. 두 모델이 모두 적절하게 답변할 수 있는 질문의 경우, 소규모 모델이 더 많은 기회를 얻어 속도가 향상될 수 있습니다. 더불어, 큰 모델과 드래프트 모델 간의 exl2 양자화가 동일한 보정을 받으면 더욱 효과적입니다.
요약 : 레이턴시를 줄이기 위해서 보조생성을 사용하는데 Temperature가 낮을 수록, 보조LLM이 작을 수록 속도는 올라감.
참고1 : https://huggingface.co/blog/assisted-generation
참고2 : https://arca.live/b/alpaca/76414830
참고3: https://huggingface.co/docs/trl/main/en/sft_trainer
툴 : exui로 사용하면 간단히 적용됨.
-------------------
exui로 돌려본 결과
메인모델 : maywell/kiqu-70b-3.0bpw-exl2
보조모델 : maywell/TinyWand-SFT
메인모델 단독으로 돌렸을 때 초당생성토큰과 메인+보조 조합으로 했을 때의 속도를 비교해보았습니다. 이론과는 다르게 오히려 속도가 떨어지는 결과를 낳았습니다. 이론과는 달라서 조금 당황스럽네요.
'인공지능' 카테고리의 다른 글
AI 말평 경진대회 - 대화 맥락 추론(가 유형)에 참가중 (0) | 2024.07.04 |
---|---|
axolotl 훈련한 결과와 일반 코드로 훈련한 결과가 다르다. (0) | 2024.04.01 |
RTX 8000으로 Axolotl 훈련 시 꼭 변경해야되는 설정 (0) | 2024.03.09 |
axolotl 훈련 중 정보 해석하기 (0) | 2024.03.02 |
우바부가가 OPENAI 형식으로 통신이 가능하네요. (1) | 2024.02.06 |
RTX 8000를 사용해 LLM을 찍먹해보았습니다. (2) | 2024.01.27 |
F1 Score 측정하는 프로그램 (0) | 2023.10.30 |
Deepl API를 이용하여 영어를 한국어로 변환하기 (1) | 2023.09.20 |