ã¯ããã«
ãã®èšäºã§ã¯ã倧容éã®æ©æ¢°åŠç¿ ã¢ãã«ãåããAWS ãµãŒãã¬ã¹ã¢ãŒããã¯ã㣠ã®ã¢ãã«ã±ãŒã¹ãšããã®æ§ç¯æ¹æ³ã玹ä»ããŸãã
察象ãšããèªè
ã¯ã次ã®ãããªæããæã€æ¹ã§ãã
倧容éã¢ãã«ããµãŒãã¹äžã§éçšããã
æ©æ¢°åŠç¿ ç³»ã®ãµãŒãã¹ãå®ãéçšããã
æ©æ¢°åŠç¿ ã¢ãã«ãéçºãã人ãšãå©çšãã人ã®éçºé åãåããŠéçšããã
äœã§ããããããµã¯ããšBERT ã¢ãã«ãéçšã«ã®ããŠã¿ãã
倧容éã¢ãã«ãã®ãããµãŒãã¬ã¹ã¢ãŒããã¯ã㣠ãèãã
Lambdaã¯äœ¿ããªã
ããããªãããå
éšã§æ©æ¢°åŠç¿ ã¢ãã«ãå©çšããWebãµãŒãã¹ ããAWS ã§èšèšãããšããããã©ããªã·ã¹ãã æ§æã«ããŸããã
å€ãã®äººããŸãæãæãã®ã¯ãAPI ãšããŠå©çšããLambdaå
ã§æ©æ¢°åŠç¿ ã¢ãã«ãçšããæ§æã ãšç§ã¯æããŸãã
LambdaãçšããäŸ
ããšãã°äžå³ã®ããã«ãS3ã«ãã¹ãã£ã³ã° ããWebããŒãžãªã©ã®ã¯ã©ã€ã¢ã³ããããAPI Gateway ãéããŠLambdaãå®è¡ããæ§æã§ãã
AWSã®å
¬åŒãã³ãºãªã³è³æ ã§ããSageMakerã§ãããã€ããã¢ãã«ãAPI ã§å©çšããæ¹æ³ãšããŠããã®Lambdaãçšããæ§æã玹ä»ãããŠããŸãã
ããããLambdaã«ã¢ããããŒãã§ããããã±ãŒãžã«ã¯å¶éãããããã倧容éã¢ãã«ã¯ããã±ãŒãžã«å«ããããšãã§ããŸããã
S3ã«å€§å®¹éã¢ãã«ãæ ŒçŽããŠLambdaã§èªã¿èŸŒãæ¹æ³ãèããããŸãã
ããããæ®å¿µãªããLambdaã®é¢æ°å
ã§äœ¿ããããŒã«ã«ã¹ãã¬ãŒãžã«ã512MBãŸã§ãšããå¶éããããããã¢ãã«ã®ããŒããã§ããŸããã
ãã®ãããLambdaå
ã§å€§å®¹éã¢ãã«ãçšããææ³ã¯ãçŸç¶äœ¿ããŸããïŒããããä»åŸãïŒã
ã§ã¯ã倧容éã¢ãã«ãçµã¿èŸŒãAPI ã®æ§æã¯ãã©ããªèšèšãããã®ã§ããããã
ããã€ãèããããŸãããç§ãæšãããã®ã¯AWS Elastic Beanstalk ïŒä»¥éãEBïŒãšAmazon Elastic File System ïŒä»¥éãEFSïŒãçšããæ¹æ³ã§ãã
EBãšEFSã䜿ã
EB ã¯ããŠãŒã¶ãŒãçšæãããœãŒã¹ã³ãŒã ã«åãããŠããµãŒãéçšã«å¿
èŠãªèšå®ïŒããŒããã©ã³ãµãŒ ãAuto Scalingãªã©ïŒãããEC2ã€ã³ã¹ã¿ã³ã¹ ãæ§ç¯ã»ç®¡çã§ãããµãŒãã¹ã§ãã
ãããã€ããã³ãŒã矀ã¯S3ã«ä¿åããã以åã®ç¶æ
ã«revertããã®ãç°¡åã§ãã
è€éãªèšå®ã¯AWS åŽã«ä»»ããŠããšã«ããæ軜ã«ãµãŒããæ§ç¯ã»éçšããã人ã«ãå§ãã®ãµãŒãã¹ã§ãã
ãŸãEFS ã¯ãNFS ãµãŒãã®ããã«ããããã¯ãŒã¯äžã§ãã¡ã€ã«ãå
±æã§ããã¹ãã¬ãŒãžãæ§ç¯ã»ç®¡çã§ãããµãŒãã¹ã§ãã
ããšãã°ãEFSãã¡ã€ã«ã·ã¹ãã ã§æ§ç¯ããå
±æãã¡ã€ã«ã¹ãã¬ãŒãžãEC2ã«ããŠã³ãããã°ãEC2ã€ã³ã¹ã¿ã³ã¹ äžã§ããŒã«ã«ã¹ãã¬ãŒãžã®ããã«å©çšã§ããŸãã
ã€ãŸããEBãšEFSã䜿ãã°ã倧容éããŒã«ã«ã¹ãã¬ãŒãžãå€ä»ãããEC2ã€ã³ã¹ã¿ã³ã¹ ããµã¯ããšæã«å
¥ãã®ã§ãã
åç¯ã®Lambdaã眮ãæããŠäžå³ã®ãããªæ§æã«ããã°ãEC2ã§ç«ã¡äžããAPI ãµãŒããããEFSã®å
±æãã¡ã€ã«ã¹ãã¬ãŒãžã«æ ŒçŽãã倧容éã¢ãã«ãçŽæ¥åŒã³åºãããšãã§ããŸãã
EBãšEFSãçšããäŸ
EFSãéžãã çç±
æ¬çš¿ã§ã¯EFSãããŒã«ã«ã¹ãã¬ãŒãžãšããŠå©çšããã·ã¹ãã æ§æã玹ä»ããŠããŸãããAWS ã«ã¯ä»ã«ãAmazon Elastic Block Store ïŒä»¥éãEBSïŒãåæ§ã®æ©èœã«çšããããšãã§ããŸãã
ãã ãEFSã§ã¯è€æ°ã®EC2ã€ã³ã¹ã¿ã³ã¹ ããã®åæã¢ã¯ã»ã¹ãå¯èœãªã®ã«å¯ŸããEBSã¯åäžã®ã€ã³ã¹ã¿ã³ã¹ ããã®ã¢ã¯ã»ã¹ããæ³å®ãããŠããŸãããïŒåè ïŒ
EBSãå©çšããå Žåãã¢ãã«ãå©çšããã€ã³ã¹ã¿ã³ã¹ ããšã«ãã¢ãã«ãã¢ããããŒãããå¿
èŠããããŸãã
ãã®éçšã¯ãã¢ãã«ã®ç®¡çãç
©éã«ãªãæãããããŸãã
ããã«å¯ŸããŠEFSã䜿ãã°ãã¢ãã«ã®ç®¡çã¯æ¥œã«ãªããŸãã
ã¢ãã«ã®éçºè
ã¯åžžã«æ±ºãŸã£ãã¹ãã¬ãŒãžã«ã¢ãã«ãã¢ããããŒãããã°è¯ããã¢ãã«ã®å©çšè
ã¯æ±ºãŸã£ãã¹ãã¬ãŒãžã®ã¢ãã«ãåç
§ããã°è¯ãã®ã§ãã
以äžãããè€æ°ã®ã€ã³ã¹ã¿ã³ã¹ ããåãã¢ãã«ã«ã¢ã¯ã»ã¹ããå®éã®æ¥åéçšãèæ
®ããŠãä»åã¯EFSãéžã³ãŸããã
倧容éã¢ãã«ãã®ãããµãŒãã¬ã¹ãªAPI ãäœãã
ããã§ã¯ãåç¯ã§çŽ¹ä»ããEBãšEFSã䜿ã£ãŠã倧容éã¢ãã«ãå©çšããAPI ãæ§ç¯ããŠã¿ãŸãããã
ä»åã¯ãæ¥æ¬èªã§å
¥åãããæç« å士ã®é¡äŒŒåºŠãBERTã¢ãã«ã§èšç®ããŠåºåããAPI ããäœã£ãŠã¿ãŸãã
åºæ¬çã«ã¯ãããäžã§éãããããªãœãŒã¹ã䜿ããŸãããããããAWS ç¡æå©çšæ ã«åãŸããªãæ§æã§ããã泚æãã ããã
æé ã¯æ¬¡ã®ãšããã§ãã
æé ïŒïŒå€§å®¹éã¢ãã«ãçšæ
æé ïŒïŒAPI ãæ§ç¯
æé ïŒïŒEBã«å€§å®¹éã¢ãã«ä»¥å€ããããã€
æé ïŒïŒEBã§äœæããEC2ã«ããŠã³ãããEFSã®å
±æãã¡ã€ã«ã¹ãã¬ãŒãžã«å€§å®¹éã¢ãã«ãã¢ããããŒã
æé ïŒïŒå€§å®¹éã¢ãã«ãçšæ
ãŸãã¯ã¢ãã«ããŒã¿ãæå
ã«çšæããŸãããã
ä»åã¯yoheikikutaæ°ãå
¬éããŠããBERTã¢ãã«ãšSentencePieceã¢ãã« ãå©çšããŸãã
次ã®æé ã®ã¢ãã«ç®¡çãã£ã¬ã¯ã ãªã§ç€ºãããŒã¿ïŒwiki-ja.txt
以å€ïŒãããŠã³ããŒãããŠã解åããŠãããŠãã ããã
æé ïŒïŒAPI ãæ§ç¯
ããŠã³ããŒãããã¢ãã«ã䜿ã£ãŠãæç« ã®é¡äŒŒåºŠãèšç®ããAPI ãæ§ç¯ããŸãã
ç§ã®æ¹ã§BERTã®å
¬åŒGithubãªããžã㪠ã®exampleãå©çšãããµã³ãã«ã³ãŒããçšæããŸããã®ã§ããã¡ããcloneãŸãã¯zipããŠã³ããŒãããŠãããŠãã ããã
çšæãããµã³ãã«ã¯ã次ã®ãããªãã£ã¬ã¯ã ãªæ§æã«ãªã£ãŠããŸãã
.
âââ README.md
âââ application.py
âââ bert_script
â  âââ extract_features.py
â  âââ modeling.py
â  âââ params.py
â  âââ tokenization.py
â  âââ util.py
âââ efs
â  âââ config.json
â  âââ sp
â  âââ wiki-ja.txt
âââ requirements.txt
ãã®ãã£ã¬ã¯ã ãªã§ããŸãã¯ããŒã«ã«ãµãŒããç«ãŠãŠã¿ãŸãããã
ã¯ããã«ã./efs
ã«æé ïŒã§çšæããã¢ãã«ãé
眮ããŸãã
ã²ãšãŸãã次ã®ããã«åã¢ãã«ãé
眮ããŠãã ããã
efs
âââ config.json
âââ model
â  âââ model.ckpt-1400000.data-00000-of-00001
â  âââ model.ckpt-1400000.index
â  âââ model.ckpt-1400000.meta
âââ sp
âââ wiki-ja.model
âââ wiki-ja.txt
âââ wiki-ja.vocab
é
眮ãã§ããã ./requirements.txt
ã«æžãããããã±ãŒãžãã€ã³ã¹ããŒã«ãã./application.py
ãå®è¡ããããšã§ãããŒã«ã«ã®FlaskãµãŒããç«ã¡äžãããŸãã
次ã«ãç«ã¡äžãã£ãFlaskãµãŒãã«å¯ŸããŠã次ã®curl ã³ãã³ããå®è¡ããŠã¿ãŸãããã
$ curl -X POST -H " Content-Type: application/json " \
-d ' {"target":"ç³ã¿èŸŒã¿ã®éæäœ", "texts":["éç³ã¿èŸŒã¿", "転眮ç³ã¿èŸŒã¿"]} ' \
http://127 .0 .0 .1:5000/sim
äžèšã¯ã/sim
ãšããã«ãŒãã«å¯Ÿã㊠{"target":"ç³ã¿èŸŒã¿ã®éæäœ", "texts":["éç³ã¿èŸŒã¿", "転眮ç³ã¿èŸŒã¿"]}
ãPOSTã§éä¿¡ããã³ãã³ãã§ãã
ãã®ã³ãã³ããå®è¡ãããšã次ã®ãããªã¬ã¹ãã³ã¹ãFlaskãµãŒãããè¿ã£ãŠããŸãã
{
"context ": {
"sims ": [
0.8242325821278749 ,
0.7423576157777433
] ,
"target ": "ç³ã¿èŸŒã¿ã®éæäœ ",
"texts ": [
"éç³ã¿èŸŒã¿ ",
"転眮ç³ã¿èŸŒã¿ "
]
} ,
"type ": "sentence similarity "
}
ã¬ã¹ãã³ã¹ã«ã¯æå®ããæç« ïŒcontext.targetïŒããããã«å¯Ÿããåæç« ïŒcontext.textsïŒã®é¡äŒŒåºŠïŒcontext.simsïŒãªã©ãå«ãŸããŠããŸãã
ãããè¿ã£ãŠããã°ãã²ãšãŸãFlaskãµãŒãå
ã§åãã³ãŒãã®å®è¡ã«ã¯åé¡ããªãã¯ãã§ãã
ãããã³ãŒãã®è©³ãã説æã¯æ¬çš¿ã®è¶£æšãšç°ãªãããé¿ããŸãããäžèšã® curl
ãªã¯ãšã¹ ããåãåãããã®ã¬ã¹ãã³ã¹ãè¿ãåŠçã®æµããè¡šãã³ãŒãã ãæç²ããŠè§£èª¬ããŸãã
äžèšã«æç²ããã®ã¯ãFlaskã§HTTPãªã¯ãšã¹ ããå¶åŸ¡ãã ./application.py
ãšããã¹ã¯ãªãã ã®ã¹ãããã ã§ãã
class convert_to_simlarity :
def __init__ (self):
self.output = {"target" : None , "texts" : None }
def from_texts (self, target, texts):
self.output["target" ] = target
self.output["texts" ] = texts
self.output["sims" ] = self.texts2similarity()
return self.output
def texts2similarity (self):
body = [self.output["target" ]] + self.output["texts" ]
raw_features = get_futures(BERT_PRAMS, body)
cls_features = []
for raw_feature in raw_features:
cls_feature = list (
filter (
lambda layer:
layer["token" ] == "[CLS]" ,
raw_feature["features" ]
)
)
cls_features.append(cls_feature[0 ])
simlarities = calc_simlarity(cls_features[0 ], cls_features[1 :])
return simlarities
req = convert_to_simlarity()
application = Flask(__name__)
application.add_url_rule(
"/sim" ,
"similarity" ,
(
lambda : jsonify(
{
"type" : "sentence similarity" ,
"context" : req.from_texts(
request.get_json()["target" ],
request.get_json()["texts" ],
),
}
)
),
methods=["POST" ],
)
äžèšã§ã¯ãååã§å®çŸ©ããã€ã³ã¹ã¿ã³ã¹ ãªããžã§ã¯ãããåŸåã§endpointãšã«ãŒãã£ã³ã°ããlambdaé¢æ°ã«çŽä»ããããŠããŸãã
ååã®ã€ã³ã¹ã¿ã³ã¹ ãªããžã§ã¯ãã¯ãåãåã£ãæç« ãåã蟌ã¿è¡šçŸïŒæ°å€ãã¯ãã«ïŒã«å€æãããããããé¡äŒŒåºŠãèšç®ããæ§æã§ãã
ãã ãã[CLS]
ããŒã¯ ã³ãäžã€ã®æç« å
šäœã®åã蟌ã¿è¡šçŸãšããŠæ±ããŸããã
ïŒãã®é¡äŒŒåºŠã®ç®åºæ¹æ³ã«ã¯è°è«ããããŸãããBERT CLS similarityããªã©ã§æ€çŽ¢ããŠã¿ãŠãã ããïŒ
ãŸããé¡äŒŒåºŠã®èšç®ã«ã¯ã³ãµã€ã³é¡äŒŒåºŠãçšããŠããŸãã
åŸåã®ã«ãŒãã£ã³ã°ã¯ãFlaskã®add_url_ruleã¡ãœãã ã«æ²¿ã£ãå
容ã§ãã
/sim
ãšããã«ãŒãã®endpointã§POSTãåãåããšãlambdaé¢æ°ãçºç«ããããã«èšå®ãããŠããŸãã
ãã® ./application.py
ãèµ·ç¹ã«ãBERTã¢ãã«ãçšããé¡äŒŒåºŠã®èšç®ãããAPI ãèµ·åããããã§ããã詳ããã¯ã³ãŒããèªãã§ç¢ºèªã¿ãŠããŠãã ããã
æé ïŒïŒEBã«å€§å®¹éã¢ãã«ä»¥å€ããããã€
EBã« efs
ãã£ã¬ã¯ã ãªäžã«ããã¢ãã«é¡ä»¥å€ã®ãã¡ã€ã«ããããã€ããŸãã
ãã ä»åçšæããŠãããµã³ãã«ã§ã¯ãEBãžãããã€ããåã«ã説æã®äŸ¿å®äžã¢ãã«ã®ãã¹ãå€æŽããŸãã
./bert_script/modeling.py
ã«æžããããã¹ãã次ã®ããã«å€æŽããŠãããŠãã ããã
BERT_PRAMS = {
'vocab_file' : '/efs/sp/wiki-ja.txt' ,
'model_file' : '/efs/sp/wiki-ja.model' ,
'bert_config_file' : '/efs/config.json' ,
'init_checkpoint' : '/efs/model/model.ckpt-1400000' ,
...
}
ãããšèŠãŠåããã¥ããã§ãããçžå¯Ÿãã¹ ãã絶察ãã¹ ã«å€æŽããã ãã§ãã
ãããã€ãŸã§ã®ããã»ã¹ã¯ã次ã®AWS å
¬åŒéçºè
ã¬ã€ãã«ç€ºãããŠããã®ã§ããã¡ããåç
§ããŠãã ããã
ãã®éãEB CLI
ãäºåã«ã€ã³ã¹ããŒã«ããŠããå¿
èŠããããŸãããã¡ãã®æé ãå
¬åŒã®éçºè
ã¬ã€ããåç
§ããŠãã ããã
æé ïŒïŒEBã§äœæããEC2ã«ããŠã³ãããEFSã®å
±æãã¡ã€ã«ã¹ãã¬ãŒãžã«å€§å®¹éã¢ãã«ãã¢ããããŒã
EBã§äœæããEC2ã€ã³ã¹ã¿ã³ã¹ ã«å¯ŸããŠEFSã®å
±æãã¡ã€ã«ã¹ãã¬ãŒãžãããŠã³ããããã®ã¹ãã¬ãŒãžã« efs
ãã£ã¬ã¯ã ãªäžã«ãã£ãã¢ãã«é¡ãã¢ããããŒãããŸãã
ãŸãã¯å
¬åŒã®éçºè
ã¬ã€ãã«åŸã£ãŠãEFSãã¡ã€ã«ã·ã¹ãã ãäœæããŸãã
EFSãã¡ã€ã«ã·ã¹ãã ãäœæãçµãã£ãããäžå³ã§ç€ºããªã³ã¯ã§è¡šç€ºãããã¢ãŒãã«ãéããŠãã ããã
ãã®ã¢ãŒãã«ã«æžãããæ¡å
ã«æ²¿ã£ãŠãEC2ã«å
±æãã¡ã€ã«ã¹ãã¬ãŒãžãããŠã³ãããŸãã
EC2ã€ã³ã¹ã¿ã³ã¹ ã®ããŠã³ãæé ãžã®å°ç·ïŒ2020幎2æ12æ¥çŸåšã®UIïŒ
ãã ãã®åã«ãEC2ããEFSã®ãã¡ã€ã«ã¹ãã¬ãŒãžã«æ¥ç¶ã§ããããã«ãã»ãã¥ãªãã£ã°ã«ãŒãã«ã«ãŒã«ãè¿œå ããŠãNFS ããŒãïŒ2049çªããŒãïŒãžã®ã€ã³ããŠã³ããã©ãã£ã㯠ãèš±å¯ããå¿
èŠããããŸãã
EFSã®ããŠã³ãã¿ãŒã²ããã«å²ãåœãŠãã»ãã¥ãªãã£ã°ã«ãŒã
ãŸãããã®åŸã«èªåã®PCããEC2ã«ssh æ¥ç¶ããããã®ã«ãŒã«ãè¿œå ããŸããSSH ããŒãïŒ22çªããŒãïŒã«ãã€IPããã®ã€ã³ããŠã³ããã©ãã£ã㯠ãèš±å¯ããŠãããŸãããã
ãããããŸã§EC2ã®ããŒãã¢ãäœæããããšããªãå Žåã¯ãSSH ããŒãã®èšå®ã®åã«ã次ã®ã¬ã€ãã«åŸã£ãŠäœæããŠãããŠãã ããã
EC2ã«å²ãåœãŠãã»ãã¥ãªãã£ã°ã«ãŒã
ããŠãã¢ãŒãã«ã«æžãããæ¡å
ã«æ»ããŸããè£è¶³ãå ããæé ã次ã®éãã§ãã
1. EC2ã€ã³ã¹ã¿ã³ã¹ ã«ssh æ¥ç¶
EB CLI ã®eb ssh ã³ãã³ãã䜿ããšæ¥œã«æ¥ç¶ã§ããã®ã§ãå§ãã
2. ããŠã³ãã«äœ¿ã空ã®ãã£ã¬ã¯ã ãªãçšæ
ssh æ¥ç¶ããEC2å
㧠sudo mkdir efs
ã³ãã³ããå®è¡ããchmod 755 efs
ã³ãã³ãã§ããŒããã·ã§ã³ ã解æŸããŠããã
3. EFSããŠã³ããã«ããŒãã€ã³ã¹ããŒã«
sudo yum install -y amazon-efs-utils
ã³ãã³ããå®è¡ããŠã€ã³ã¹ããŒã«ã
4. EFSããŠã³ããã«ããŒã§ããŠã³ã
sudo mount -t efs fs-********:/ efs
ã³ãã³ããå®è¡ããŠããŠã³ãã
äžèšã®æé ãã§ããããssh æ¥ç¶ãããŸãŸ df -h
ã³ãã³ããå®è¡ããŠããŠã³ãã§ããŠããã確èªããŠã¿ãŠãã ããã
/efs
ã«å®¹éã®å€§ããªãã£ã¹ã¯ãããŠã³ããããŠããã°ããã®æé ã¯å®äºã§ãã
ãã ãEC2ã¯AWS ã®ã¡ã³ããã³ã¹ãªã©ã§åèµ·åãããããšãããããã®ãŸãŸã§ã¯åèµ·åã®ãã³ã«ããŠã³ããçŽãã¿ã¹ã¯ãçºçããŠããŸããŸãã
ãã®å¯Ÿå¿çãšããŠãèªåããŠã³ãã®èšå®ãããŠãããšåŸã
楜ã§ãã詳ããã¯ãå
¬åŒã®éçºã¬ã€ããåç
§ããŠãã ããã
ãããŸã§ã§ããããexit
ã³ãã³ãã§ãã°ã¢ãŠãããŠããŸã£ãŠãã ããã
æåŸã«ããŠã³ãããå
±æãã¡ã€ã«ã¹ãã¬ãŒãžã«ã¢ãã«é¡ãã¢ããããŒãããŸãã
ã¢ããããŒã㯠scp
ã³ãã³ãã§ãã¢ãã«é¡ãå«ãã efs
ãã£ã¬ã¯ã ãªãŸãããšè¡ããŸãã
./efs
ãã£ã¬ã¯ã ãªçŽäžã§ã次ã®ã³ãã³ããå®è¡ããŠãã ããã
$ scp -r \
-i [ ããŒãã¢ã§èšå®ããç§å¯éµã®ãã¹ (ex. ~/.ssh/***.pem)] \
. ec2-user@[ public IP (ex. xxx.xxx.xxx.xxx)] :/efs
ã¡ãªã¿ã«ç§å¯éµ ã®ãã¹ãpublic IPã¯ãåã« eb ssh
ã³ãã³ããå®è¡ããçŽåŸã®ã³ãã³ãã©ã€ã³ ã«è¡šç€ºãããŠããŸãã
ãã°ã蟿ã£ãŠã³ããŒããŠããŸããŸãããã
以äžã§ãEBãšEFSãçšããã·ã¹ãã æ§æã®æ§æã«åã£ãç°å¢æ§ç¯ãå®äºã§ãããç²ãæ§ã§ããã
å®è¡ãã¹ã
æ§ç¯ããAPI ãµãŒãã«å¯ŸããŠãcurl ã³ãã³ããå®è¡ããŠã¿ãŸãããã
$ curl -X POST -H " Content-Type: application/json " \
-d ' {"target":"ç³ã¿èŸŒã¿ã®éæäœ", "texts":["éç³ã¿èŸŒã¿", "転眮ç³ã¿èŸŒã¿"]} ' \
http://app-name.***.region.elasticbeanstalk.com/sim
endpointãšãªãURLã¯ãEBã®ã¢ããªç®¡çç»é¢ããååŸã§ããŸãã
ãããã«
æ¬ç« ã§ã¯ãAWS ã§å€§å®¹éã¢ãã«ãéçšãããµãŒãã¬ã¹ã¢ãŒããã¯ã㣠ãšããã®æ§ç¯æ¹æ³ã瀺ããŸããã
æ§ç¯æ¹æ³ã¯ãå
·äœäŸãšããŠãæ¥æ¬èªã§å
¥åãããæç« å士ã®é¡äŒŒåºŠãBERTã¢ãã«ã§èšç®ããŠåºåããAPI ãã®éçºããæé ã玹ä»ããå®è·µã«å³ããå
容ã«ããŸããã
ãã¡ããå
·äœäŸã§ç€ºããæ¹æ³ä»¥å€ã«ãå®è£
æ¹æ³ã¯è²ã
ããã®ã§ãçããã®å¥œã¿ã®æ¹æ³ã§å®è£
ããŠã¿ãŠãã ããã
è¿œèšïŒ2020/06/25ïŒ
Lambdaã«EFSãããŠã³ãã§ããããã«ãªã£ãããã§ãã
æ©éãå©çšããŠã¿ããšã®äºäŸããããŸãããçŽ æŽãããð