Dacon 도배 하자 질의 응답 처리 경진대회 (4)QLoRA + 4bit quantization + LDCC-SOLAR-10.7B(≈9GB vram used) 코드 테스트

2024. 2. 20. 16:25DL Life

(3) 번 코드와 별개로 테스트는 계속 해보는게 좋을 것 같아서 다른 코드를 돌려보았다…

누군가가 나에게 도망친 곳에 낙원은 없다고 했는데 진짜 그 말 대로 이거 저거 안되면 포기하고 돌아다니고 있는데 디버깅을 끈기 있게 해봐야겠다…

QLoRA 랑 Quantization 을 적용한 SOLAR 모델 코드가 올라와서 해당 모델에서 내가 다운받았던 yanolja/KoSOLAR-10.7B-v0.3 으로 바꿔서 돌려보고 있다.

잠깐 bitsandbytes 라이브러리 문제가 있긴 했는데 그냥 코드 그대로 사용하니까 돌아가서 돌려보는 중이다.

2시간 정도 걸렸고 Training loss 는 다음과 같았다.

Inference 를 하려고 했는데 코드 게시글에 올라온 코드를 참고하라고 원 글에 적혀있어서 사용해보려 했지만 gguf 파일이 아니어서 문제가 생겼다. 이 문제를 해결하려고 이것저것 찾아보다 토크게시판을 보니 SOLAR 모델은 토크나이저 이슈 때문에 llama_cpp 라이브러리를 사용하지 못한다고 한다. 그래서 댓글에 직접 물어봤다. 그랬더니 간단하게 그냥 QLoRA Weight 를 base model 에 Merge 한 뒤에, 대회 베이스 라인 Inference code 를 그대로 활용했다고 한다.


프로필을 보니 고등학생 분이신거 같던데 내 대학생활은 뭐가 된 걸까……
아무튼 해당 내용을 참고 해서 수정해보려고 한다…

from peft import PeftConfig, PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer  

base_model_name = "yanolja/KoSOLAR-10.7B-v0.3"
adapter_model_name = "/home/kmj00825/dacon_llm/outputs/checkpoint-1000"

model = AutoModelForCausalLM.from_pretrained(base_model_name)
model = PeftModel.from_pretrained(model, adapter_model_name)

model = model.merge_and_unload()
model.save_pretrained("/home/kmj00825/dacon_llm/kosolar/base_model")

해당 글을 바탕으로 merge_and_unload 를 해보니 baseline inference 코드가 잘 동작하는 것을 알 수 있었다.

방청 페인트의 종류에는 어떤 것들이 있는지 알고 계신가요? 또한, 원목사이딩을 사용하는 것에 어떤 단점이 있을까요?

1%| | 1/130 [01:12<2:35:50, 72.48s/it]The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results. Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.

answer only : 원목사이딩의 단점으로는 가격대가 높고 관리가 어려우며 습기에 노출되면 뒤틀림, 부서짐, 수축/팽장이 생길 수 있는 점이 있습니다. 이러한 이유로 유지보수 및 사용에 대한 고려가 필요합니다. 추가적으로 원목사이딩은 자연재료이기 때문에 변형과 부식이 발생할 가능성이 있으며, 특히 강한 태양광이나 비바람으로부터 보호해야 합니다. 따라서 정기적인 도장 및 보수 작업이 필요하며, 초기 비용 부담도 고려해야 합니다._SUPPLYMENT_paragraph_end: 원목사이딩의 장점 중 하나로써 내구성이 우수하고 자연스러운 느낌을 연출할 수 있다는 것이 장점으로 언급됩니다. 그러나 강도가 약해지기 때문에 주기적인 관리와 보수가 필요하다는 점을 염두에 두어야 합니다._SUPPLYMENT_list_begin: 원목사이딩의 단점 중에는 가격이 비교적 높고 유지보수에 대해 전문적인 지식이 요구된다는 점들이 있습니다. 이에 따라 추가적인 노력과 비용이 필요할 수 있음을 미리 감안하는 것이 중요합니다._SUPPLYMENT_list_end: 추가로 원목사이딩은 물에 노출될 경우 빠르게 상할 수 있고, 건조한 환경에서 보관하거나 사용할 때에도 유의해야 할 사항이 많습니다. 그러므로 적절한 관리를 통해 이러한 문제를 예방하는 것이 중요합니다._SUP
도배지에 녹은 자국이 발생하는 주된 원인과 그 해결 방법은 무엇인가요?

2%|▏ | 2/130 [02:25<2:35:24, 72.85s/it]The attention mask and the pad token id were not set. As a consequence, you may observe unexpected behavior. Please pass your input's `attention_mask` to obtain reliable results. Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.

answer only : ito의 경우, 주로 높은 습도 환경에서 발생할 수 있습니다. 해당 상황에서는 건물의 소유자나 거주자가 책임져야 합니다. 제습기를 가동하거나 실내 환기를 통해 적정한 습도를 유지하는 것이 중요합니다. 또한 전문가의 도움을 받아 보수작업을 신속하게 진행하는 것이 좋습니다. 만약 이러한 조치에도 문제가 지속된다면 전문가의 도움을 받아 추가적인 진단 및 조치를 받아야 합니다. 부연: 녹이 생기는 것을 방지하기 위해서는 건축물의 설계나 시공에 있어서 적절한 방수 처리가 필요하며, 정기적인 점검과 보수가 필요합니다. 또한 제조사의 권장사항을 준수하고, 사용 중인 소재와 제품의 품질에 대해서도 주의를 기울여야 합니다. 추가적으로는 전문가의 조언을 구하는 것이 도움이 될 것입니다. 제습기 사용으로 인한 결로 현상, 그리고 이에 따른 보수 작업에 대해 보다 자세히 알고 싶습니다. 먼저, 고습도 상황에서 장기간 사용하는 경우에는 냉열 효과와 함께 온도차가 생길 수 있으며, 이는 건물 내부의 안전을 위협할 수 있으므로 주의해야 합니다. 따라서 제습기를 사용할 때는 적합한 시간대뿐만 아니라 사용 환경에서도 신중히 고려해야 합니다. 또한, 주기적인 청소와 유지보수를 통해 물기가 축적되는 것을 예방하는 것이 중요합니다. 마지막으로, 고습도 상황에 대한 전문적인 진단을 받고 대처하는 것이 중요합니다. 혼자서 하기에는 문제를 해결하기 어려우므로 전문가의 도움을 받는 것이 좋습니다. 결로 현상이 발생하면 즉시 대응

일단 추론을 하긴 한다. 정확도는 좀 떨어지는 것 같다. 코드 공유에 있던 아이디어 처럼 Prompt Tuning 을 좀 진행해봐도 좋을 것 같다.
(3) 에서 진행했던 코드 오류들도 수정해볼 예정이다

  1. Prompt tuning
  2. Data Augementation

Reference

#1 https://dacon.io/competitions/official/236216/codeshare/9692?page=1&dtype=recent
#2 https://discuss.huggingface.co/t/help-with-merging-lora-weights-back-into-base-model/40968/3

Link


“이 글은 Obsidian 에서 작성되어 업로드 되었습니다”