Copycats commited on
Commit
d01bebb
β€’
1 Parent(s): bfe4f62

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -8
app.py CHANGED
@@ -8,11 +8,10 @@ def get_model():
8
  # Load fine-tuned MRC model by HuggingFace Model Hub
9
  HUGGINGFACE_MODEL_PATH = "bespin-global/klue-bert-base-aihub-mrc"
10
  tokenizer = AutoTokenizer.from_pretrained(HUGGINGFACE_MODEL_PATH)
11
- model = AutoModelForQuestionAnswering.from_pretrained(HUGGINGFACE_MODEL_PATH).to(device)
12
 
13
  return tokenizer, model
14
 
15
- device = torch.device('cuda') if torch.cuda.is_available() else torch.device('cpu')
16
  tokenizer, model = get_model()
17
 
18
 
@@ -55,8 +54,8 @@ st.write('[⚑bespin-global/klue-bert-base-aihub-mrc](https://huggingface.co/bes
55
 
56
  context_option = st.selectbox(' πŸ“‘ Select Context Examples.',
57
  (
58
- 'μŠ€ν‹°λΈ 폴 μŠ€ν‹°λΈŒ 작슀(μ˜μ–΄:Β Steven Paul "Steve" Jobs,Β 1955λ…„Β 2μ›” 24일 ~Β 2011λ…„Β 10μ›” 5일)λŠ”Β λ―Έκ΅­μ˜Β κΈ°μ—…μΈμ΄μ—ˆμœΌλ©°Β μ• ν”Œμ˜ μ „ CEO이자 곡동 μ°½λ¦½μžμ΄λ‹€.Β 2011λ…„Β 10μ›” 5일 췌μž₯μ•”μœΌλ‘œ μ‚¬λ§ν–ˆλ‹€. 1976λ…„Β μŠ€ν‹°λΈŒ μ›Œμ¦ˆλ‹ˆμ•…,Β λ‘œλ„λ“œ 웨인과 ν•¨κ»˜Β μ• ν”Œμ„ 곡동 μ°½μ—…ν•˜κ³ ,Β μ• ν”Œ 2λ₯Ό ν†΅ν•΄Β κ°œμΈμš© 컴퓨터λ₯Ό λŒ€μ€‘ν™”ν–ˆλ‹€. λ˜ν•œ,Β GUIμ™€Β λ§ˆμš°μŠ€μ˜ κ°€λŠ₯성을 처음으둜 λ‚΄λ‹€λ³΄κ³ Β μ• ν”Œ λ¦¬μ‚¬μ™€Β λ§€ν‚¨ν† μ‹œμ—μ„œ 이 κΈ°μˆ μ„ λ„μž…ν•˜μ˜€λ‹€.Β 1986λ…„Β κ²½μ˜λΆ„μŸμ— μ˜ν•΄ μ• ν”Œμ—μ„œ λ‚˜μ˜¨ 이후 NeXT 컴퓨터λ₯Ό μ°½μ—…ν•˜μ—¬ μƒˆλ‘œμš΄ κ°œλ…μ˜ 운영 체제λ₯Ό κ°œλ°œν–ˆλ‹€.Β 1996λ…„Β μ• ν”Œμ΄ NeXTλ₯Ό μΈμˆ˜ν•˜κ²Œ λ˜λ©΄μ„œ λ‹€μ‹œ μ• ν”Œλ‘œ λŒμ•„μ˜€κ²Œ λ˜μ—ˆκ³  1997λ…„μ—λŠ” μž„μ‹œ CEO둜 μ• ν”Œμ„ λ‹€μ‹œ 이끌게 λ˜μ—ˆμœΌλ©° 이후 λ‹€μ‹œκΈˆ μ• ν”Œμ„ ν˜μ‹ ν•΄ μ‹œμž₯μ—μ„œ 성곡을 κ±°λ‘κ²Œ μ΄λŒμ—ˆλ‹€. 2001λ…„Β μ•„μ΄νŒŸμ„ μΆœμ‹œν•˜μ—¬ μŒμ•… μ‚°μ—… 전체λ₯Ό λ’€λ°”κΎΈμ–΄ λ†“μ•˜λ‹€. λ˜ν•œ, 2007년 아이폰을 μΆœμ‹œν•˜λ©΄μ„œ 슀마트폰 μ‹œμž₯을 λ°”κΎΈμ–΄ λ†“μ•˜κ³  2010λ…„Β μ•„μ΄νŒ¨λ“œλ₯Ό μΆœμ‹œν•¨μœΌλ‘œμ¨Β ν¬μŠ€νŠΈPC μ‹œλŒ€(Post-PC era)λ₯Ό μ—΄μ—ˆλ‹€. μŠ€ν‹°λΈŒ μž‘μŠ€λŠ” μ• λ‹ˆλ©”μ΄μ…˜ μ˜ν™” γ€ŠμΈν¬λ ˆλ”λΈ”γ€‹κ³Ό γ€Šν† μ΄ μŠ€ν† λ¦¬γ€‹ 등을 μ œμž‘ν•œΒ μ»΄ν“¨ν„° μ• λ‹ˆλ©”μ΄μ…˜Β μ œμž‘μ‚¬μΈΒ ν”½μ‚¬μ˜ μ†Œμœ μ£Όμ΄μžΒ CEOμ˜€λ‹€.Β μ›”νŠΈ λ””μ¦ˆλ‹ˆ νšŒμ‚¬λŠ” 74μ–΅ λ‹¬λŸ¬μ–΄μΉ˜μ˜ μžμ‚¬ μ£Όμ‹μœΌλ‘œ 이 νšŒμ‚¬λ₯Ό κ΅¬μž…ν•˜μ˜€λ‹€.Β 2006λ…„Β 6μ›” 이 κ±°λž˜κ°€ μ™„λ£Œλ˜μ–΄ μž‘μŠ€λŠ” 이 거래λ₯Ό 톡해 λ””μ¦ˆλ‹ˆ μ§€λΆ„μ˜ 7%λ₯Ό μ†Œμœ ν•œ, μ΅œλŒ€μ˜ 개인 주주이자 λ””μ¦ˆλ‹ˆ μ΄μ‚¬νšŒμ˜ 이사가 λ˜μ—ˆλ‹€. ν•œνŽΈ κ·ΈλŠ”Β 2003λ…„Β λ¬΄λ ΅λΆ€ν„°Β μ·Œμž₯μ•”μœΌλ‘œ νˆ¬λ³‘μƒν™œμ„ 이어왔닀. 그의 μ•…ν™”λœ κ±΄κ°•μƒνƒœλ‘œ μΈν•˜μ—¬Β 2011λ…„Β 8μ›” 24일 μ• ν”Œμ€ μŠ€ν‹°λΈŒ μž‘μŠ€κ°€ μ΅œκ³ κ²½μ˜μ±…μž„μž(CEO)λ₯Ό μ‚¬μž„ν•˜κ³  μ΅œκ³ μš΄μ˜μ±…μž„μž(COO)μΈΒ νŒ€ 쿑이 μƒˆλ‘œμš΄ CEOλ₯Ό λ§‘λŠ”λ‹€κ³  λ°ν˜”λ‹€. μž‘μŠ€λŠ” CEOμ§μ—μ„œ λ¬ΌλŸ¬λ‚˜μ§€λ§Œ μ΄μ‚¬νšŒ 의μž₯직은 μœ μ§€μ‹œν‚€κΈ°λ‘œ ν–ˆμœΌλ‚˜, κ±΄κ°•μƒνƒœκ°€ λ”μš± μ•…ν™”λ˜μ–΄ μ‚¬μž„ 2κ°œμ›”λ„ μ§€λ‚˜μ§€ μ•Šμ€Β 2011λ…„Β 10μ›” 5일 ν–₯λ…„ 56μ„Έμ˜ λ‚˜μ΄λ‘œ μ‚¬λ§ν–ˆλ‹€.',
59
- 'λΉ„νŠΈμ½”μΈμ€Β 2009λ…„Β μ‚¬ν† μ‹œ λ‚˜μΉ΄λͺ¨ν† [6]κ°€ λ§Œλ“ Β κ°€μƒν™”νλ‘œ, 톡화λ₯Ό λ°œν–‰ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 쀑앙 μž₯μΉ˜κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” ꡬ쑰λ₯Ό 가지고 μžˆλ‹€. λŒ€μ‹ , λΉ„νŠΈμ½”μΈμ˜ κ±°λž˜λŠ”Β P2PΒ κΈ°λ°˜Β λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€μ— μ˜ν•΄ 이루어지며, 곡개 ν‚€ μ•”ν˜Έ λ°©μ‹Β κΈ°λ°˜μœΌλ‘œ 거래λ₯Ό μˆ˜ν–‰ν•œλ‹€. λΉ„νŠΈμ½”μΈμ€ κ³΅κ°œμ„±μ„ 가지고 μžˆλ‹€. λΉ„νŠΈμ½”μΈμ€ 지갑 파일의 ν˜•νƒœλ‘œ μ €μž₯되며, 이 μ§€κ°‘μ—λŠ” 각각의 고유 μ£Όμ†Œκ°€ λΆ€μ—¬λ˜λ©°, κ·Έ μ£Όμ†Œλ₯Ό 기반으둜 λΉ„νŠΈμ½”μΈμ˜ κ±°λž˜κ°€ 이루어진닀. λΉ„νŠΈμ½”μΈμ€ 1998λ…„ 웨이따이가 μ‚¬μ΄λ²„νŽ‘ν¬ 메일링 λ¦¬μŠ€νŠΈμ— μ˜¬λ¦°Β μ•”ν˜Έν†΅ν™”(cryptocurrency)λž€ ꡬ상을 졜초둜 κ΅¬ν˜„ν•œ 것 μ€‘μ˜ ν•˜λ‚˜μ΄λ‹€.[7][8] λΉ„νŠΈμ½”μΈμ€Β κ³΅κ°œ ν‚€ μ•”ν˜Έ 방식을 μ΄μš©ν•΄ 곡개된 계정간에 거래λ₯Ό ν•œλ‹€. λͺ¨λ“  κ±°λž˜λŠ” λΉ„κ³΅κ°œμ μ΄λ‚˜ 거래의 기둝은 λ‚¨μœΌλ©°,Β λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λœλ‹€.Β λΆ„μ‚°λœ μ‹œκ°„μ„œλ²„λ‘œ μΌλ ¨μ˜Β μž‘μ—…μ¦λͺ…(proof-of-work)을 ν•˜μ—¬ μ€‘λ³΅μ§€μΆœ(double-spending)을 λ°©μ§€ν•œλ‹€. 거래 기둝은 λͺ¨λ‘ λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λ˜μ–΄μ•Ό ν•œλ‹€. μ €μž₯μ†Œ 크기λ₯Ό 쀄이기 μœ„ν•΄Β λ¨Έν΄ 트리(Merkle tree)κ°€ μ‚¬μš©λœλ‹€.'
60
  )
61
  )
62
  # Text Input
@@ -85,11 +84,29 @@ if st.button("Submit", key='question'):
85
  try:
86
  # Progress spinner
87
  with st.spinner('Wait for it...'):
88
- qa_text_pair = {'context':context, 'question':question}
89
- result = predict_answer(qa_text_pair)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
  # answer
92
- st.success(result['answer_text'])
93
 
94
  except Exception as e:
95
- st.error(e)
 
8
  # Load fine-tuned MRC model by HuggingFace Model Hub
9
  HUGGINGFACE_MODEL_PATH = "bespin-global/klue-bert-base-aihub-mrc"
10
  tokenizer = AutoTokenizer.from_pretrained(HUGGINGFACE_MODEL_PATH)
11
+ model = AutoModelForQuestionAnswering.from_pretrained(HUGGINGFACE_MODEL_PATH)
12
 
13
  return tokenizer, model
14
 
 
15
  tokenizer, model = get_model()
16
 
17
 
 
54
 
55
  context_option = st.selectbox(' πŸ“‘ Select Context Examples.',
56
  (
57
+ 'μŠ€ν‹°λΈ 폴 μŠ€ν‹°λΈŒ 작슀(μ˜μ–΄: Steven Paul "Steve" Jobs, 1955λ…„ 2μ›” 24일 ~ 2011λ…„ 10μ›” 5일)λŠ” 미ꡭ의 κΈ°μ—…μΈμ΄μ—ˆμœΌλ©° μ• ν”Œμ˜ μ „ CEO이자 곡동 μ°½λ¦½μžμ΄λ‹€. 2011λ…„ 10μ›” 5일 췌μž₯μ•”μœΌλ‘œ μ‚¬λ§ν–ˆλ‹€. 1976λ…„ μŠ€ν‹°λΈŒ μ›Œμ¦ˆλ‹ˆμ•…, λ‘œλ„λ“œ 웨인과 ν•¨κ»˜ μ• ν”Œμ„ 곡동 μ°½μ—…ν•˜κ³ , μ• ν”Œ 2λ₯Ό 톡해 개인용 컴퓨터λ₯Ό λŒ€μ€‘ν™”ν–ˆλ‹€. λ˜ν•œ, GUI와 마우슀의 κ°€λŠ₯성을 처음으둜 내닀보고 μ• ν”Œ 리사와 λ§€ν‚¨ν† μ‹œμ—μ„œ 이 κΈ°μˆ μ„ λ„μž…ν•˜μ˜€λ‹€. 1986λ…„ κ²½μ˜λΆ„μŸμ— μ˜ν•΄ μ• ν”Œμ—μ„œ λ‚˜μ˜¨ 이후 NeXT 컴퓨터λ₯Ό μ°½μ—…ν•˜μ—¬ μƒˆλ‘œμš΄ κ°œλ…μ˜ 운영 체제λ₯Ό κ°œλ°œν–ˆλ‹€. 1996λ…„ μ• ν”Œμ΄ NeXTλ₯Ό μΈμˆ˜ν•˜κ²Œ λ˜λ©΄μ„œ λ‹€μ‹œ μ• ν”Œλ‘œ λŒμ•„μ˜€κ²Œ λ˜μ—ˆκ³  1997λ…„μ—λŠ” μž„μ‹œ CEO둜 μ• ν”Œμ„ λ‹€μ‹œ 이끌게 λ˜μ—ˆμœΌλ©° 이후 λ‹€μ‹œκΈˆ μ• ν”Œμ„ ν˜μ‹ ν•΄ μ‹œμž₯μ—μ„œ 성곡을 κ±°λ‘κ²Œ μ΄λŒμ—ˆλ‹€. 2001λ…„ μ•„οΏ½οΏ½οΏ½νŒŸμ„ μΆœμ‹œν•˜μ—¬ μŒμ•… μ‚°μ—… 전체λ₯Ό λ’€λ°”κΎΈμ–΄ λ†“μ•˜λ‹€. λ˜ν•œ, 2007λ…„ 아이폰을 μΆœμ‹œν•˜λ©΄μ„œ 슀마트폰 μ‹œμž₯을 λ°”κΎΈμ–΄ λ†“μ•˜κ³  2010λ…„ μ•„μ΄νŒ¨λ“œλ₯Ό μΆœμ‹œν•¨μœΌλ‘œμ¨ 포슀트PC μ‹œλŒ€(Post-PC era)λ₯Ό μ—΄μ—ˆλ‹€. μŠ€ν‹°λΈŒ μž‘μŠ€λŠ” μ• λ‹ˆλ©”μ΄μ…˜ μ˜ν™” γ€ŠμΈν¬λ ˆλ”λΈ”γ€‹κ³Ό γ€Šν† μ΄ μŠ€ν† λ¦¬γ€‹ 등을 μ œμž‘ν•œ 컴퓨터 μ• λ‹ˆλ©”μ΄μ…˜ μ œμž‘μ‚¬μΈ ν”½μ‚¬μ˜ μ†Œμœ μ£Όμ΄μž CEOμ˜€λ‹€. μ›”νŠΈ λ””μ¦ˆλ‹ˆ νšŒμ‚¬λŠ” 74μ–΅ λ‹¬λŸ¬μ–΄μΉ˜μ˜ μžμ‚¬ μ£Όμ‹μœΌλ‘œ 이 νšŒμ‚¬λ₯Ό κ΅¬μž…ν•˜μ˜€λ‹€. 2006λ…„ 6μ›” 이 κ±°λž˜κ°€ μ™„λ£Œλ˜μ–΄ μž‘μŠ€λŠ” 이 거래λ₯Ό 톡해 λ””μ¦ˆλ‹ˆ μ§€λΆ„μ˜ 7%λ₯Ό μ†Œμœ ν•œ, μ΅œλŒ€μ˜ 개인 주주이자 λ””μ¦ˆλ‹ˆ μ΄μ‚¬νšŒμ˜ 이사가 λ˜μ—ˆλ‹€. ν•œνŽΈ κ·ΈλŠ” 2003λ…„ 무렡뢀터 췌μž₯μ•”μœΌλ‘œ νˆ¬λ³‘μƒν™œμ„ 이어왔닀. 그의 μ•…ν™”λœ κ±΄κ°•μƒνƒœλ‘œ μΈν•˜μ—¬ 2011λ…„ 8μ›” 24일 μ• ν”Œμ€ μŠ€ν‹°λΈŒ μž‘μŠ€κ°€ μ΅œκ³ κ²½μ˜μ±…μž„μž(CEO)λ₯Ό μ‚¬μž„ν•˜κ³  μ΅œκ³ μš΄μ˜μ±…μž„μž(COO)인 νŒ€ 쿑이 μƒˆλ‘œμš΄ CEOλ₯Ό λ§‘λŠ”λ‹€κ³  λ°ν˜”λ‹€. μž‘μŠ€λŠ” CEOμ§μ—μ„œ λ¬ΌλŸ¬λ‚˜μ§€λ§Œ μ΄μ‚¬νšŒ 의μž₯직은 μœ μ§€μ‹œν‚€κΈ°λ‘œ ν–ˆμœΌλ‚˜, κ±΄κ°•μƒνƒœκ°€ λ”μš± μ•…ν™”λ˜μ–΄ μ‚¬μž„ 2κ°œμ›”λ„ μ§€λ‚˜μ§€ μ•Šμ€ 2011λ…„ 10μ›” 5일 ν–₯λ…„ 56μ„Έμ˜ λ‚˜μ΄λ‘œ μ‚¬λ§ν–ˆλ‹€.',
58
+ 'λΉ„νŠΈμ½”μΈμ€ 2009λ…„ μ‚¬ν† μ‹œ λ‚˜μΉ΄λͺ¨ν† [6]κ°€ λ§Œλ“  κ°€μƒν™”νλ‘œ, 톡화λ₯Ό λ°œν–‰ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 쀑앙 μž₯μΉ˜κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” ꡬ쑰λ₯Ό 가지고 μžˆλ‹€. λŒ€μ‹ , λΉ„νŠΈμ½”μΈμ˜ κ±°λž˜λŠ” P2P 기반 λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€μ— μ˜ν•΄ 이루어지며, 곡개 ν‚€ μ•”ν˜Έ 방식 기반으둜 거래λ₯Ό μˆ˜ν–‰ν•œλ‹€. λΉ„νŠΈμ½”μΈμ€ κ³΅κ°œμ„±μ„ 가지고 μžˆλ‹€. λΉ„νŠΈμ½”μΈμ€ 지갑 파일의 ν˜•νƒœλ‘œ μ €μž₯되며, 이 μ§€κ°‘μ—λŠ” 각각의 고유 μ£Όμ†Œκ°€ λΆ€μ—¬λ˜λ©°, κ·Έ μ£Όμ†Œλ₯Ό 기반으둜 λΉ„νŠΈμ½”μΈμ˜ κ±°λž˜κ°€ 이루어진닀. λΉ„νŠΈμ½”μΈμ€ 1998λ…„ 웨이따이가 μ‚¬μ΄λ²„νŽ‘ν¬ 메일링 λ¦¬μŠ€νŠΈμ— 올린 μ•”ν˜Έν†΅ν™”(cryptocurrency)λž€ ꡬ상을 졜초둜 κ΅¬ν˜„ν•œ 것 μ€‘μ˜ ν•˜λ‚˜μ΄λ‹€.[7][8] λΉ„νŠΈμ½”μΈμ€ 곡개 ν‚€ μ•”ν˜Έ 방식을 μ΄μš©ν•΄ 곡개된 계정간에 거래λ₯Ό ν•œλ‹€. λͺ¨λ“  κ±°λž˜λŠ” λΉ„κ³΅κ°œμ μ΄λ‚˜ 거래의 기둝은 λ‚¨μœΌλ©°, λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λœλ‹€. λΆ„μ‚°λœ μ‹œκ°„μ„œλ²„λ‘œ 일련의 μž‘μ—…μ¦λͺ…(proof-of-work)을 ν•˜μ—¬ μ€‘λ³΅μ§€μΆœ(double-spending)을 λ°©μ§€ν•œλ‹€. 거래 기둝은 λͺ¨λ‘ λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λ˜μ–΄μ•Ό ν•œλ‹€. μ €μž₯μ†Œ 크기λ₯Ό 쀄이기 μœ„ν•΄ 머클 트리(Merkle tree)κ°€ μ‚¬μš©λœλ‹€.'
59
  )
60
  )
61
  # Text Input
 
84
  try:
85
  # Progress spinner
86
  with st.spinner('Wait for it...'):
87
+ # Encoding
88
+ encodings = tokenizer(context, question,
89
+ max_length=512,
90
+ truncation=True,
91
+ padding="max_length",
92
+ return_token_type_ids=False
93
+ )
94
+ encodings = {key: torch.tensor([val]) for key, val in encodings.items()}
95
+ input_ids = encodings["input_ids"]
96
+ attention_mask = encodings["attention_mask"]
97
+
98
+ # Predict
99
+ pred = model(input_ids, attention_mask=attention_mask)
100
+
101
+ start_logits, end_logits = pred.start_logits, pred.end_logits
102
+ token_start_index, token_end_index = start_logits.argmax(dim=-1), end_logits.argmax(dim=-1)
103
+ pred_ids = input_ids[0][token_start_index: token_end_index + 1]
104
+
105
+ # Decoding
106
+ prediction = tokenizer.decode(pred_ids)
107
 
108
  # answer
109
+ st.success(prediction)
110
 
111
  except Exception as e:
112
+ st.error(e)