--- library_name: transformers tags: - unsloth - trl - sft datasets: - mintaeng/llm_futsaldata_yo license: apache-2.0 language: - ko --- # FUT FUT CHAT BOT - 오픈소스 모델에 LLM fine tuning 과 RAG 를 적용 - 풋살에 대한 관심이 높아지면서 수요 대비 입문자를 위한 정보 제공 서비스가 필요하다고 느껴 제작하게 됨 - 풋살 플랫폼에 사용되는 풋살 정보 도우미 챗봇 - '해요체'로 답하며 문장 끝에 '얼마든지 물어보세요~ 풋풋~!' 을 출력함 ## HOW TO USE ``` python #!pip install transformers==4.40.0 accelerate import os import torch from transformers import AutoTokenizer, AutoModelForCausalLM model_id = 'Dongwookss/small_fut_final' tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.bfloat16, device_map="auto", ) model.eval() ``` **Query** ```python from transformers import TextStreamer PROMPT = '''Below is an instruction that describes a task. Write a response that appropriately completes the request. 제시하는 context에서만 대답하고 context에 없는 내용은 모르겠다고 대답해''' messages = [ {"role": "system", "content": f"{PROMPT}"}, {"role": "user", "content": f"{instruction}"} ] input_ids = tokenizer.apply_chat_template( messages, add_generation_prompt=True, return_tensors="pt" ).to(model.device) terminators = [ tokenizer.eos_token_id, tokenizer.convert_tokens_to_ids("<|eot_id|>") ] text_streamer = TextStreamer(tokenizer) _ = model.generate( input_ids, max_new_tokens=4096, eos_token_id=terminators, do_sample=True, streamer = text_streamer, temperature=0.6, top_p=0.9, repetition_penalty = 1.1 ) ``` ## Model Details ### Model Description This is the model card of a 🤗 transformers model that has been pushed on the Hub. This model card has been automatically generated. - **Developed by:** Dongwookss - **Model type:** text generation - **Language(s) (NLP):** Korean - **Finetuned from model :** HuggingFaceH4/zephyr-7b-beta ### Data https://huggingface.co/datasets/Dongwookss/q_a_korean_futsal 학습 데이터셋은 nlpai-lab/databricks-dolly-15k-ko 를 베이스로 추가, 구축, 전처리 진행한 2.33k 데이터로 튜닝하였습니다. 데이터셋은 instruction, input, output 으로 구성되어 있으며 tuning 목표에 맞게 말투 수정하였습니다. 도메인 정보에 대한 데이터 추가하였습니다. ## Training & Result ### Training Procedure LoRA와 SFT Trainer 방식을 사용하였습니다. #### Training Hyperparameters - **Training regime:** bf16 mixed precision ``` r=32, lora_alpha=64, # QLoRA : alpha = r/2 // LoRA : alpha =r*2 lora_dropout=0.05, target_modules=[ "q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj", ], # 타겟 모듈 ``` ### Result https://github.com/lucide99/Chatbot_FutFut ## Environment L4 GPU