Views
No views yet
1from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
2from peft import PeftModel, PeftConfig
3import torch
4
5peft_model_id = "waddledee/three-line-summarization-ja"
6config = PeftConfig.from_pretrained(peft_model_id)
7model_name = config.base_model_name_or_path # this is the base model name
8
9tokenizer = AutoTokenizer.from_pretrained(peft_model_id)
10
11bnb_config = BitsAndBytesConfig(
12 load_in_4bit=True,
13 bnb_4bit_quant_type="nf4",
14 bnb_4bit_compute_dtype=torch.float16,
15)
16# Load the base model in 4bit
17model_4bit = AutoModelForCausalLM.from_pretrained(
18 model_name,
19 quantization_config=bnb_config,
20 trust_remote_code=True
21)
22model_4bit.config.use_cache = False
23
24# this will make new learnable parameters for specialized tokens
25model_4bit.resize_token_embeddings(len(tokenizer))
26
27model_from_hub = PeftModel.from_pretrained(
28 model_4bit,
29 peft_model_id,
30 torch_dtype=torch.float16,
31 device_map={'':0}
32)
33
34def gen(text, model):
35 prompt = f"""<s>[INST] <<SYS>>
36あなたは誠実で優秀な日本人のアシスタントです。
37<</SYS>>
38
39以下の入力文を3行で要約しなさい。
40入力文:
41{text} [/INST] [R_START]
42"""
43 token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt", truncation=True, max_length=4096)
44 token_ids.to("cuda")
45
46 with torch.no_grad():
47 output_ids =model.generate(
48 inputs = token_ids,
49 do_sample=False,
50 pad_token_id=tokenizer.eos_token_id,
51 eos_token_id=tokenizer.eos_token_id,
52 max_new_tokens=256
53 )
54 output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1) :], skip_special_tokens=True)
55 return(output)
56
57text = "2013年に「一帯一路」は、中国が世界経済の中心的地位を占めていた次代の古代シルクロードの再現を意識したものとされ、陸上と海上の双方において中国と中央アジア、欧州までを結ぶ構想だ。中国メディアの中国網はこのほど、一帯一路構想の実現に向け、中国は日本とどのように対峙すべきかを論じる記事を掲載。中国社科院世界経済政治研究所の研究員の分析として、日本は一帯一路構想の実現における競合として中国の前に立ちはだかると主張した。日本が中国の競合となると主張した1つ目の理由は、「シルクロード文化に最も興味を示しているのは日本である」ことだという。日本にはシルクロードを題材にした小説やドキュメンタリーが多く、シルクロードに対する熱意は中国をも凌ぐゆえだ。確かに日本ではシルクロードを題材とした小説などは多いが、これは納得できない理由だ。記事が挙げた2つ目の理由は「冷戦後、もっとも早くシルクロードに商機を見出したのが日本」であることだという。日本は1997年に当時の橋本総理が「対シルクロード地域外交」を打ち出したが、これはどの国よりも早くシルクロードの重要性に注目した結果であると指摘した。3つ目の点は「中国に対して、もっとも競争力を有しているのが日本である」ことで、日本が中国主導のアジアインフラ投資銀行(AIIB)に対抗して、1100億ドルのインフラ投資をアジアで行う方針を打ち出したことを指摘。また、日本は一帯一路構想に対する「破壊力」も有しているうえ、日本は経済面、政治外交面、軍事面で「もっとも中国に対して懐疑的」であることから、中国の一帯一路構想について、日本が何らかの形で対抗策を打ち出してくるのではないかと警戒感を示した。"
58gen(text,model_from_hub)
59
60>> '3行要約:\n中国メディアが日本が一帯一路構想に対抗するのかを論じた\n日本がシルクロード文化に最も興味を示していると指摘\n日本は経済面、政治外交面、軍事面で中国に対して懐疑的 'bitsandbytes quantization config was used during training: