- KoGPT2μ Datasets from Instructions (DINO π¦)λ₯Ό μ΄μ©νμ¬ λ°μ΄ν°λ₯Ό μμ±νλ μ΄ν리μΌμ΄μ μ λλ€.
- νμ΅λ λͺ¨νκ³Ό Config λ±μ μν΄ μ±λ₯μ λ¬λΌμ§ μ μμ΅λλ€.
Input:
- λ¬Έμ₯: GPT-2λ μ£Όμ΄μ§ ν μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ λλ€.
Output (νμΈνλ μμ΄ μμ±):
- λμΌ μλ―Έ: "GPT-2λ μ£Όμ΄μ§ ν μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ νν μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ λλ€."
- μ μ¬ μλ―Έ: "GPT-2λ ν μ€νΈμ λ€μ λ¨μ΄λ₯Ό μμΈ‘νλλ‘ κ³ μλ μΈμ΄λͺ¨λΈμ λλ€."
- λ€λ₯Έ μ£Όμ : "GPT-2μ 첫 λ¬Έμ₯μ μ μμΈ‘ν μ μκ²λ μ°μ΅νμμμ€."
References:
text: The base of generated text.
{
"0": {
label: generated text type number,
text_a: base text string,
text_b: generated text string
},
"1": {
label: generated text type number,
text_a: base text string,
text_b: generated text string
},
...
}
-
text: GPT-2λ μ£Όμ΄μ§ ν μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ λλ€.
curl -X POST "https://main-ko-gpt2-dino-fpem123.endpoint.ainize.ai/gen" -H "accept: application/json" -H "Content-Type: multipart/form-data" -F "text=GPT-2λ μ£Όμ΄μ§ ν μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ λλ€."
{
"0": {
"label": "2",
"text_a": "GPT-2λ μ£Όμ΄μ§ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ
λλ€.",
"text_b": "GPT-2λ ν
μ€νΈ ν
μ€νΈ ν
μ€νΈ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ
λλ€."
},
"1": {
"label": "0",
"text_a": "GPT-2λ μ£Όμ΄μ§ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ
λλ€.",
"text_b": "GPT-2λ κ·Έ λ¬Έμ₯μ λ§μ§λ§ λ¬Έμ₯μ μ μμΈ‘ν μ μκ²λ μ λνκ³ μμ΅λλ€."
}
}
API page: Ainize
Demo page: End-point
git clone https://github.com/soeque1/KoGPT2-DINO.git --recursive
cd KoGPT2-DINO
cat test_input.txt
GPT-2λ μ£Όμ΄μ§ ν μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ λλ€.
cat task_specs/para-ko.json
pip install -r requirements.txt
{
"task_name": "para-ko",
"labels": {
"2": {
"instruction": "κ³Όμ : λμΌν μλ―Έμ λ λ¬Έμ₯μ μμ±νμΈμ.\nλ¬Έμ₯ 1: \"<X1>\"\nλ¬Έμ₯ 2: \"",
"counter_labels": []
},
"1": {
"instruction": "κ³Όμ : λΉμ·ν μλ―Έμ λ λ¬Έμ₯μ μμ±νμΈμ.\nλ¬Έμ₯ 1: \"<X1>\"\nλ¬Έμ₯ 2: \"",
"counter_labels": [
"2"
]
},
"0": {
"instruction": "κ³Όμ : μμ ν λ€λ₯Έ μ£Όμ μ κ΄νμ¬ λ λ¬Έμ₯μ μμ±νμΈμ.\nλ¬Έμ₯ 1: \"<X1>\"\nλ¬Έμ₯ 2: \"",
"counter_labels": [
"2",
"1"
]
}
}
}
- ONLY CPU
python dino/dino.py \
--output_dir test_out \
--model_name skt/kogpt2-base-v2 \
--task_file task_specs/para-ko.json \
--input_file test_input.txt \
--input_file_type plain \
--max_output_length 128 \
--top_p 0.9 \
--top_k 5 \
--decay_constant 100 \
--remove_identical_pairs \
--num_entries_per_input_and_label 1 \
--no_cuda
- GPU
python dino/dino.py \
--output_dir test_out \
--model_name skt/kogpt2-base-v2 \
--task_file task_specs/para-ko.json \
--input_file test_input.txt \
--input_file_type plain \
--max_output_length 128 \
--top_p 0.9 \
--top_k 5 \
--decay_constant 100 \
--remove_identical_pairs \
--num_entries_per_input_and_label 1
- DOCKER (GPU)
docker run \
--gpus 1 \
-v $PWD:/workspace \
nvcr.io/nvidia/pytorch:20.12-py3 \
bash -c "
pip install -r requirements.txt &&
python dino/dino.py \
--output_dir test_out \
--model_name skt/kogpt2-base-v2 \
--task_file task_specs/para-ko.json \
--input_file test_input.txt \
--input_file_type plain \
--max_output_length 128 \
--top_p 0.9 \
--top_k 5 \
--decay_constant 100 \
--remove_identical_pairs \
--num_entries_per_input_and_label 1"
cat test_out/para-ko-dataset.jsonl
# λμΌ μλ―Έ λ¬Έμ₯
{
"text_a": "GPT-2λ μ£Όμ΄μ§ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ
λλ€.",
"text_b": "GPT-2λ μ£Όμ΄μ§ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ νν μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ
λλ€.",
"label": "2"
}
# μ μ¬ μλ―Έ λ¬Έμ₯
{
"text_a": "GPT-2λ μ£Όμ΄μ§ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ
λλ€.",
"text_b": "GPT-2λ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μμΈ‘νλλ‘ κ³ μλ μΈμ΄λͺ¨λΈμ
λλ€.",
"label": "1"
}
# λ€λ₯Έ μ£Όμ λ¬Έμ₯
{
"text_a": "GPT-2λ μ£Όμ΄μ§ ν
μ€νΈμ λ€μ λ¨μ΄λ₯Ό μ μμΈ‘ν μ μλλ‘ νμ΅λ μΈμ΄λͺ¨λΈμ
λλ€.",
"text_b": "GPT-2μ 첫 λ¬Έμ₯μ μ μμΈ‘ν μ μκ²λ μ°μ΅νμμμ€.",
"label": "0"
}