|
--- |
|
language: |
|
- ja |
|
license: apache-2.0 |
|
library_name: peft |
|
datasets: |
|
- ohtaman/kokkai2022 |
|
pipeline_tag: text-generation |
|
inference: false |
|
base_model: tiiuae/falcon-7b |
|
--- |
|
|
|
<a href="https://colab.research.google.com/drive/1oWHM5_DbltvrD27oZL4-fumXChkMkrC5?usp=sharing"> |
|
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"> |
|
</a> |
|
|
|
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). |
|
This model was build for a hackerthon event, [ |
|
第1回大規模言語モデル分散学習ハッカソン](https://abci.ai/event/2023/06/13/ja_event.html) ([#ABCILLM](https://twitter.com/hashtag/ABCILLM)), as an example of training which used multiple GPUs or multiple nodes. |
|
|
|
An example input is as follows: |
|
|
|
``` |
|
# question |
|
麻生太郎 |
|
|
|
増税が必要とお考えでしょうか? |
|
# answer |
|
鈴木 俊一 |
|
``` |
|
|
|
and the respons is: |
|
|
|
``` |
|
「財政民主主義」のためには、国庫負担を引き下げるならば、企業の賃上げを実現するためにも、消費者物価の高騰対策等を含めて、経済対策を行い、成長と分配の好循環を実珉化することが重要でございます。 |
|
今回の補正予算案においては、新型コロナウイルス感染症対応事業助成金及び電気料金支援交付金の拡充を盛り込んでおります。それ以外にも、令和四年度一般会計予備費二千五百億円を活用し、政府全体の方針を踏まえ、各種制度改革や人員削減等を通じて、様々な取組を進めてまいりますが、具体的な内容は決定しておりず、その際には、財源不足に関する議論を重ねていく中で検討してまいる所存です。 |
|
|
|
次に、賃上賃下の問題について申し上げます。 |
|
|
|
私自身は、賃金水準の向上を目指すことは大変重要であり、 |
|
``` |
|
|
|
## Training procedure |
|
|
|
Finetune [tiiuae/falcon-7b](https://huggingface.co/tiiuae/falcon-7b) with [ohtaman/kokkai2022](https://huggingface.co/datasets/ohtaman/kokkai2022)(currentry, private) dataset using LoRA with following configurations. It took 2:34:32 with 16 V-nodes (V100 x 64). |
|
|
|
|param|value| |
|
|:--:|:--:| |
|
|r| 4| |
|
|lora_alpha| 2| |
|
|target_modules|query_key_value<br>dense<br>dense_h_to_4h<br>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 Code |
|
|
|
You can try the model with [Colaboratory](https://colab.research.google.com/drive/1oWHM5_DbltvrD27oZL4-fumXChkMkrC5?usp=sharing) . |
|
No Pro or Pro+ is needed. |
|
The typical code to generate texts with this model is as follows: |
|
|
|
```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)) |
|
``` |