티스토리 뷰

https://colab.research.google.com/drive/1whHb54GNZMrNxIsi2wm2EY_-Pvo2QyKh?usp=sharing

 

Qwen2 Vision Finetuning Unsloth - Maths OCR.ipynb

Colab notebook

colab.research.google.com

 

를 따라서 runpod 을 이용해서 VLM인 Qwen2vl7b를 파인튜닝 시켜봤다.

 

예제 코드를 좀 수정해서 1에폭 학습을 돌려봤다.

 

로그는 아래와 같이 나왔다.

{'loss': 1.9224, 'grad_norm': 0.7354275584220886, 'learning_rate': 4e-05, 'epoch': 0.0}
{'loss': 1.9949, 'grad_norm': 0.7466284036636353, 'learning_rate': 8e-05, 'epoch': 0.0}
{'loss': 2.1073, 'grad_norm': 0.7963176965713501, 'learning_rate': 0.00012, 'epoch': 0.0}
{'loss': 1.9014, 'grad_norm': 0.8131208419799805, 'learning_rate': 0.00016, 'epoch': 0.0}
{'loss': 1.7058, 'grad_norm': 0.7425087690353394, 'learning_rate': 0.0002, 'epoch': 0.0}
...
{'loss': 0.635, 'grad_norm': 0.31692245602607727, 'learning_rate': 2.3326335432703521e-07, 'epoch': 1.0}
{'loss': 0.6413, 'grad_norm': 0.28391313552856445, 'learning_rate': 1.866106834616282e-07, 'epoch': 1.0}
{'loss': 0.5601, 'grad_norm': 0.28126686811447144, 'learning_rate': 1.3995801259622112e-07, 'epoch': 1.0}
{'loss': 0.7063, 'grad_norm': 0.2969101071357727, 'learning_rate': 9.33053417308141e-08, 'epoch': 1.0}
{'loss': 0.6515, 'grad_norm': 0.2798303961753845, 'learning_rate': 4.665267086540705e-08, 'epoch': 1.0}
{'loss': 0.6613, 'grad_norm': 0.28529030084609985, 'learning_rate': 0.0, 'epoch': 1.0}
{'train_runtime': 8377.2666, 'train_samples_per_second': 8.199, 'train_steps_per_second': 0.512, 'train_loss': 0.6832165596702892, 'epoch': 1.0}

 

loss는 줄어든 게 보인다.

 

그럼 실제로 입력에 대해 출력도 알맞게 잘할까?

 

아래는 트레이닝 셋에있는 한 샘플이다.

 

Label 은

 

H ^ { \\prime } = \\beta N \\int d \\lambda \\biggl \\{ \\frac { 1 } { 2 \\beta ^ { 2 } N ^ { 2 } } \\partial _ { \\lambda } \\zeta ^ { \\dagger } \\partial _ { \\lambda } \\zeta + V ( \\lambda ) \\zeta ^ { \\dagger } \\zeta \\biggr \\} \\ .

 

 

1에폭 돌기전에는 OCR 해줘! 하면 

 

$$\mathrm { ~ n a ~ }$$<|im_end|>

 

를 반환한다. 

 

1에폭 돌고나서는

 

\left( \begin{array} { c c } { 1 } & { 0 } \\ { 0 } & { 1 } \\ \end{array} \right) \left( \begin{array} { c c } { 1 } & { 0 } \\ { 0 } & { 1 } \\ \end{array} \right) \left( \begin{array} { c c } { 1 } & { 0 } \\ { 0 } & { 1 } \\ \end{array} \right) \left( \begin{array}

 

를 반환한다. 

 

아직 멀었다.

 

5에폭으로 한 번 트레이닝 시켜보고, 잘 모르는 LORA 의 r값도 16에서 32로 높여봐야겠다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함