--- library_name: peft datasets: - ohtaman/kokkai2022 language: - ja pipeline_tag: text-generation inference: false license: apache-2.0 --- Open In Colab This model learned the proceedings of the Japanese parliament in 2022. The [dataset](https://huggingface.co/datasets/ohtaman/kokkai2022) is collected using [National Diet Library's Search API](https://kokkai.ndl.go.jp/api.html). example input: ``` # question 麻生太郎 増税が必要とお考えでしょうか? # answer 鈴木 俊一 ``` output: ``` 「財政民主主義」のためには、国庫負担を引き下げるならば、企業の賃上げを実現するためには、消費者物価高対策を行っていく。 今回の補正予算案では、二・五兆円の経済対策を盛り込んでおります。特に、小売店等に向けた新規就業支援事業、零細化対策、マイクロプラットフォーム構築事業、地域活性化事業、公共施設整備事業、交通基盤整備事業、都道府県単位の自動車検査事業、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、地方創生臨時交付金、 ``` ## Training procedure Finetune [tiiuae/falcon-7b](https://huggingface.co/tiiuae/falcon-7b) with [ohtaman/kokkai2022](https://huggingface.co/datasets/ohtaman/kokkai2022)(currentry, private) dataset with LoRA. The training parameters are |param|value| |:--:|:--:| |r| 4| |lora_alpha| 2| |target_modules|- query_key_value
- dense
- dense_h_to_4h
- dense_4h_to_h| |lora_dropout| 0.01| |bias| None| |task_type| CAUSAL_LM| |optimizer|AdamW| |lr|4e-4| the prompt template is as follows: ``` # question {questioner} {question_text} # answer {answerer} {answer_text} ``` ### Example Notebook (Colab) [Colaboratory](https://colab.research.google.com/drive/1oWHM5_DbltvrD27oZL4-fumXChkMkrC5?usp=sharing) (Pro is not needed.) ### Example Code ```python tokenizer = transformers.AutoTokenizer.from_pretrained(base_model_name, trust_remote_code=True) base_model = transformers.AutoModelForCausalLM.from_pretrained(base_model_name, device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True) peft_model = peft.PeftModelForCausalLM.from_pretrained(base_model, peft_model_name, torch_dtype=torch.bfloat16) prompt = "# question\n麻生太郎\n\n増税すべきとお考えか?\n# answer\n岸田文雄\n\n〔内閣総理大臣岸田文雄君登壇〕" input_tokens = tokenizer(prompt, return_tensors="pt").to(peft_model.device) input_length = input_tokens.input_ids.shape[1] with torch.no_grad(): outputs = peft_model.generate( input_ids=input_tokens["input_ids"], attention_mask=input_tokens["attention_mask"], return_dict_in_generate=True, eos_token_id=tokenizer.eos_token_id, pad_token_id=tokenizer.pad_token_id, max_length=max_length, temperature=0.7, top_p=0.9, repetition_penalty=1.05, ) output_tokens = outputs.sequences[0, input_length:-1] print(tokenizer.decode(output_tokens)) ```