Spaces:
Runtime error
Runtime error
import streamlit as st | |
def get_pipe(): | |
from transformers import AutoTokenizer, AutoModelForCausalLM | |
model_name = "heegyu/ajoublue-gpt2-medium-summarization" | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
tokenizer.truncation_side = "right" | |
model = AutoModelForCausalLM.from_pretrained(model_name) | |
return model, tokenizer | |
def get_response(tokenizer, model, context): | |
context = f"๋ด์ฉ: {context}\n์์ฝ: " | |
inputs = tokenizer( | |
context, | |
truncation=True, | |
max_length=800, | |
return_tensors="pt") | |
generation_args = dict( | |
max_new_tokens=128, | |
min_length=inputs["input_ids"].shape[1] + 5, | |
eos_token_id=2, | |
do_sample=False, | |
num_beams=4, | |
early_stopping=True | |
) | |
outputs = model.generate(**inputs, **generation_args) | |
response = tokenizer.decode(outputs[0]) | |
print(context) | |
print(response) | |
response = response[len(context):].replace("</s>", "") | |
return response | |
st.title("ํ๊ตญ์ด ์์ฝ ๋ชจ๋ธ demo") | |
with st.spinner("loading model..."): | |
model, tokenizer = get_pipe() | |
input_ = st.text_area("์์ฝํ ๋ฌธ์ฅ์ ์ ๋ ฅํ์ธ์", value="๋ฏธ๊ตญ๊ณผ ์ค๊ตญ์ ๊ฐ๋ฑ์ด ๊ณณ๊ณณ์์ ๋ถ๊ฑฐ์ง๊ณ ์๋ค.\n๋จ์ค๊ตญํด์์ ๋ฌด๋ ฅ ์ถฉ๋๋ง์ ๋ฒ์ด์ง ๊ธฐ์ธ๋ค.\n์ด๋ฐ ๊ฐ๋ฑ์ ํํ '๋ฅ์คํธ ์ฐจ์ด๋'๋ฅผ ๊ฟ๊พธ๋ ๋๋ผ๋ค์ ์์ง์๋ ๋นจ๋ผ์ง๊ณ ์๋ค.\n๊ฐ์ฅ ๋์ ๋๋ ๊ณณ์ ๋ฒ ํธ๋จ์ด๋ค.\n๋ช ๋ ์ ๋ถํฐ '๋ฅ์คํธ ์ฐจ์ด๋'๋ก ๋ถ์ํด ์จ ๋ฒ ํธ๋จ์ ๋ฏธ์ค ๋ฌด์ญ์ ์์ ์ต๋ ์ํ๊ตญ ์ค ํ๋๋ก ๊ผฝํ๋ ๊ณณ์ด๋ค.\n ์ ํ์ด ๋ฒ ํธ๋จ์ผ๋ก ์์ฐ๊ณต์ฅ์ ์ฎ๊ธฐ๊ณ ์๊ณ LG์ ์, ํ์ปด ๋ฑ ๋ค๋ฅธ ๊ธ๋ก๋ฒ ๊ธฐ์ ๋ค๋ ๊ฐ์ธํ๊ณ ์๋ค.\n๋ฌด์๋ณด๋ค ํ๊ธฐ๋ฅผ ๋ง์ ๊ฑด ์๋ฅ์ฐ์ ์ด๋ค.\n์ฌ์ฐ์ค์ฐจ์ด๋๋ชจ๋ํฌ์คํธ(SCMP)๋ ์ต๊ทผ ๋ณด๋์์ \"๋ช ๊ฐ์ ์ ๊น์ง๋ง ํด๋ ๋ฏธ๊ตญ์ ์๋ฅ ์ ํ์ ๊ฐ์ฅ ๋ง์ด ์์ถํ๋ ๋๋ผ๋ ์ค๊ตญ์ด์์ง๋ง, ๋ฒ ํธ๋จ์ด ๋น ๋ฅด๊ฒ ์น๊ณ ์ฌ๋ผ์ค๊ณ ์๋ค\"๊ณ ์ค๋ช ํ๋ค.\n์ค๊ตญ ์ ํ์ด ์ฌ์ ํ ์ ์ผ ์ ํ๋ฆฌ๊ณ ๋ ์์ง๋ง \"์ด์๋จ๊ธฐ ์ํ ๋ชธ๋ถ๋ฆผ\"์ผ๋ก ๊ฐ๊ฒฉ์ ํฌ๊ฒ ๋ฎ์ถ ํ์ด๋ ๋ถ์์ด๋ค.\n๋ฒ ํธ๋จ์ ๊ฒฝ์๋ ฅ์ ์ ์ ๋ ์ปค์ง ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.\n์ ๋ฝ์ฐํฉ(EU)๊ณผ ์์ ๋ฌด์ญํ์ (8์ ๋ฐํจ)์ ๋งบ์ ๋ฐ๋ค, ์ธ๊ตญ์ธ ์ง์ ํฌ์๋ ๊ธ์ํ ๋๊ณ ์์ด์๋ค.\n์ด ๋๋ผ์ ์ต๋ ๊ฐ์ ์ ์ ์ ์ธ๊ตฌ๊ฐ ๋ง๊ณ ๋ฏธ๊ตญ๊ณผ ์ฐํธ์ ์ธ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋จ ์ ์ด๋ค.\n ์ ์น์ ์ผ๋ก๋ ๋น๊ต์ ์์ ๋ผ ์๋ค.\n ๋ฏธ์ค ๊ฐ๋ฑ์ด ๋ณธ๊ฒฉํํ ์ง๋ํด๋ถํฐ \"๋ฒ ํธ๋จ์ด ํฉ๊ธ๊ธฐ๋ฅผ ๋ง๊ณ ์๋ค\"(์์ฑํดํฌ์คํธ)๋ ๋ถ์์ด ๋์จ ์ด์ ๋ค.\n๋ ๋ค๋ฅธ ์์์ ๊ตญ๊ฐ ์ธ๋๋ ์ด ๊ธฐํ๋ฅผ ๋์น์ง ์์ผ๋ ค ํ๋ค.\n๊ตญ๊ฒฝ ๋ฌธ์ ๋ก ์ค๊ตญ๊ณผ ๊ฐ๋ฑ์ ๋น๊ณ ์๋ ์ธ๋๋ ๊ฑฐ๋ํ ์๊ตญ ์์ฅ์ ๋ฌด๊ธฐ๋ก ์ค๊ตญ ๊ธฐ์ ๋ค์ ์๋ฐํ๋ ํํธ, ์ด์ฐธ์ '๋ฅ์คํธ ์ฐจ์ด๋' ์๋ฆฌ๋ ๊ฟฐ์ฐจ๊ฒ ๋จ ์ผ์ฌ์ ๋ด๋ณด์ด๊ณ ์๋ค.\n์ต๊ทผ ํ๊ตญ์ํ์ ๋ณด๊ณ ์๋ฅผ ๋ด๊ณ \"๋ฏธ๊ตญ๊ณผ์ ๊ณต์กฐ๊ฐ ๊ฐํํ ์๋ก ์ธ๋์ ๊ธ๋ก๋ฒ ์์ฐ๊ธฐ์ง ์ญํ ์ ๋์ฑ ์ปค์ง ๊ฒ\"์ด๋ผ๊ณ ๋ถ์ํ๋ค.\n ์ค๊ตญ๋ณด๋ค ๋ฎ์ ์ธ๊ฑด๋น ๋ฑ์ ๋ด์ธ์ '์ธ๊ณ์ ๊ณต์ฅ'์ ๋ ธ๋ฆฌ๊ณ ์๋จ ์๊ธฐ๋ค.\n๊ฐ์ฅ ์ด๋ชฉ์ ๋๋ ๊ฑด ๊ธ๋ก๋ฒ IT ๊ธฐ์ ๋ค๊ณผ์ ํ๋ ฅ์ด๋ค.\n์ต๊ทผ ๊ตฌ๊ธ์ด ์ธ๋์ 100์ต ๋ฌ๋ฌ(์ฝ 12์กฐ ์) ํฌ์ ๊ณํ์ ๋ฐํ๊ณ , ์๋ง์กด๊ณผ ํ์ปด, ํ์ด์ค๋ถ๋ ์ธ๋์ ํฌ์๋ฅผ ์งํํ๊ณ ์๋ค.\n์ค๊ตญ๊ณผ ๊ฐ๊น์ด ์์์ ๊ตญ๊ฐ๋ค๋ง ์ด๋ฐ ๊ฒ์ด ์๋๋ค.\n๋ฏธ๊ตญ๊ณผ ์ด์ํ ์ค๋ฏธ ๊ตญ๊ฐ ๋ฉ์์ฝ๋ ๋ฏธ์ค ๋ฌด์ญ์ ์์ด ์์๋ ๋๋ถํฐ '๋ฅ์คํธ ์ฐจ์ด๋'๋ฅผ ๋ ธ๋ ค์จ ๊ตญ๊ฐ๋ค.\n์ต๊ทผ ๋ก์ดํฐํต์ ์ \"์์ดํฐ ๋ฑ์ ์ํ ์์ฐํ๋ ๋๋ง ํญ์ค์ฝ๊ณผ ํ๊ฐํธ๋ก ์ด ๋ฉ์์ฝ์ ๊ณต์ฅ์ ์ง๋ ์ผ์ ๊ฒํ ํ๊ณ ์๋ค\"๊ณ ๋จ๋ ๋ณด๋ํ๋ค.\nํญ์ค์ฝ์ ์ค๊ตญ ์ฒญ๋, ์ ์ ๋ฑ์ ๊ณต์ฅ์ ๋๊ณ 130๋ง ๋ช ์ ๊ณ ์ฉํ๊ณ ์๋ ์ ์ฒด๋ค.") | |
ok = st.button("์์ฝํ๊ธฐ") | |
if input_ is not None and ok and len(input_) > 0: | |
with st.spinner("์์ฝ์ ์์ฑ์ค์ ๋๋ค..."): | |
response = get_response(tokenizer, model, input_) | |
st.text("์์ฝ ๊ฒฐ๊ณผ") | |
st.success(response) |