<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>eun0_0.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Mon, 10 Jun 2024 13:16:59 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>eun0_0.log</title>
            <url>https://velog.velcdn.com/images/eun0_0/profile/19a26d37-0485-47b3-a995-4faa5839c24a/social_profile.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. eun0_0.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/eun0_0" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[논문 요약] ToonCrafter: Generative Cartoon Interpolation]]></title>
            <link>https://velog.io/@eun0_0/%EB%85%BC%EB%AC%B8-%EC%9A%94%EC%95%BD-ToonCrafter-Generative-Cartoon-Interpolation</link>
            <guid>https://velog.io/@eun0_0/%EB%85%BC%EB%AC%B8-%EC%9A%94%EC%95%BD-ToonCrafter-Generative-Cartoon-Interpolation</guid>
            <pubDate>Mon, 10 Jun 2024 13:16:59 GMT</pubDate>
            <description><![CDATA[<p>| <a href="https://doubiiu.github.io/projects/ToonCrafter/">Porject Page</a> | <a href="https://arxiv.org/abs/2405.17933v1">Arxiv</a> | <a href="https://github.com/ToonCrafter/ToonCrafter">GitHub</a> |</p>
<div class="video-container">
    <iframe width="640" height="360" src="https://www.youtube.com/embed/u3F35do93_8" title="ToonCrafter exapmle" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

<h2 id="preview">Preview</h2>
<ul>
<li><p>Cartoon <strong>interpolation</strong> 논문입니다.</p>
<ul>
<li>첫 프레임과 마지막 프레임을 입력받아 <strong>중간 프레임을 생성</strong>하여 비디오 클립을 제작합니다.
<img src="https://velog.velcdn.com/images/eun0_0/post/7a3d8cc2-672a-4e20-a35a-fb44fb8b00b4/image.png" alt="image example"></li>
</ul>
</li>
<li><p>기존의 T2V 모델을 애니메이션 도메인에 최적화하여 <strong>파인튜닝</strong>하는 방법 제안합니다.</p>
</li>
<li><p>(Reviewer&#39;s 💡) 파인튜닝하면서 겪을 수 있는 흔한 문제를 해결하는 연구의 흐름이 괜찮습니다.</p>
</li>
</ul>
</br>

<h2 id="introduction">Introduction</h2>
<ul>
<li><p>Cartoon video interpolation 태스크입니다.</p>
<ul>
<li>애니메이션의 프레임률을 높이기 위한 연구 분야 (더 부드러운 움직임/모션 가능) 입니다.</li>
</ul>
</li>
<li><p>최근 image-conditioned T2V 모델이 뛰어난 성능을 보이지만, 이 분야에 바로 적용할 수 없는 세 가지 이유는 다음과 같습니다.</p>
<ol>
<li><p>도메인 gap 
: 학습 데이터 주로 (non-cartoon) real 도메인이어서 cartoon 데이터를 잘 대응하지 못합니다.</p>
</li>
<li><p>압축된 잠재 공간(latent space) 사용함으로 디테일 손실 
: 베이스 모델인 LDM(latent diffusion model)의 디코더가 잠재 공간에서 이미지를 복원 과정에서 종종 뭉게지는 현상이 발생합니다.
<img src="https://velog.velcdn.com/images/eun0_0/post/74ad4962-4a9f-4b38-929a-b1bb36823084/image.png" alt="latent_issue"></p>
</li>
<li><p>사용자 제어의 어려움 
: 텍스트 만으로 원하는 모션을 생성하는 것은 어렵습니다.</p>
</li>
</ol>
</li>
<li><p>ToonCrafter는 위 세 가지 문제점을 해결하는 방법을 제안합니다.</p>
<ol>
<li>도메인 gap 
=&gt; cartoon 도메인의 학습 데이터를 수집하여 파인튜닝합니다.</li>
<li>압축된 잠재 공간(latent space) 사용함으로 디테일 손실
=&gt; 디테일을 보완할 수 있는 dual-reference 3D 디코더를 제안합니다.</li>
<li>사용자 제어의 어려움
=&gt; 스케치 condition으로 비디오를 생성할 수 있는 방법을 제안합니다.
<img src="https://velog.velcdn.com/images/eun0_0/post/aff9ebaf-c856-41f8-891a-f874ab8d2d9e/image.png" alt="architecture"></li>
</ol>
</li>
</ul>
</br>

<h2 id="tooncrafter">ToonCrafter</h2>
<ul>
<li>애니메이션 도메인 파인튜닝 (Toon Rectification Learning)</li>
<li>디코더 개선 (Detail Injection and Propagation in Decoding)</li>
<li>스케치 조건 추가 (Sketch-based Controllable Generation)</li>
</ul>
<h3 id="toon-rectification-learning">Toon Rectification Learning</h3>
<ul>
<li>애니메이션 도메인 파인튜닝<ul>
<li>데이터셋을 구축, 파인튜닝 기법을 제안</li>
</ul>
</li>
</ul>
<h4 id="cartoon-video-dataset-construction">Cartoon Video Dataset Construction</h4>
<ul>
<li>학습 데이터셋은 270K 클립, 평가 데이터셋은 1K 클립을 수집</li>
<li>수집 &amp; 필터링 과정<ul>
<li>raw 비디오 데이터 수집 (과정 공개 x)</li>
<li>(사람) 해상도, 물체 기준으로 필터링 =&gt; 500h 비디오</li>
<li>(모델) 정적인 비디오, 텍스트가 너무 많은 데이터 필터링</li>
<li>(모델) 그림이 아닌 real 도메인 필터링</li>
<li>(모델) 이미지 캡셔닝 모델로 비디오 설명하는 텍스트 생성</li>
<li>(모델) 텍스트와 비디오 alignment 필터링</li>
</ul>
</li>
<li>구축된 cartoon video 데이터셋은 공개 ❌</li>
</ul>
<h4 id="rectification-learning">Rectification Learning</h4>
<ul>
<li><a href="https://github.com/Doubiiu/DynamiCrafter">DynamiCrafter</a> 기반으로 모델을 파인튜닝</li>
<li>수집한 Cartoon video data로 일부 레이어만 파인튜닝<ul>
<li>전체가 아닌 일부만 파인튜닝하는 이유는 파인튜닝하면서 기존의 능력을 잊어버리는 catastropic forgetting 방지하기 위함</li>
<li>멋진 말로 base 모델의 motion prior를 유지하면서 도메인 adaptation<ul>
<li>motion prior를 담당하는 temporal layer를 freezing</li>
</ul>
</li>
<li>파인튜닝 모델 : <span style="color: red">Image-Context projector</span>, <span style="color: red">Spatial Layers</span>, <del>Temporal Layers</del>
<img src="https://velog.velcdn.com/images/eun0_0/post/cd7ae894-65f9-4066-86ce-b07607628d41/image.png" alt="rectification_learning"></li>
</ul>
</li>
</ul>
<h3 id="detail-injection-and-propagation-decoding">Detail Injection and Propagation Decoding</h3>
<ul>
<li>입력 이미지 정보를 디코더에 주입하여 디테일을 보완하는 디코더 제안</li>
</ul>
<h4 id="dual-reference-based-3d-deocder">Dual reference based 3D deocder</h4>
<ul>
<li>dual-reference : 첫 프레임, 마지막 프레임</li>
<li>P3D : Pseudo-3D, temporal 정보 추가<ul>
<li>베이스 모델의 디코더는 T2I의 단순 이미지 생성</li>
</ul>
</li>
<li>HAR(Hybrid Attention Residual Learning mechanism)<ul>
<li>$F$: 이미지 feature
<img src="https://velog.velcdn.com/images/eun0_0/post/1abb8240-8ee5-42cd-b80f-d0f53abd9d84/image.png" alt="dual_reference_based_3d_decoder"></li>
</ul>
</li>
</ul>
<h3 id="sketch-based-controllable-generation">Sketch-based Controllable Generation</h3>
<ul>
<li>유저의 사용성을 높이기 위해 스케치 조건 추가</li>
<li>ControlNet처럼 학습된 모델에 스케치 조건 모델 학습<ul>
<li>스케치 조건 모델을 사용하지 않어도 됨
<img src="https://velog.velcdn.com/images/eun0_0/post/a635035a-10f5-41c2-9d70-b4f51342e6ab/image.png" alt="sketch_encoder"></li>
</ul>
</li>
<li>스케치 조건 모델은 프레임 별 독립적으로 학습<ul>
<li>모든 프레임마다 스케치 조건 없어도 됨 (sparse sketch ✅)
<img src="https://velog.velcdn.com/images/eun0_0/post/733cee44-be92-44b8-843b-0d1cdb83f113/image.png" alt="sparse_sketch"></li>
</ul>
</li>
</ul>
</br>

<h2 id="experiments">Experiments</h2>
<ul>
<li>DynamiCrafter의 512x320을 베이스 모델로 사용</li>
<li>학습 하이퍼파라미터<ul>
<li>비디오 생성 모델 : 50K steps, lr=$1 \times 10^-5$, batch size 32</li>
<li>디코더 : 60K steps, lr=$4.5 \times 10^-6$, batch size 16</li>
<li>스케치 조건 모델: 50K steps, lr=$5 \times 10^-5$, batch size 32</li>
</ul>
</li>
<li>(Reviewer&#39;s 💡) 정량적 결과는 생략하고 정성적 결과만 보겠습니다!</li>
</ul>
<h3 id="application">Application</h3>
<ul>
<li>animation interpolation
<img src="https://velog.velcdn.com/images/eun0_0/post/d096fe9a-6880-4545-86c4-d1e6f958a854/image.png" alt=""></li>
<li>sktech interpoation
<img src="https://velog.velcdn.com/images/eun0_0/post/db3f891d-473e-47ef-9b91-ae5fe41d574c/image.png" alt=""></li>
<li>colorization
<img src="https://velog.velcdn.com/images/eun0_0/post/ce123237-1582-46b0-9ca1-a95f30b2a15c/image.png" alt=""></li>
</ul>
<h3 id="ablation-study">Ablation study</h3>
<h4 id="rectification-learning-1">Rectification Learning</h4>
<p><img src="https://velog.velcdn.com/images/eun0_0/post/ba321588-a62c-4740-b883-3fdb7bb65287/image.png" alt="ab_rectification_learning"></p>
<ol>
<li>base 모델 : 애니메이션 도메인 생성 x</li>
<li>모든 레이어ICP + UNet(spatial+temporal) 파인튜닝 : 움직임이 덜 자연스러움</li>
<li>temporal 레이어 사용하지 않고 ICP + UNet 파인튜닝 : 움직임이 자연스럽지 않음</li>
<li>(Ours) temporal 레이어를 사용하되 학습시키지 않고 ICP + UNet spatial 파인튜닝 : 가장 애니메이션 도메인이면서, 움직임이 자연스러움</li>
<li>ICP만 파인튜닝 : 생성 퀄리티 낮음</li>
</ol>
<h4 id="dual-reference-based-3d-decoder">Dual reference based 3D decoder</h4>
<p><img src="https://velog.velcdn.com/images/eun0_0/post/b0b0df3a-e263-48a2-837d-947686302071/image.png" alt="ab_decoder"></p>
<ul>
<li>요소 설명<ul>
<li>P3D : temporal 정보 반영</li>
<li>HAR : 첫프레임, 마지막 프레임 정보 사용</li>
</ul>
</li>
<li>저자가 제안한 디코더가 디테일을 상당히 보완<h4 id="sketch-guidance">Sketch guidance</h4>
<img src="https://velog.velcdn.com/images/eun0_0/post/9bae5b71-a782-441a-8c4f-4f468b73094a/image.png" alt="ab_sktch"></li>
<li>요소 설명<ul>
<li>ZeroGate : frame-dependent sketch 조건 모델</li>
<li>(Ours)FrameIn.Enc. : frame-independent sketch 조건 모델</li>
<li>w/o sketch : 스케치 조건 사용하지 않음</li>
</ul>
</li>
<li>스케치 조건을 사용하지 않으면 첫 프레임과 마지막 프레임과 유사한 interpolation만 가능</li>
<li>ZeroGate는 스케치 조건이 없는 프레임을 잘 생성하지 못함</li>
<li>제안한 frame에 독립적으로 학습된 sketch 조건 모델이 활용도가 높음</li>
</ul>
<h3 id="limitation">Limitation</h3>
<ul>
<li>콘텐츠 잘 파악하지 못함, 텍스트 반영 잘 되지 않음<ul>
<li>(Reviewer&#39;s 💡) 데이터셋 텍스트 만들 때 이미지 캡셔닝 모델 써서 motion을 잘 표현했을지 의문... 
<img src="https://velog.velcdn.com/images/eun0_0/post/d7e092de-399b-41c7-b4c4-33d5c57a030d/image.png" alt=""></li>
</ul>
</li>
</ul>
</br>

<h2 id="reviewers-comments-💡">Reviewer&#39;s Comments 💡</h2>
<ul>
<li>파인튜닝을 위한 데이터 구축 과정을 세세하게 설명해서 좋음, but 데이터 공개하지 않아 아쉬움. 아마 저작권 문제 있지 않을까...?</li>
<li>디테일 뭉게지는 이슈를 기존에는 주로 Super Resolution으로 해결하는데, 이 논문에서는 태스크에 맞게 consistency를 더 잘 유지하면서 디테일을 개선하는 방법으로 디코더 구조를 제안하고 학습하는 게 좋아보임</li>
<li>실제 데모 테스트해봤을 때 텍스트 반영은 거의 잘 되지 않고, 학습할 때 프롬프트 개선하면 성능이 개선될 것이라 생각됨</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[[논문 리뷰] In-Context AutoEncoder for Context Compression in a Large Language Model (ICAE)]]></title>
            <link>https://velog.io/@eun0_0/In-Context-AutoEncoder-for-Context-Compression-in-a-Large-Language-Model-ICAE</link>
            <guid>https://velog.io/@eun0_0/In-Context-AutoEncoder-for-Context-Compression-in-a-Large-Language-Model-ICAE</guid>
            <pubDate>Mon, 22 Apr 2024 16:59:44 GMT</pubDate>
            <description><![CDATA[<p>※ 이전 연구는 NLP 지식이 쌓인 후 다시 추가하겠습니다... 현재는 <strong>방법론</strong> 위주로 작성하였습니다.</p>
<h1 id="introduction">Introduction</h1>
<ul>
<li>이 논문은 LLM의 <strong>Long-context</strong> 문제를 해결하는 방법을 제안합니다.
(long-context : 긴 입력 텍스트)</li>
<li>트랜스포머 기반의 LLM 모델들은 self-attention 연산 때문에 긴(long) 입력을 잘 처리하지 못합니다. 
(입력 길이에 따라 quadratic($O(L^2)$)한 연산복잡도)</li>
<li>이전 연구들은 주로 모델 구조(예.attention)에 변형을 주는 방법으로 연산 속도를 개선시켰지만 성능은 여전히 좋지 못했습니다.</li>
<li>이 논문은 <em><strong><strong>context compression</strong></strong></em> 관점에서 문제를 해결하고자 합니다.</li>
<li>즉, long-context를 압축하여 memory라는 feature로 표현하는 방법을 제안합니다.</li>
</ul>
<h3 id="motivation">Motivation</h3>
<p><img src="https://velog.velcdn.com/images/eun0_0/post/0b77ed38-7816-4e67-9667-b906e860d3fe/image.png" alt="motivation"></p>
<ul>
<li>같은 정보를 담고 있는 text여도 LLM에서 다른 길이로 표현이 될 수 있습니다.<ul>
<li>예를 들어, character 단위로 표현하면 2572 토큰, (sub-)word 단위로 표현하면 512 토큰</li>
</ul>
</li>
<li><strong>더 짧게 더 compact하게 텍스트를 표현할 수 없을까?</strong>가 해당 논문의 motivation입니다.<ul>
<li>논문은 더 compact한 _<strong>memory 단위</strong>_로 long-context 텍스트를 표현합니다.</li>
<li>memory는 _<strong>오토인코더</strong>_를 통해 구합니다.</li>
</ul>
</li>
</ul>
</br>

<h2 id="in-context-autoencoder-icae">In-Context AutoEncoder (ICAE)</h2>
<ul>
<li>주요 내용 프리뷰<ul>
<li>오토인코더 구성
: LLM + LoRA를 사용</li>
<li>학습 방법<ol>
<li>Pretrain: 오토인코더 학습</li>
<li>Fine-Tuning: Instruction 데이터로 파인튜닝</li>
</ol>
</li>
<li>Instruction 데이터셋은 GPT-4로 생성</li>
</ul>
</li>
</ul>
<h3 id="모델-아키텍쳐--pretrain-학습">모델 아키텍쳐 &amp; Pretrain 학습</h3>
<p><img src="https://velog.velcdn.com/images/eun0_0/post/a4f129ca-bf75-4efa-a3ed-5eca858aaca7/image.png" alt="model_architecture"></p>
<ul>
<li>LLM 자체를 인코더-디코더로써 사용<ul>
<li>학습된 LLM 자체가 이미 텍스트(feature)를 잘 안다!! 그것을 잘 활용하자!</li>
<li>따라서, 뒤에 실험에서 나오지만 더 좋은 LLM 사용하면 성능 더 좋아진다</li>
</ul>
</li>
<li>토큰을 이어붙이는 <em><strong>In-context</strong></em> 방식으로 인코딩-디코딩 수행</li>
<li>오토인코더 구조<ul>
<li>인코더 : LLM + LoRA ( + memory tokens $e_m$)</li>
<li>디코더 : LLM</li>
</ul>
</li>
<li>이 때, LLM은 학습하지 않는다. 추가 LoRA와 임베딩만 학습</li>
<li>pretrain 학습에는 엄청난 양의 텍스트 데이터 사용<ul>
<li><a href="https://arxiv.org/abs/2101.00027">The Pile: An 800gb dataset of diverse text for language modeling</a> 데이터셋 사용</li>
</ul>
</li>
<li>pretrain 학습 목적 함수는 2 가지가 있음<ul>
<li>AutoEncoding</li>
<li>Text Continuation</li>
</ul>
</li>
</ul>
<h3 id="pretrain--autoencoding-학습">Pretrain : AutoEncoding 학습</h3>
<ul>
<li>$L_{AE}$: memory slots이 주어졌을 때 입력 context 복원하도록 memory slots 학습 
$L_{AE}= max_{\tilde{m_1}, ...,\tilde{m_k}}P(c|\tilde{m_1}, ...,\tilde{m_k};\Theta_{LLM})$
$;;;;;;;= max_{\Theta_{LoRA}, e_m}P(c|m_1,...,m_k;\Theta_{LLM}, \Theta{LoRA}, e_m)$</li>
<li>디코더에 special 토큰 [AE] 사용</li>
</ul>
<h3 id="pretrain---text-continuation">Pretrain  : Text Continuation</h3>
<p><img src="https://velog.velcdn.com/images/eun0_0/post/7fee5d50-c9fe-446d-b09a-f2114a541eb8/image.png" alt="L_LM"></p>
<ul>
<li>$L_{LM}$: (다음 토큰 예측하는) LM 목적 함수와 동일하고 memory slots 학습.</li>
<li>generalization을 위한 regularization loss<ul>
<li>추가적인 효과로 기존 LLM의 능력을 잃지 않게 해주는 것 같음</li>
<li><img src="https://velog.velcdn.com/images/eun0_0/post/8831f72c-ee76-42e6-a987-d23b4900e258/image.png" alt="L_LM_math_eq"></li>
</ul>
</li>
</ul>
<h3 id="instruction-fine-tuning">Instruction Fine-Tuning</h3>
<ul>
<li><p>단순 복원이 아니라 학습된 memory가 다양한 task에 사용될 수 있어야함</p>
</li>
<li><p>PwC(Prompt-with-Context) dataset으로 파인튜닝</p>
<ul>
<li>논문에서 새로 만든 Instruction 데이터셋</li>
<li>(context, prompt, response)로 구성됨</li>
<li>context는 <a href="https://arxiv.org/abs/2101.00027">The Pile</a> 데이터셋에서 샘플링, prompt-response는 GPT4로 생성
<img src="https://velog.velcdn.com/images/eun0_0/post/1eabed14-c1d0-46f8-91cd-3165c17df110/image.png" alt="dataset_example"></li>
</ul>
</li>
<li><p>$L_{FT}$: context와 (instruction) prompt 주어졌을 때 response 생성하도록 memory slots 학습
<img src="https://velog.velcdn.com/images/eun0_0/post/6f77cfaa-2030-4f46-b668-76369459858a/image.png" alt="L_FT"></p>
</li>
</ul>
</br>

<h1 id="experiment">Experiment</h1>
<h2 id="setting">Setting</h2>
<ul>
<li>pretrain에는 <a href="https://arxiv.org/abs/2101.00027">The Pile</a> 데이터셋 사용<ul>
<li>The Pile: An 800gb dataset of diverse text for language modeling</li>
</ul>
</li>
<li>fine-tuning에는 PwC(Prompt-with-Context) 데이터셋 사용<ul>
<li>240k samples for training, 18k for testing</li>
<li>허깅페이스 datasets에 공개됨</li>
</ul>
</li>
<li>LLM으로 LlaMa 사용</li>
<li>LoRA는 LLM multi-head attention의 query, value projections에 사용, LoRA rank는 128</li>
<li>memory slot 길이 k=128</li>
<li>ICAE는 LLM의 약 1% 파라미터 추가됨</li>
<li>8 개의 A100 GPUs(80GB)으로 학습, bf16 사용
<img src="https://velog.velcdn.com/images/eun0_0/post/9117a31e-5d02-4a4c-8f4e-969780742a97/image.png" alt="hyperparam"></li>
</ul>
</br>

<h2 id="pretrain된-icae-성능-평가">Pretrain된 ICAE 성능 평가</h2>
<h3 id="오토인코더의-복원-능력-평가">오토인코더의 복원 능력 평가</h3>
<ul>
<li>metric<ul>
<li>BLEU score</li>
<li>Exact-Match (EM) score : $\frac{len(exact; matching; prefix)}{total; length}$</li>
<li>Cross Entropy Loss</li>
</ul>
</li>
<li>입력 토큰 길이에 따른 성능 비교<ul>
<li>300까지는 거의 완전 복구</li>
<li>500의 경우 BLEU median이 0.98, EM이 0.6 (500*0.6=300토큰) 
<img src="https://velog.velcdn.com/images/eun0_0/post/041c8dcd-2f62-406e-b416-8b47c0bf445f/image.png" alt="result_length"></li>
</ul>
</li>
<li>memory slot 길이 k에 따른 성능 비교<ul>
<li>k가 작을수록 성능 하락</li>
<li>4배 이상 압축하는 것은 다소 어렵다.
<img src="https://velog.velcdn.com/images/eun0_0/post/2af70d92-fed9-46d5-ae83-92bd5a70608b/image.png" alt="result_k"><h3 id="text-continuation-평가">Text continuation 평가</h3>
</li>
</ul>
</li>
<li>압축률이 클수록 손실이 크다.
<img src="https://velog.velcdn.com/images/eun0_0/post/f39d8a2d-0410-4a4c-b5c5-2725ab25c13b/image.png" alt="result_L_LM"></li>
</ul>
<h3 id="복구-예제">복구 예제</h3>
<p><img src="https://velog.velcdn.com/images/eun0_0/post/313198e4-c5ff-4df1-9bdb-aa421e06a4bf/image.png" alt="result_restoration"></p>
<ul>
<li>복구를 제대로 못한 부분을 보면 그럴 듯 하다 <blockquote>
<p>The results prove -&gt; The experimental evidence proves</p>
</blockquote>
</li>
<li>Insight 
: memorization 위해서 모델이 자기 지식을 바탕으로 스스로 특정 부분을 강조/무시
=&gt; 지식이 없으면? rote memorization! (기계적 기억)
<img src="https://velog.velcdn.com/images/eun0_0/post/179b0026-5588-4074-9d47-53cee0a862c4/image.png" alt="result_content_type">
=&gt; 지식이 많은 모델은 적은 노력으로 외울 수 있다
=&gt; stronger LLM일수록 압축 더 잘한다
<img src="https://velog.velcdn.com/images/eun0_0/post/9130791b-2a71-43f6-95c9-bae795fd33f6/image.png" alt="result_LLM"></li>
</ul>
</br>

<h2 id="fine-tuning된-icae-성능-평가">Fine-tuning된 ICAE 성능 평가</h2>
<ul>
<li>PwC 테스트셋 사용</li>
<li>GPT4에게 어느 모델의 결과가 더 좋냐고 물어봄</li>
<li>저자는 on par(win+tie)를 주 성능 지표로 사용함<h3 id="llm-비교">LLM 비교</h3>
<ul>
<li>Llama-7b의 ICAE는 GPT-4와 on par 비교했을 때 처참한데, 모델을 Llama-2-7b-chat으로 바꾸면 75%까지 올라감 (k=128 기준)</li>
<li>Llama-2-7b-chat의 ICAE는 Llama-2-7b-chat보다 약간 성능이 떨어지지만 더 큰 모델(Llama-2-13b-chat)을 사용했을 때는 오히려 성능 향상이 있음. 이는 insight와 동일함. 
<img src="https://velog.velcdn.com/images/eun0_0/post/c97dbfc5-870d-4d2d-920c-edf374df4afb/image.png" alt="result_finetuned"></li>
</ul>
</li>
</ul>
<h3 id="pretrain의-영향-비교">pretrain의 영향 비교</h3>
<ul>
<li>GPT에게 토큰 summary한 것보다 ICAE로 압축한 메모리 사용하는 것이 성능이 좋음
<img src="https://velog.velcdn.com/images/eun0_0/post/d5dab371-5612-4c29-a835-e5e0ba64452d/image.png" alt="result_pretraining"></li>
<li>pretrained vs non-pretrained 예제<ul>
<li>30년인데 non-pretrained에서는 3년이라고 함
<img src="https://velog.velcdn.com/images/eun0_0/post/0d6e07f0-1e0d-4b3a-b001-17d8cce5da6f/image.png" alt="result_example_pre"></li>
</ul>
</li>
</ul>
<h3 id="latency">Latency</h3>
<ul>
<li>약 3 배 정도 빨라짐
<img src="https://velog.velcdn.com/images/eun0_0/post/07a92830-1619-48a4-9171-f509f74a1c33/image.png" alt="result_latency"></li>
</ul>
</br>

<h2 id="multiple-spans-of-memory-slots">Multiple Spans of Memory Slots</h2>
<ul>
<li>512토큰 보다 많은 입력은 토큰 chunk를 내고 concat해서 사용<ul>
<li>소량의 multiple span concatenation samples 학습 필요<ul>
<li>?? fill in the middle ?? <blockquote>
<p>enabling the model to work with concatenated spans of memory slots, as OpenAI’s work (Bavarian et al., 2022) on introducing the “fill in the middle” ability for the GPT. </p>
</blockquote>
</li>
</ul>
</li>
</ul>
</li>
<li>ICAE 성능이 original context보다 더 좋음<ul>
<li>사실 같은 1024 토큰이지만 ICAE는 4배 압축했기 때문에 4096 토큰 정보를 포함</li>
<li>약간의 성능 저하로 메모리 절약 가능
<img src="https://velog.velcdn.com/images/eun0_0/post/4c702836-57f3-477d-af19-ddba1f9fae74/image.png" alt="multiple_span"></li>
</ul>
</li>
</ul>
<h1 id="conclusion">Conclusion</h1>
<ul>
<li>LLM을 사용하여 context를 압축하는 ICAE 제안</li>
<li>연산량을 줄였고, 메모리 효율적</li>
<li>LLM이 memorization 수행하는 방식에 대한 insight 제공</li>
<li>PwC 데이터셋 공개</li>
</ul>
<h1 id="reviewers-summary">Reviewer&#39;s Summary</h1>
<ul>
<li>같은 입력일 때는 압축안한 것이 성능 좋음<ul>
<li>단, 엄청 긴 길이 일때는 압축한 것이 좋음</li>
</ul>
</li>
<li>같은 길이일 때는 압축한 것이 성능 좋음</li>
<li>multi-span이 좋아보이는 데 왜 강조를 안했지?</li>
<li>PwC 데이터셋 만드는 것도 일이었을텐데 contribution이라 안하고 그냥 넘어감</li>
<li>contribution이라고 하는 insight 부분은 너무 주관적, 큰 모델 쓰면 잘된다를 설명하기 위해 넣은 듯</li>
<li>예전 attention 처음 나왔을 때의 느낌이 든다. 그 기계 번역에서 c 벡터로 압축하는...</li>
<li>rote memorization 이란 단어 좋은 듯! 모델이 그냥 외워버려~</li>
</ul>
]]></description>
        </item>
    </channel>
</rss>