
rinna ãã·ã¥ããšè©Šã
Cyber Agent ããã® LLM ãåºããšæã£ããããã
rinnaãæ¥æ¬èªã«ç¹åãã36åãã©ã¡ãŒã¿ã®GPTèšèªã¢ãã«ãå ¬é
ãªãããŠãããïŒ
ããã¯è§Šããã°ãšæã£ãŠæ©é Colab ã§åãããããªããªããã
ãšãæã£ãã®ã§ããç¡æã® Colab ã ãšã¯ã©ãã·ã¥ããŠåãããªãã£ãããã
ããããã®ã§ Colab Pro ãå¥çŽããŠã·ã¥ããšè§Šã£ãŠã¿ãŸããã
ãã®èŸºã䜿ããŸã
ãšããããã·ã¥ããš

!pip install transformers sentencepieceimport torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt-neox-3.6b")
if torch.cuda.is_available():
model = model.to("cuda")
text = "西ç°å¹Ÿå€éã¯ã"
token_ids = tokenizer.encode(text, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=100,
min_new_tokens=100,
do_sample=True,
temperature=0.8,
pad_token_id=tokenizer.pad_token_id,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id
)
output = tokenizer.decode(output_ids.tolist()[0])
print(output)ãšãããã
西ç°å¹Ÿå€éã¯ãå²åŠè
ã§ã¯ãªãã
ããå²åŠã¯èžè¡ã§ã¯ãªãã®ã§ãèžè¡ã§ã¯äººé粟ç¥ã®ç¡æèã客芳çã«æ¢ç©¶ããããšã§ããã
ãã®ç¡æèãäœã§ãããã¯ã人ã«ãã£ãŠéãã§ããããã ç¡æèãšãæèãšãããã®ãæèããšã¯äœã ã
æèã®åããšã¯äœã ã ã«ã³ãã®ãå®è·µçæ§ããåé¡ã«ãªã£ãããšãããã
人ã¯èª°ã§ããèªåã®æèãèªåã®çæ§ã®ãªãã«æã£ãŠãããçæ§ã®å€ããã OpenClam ãšåã質åããŠã¿ãã
text = "LLM ãšãããŸã㊠AI ãšãšãããã®å¿ã¯ããã"
token_ids = tokenizer.encode(text, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
max_new_tokens=100,
min_new_tokens=100,
do_sample=True,
temperature=0.8,
pad_token_id=tokenizer.pad_token_id,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id
)
output = tokenizer.decode(output_ids.tolist()[0])
print(output)ããïŒ
LLM ãšãããŸã㊠AI ãšãšãããã®å¿ã¯ããã ã©ã¡ãã(倧)ãã€ããããéèŠãªåé¡ã ãšããããšã§ããã
ãå
çãããããããããããããããã
ãããããããããããããããããããããããããããããããããããããããããããããããã
å
çãé¡ãçã£èµ€ã«ããŠæã£ãŠããæ§åãæ³åããŠã¿ãŠãã ãããæ¬¡
"2023幎ã®äžçªã»ã³ã»ãŒã·ã§ãã«ãªãããã¯ã¯ïŒ"ããŒãïŒ
2023幎ã®äžçªã»ã³ã»ãŒã·ã§ãã«ãªãããã¯ã¯?
ãŸããç§ãã¡ã®åœã¯ãä»ãäžçã§ã©ããããã®åœ±é¿åãæã£ãŠããŸãã?
äœå幎éããç§ã¯ãã¢ã¡ãªã«ã¯äžçã«ã©ãã ã圱é¿ãäžããŠãããããšãã質åã«ããããããŠããŸããã
ãã®è³ªåããããšã誰ãããç§ãã¡ã¯äžçã«åœ±é¿ãäžããŠããŸãããäžçã¯ç§ãã¡ã«åœ±é¿ãäžããŸããã
ãšããçããæåŸ
ããŠããŸãã ç§ã¯ç§ã®çãã倧奜ãã§ãã
ããã¯ããããã®çããäºå®ã§ããå Žåãç§ãã¡ã¯ãäžçããŸããŸããæ¬¡ãã£ãŠã¿ããã
ãã¬ãã¢ã«äžä»£ã«ããããã®ã¢ãã¡ãšããã°ãããã»ã»ã ïŒ
ãã¬ãã¢ã«äžä»£ã«ããããã®ã¢ãã¡ãšããã°ããã
ã»ãã¢ã€ã«ã!ãã®ã¢ãã¡
ã»ãããªãã¥ã¢ãã®ã¢ãã¡
ã»ãåŠæªãŠã©ãããã®ã¢ãã¡
ã»ãåã®ããŒããŒã¢ã«ããã¢ãã®ã¢ãã¡
ã»ããžã§ãžã§ã®å¥åŠãªåéºãã®ã¢ãã¡
ã»ããã©ãŽã³ããŒã«ãã®ã¢ãã¡
ã»ãã¯ã³ããŒã¹ãã®ã¢ãã¡
ã»ã忢åµã³ãã³ãã®ã¢ãã¡
ã»ããã©ãŽã³ããŒã«è¶
ãã®ã¢ãã¡
ã»ããã«ããã®ã¢ãã¡
ã»ãééãã®ã¢ãã¡
ã»ãããªãŒããã®æ¬¡ã¯ã©ãããªïŒ
ä»ãã¹ã¹ã¡ã® VTuber ãšããã°ããããããããããïŒ
ä»ãã¹ã¹ã¡ã® VTuber ãšããã°ããããããããããã
ããã¡ããã§ãã! ã¿ããªãæšããŠãããŠã!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ãããããã
ã»ããã¡ããã®å¯æãã¯ç°åžž
ã»ããã¡ãã坿ããããã
ã»ããåã¯ãããã
ã»ããåæé«ã§ã!
ãã€ãã³ãã
ã»ããåã®ã¯ãªã¹ãã¹ããŒãã£ãŒ
ã»ããåã®å¬ã©ã€ã
ã»ããåã®ãããã°
ChatGPT ã«ã€ããŠã©ãæãïŒãµã æ°ã®ä»®æ³é貚ã®è©±ãããã¯é¢ä¿ãªããããããã«ã
ChatGPT ã«ã€ããŠã©ãæã?
ãã®é貚ã¯ãããã³ã€ã³ã§ãã€ãŒãµãªã¢ã ã§ãã¹ããŒãã³ã³ãã©ã¯ãã§ããªãã®ã§ã
ãããã³ã€ã³ã®ãããªéè²šãšæ¯ã¹ãŠã éåžžã«åªããŠãããšã¯ã©ãããŠãæããªãã
ãã®é貚ã â䜿ããâ ãšèãã人ããããã ãã®äººã¯ã
ããããã¹ããŒãã³ã³ãã©ã¯ãã®äŸ¡å€ãåãã£ãŠãªããšæãã
ã¹ããŒãã³ã³ãã©ã¯ãã¯ã ä»®æ³é貚ããããã¯ãã§ãŒã³ã®è©±ã«ãããŠã
䟡å€ãããã®ãšããŠèªãããããšãå€ããã ç§ã¯ã ãã®éè²šã¯æ¬¡ã¯å¥ã®ã¢ãã«ã詊ãããŒ
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("rinna/japanese-gpt-neox-3.6b-instruction-sft", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt-neox-3.6b-instruction-sft")
if torch.cuda.is_available():
model = model.to("cuda")
prompt = [
{
"speaker": "ãŠãŒã¶ãŒ",
"text": "ããããã®ã¢ãã¡ãæããŠïŒ"
},
{
"speaker": "ã·ã¹ãã ",
"text": "ã©ããã£ãã¢ãã¡ãç¥ãããã§ããïŒ"
},
{
"speaker": "ãŠãŒã¶ãŒ",
"text": "ãã¬ãã¢ã«äžä»£ã«ãããã¢ãã¡ãæããŠãã ãã"
}
]
prompt = [
f"{uttr['speaker']}: {uttr['text']}"
for uttr in prompt
]
prompt = "<NL>".join(prompt)
prompt = (
prompt
+ "<NL>"
+ "ã·ã¹ãã : "
)
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
output_ids = model.generate(
token_ids.to(model.device),
do_sample=True,
max_new_tokens=128,
temperature=0.7,
pad_token_id=tokenizer.pad_token_id,
bos_token_id=tokenizer.bos_token_id,
eos_token_id=tokenizer.eos_token_id
)
output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1):])
output = output.replace("<NL>", "\n")
print(output)ãããå 容ã¯ãªããšãã ãã©ããæãã
ããããŸãããããã€ãè¯ãã¢ãã¡ãããããã§ããŸãã
Netflixã«ã¯ã鲿ã®å·šäººãããã¯ã³ãã³ãã³ããããã©ãŽã³ããŒã«Zãã
ãéŒã®é¬éè¡åž«ããªã©ããããŸãã Amazonã«ã¯ããœãŒãã¢ãŒãã»ãªã³ã©ã€ã³ãã
ãã©ãã©ã€ã!ãã鲿ã®å·šäººããªã©ããããŸãã
ãéŒã®é¬éè¡åž«ãã¯ãããå€ãã®ãã£ã©ã¯ã¿ãŒãèšå®ãªã©ãé
åçã§ããã
ãã匷çã§ããããã奜ã¿ãåãããã§ãããã</s>ãšããããšã§ã·ã¥ããšè§Šã£ãŠã¿ãŸãã
ã»æ±çšèšèªã¢ãã«ã¯ãæ¥æ¬èªã®Wikipedia ( https://huggingface.co/datasets/wikipedia )ã»C4 ( https://huggingface.co/datasets/mc4 )ã»CC-100 ( https://huggingface.co/datasets/cc100 ) ã®ãªãŒãã³ãœãŒã¹ããŒã¿ãçšããŠåŠç¿ãããŠããŸãã察話èšèªã¢ãã«ã¯ãHH-RLHF ( https://huggingface.co/datasets/Anthropic/hh-rlhf )ã»SHP ( https://huggingface.co/datasets/stanfordnlp/SHP )ã»FLAN ( https://github.com/google-research/FLAN ) ã®äžéšãæ¥æ¬èªã«ç¿»èš³ããããŒã¿ãçšããŠåŠç¿ãããŠããŸãã
ã»æ±çšèšèªã¢ãã«ã®perplexityã¯8.68ãéæããŠããŸãã8.68 perplexityãšã¯ãGPTãæ¬¡ã®åèªãäºæž¬ãããšãã«åèªã®åè£æ°ã8.68ã«çµãããŠããããšãæå³ããŸãã
ã»å¯Ÿè©±èšèªã¢ãã«ã®ã€ã³ã¿ãŒãã§ãŒã¹ã¯ã察話圢åŒãæ¡çšããŠãŒã¶ãŒãå©çšããããããã«èšèšããŠããŸãã
ã»äºååŠç¿æžã¿ã®ã¢ãã«ã¯ãHugging Faceã«åçšå©çšå¯èœãªMIT Licenseã§å ¬éãããŠããŸãã
ã»ãŠãŒã¶ãŒã¯ã2çš®é¡ã®ã¢ãã«ããå©çšè ã®ç®çã«å¿ããŠæé©ãªã¢ãã«ãéžæããããšãã§ããŸããããã«ãç¹å®ã®å©çšç®çã«å¯ŸããŠæ§èœãæé©åããããå Žåã«ã¯ãfine-tuningãin-context learningã«ãã粟床åäžãç®æãããšãã§ããŸãã
ãšããã¡ãããããããã©ã€ã»ã³ã¹ã§åºããŠããã£ãŠããã®ã§ fine-tune ãããããŠæ¥œãã¿ãããªãšæããŸãã