èŠç¹
- T5ïŒText-To-Text Transfer Transformerãè«æãæ¥æ¬èªè§£èª¬èšäºïŒã®æ¥æ¬èªã¢ãã«ïŒäºååŠç¿æžã¿ã¢ãã«ïŒãäœããå ¬éããŸããããæŽ»çšãã ããã
- T5ãšã¯ãæ§ã
ãªèªç¶èšèªåŠçã¿ã¹ã¯ã®å
¥åºåããšãã«ããã¹ãã«ãªãããåé¡åœ¢åŒãåå®çŸ©ããããšã«ãããäžã€ã®äºååŠç¿æžã¿ã¢ãã«ã倿§ãªã¿ã¹ã¯çšã«è»¢ç§»åŠç¿ãããããšãã§ããé«ãæè»æ§ãæã¡ããã€ãæ§èœãåªããŠããæ·±å±€ãã¥ãŒã©ã«ãããã¯ãŒã¯ã§ãã
- 転移åŠç¿ã®äŸ: æç« åé¡ãæç« èŠçŽã質åå¿çã察話å¿çãæ©æ¢°ç¿»èš³ã嫿é¢ä¿èªèãæã®é¡äŒŒåºŠèšç®ãææ³çåŠ¥åœæ§å€å®ãã¿ã€ãã«çæãã¹ã¿ã€ã«å€æã誀åä¿®æ£ãæ€çŽ¢çµæã®ãªã©ã³ãã³ã°ãªã©ïŒåºæè¡šçŸæœåºãªã©ã®ã·ãŒã±ã³ã¹ã©ããªã³ã°ã®å®æœäŸã¯ãªãïŒïŒ
- æ¥æ¬èªT5ã¢ãã«ã¯Hugging Face Model HubããããŠã³ããŒãã§ããŸãã
- ãã³ãããŒã¯ãšããŠãããåé¡åé¡ã«ã€ããŠãæ¢åã®mT5ïŒæ¥æ¬èªãå«ãå€èšèªçT5ïŒã®åèŠæš¡ã¢ãã«ãšç²ŸåºŠãæ¯èŒãããšãããmT5ã¯90ã91%ãä»åäœã£ãæ¥æ¬èªã¢ãã«ã¯96ã97%ã®ç²ŸåºŠã«ãªããŸããã
- 転移åŠç¿ã®ãµã³ãã«ã³ãŒããšããŠãlivedoorãã¥ãŒã¹ã®ãžã£ã³ã«åé¡ã¿ã¹ã¯ãšããã¥ãŒã¹ã®ã¿ã€ãã«çæã¿ã¹ã¯ïŒäžçš®ã®æç« èŠçŽã¿ã¹ã¯ïŒçãçšæããŸããã
huggingface/transformersã§æ¥æ¬èªT5ã¢ãã«ãããŠã³ããŒãããŠå©çšããæ¹æ³:
from transformers import T5ForConditionalGeneration, T5Tokenizer
tokenizer = T5Tokenizer.from_pretrained("sonoisa/t5-base-japanese")
model = T5ForConditionalGeneration.from_pretrained("sonoisa/t5-base-japanese")
ã¯ããã«
æ°ããªèªç¶èšèªåŠçã¿ã¹ã¯ãçºçããæãã©ã®ãããè§£ããããªã¿ã¹ã¯ãªã®ããµã¯ããšèŠå®ãããããšããããšæããŸãã
ããããèªç¶èšèªåŠçã«ã¯æ§ã ãªå ¥åºå圢åŒãæã£ãã¿ã¹ã¯ãããããã®å ¥åºåãæ±ããŠãã€æ§èœãæªããªãé©åãªæ·±å±€ãã¥ãŒã©ã«ãããã¯ãŒã¯ãæ¢ããšããããå§ããã®ã§ã¯èŠå®ãã«æéãããã£ãŠããŸããŸãã
T5ã¯ããã®æ©ã¿ã解決ããŠãããŸãã
T5 (Text-To-Text Transfer Transformer) ãšã¯ãæ§ã
ãªèªç¶èšèªåŠçã¿ã¹ã¯ã®å
¥åºåããšãã«ããã¹ãã«ãªãããåé¡åœ¢åŒãåå®çŸ©ããããšã«ãããäžã€ã®äºååŠç¿æžã¿ã¢ãã«ã倿§ãªã¿ã¹ã¯çšã«è»¢ç§»åŠç¿ãããããšãã§ããé«ãæè»æ§ãæã£ã深局ãã¥ãŒã©ã«ãããã¯ãŒã¯ã§ãïŒåç
§: ãªãŒãžã¹ç·ç ããã«ããT5ã®è§£èª¬èšäºïŒã
ãŸããæ§èœã«é¢ããŠããT5ã¯è«æå
¬éãã1幎åã»ã©çµã£ãŠããŸããã2021幎4ææç¹ã§ãGLUEãSuperGLUEã®ãªãŒããŒããŒãã§äžäœã«äœçœ®ããåªããæè¡ã§ãã
ããããæªã ããæ¥æ¬èªäºååŠç¿æžã¿ã¢ãã«ãå
¬éãããŠããªãã®ã§ãä»åäœæããŠå
¬éããŠã¿ãããšã«ããŸããã
T5ã®äŸ¿å©ãã宿ã§ãã転移åŠç¿ã®ãµã³ãã«ã³ãŒããåãããŠå
¬éããŸããã®ã§ãã©ãããæŽ»çšãã ããã
- æ¥æ¬èªã³ãŒãã¹ãçšããäºååŠç¿æžã¿T5ã¢ãã«: https://huggingface.co/sonoisa/t5-base-japanese
- 転移åŠç¿ã®ãµã³ãã«ã³ãŒã: https://github.com/sonoisa/t5-japanese
転移åŠç¿ã®äŸ
T5ã¯ãäžå³ã®ããã«äºååŠç¿ã¿ã¹ã¯ïŒç©Žåãåé¡ïŒãè§£ãããšã§èšèªçãªç¥èãåŸãã¢ãã«ããç¹å®ã®ã¿ã¹ã¯çšã«ãã¡ã€ã³ãã¥ãŒãã³ã°ïŒè»¢ç§»åŠç¿ïŒããæè¡ã§ãã
T5ã®äºååŠç¿ã¿ã¹ã¯ïŒç©Žåãåé¡ïŒãšãäºååŠç¿æžã¿ã¢ãã«ã質åå¿çã¿ã¹ã¯ã«è»¢ç§»ãããã€ã¡ãŒãž:
ïŒT5ã®å·Šãå
¥åãå³ãåºåãäºååŠç¿ã§åŸãç¥èã質åå¿çã«å©çšããŠããïŒ

å³ã®åºå
ž: Exploring Transfer Learning with T5: the Text-To-Text Transfer Transformer
ä»åäœæããæ¥æ¬èªT5ã¢ãã«ãããã€ãã®ã¿ã¹ã¯ã«è»¢ç§»åŠç¿ããããµã³ãã«ã³ãŒããçšæããŸããã
転移åŠç¿ã®ãµã³ãã«ã³ãŒã: https://github.com/sonoisa/t5-japanese
次ã®ãªã³ã¯ãã¯ãªãã¯ãããšGoogle Colaboratoryã§NotebookãéããŸãã
GPUãæå¹ã«ããŠå
šãŠã®ã»ã«ãå®è¡ããã°åŠç¿ãšãã¹ãããŒã¿ã«å¯Ÿããæšè«ãå®è¡ãããŸãã
- ãã¥ãŒã¹èšäºã®ãžã£ã³ã«äºæ³ïŒæç« åé¡ïŒ: å ¥å "{title} {body}" â åºå "{genre_id}"
- ãã¥ãŒã¹èšäºã®ã¿ã€ãã«çæïŒäžçš®ã®æç« èŠçŽïŒ: å ¥å "{body}" â åºå "{title}"
- ãã¥ãŒã¹èšäºæ¬æçæïŒæç« çæïŒ: å ¥å "{title}" â åºå "{body}"
ããã§ã{title}ã¯ãã¥ãŒã¹èšäºã®ã¿ã€ãã«ã{body}ã¯æ¬æã{genre_id}ã¯ãã¥ãŒã¹ã®åé¡ã©ãã«ïŒ"0"ã"8"ïŒã§ãã
ã©ã®äŸãlivedoorãã¥ãŒã¹ã³ãŒãã¹ãå©çšããŠããŸããã³ãŒãã¹ãå
¬éããŠããæ ªåŒäŒç€Ÿãã³ãŠã€ããæ§ãNHN Japanæ ªåŒäŒç€Ÿæ§ã«æè¬ããããŸãã
以äžãå転移åŠç¿ã³ãŒãã®èŠç¹ã解説ããŠãããŸãã
1. ãã¥ãŒã¹èšäºã®ãžã£ã³ã«äºæ³ïŒæç« åé¡ïŒ
ãã¥ãŒã¹èšäºã®ãžã£ã³ã«äºæ³ïŒ9åé¡ã¿ã¹ã¯ïŒã¯æ¬¡ã®åœ¢åŒã®å ¥åºåãæã€ããŒã¿ã»ãããçšæããã°å®çŸã§ããŸãã
- å ¥å "{title} {body}"
- åºå "{genre_id}"
ããã§ã{title}ã¯ãã¥ãŒã¹èšäºã®ã¿ã€ãã«ã{body}ã¯æ¬æã{genre_id}ã¯ãã¥ãŒã¹ã®åé¡ã©ãã«ïŒ"0"ã"8"ïŒã§ãã
ã€ãŸãããã¥ãŒã¹èšäºã®ã¿ã€ãã«ã𿬿ããããã®ãã¥ãŒã¹èšäºã®ãžã£ã³ã«ãäºæž¬ããåé¡ã§ãã
ãµã³ãã«ã³ãŒãã§ã¯transformersãšpytorch-lightningãå©çšããŠãã¡ã€ã³ãã¥ãŒãã³ã°åŠçãå®è£ ããŠããŸãã
åŠçã®æµãã¯æ¬¡ã®éãã§ãã
- livedoorãã¥ãŒã¹ã³ãŒãã¹ãããŠã³ããŒããã"{title}\t{body}\t{genre_id}"ãšãã圢åŒã®TSVãã¡ã€ã«ã«å€æããŸãã
- TSVãã¡ã€ã«ãèªã¿èŸŒã¿ãå
¥åã"{title} {body}"ãåºåã"{genre_id}"ãšãã圢åŒã®ããŒã¿ã»ããã«å€æããŸãã
T5ã®å ¥åºåããŒã¿ã¯ãã®ããã¹ããïŒSentencePieceã§ïŒããŒã¯ãã€ãºããããŒã¯ã³åã§ããæ±ããããŒã¯ã³æ°ïŒããŒã¯ã³åã®é·ãïŒã¯æéã§ãã®ã§ãå ¥åºåããããã«ã€ããŠæå€§ããŒã¯ã³æ°ãå®çŸ©ããŸãïŒæåæ°ã§ã¯ãªããããŒã¯ã³æ°ã§ãã®ã§ãééããªãïŒãä»åã¯æå€§å ¥åããŒã¯ã³æ°ã¯512ãæå€§åºåããŒã¯ã³æ°ã¯4ã«ããŠããŸããæå€§åºåããŒã¯ã³æ°ã1ã§ã¯ãªãã4ãªã®ã¯åºåéå§ããŒã¯ã³ãšææ«ããŒã¯ã³ãïŒããŸã«ç©ºçœããŒã¯ã³ãïŒåºåã«å«ãŸããããã§ãã - æ¥æ¬èªT5äºååŠç¿æžã¿ã¢ãã«ãããŠã³ããŒããã転移åŠç¿ãå®è¡ããŸãã
- ãã¹ãããŒã¿ã«å¯Ÿããåé¡äºæž¬ç²ŸåºŠãèšç®ããŸãã
2ã®å ¥åºåãå®çŸ©ããåŠçã¯ã³ãŒãã®æ¬¡ã®ç®æã§ãã
class TsvDataset(Dataset):
...
def _make_record(self, title, body, genre_id):
# ãã¥ãŒã¹åé¡ã¿ã¹ã¯çšã®å
¥åºå圢åŒã«å€æããã
input = f"{title} {body}"
target = f"{genre_id}"
return input, target
...
å
¥åºåã®æå€§ããŒã¯ã³åé·ããããã512ãš4ã«ããŠããŸãã
ãã®ä»ãããããµã€ãºã8ãåŠç¿ãããšããã¯æ°ã¯ä»®ã«4ãšããŠããŸãã
ãããGPUã§Out of Memoryãšã©ãŒãçºçããããã§ããã°ãããããµã€ãºãå°ããããŠã¿ããšããã§ãããïŒäŸãã°4ã«æžããïŒãããã§ããã¡ãªãå
¥åºåæã®æå€§ããŒã¯ã³æ°ãæžãããŸãããïŒäŸãã°256ã«æžããïŒã
# åŠç¿ã«çšãããã€ããŒãã©ã¡ãŒã¿ãèšå®ãã
args_dict.update({
"max_input_length": 512, # å
¥åæã®æå€§ããŒã¯ã³æ°
"max_target_length": 4, # åºåæã®æå€§ããŒã¯ã³æ°
"train_batch_size": 8,
"eval_batch_size": 8,
"num_train_epochs": 4,
})
äºååŠç¿æžã¿ã¢ãã«ã®ããŠã³ããŒããšèªã¿èŸŒã¿ã¯æ¬¡ã®ã³ãŒãã§è¡ãããŠããŸãã
class T5FineTuner(pl.LightningModule):
def __init__(self, hparams):
super().__init__()
self.hparams = hparams
# äºååŠç¿æžã¿ã¢ãã«ã®èªã¿èŸŒã¿
self.model = T5ForConditionalGeneration.from_pretrained(hparams.model_name_or_path)
# ããŒã¯ãã€ã¶ãŒã®èªã¿èŸŒã¿
self.tokenizer = T5Tokenizer.from_pretrained(hparams.tokenizer_name_or_path, is_fast=True)
ãã³ãããŒã¯
ãã®æ¥æ¬èªT5ã¢ãã«ïŒãã©ã¡ãŒã¿æ°ã¯222MïŒãçšãããã¥ãŒã¹èšäºã®ãžã£ã³ã«äºæž¬ã¿ã¹ã¯ã®ç²ŸåºŠã¯æ¬¡ã®éãã§ãã
| label | precision | recall | f1-score | support |
|---|---|---|---|---|
| 0 | 0.96 | 0.94 | 0.95 | 130 |
| 1 | 0.98 | 0.99 | 0.99 | 121 |
| 2 | 0.96 | 0.96 | 0.96 | 123 |
| 3 | 0.86 | 0.91 | 0.89 | 82 |
| 4 | 0.96 | 0.97 | 0.97 | 129 |
| 5 | 0.96 | 0.96 | 0.96 | 141 |
| 6 | 0.98 | 0.98 | 0.98 | 127 |
| 7 | 1.00 | 0.99 | 1.00 | 127 |
| 8 | 0.99 | 0.97 | 0.98 | 120 |
| accuracy | 0.97 | 1100 | ||
| macro avg | 0.96 | 0.96 | 0.96 | 1100 |
| weighted avg | 0.97 | 0.97 | 0.97 | 1100 |
ç²ŸåºŠã®æ¯èŒå¯Ÿè±¡ãšããŠãåèŠæš¡ã®ã¢ãã«ã§ããå€èšèªT5ïŒmT5ïŒã¢ãã«ïŒãã©ã¡ãŒã¿æ°ã¯300MïŒãçšããå Žåã®ç²ŸåºŠã¯æ¬¡ã®ããã«ãªããŸãã
mT5ã«æ¯ã¹ãŠãæ¥æ¬èªT5ã¢ãã«ã®æ¹ã5ãã€ã³ãã»ã©ç²ŸåºŠãé«ãããšãåãããŸãã
mT5ãæ¥æ¬èªãæ±ãããšãã§ããŸãããå€èšèªã«é¢ããã¿ã¹ã¯ã§ãªããã°ãæ¥æ¬èªT5ã¢ãã«ãå©çšããæ¹ãè¯ãããã§ãã
| label | precision | recall | f1-score | support |
|---|---|---|---|---|
| 0 | 0.91 | 0.88 | 0.90 | 130 |
| 1 | 0.84 | 0.93 | 0.89 | 121 |
| 2 | 0.93 | 0.80 | 0.86 | 123 |
| 3 | 0.82 | 0.74 | 0.78 | 82 |
| 4 | 0.90 | 0.95 | 0.92 | 129 |
| 5 | 0.89 | 0.89 | 0.89 | 141 |
| 6 | 0.97 | 0.98 | 0.97 | 127 |
| 7 | 0.95 | 0.98 | 0.97 | 127 |
| 8 | 0.93 | 0.95 | 0.94 | 120 |
| accuracy | 0.91 | 1100 | ||
| macro avg | 0.91 | 0.90 | 0.90 | 1100 |
| weighted avg | 0.91 | 0.91 | 0.91 | 1100 |
2. ãã¥ãŒã¹èšäºã®ã¿ã€ãã«çæïŒäžçš®ã®æç« èŠçŽïŒ
ãã¥ãŒã¹èšäºã®ã¿ã€ãã«çæã¯æ¬¡ã®åœ¢åŒã®å ¥åºåãæã€ããŒã¿ã»ãããçšæããã°å®çŸã§ããŸãã
- å ¥å "{body}"
- åºå "{title}"
ããã§ã{title}ã¯ãã¥ãŒã¹èšäºã®ã¿ã€ãã«ã{body}ã¯æ¬æã§ãã
ã€ãŸãããã¥ãŒã¹èšäºã®æ¬æãããã¿ã€ãã«ãäºæž¬ããåé¡ã§ãã
ãœãŒã¹ã³ãŒããèŠããšã1. ãã¥ãŒã¹èšäºã®ãžã£ã³ã«äºæ³ïŒæç« åé¡ïŒãã®ãã®ãšèŠåããä»ããªãããã䌌ãŠããããšãåãããšæããŸãã
å®éãåŠç¿ã«é¢ããã³ãŒãã§å€ãã£ãŠããã®ã¯å
¥åºåã«é¢ããéšåã ãã§ãã
次ã®ã³ãŒãã®ããã«{body}ãå
¥åã«ã{title}ãåºåããããå®çŸ©ããŸãã
class TsvDataset(Dataset):
...
def _make_record(self, title, body, genre_id):
# ãã¥ãŒã¹ã¿ã€ãã«çæã¿ã¹ã¯çšã®å
¥åºå圢åŒã«å€æããã
input = f"{body}"
target = f"{title}"
return input, target
...
æç« åé¡ã®å Žåãããåºåããããã¹ãã®é·ããé·ãã®ã§ãæå€§åºåããŒã¯ã³æ°ã64ã«å¢ãããŸããåé¡åé¡ãããé£ããåé¡ã®ããããšããã¯æ°ã8ã«å¢ãããŠããŸãïŒåŠç¿æéãæžãããããªã4çšåºŠã§ããããããããŸããïŒã
ãããGPUã§Out of Memoryãšã©ãŒãçºçããããã§ããã°ãããããµã€ãºãå°ããããŠã¿ããšããã§ãããïŒäŸãã°4ã«æžããïŒãããã§ããã¡ãªãå
¥åºåæã®æå€§ããŒã¯ã³æ°ãæžãããŸãããïŒäŸãã°å
¥åã256ã«ãåºåã32ã«æžããïŒã
# åŠç¿ã«çšãããã€ããŒãã©ã¡ãŒã¿ãèšå®ãã
args_dict.update({
"max_input_length": 512, # å
¥åæã®æå€§ããŒã¯ã³æ°
"max_target_length": 64, # åºåæã®æå€§ããŒã¯ã³æ°
"train_batch_size": 8,
"eval_batch_size": 8,
"num_train_epochs": 8,
})
ãã£ããã®å€æŽã ãã§ãæç« åé¡çšã³ãŒãããäžçš®ã®æç« èŠçŽã¿ã¹ã¯ã§ããã¿ã€ãã«çæã¿ã¹ã¯çšã«ãªããŸãã
T5ã®äŸ¿å©ããåããäŸã§ããã
ã¿ã€ãã«çæã®äŸ
ãã®ã¿ã€ãã«çæã¢ãã«ã䜿ã£ãŠãã¿ã€ãã«ã®åè£ããªãã¹ã倿§ã«ãªãããè€æ°åçæããŠã¿ãŸãã
äŸãšããŠããLEGOã§äœãã¹ããŒãããã¯ãããHey Siri éµéããŠããå®çŸããæ¹æ³ ããã®æ¬æã«åã£ãã¿ã€ãã«ã10åçæããŠã¿ãŸãã
body = """
ããã¯LEGOãšRaspberry Piã§å®çšçãªã¹ããŒãããã¯ãäœãäžããç©èªã§ãã
ã¹ããŒãããã¯ã»ã·ã¹ãã ã®å
šäœæ§æã¯äžå³ã®ããã«ãªããŸããå³äžå³äžã«ããå¡ããå
šéšLEGOã§äœãããã¹ããŒãããã¯ã§ãã
ç¹åŸŽã¯ã3Dããªã³ã¿äžèŠã§ãLEGOãšããæ¯èŒç誰ã§ãæ±ãããã®ã§äœãããããŒããŠã§ã¢ã§ãããšãããèŠãç®ã®éæ®ã£ãããšæ©èœã®ã¹ããŒãããå
Œãåãããšã³ãžãã¢å¿ããããããã€ã³ãæºèŒãªãšããã§ãã
ãªããLEGO (ã¬ãŽ)ãLEGO Boost (ããŒã¹ã) 㯠LEGO Group (ã¬ãŽã°ã«ãŒã) ã®ç»é²åæšã§ããããã®ææžã¯ã¬ãŽã°ã«ãŒãããã®æ¥æ¬æ³äººãšäžåé¢ä¿ã¯ãããŸããã
次ã®ãããªã·ãã¥ãšãŒã·ã§ã³ãçµéšããããšã¯ãããŸãããïŒ
- å€åºå
ã«ãŠãããããããéµãéããŠããããªïŒèšæ¶ããªãâŠïŒãœã¯ãœã¯ïŒã
- æã®éå€ã«ãŠãé§
ã«å°çããŠã¿ãããããéµéãå¿ãããæ»ããâŠã
- æçäžã«ãããéµéãå¿ããïŒã§ããããŸæãé¢ããªããã
- çé¢å
ã§ãæã¯è²·ãç©ã§äžæ¯ããã±ããããéµãåºãã®ã倧å€ãã
- è·å Žã«ãŠã倿¹ãããããåäŸã¯å®¶ã«åž°ã£ãŠããããªïŒã
- çé¢ã«ãŠã仿¥ã¯åããããªïŒã
ä»åäœãã¹ããŒãããã¯ã¯ãæ¬¡ã®æ©èœã§ãããã解決ã«å°ããŸãã
- éµã®éãå¿ããSlackã«éç¥ããŠããããiPhoneã§æœé ç¶æ
ã確èªã§ããã
- äœåŠã§ã§ãiPhoneããæœé ã§ããã
- ãHey Siri éµéããŠïŒéµéããŠïŒãã§æœé /éé ã§ããã
- éµã®ééã€ãã³ããiPhoneã«éç¥ãããåž°å®
ãåããã
- LEDã®è²ã§å€©æ°äºå ±ïŒåã®å¿
èŠæ§ïŒãæããŠãããïŒãã ããæéã®éœåã§ä»åã¯èª¬æçç¥ïŒã
欲ãããªããŸããã§ããããïŒ
以äžãã ãŒããŒå€ãã§æ©èœã®è©³çްãšäœãæ¹ã«ã€ããŠè§£èª¬ããŠãããŸããããŒããŠã§ã¢ããœãããŠã§ã¢ããªãŒãã³ãœãŒã¹ãšããŠå
¬éããŸãã
"""
æ°ç§ã§æ¬¡ã®10åã®ã¿ã€ãã«ãçæãããŸãã
æ£è§£ã®ã¿ã€ãã«ãLEGOã§äœãã¹ããŒãããã¯ãããHey Siri éµéããŠããå®çŸããæ¹æ³ ããã¯çµæ§é·ãæéæ©ãã§æ±ºããã¿ã€ãã«ãªã®ã§ãããæ°ç§ã§ãããªã«è²ã
çæããŠããããªããŠã次ããã¯ã¿ã€ãã«ãèãããšãã®åèã«ãããããšæããŸãã
1. ã¢ã€ãã¢æºèŒã®ãlegoãã§äœãã¹ããŒãããã¯ã®äœãæ¹
2. ãã¬ãŽããšraspberry piã§äœãå®çšçãªã¹ããŒãããã¯
3. ãã¬ãŽããšraspberry piã§äœãå®çšçãªã¹ããŒãããã¯(äž)
4. éçºç§è©±!legoã§äœãå®çšçãªã¹ããŒãããã¯(äž)
5. ã¢ã€ãã£ã¢ãšã¢ã€ãã¢ã§äœããlegoã§äœãããã¹ããŒãããã¯ã®äœãæ¹
6. ã¢ã€ãã£ã¢ãšã¢ã€ãã¢ã§äœããlegoã§äœãããã¹ããŒãããã¯
7. âlego"ã§äœãå®çšçãªã¹ããŒãããã¯ããããã§ããã§ãããã?
8. ãã¶ã€ã³ãéæ®ã£ãã!誰ã§ãæ±ããã¹ããŒãããã¯ãäœãã
9. ã¢ã€ãã£ã¢ãšã¢ã€ãã¢ã§äœããlegoã§äœãããã¹ããŒãããã¯ã®äœãæ¹(äž)
10. ãã¶ã€ã³ãéæ®ã£ãã!誰ã§ãæ±ããã¹ããŒãããã¯ãäœãã!
ïŒãã¶ã€ã³ãéæ®ã£ããã£ãŠããããªã«åŒ·èª¿ããªããŠãã»ã»ã»ãéæ®ã£ããã¹ããŒãããã¯ã¯äžå³ã®å³åŽã®åçã§ãïŒ
ãã®ä»ããã¹ãããŒã¿ã«å¯Ÿããã¿ã€ãã«çæçµæïŒæç²ïŒã¯æ¬¡ã®éãã§ãã
generated:ãçæãããã¿ã€ãã«ãactual:ãæ£è§£ã§ãã人ãä»ããã¿ã€ãã«ã§ãã
ç°¡åã«äœã£ãå²ã«ã¯ããŸããŸãããæããªããããªãã§ãããããã¿ã€ãã«çæã¯æã¿ãããã¿ã¹ã¯ã§ãããšãããã§ãããã
generated: ããªãã®æè»ãä»ããã?ãªã³ã©ã€ã³äžã§äžæ¬æ»å®ã§ãããæè»ç¡ææ»å®ã
actual: å¥ãã?ç¶ãã?3ææ«ã§æ±ºæãè¿«ãæ»å®ãµãŒãã¹
generated: facebook掻çšè¡/åçªäŒã»å¥³åäŒã§å€§æŽ»èº!ãªã©-ãç¥ã£åŸ!èã®å·»ã
actual: ã€ãã³ãäœæãå人ã®ç޹仿¹æ³facebook掻çšã®ã¹ãŽæã»è£æãã¯ããã¯é
generated: nttãã³ã¢ãandroid 4.0 icsæèŒ3.4ã€ã³ãã¹ãããaquos phone st sh-07dããçºè¡š!1ghzcpuã鲿°Žãã¯ã³ã»ã°ã«å¯Ÿå¿
actual: nttãã³ã¢ãandroid 4.0 icsæèŒ3.4ã€ã³ãã¹ãããaquos phone st sh-07dããçºè¡š!1ghzcpuã鲿°Žãé²å¡µãã¯ã³ã»ã°ã«å¯Ÿå¿
generated: ããéçãã¡ã³ã®æ³ããæ°å€åããŠç«¶ããä»å¹Žã®âç®å©ãææ°"ãšã¯?
actual: 2010幎ããéççã®ããŒãã³ã¯?
generated: ã€ã³ã¿ãã¥ãŒ:森äžå¥ä¿åãããæ ç»ãåµãã女æ§ãã¡ãã
actual: ãæ ç»ç¥ãåµãã女æ§ãã¡ããvol.4ã³ã³ãã³ãããŒã±ãããã£ã¬ã¯ã¿ãŒæ£®äžçŸéŠãã
generated: ã¿ã³ã¹ã®è¥ããããã³ãã³å¢ãã!?å®
é
è²·åãµãŒãã¹ããã©ã³ãã£ã¢ã
actual: ã¿ã³ã¹ã®è¥ããããµã€ãã®ç³§ã«!?ææ°ã®è²·åããµãŒãã¹ã®å®åãšã¯
generated: ããŒã¹ã»ããŒããŒé¢šã®ãã¶ã€ã³ããããã!ãkinectã¹ã¿ãŒã»ãŠã©ãŒãºããæ°ééå®çºå£²
actual: ã¹ã¿ãŒãŠã©ãŒãºãr2-d2ããã€ã¡ãŒãžããéå®xboxçºå£²æ±ºå®!ããµã?ãããšãã¬ããã§ãããã?
generated: ãªã§ããç°äžéœåã®æŽ»èºã«æåŸ
!?
actual: æåŸ
é«ãŸããæŸ€ç©åžã®âçŸå°å¥³åŸç¶è
"
generated: æ©äžåŸ¹å€§éªåºç¥äºãé±åæ°æœ®ã®åææ¹å€ã«ãã€ãã¿ãŒã§è³åŠäž¡è«
actual: ãã€ãã¿ãŒäžã§é±åæ°æœ®ã«ããã®ã¬ããæ©äžåŸ¹æ°ã«ãããã§ã¯è³åŠäž¡è«
3. ãã¥ãŒã¹èšäºæ¬æçæïŒæç« çæïŒ
äžæãããäŸã°ããã§ã¯ãªããªã®ã§ãäžæããããªãäŸãã
ãã¥ãŒã¹èšäºæ¬æçæã¯ã¿ã€ãã«çæãšå
¥åºåãéããŸã«ããåé¡ã§ãã
ã€ãŸããæ¬¡ã®åœ¢åŒã®å
¥åºåãæã€ããŒã¿ã»ãããçšæããã°å®çŸã§ããŸãã
- å ¥å "{title}"
- åºå "{body}"
ããã§ã{title}ã¯ãã¥ãŒã¹èšäºã®ã¿ã€ãã«ã{body}ã¯æ¬æã§ãã
ã©ãããã³ãŒããæžãã°è¯ããã¯ãã解説äžèŠã§ããã
èšäºçæã®äŸ
ãã®èšäºçæã¢ãã«ã«ã¿ã€ãã«ãLEGOã§äœãã¹ããŒãããã¯ãããHey Siri éµéããŠããå®çŸããæ¹æ³ ãããå ¥åããŠèšäºçæãè¡ãªã£ãŠã¿ãŸãã
title = "LEGOã§äœãã¹ããŒãããã¯ãããHey Siri éµéããŠããå®çŸããæ¹æ³ ã"
çµæã¯æ¬¡ã®éãã§ããæåã«androidåãã¢ããªãäœããšèšã£ãŠããã®ã«ãçŽåŸã«iphoneåãã¢ããªã«è©±ããºã¬ãŠããããäœãæ¹æ³ã®ç޹ä»ã ã£ãã¯ããå®è¡ã«è©±ãå€ãã£ãŠããããå
šäœçã«è«çç Žç¶»ããŠããŸããå
šç¶ãã¡ã§ããã
ãã®çŽ æŽãªæ¹æ³ã§ã¯ãã¿ã€ãã«ããèšäºãçæããããšã¯é£ãããšããããšããããã§ãããã
ïŒè«çç Žç¶»ãçºçããããããšã¯ãã¥ãŒã©ã«èšèªã¢ãã«å
šè¬ã®èª²é¡ã§ããïŒ
å
æ¥ç޹ä»ãããã¹ããŒãããã¯ã®äœãæ¹ãã§ãäŒãããããã«ãlego(ã¬ãŽ)ã¯androidå
ãã¢ããªãhey siriéµéããŠããå®çŸããæ¹æ³ãã玹ä»ããŸããä»å玹ä»ããiphoneå
ãã¢ããªãhey siriéµéããŠãã¯ãgoogle+ãfacebookãªã©ã®snsã«é£æºããŠäœ¿ãããšã
ã§ãã䟿å©ãªæ©èœã§ããä»åã¯ããã®ã¹ããŒãããã¯ãäœãããã®ãã¯ããã¯ã玹ä»ããŸ
ãããŸãã¯ãã¹ããŒããã©ã³ããã¢ã¯ã»ã¹ãããhey siriéµéããŠããå®è¡ããã«ã¯ã©
ããããããã®ã§ãããã?siriãæã£ãŠããã»ãã¥ãªãã£ããŒãšã¯äžäœäœãªã®ããšãã
ããšã§ãããã®æ¹æ³ã¯ç°¡åã§ãããç°¡åã«ã§ããããã§ã¯ãããŸãããããããå®éã«äœ¿
ã£ãŠã¿ããšããããšæããŸãããã¡ãã£ãšé¢åããããããããŸããããã§ã¯ããã£ãã
解説ããŠãããããšæããŸããä»åã®èšäºã§ã¯ããããªç°¡åãªæäœæé ã説æããŠãããŸ
ãããããé¢é£èšäºãã»æ°ãã€ããŠ!ã¹ãããšé£åããledã€ã«ãããŒã·ã§ã³ã©ã€ãä»ãã¡
ã¬ãå鲿°Žipx5/6hã¢ãã¿ãªã³ã°ã«å¯Ÿå¿ã売ãçãã§ãã¯ãã»ä»å¹Žã®ãã¬ã³ãã¯3æ16æ¥
ã«ç±³ã¢ããã«ãçºè¡šããæ°osãi-o data resolve4ãã®æ°ããŒãžã§ã³ããªãªãŒã¹ã売ã
çãã§ãã¯ãã»ã¹ã¿ã€ãªãã·ã¥&ãã€ã¯ãªãªãã£hdæ¶²æ¶ã¢ãã¿ãŒspã¢ãŒã察å¿bluetooth
ã«ãŒã¿ãŒaquos phone xperia nxso-04dçšå€§å®¹éããããªãŒã売ãçãã§ãã¯ã
以äžã§èŠãããã«ããããã£ãæ§ã ãªã¿ã¹ã¯ã«ã€ããŠãå°ãã®ã³ãŒããæžãã ãã§å®çŸæ§ãèŠå®ããããã®ãT5ã®äŸ¿å©ãªãšããã§ãã
å 責äºé
æ¬ã¢ãã«ã®äœè ã¯æ¬ã¢ãã«ãäœæããã«ããã£ãŠããã®å å®¹ãæ©èœçã«ã€ããŠçްå¿ã®æ³šæãæã£ãŠãããŸãããã¢ãã«ã®åºåãæ£ç¢ºã§ãããã©ãããå®å šãªãã®ã§ãããçã«ã€ããŠä¿èšŒããããã®ã§ã¯ãªããäœãã®è²¬ä»»ãè² ããã®ã§ã¯ãããŸãããæ¬ã¢ãã«ã®å©çšã«ãããäžäžãå©çšè ã«äœããã®äžéœåãæå®³ãçºçãããšããŠããã¢ãã«ãããŒã¿ã»ããã®äœè ãäœè ã®æå±çµç¹ã¯äœãã®è²¬ä»»ãè² ããã®ã§ã¯ãããŸãããå©çšè ã¯æ¬ã¢ãã«ãããŒã¿ã»ããã®äœè ãæå±çµç¹ã責任ãè² ããªãããšãæç¢ºã«ãã矩åããããŸãã
ãŸãšã
æ¥æ¬èªã³ãŒãã¹ãçšããT5ã®äºååŠç¿æžã¿ã¢ãã«ãäœããHugging Face Models Hubã§å ¬éããŸããã転移åŠç¿ã®ãµã³ãã«ã³ãŒããGithubã§å ¬éããŠããŸããã©ãããæŽ»çšãã ããã