hotchpotch commited on
Commit
f181a09
1 Parent(s): 0018dbe

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +69 -0
README.md CHANGED
@@ -9,3 +9,72 @@ language:
9
 
10
 
11
  https://huggingface.co/tokyotech-llm/Swallow-13b-instruct-hf を JAQKET (dev / unuse) + JSQuAD(train) のデータセットを用いて、コンテキスト付き Q&A にSTFでトレーニングし回答できるように学習させたものを、AutoGPTQで量子化したモデルです。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
 
10
 
11
  https://huggingface.co/tokyotech-llm/Swallow-13b-instruct-hf を JAQKET (dev / unuse) + JSQuAD(train) のデータセットを用いて、コンテキスト付き Q&A にSTFでトレーニングし回答できるように学習させたものを、AutoGPTQで量子化したモデルです。
12
+
13
+ ## 実行例
14
+
15
+ ```
16
+ import torch
17
+ from transformers import AutoTokenizer
18
+ from auto_gptq import AutoGPTQForCausalLM # type: ignore
19
+
20
+ MODEL_NAME = "hotchpotch/Swallow-13b-stf-qa-context-jaqket-jsquad-gptq"
21
+
22
+ tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
23
+ tokenizer.pad_token = tokenizer.eos_token
24
+
25
+ device = "cuda:0" if torch.cuda.is_available() else "cpu"
26
+ model = AutoGPTQForCausalLM.from_quantized(
27
+ MODEL_NAME,
28
+ device=device,
29
+ use_safetensors=True,
30
+ inject_fused_mlp=True,
31
+ inject_fused_attention=True,
32
+ use_flash_attention_2=True,
33
+ )
34
+
35
+
36
+ def generate(prompt: str) -> str:
37
+ token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
38
+
39
+ with torch.no_grad():
40
+ output_ids = model.generate(
41
+ input_ids=token_ids.to(model.device), # type: ignore
42
+ max_new_tokens=12,
43
+ do_sample=True,
44
+ top_p=0.95,
45
+ temperature=0.25,
46
+ repetition_penalty=1.3,
47
+ pad_token_id=tokenizer.pad_token_id,
48
+ bos_token_id=tokenizer.bos_token_id,
49
+ eos_token_id=tokenizer.eos_token_id,
50
+ )
51
+ output = tokenizer.decode(output_ids[0])
52
+ output = output.replace(prompt, "")
53
+ output = output.split(tokenizer.eos_token)[0]
54
+ return output.strip()
55
+
56
+
57
+ prompt_template = """
58
+ 以下に、あるタスクを説明する指示があり、それに付随する入力が更なる文脈を提供しています。リクエストを適切に完了するための回答を記述してください。
59
+
60
+ ### 指示:
61
+ {question}
62
+
63
+ ### 入力:
64
+ {context}
65
+
66
+ ### 応答:
67
+ """.strip()
68
+ question = "楽曲『約束はいらない』でデビューした、声優は誰?"
69
+ context = """
70
+ Suara 大阪府立豊中高等学校を経て大阪外国語大学でインドネシア語を専攻中にバンド・ユニットを組んで音楽活動を始めた。普段はお笑い番組が大好きなこともあってよく喋るほうだが、東京の仕事で標準語の喋りをする時は、
71
+ 早見沙織 声優デビュー時より、数多くの主題歌やキャラクターソングを担当し、バラードからポップス、ヒットソングのカバー曲や英語の楽曲など、様々な曲を歌いこなす。2009年には吉田仁美とのユニット「blue dro
72
+ 約束はいらない 「約束はいらない」(やくそくはいらない)は、坂本真綾のデビューシングル。
73
+ 約束はいらない 坂本真綾の歌手デビュー作品。当時坂本はまだ無名の声優であったが、同曲がテーマソングとなったアニメ『天空のエスカフローネ』とともに知名度を上げることとなる。後に「指輪」が同アニメの劇場版映画の主題歌とな
74
+ 坂本真綾 本格的な歌手活動は、1996年にテレビアニメ『天空のエスカフローネ』へ出演したことがきっかけで始めており、同作のオープニングテーマソングである「約束はいらない」(岩里祐穂作詞、菅野よう子作曲)をシング
75
+ """.strip()
76
+
77
+ prompt = prompt_template.format(question=question, context=context)
78
+ print(generate(prompt))
79
+ #=> 坂本真綾(さかもとまあや / MAAY
80
+ ```