{"id":998,"date":"2024-03-24T00:12:21","date_gmt":"2024-03-23T15:12:21","guid":{"rendered":"http:\/\/mukgee.com\/?p=998"},"modified":"2024-03-24T23:00:39","modified_gmt":"2024-03-24T14:00:39","slug":"%ec%b9%b4%ec%b9%b4%ec%98%a4%ed%86%a1-%eb%8c%80%ed%99%94-%ec%9d%b4%eb%a0%a5%ec%9c%bc%eb%a1%9c-fine-tuning-%ed%95%b4%eb%b3%b8-%eb%82%98%eb%a7%8c%ec%9d%98-language-model","status":"publish","type":"post","link":"http:\/\/mukgee.com\/?p=998","title":{"rendered":"\uce74\uce74\uc624\ud1a1 \ub300\ud654 \uc774\ub825\uc73c\ub85c fine tuning \ud574\ubcf8 \ub098\ub9cc\uc758 Language Model"},"content":{"rendered":"<p>\uc6b0\ub9ac\uac00 \uc790\uc8fc \uc0ac\uc6a9\ud558\ub294 \uce74\uce74\uc624\ud1a1 \uc5d0\uc11c\ub294 \ub300\ud654 \ub0b4\uc6a9\uc744 text \ud615\ud0dc\ub85c \ub0b4\ubcf4\ub0bc \uc218 \uc788\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5 \ud569\ub2c8\ub2e4.<\/p>\n<p>\uce74\uce74\uc624\ud1a1 \ub300\ud654 \ub0b4\uc6a9\uc73c\ub85c Language Model \uc744 Fine Tuning \ud574\ubcf4\uba74\uc11c AI safety\uc640 \uac1c\uc778\uc815\ubcf4\uc758 \uc911\uc694\uc131\uc5d0 \ub300\ud574 \uac19\uc774 \ud55c\ubc88 \uc774\uc57c\uae30\ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4.<\/p>\n<p>\ub370\uc774\ud130\ub294 \uac1c\uc778\uc758 \uce74\uce74\uc624\ud1a1\uc5d0\uc11c \uc800\uc7a5\ud55c \ud30c\uc77c\uacfc colab (\ubb34\ub8cc \ubc84\uc804\uc758 GPU) \ud658\uacbd\uc5d0\uc11c \uc9c4\ud589\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img contenteditable=\"false\" src=\"https:\/\/devocean.sk.com\/editorImg\/2024\/3\/23\/d944276145548c8209a00be1dfa2e8cfb76fd584eb7115cb9f851dffc403f125\" alt=\"image.png\" \/><\/p>\n<p>\uc774\ubc88\uc5d0 \ud559\uc2b5\ud574\ubcf4\ub824\ub294 Model \uc758 \ubaa9\uc801\uc740 \uc544\ub798 \ub300\ud654 \ub0b4\uc6a9\ucc98\ub7fc &#8220;\ub77c\uc774\uc5b8&#8221; \uc774 \uba54\uc138\uc9c0\ub97c \ubcf4\ub0b4\uba74 &#8220;\ubb34\uc9c0&#8221; \ucc98\ub7fc \ub300\ub2f5\uc744 \ud558\ub294 ChatBot \uc744 \ub9cc\ub4e4\uc5b4\ubcf4\ub294\uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<h2>1. Dataset \uad6c\uc131<\/h2>\n<p>\uba3c\uc800 \uce74\uce74\uc624\ud1a1 \ub300\ud654\ubc29 \uc124\uc815\uc5d0\uc11c \ub300\ud654 \ub0b4\uc6a9 \uc800\uc7a5\uc744( \ubaa8\ubc14\uc77c\uc758 \uacbd\uc6b0 \uba54\uc77c\ub85c \uc804\uc1a1) \ud558\uac8c \ub418\uba74 \uc544\ub798\uc640 \uac19\uc740 csv \ud30c\uc77c\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7fc \uc774\uc81c csv \ud30c\uc77c\uc744 import \ud574\uc11c \ubcf8\uaca9\uc801\uc73c\ub85c Model \uc744 \ud559\uc2b5\ud558\uae30 \uc704\ud55c \ub370\uc774\ud130\uc14b\uc744 \uad6c\uc131\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img contenteditable=\"false\" src=\"https:\/\/devocean.sk.com\/editorImg\/2024\/3\/23\/04cfdee95c99a27e7e8e658ecfae765dfa6e54dc18ab9ebe7eb2c72ab0d9d826\" alt=\"image.png\" \/><\/p>\n<p>Colab\uc758 \ud30c\uc77c \uc5c5\ub85c\ub4dc \uae30\ub2a5\uc744 \ud65c\uc6a9\ud558\uc5ec \ub300\ud654\ub0b4\uc6a9\uc774 \uc800\uc7a5\ub41c csv \ud30c\uc77c\uc744 upload \ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:python decode:true\">from google.colab import files \r\nuploaded = files.upload()<\/pre>\n<p>&nbsp;<\/p>\n<p>\uc804\ucc98\ub9ac \uc791\uc5c5\uc744 \uc704\ud574 upload \ub41c csv \ud30c\uc77c\uc744 pandas \uc758 Dataframe \uc73c\ub85c \ubcc0\ud658\ud569\ub2c8\ub2e4.<\/p>\n<p>Date \uceec\ub7fc\uc758 \uacbd\uc6b0 \uc81c\uac70\ud558\uc9c0 \uc54a\uc544\ub3c4 \ubb38\uc81c\ub418\uc9c0 \uc54a\uc9c0\ub9cc, \uc774\ubc88 \uc791\uc5c5\uc5d0\uc11c\ub294 \ud65c\uc6a9\ud558\uc9c0 \uc54a\uc744 \uc608\uc815\uc774\ubbc0\ub85c, \uc81c\uac70 \ud558\uace0 \ub118\uc5b4\uac00\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:python decode:true\">import pandas as pd\r\ndf = pd.read_csv('{upload\ub41c \ud30c\uc77c\uba85}')\r\ndf.drop('Date',axis=1,inplace=True)\r\n<\/pre>\n<p><img contenteditable=\"false\" src=\"https:\/\/devocean.sk.com\/editorImg\/2024\/3\/23\/bb75a6edbeb70b53250078467a3c7481d8daa88b2a9766e2c5925d2e0ef7f6ad\" alt=\"image.png\" \/><\/p>\n<p>DataFrame \uc744 \uc0b4\ud3b4\ubcf4\uba74 \uc2dc\uac04 \uc21c\uc73c\ub85c \ub300\ud654 \ub0b4\uc6a9\uc774 \ub098\uc5f4\ub41c \uad6c\uc870\uc785\ub2c8\ub2e4.<\/p>\n<p>Data\ub97c \ub77c\uc774\uc5b8\/\ubb34\uc9c0 \uceec\ub7fc\uc73c\ub85c DataFrame \uc744 \uc7ac\uad6c\uc131\ud574\uc11c, \ub77c\uc774\uc5b8 1\ubc88 \/ \ubb34\uc9c0 1\ubc88 \uc529 \ub098\ud0c0\ub098\ub294 \ub300\ud654 \ud615\uc2dd\uc758 Data\ub85c \ub9cc\ub4e4\uc5b4\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:python decode:true\">new_df = pd.DataFrame(columns=['User', 'Message'])\r\ncurrent_user = None\r\ncurrent_message = \"\"\r\n\r\n# \uac19\uc740 User \uac00 \uc5f0\uc18d\uc73c\ub85c \ub098\ud0c0\ub0a0 \uacbd\uc6b0 \ud55c\uac1c\uc758 Row\ub85c \ucc98\ub9ac\r\nfor index, row in df.iterrows():\r\n    if current_user is None:\r\n        current_user = row['User']\r\n        current_message += row['Message']\r\n    elif current_user != row['User']:\r\n        new_df = new_df.append({'User': current_user, 'Message': current_message}, ignore_index=True)\r\n        current_user = row['User']\r\n        current_message = row['Message']\r\n    else:\r\n        current_message += \"\\n\" + row['Message']\r\n\r\n# \ub9c8\uc9c0\ub9c9 \ud589 \ucd94\uac00\r\nif current_user is not None:\r\n    new_df = new_df.append({'User': current_user, 'Message': current_message}, ignore_index=True)\r\n\r\n# \r\nme = new_df[new_df.User =='\ub77c\uc774\uc5b8'].reset_index().Message\r\nyou = new_df[new_df.User =='\ubb34\uc9c0'].reset_index().Message\r\n\r\ndata = pd.DataFrame({'me':me , 'you' : you})\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\uc7ac\uad6c\uc131\ub41c data\ub97c \ud655\uc778\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&#8220;\ubb34\uc9c0&#8221; \ucc98\ub7fc \ub300\ub2f5\ud558\ub294 chatBot\uc744 \ub9cc\ub4dc\ub294\uac8c \ubaa9\uc801\uc774\uae30 \ub54c\ubb38\uc5d0 &#8220;\ub77c\uc774\uc5b8&#8221;\uc740 me \uac00 \ub418\uace0, &#8220;\ubb34\uc9c0&#8221;\ub294 you \uac00 \ub418\uc5b4 row \ubcc4\ub85c me \uc640 you \uac00 \ud55c\ubc88\uc529 \ub300\ud654 \ud558\ub294 \uad6c\uc870\uac00 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p><img contenteditable=\"false\" src=\"https:\/\/devocean.sk.com\/editorImg\/2024\/3\/23\/8d0e8fe6ccfb547efe47684630253f59eb8d3c09534d2218aef14e6d9a4a2311\" alt=\"image.png\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>2. \uc0ac\uc804 \ud559\uc2b5\ub41c Model Fine tuning<\/h2>\n<p>&#8220;\ubb34\uc9c0&#8221;\ucc98\ub7fc \ub300\ub2f5\ud558\ub294 \uc11c\ube44\uc2a4\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uae30 \uc704\ud574 \uc0ac\uc6a9\ud560 Model \uc740 SKT \uc5d0\uc11c 21\ub144 \uacf5\uac1c\ud55c GPT2 base \uc758 KoGPT2 \ubaa8\ub378\uc785\ub2c8\ub2e4.(\u00a0<a href=\"https:\/\/github.com\/SKT-AI\/KoGPT2\">https:\/\/github.com\/SKT-AI\/KoGPT2<\/a>\u00a0)<\/p>\n<p>\ucd5c\uadfc \ub2e4\uc591\ud55c \uc544\ud0a4\ud14d\uccd0\ub97c \ubc18\uc601\ud55c \ub2e4\uc591\ud55c \ud06c\uae30\uc758 \ubaa8\ub378\ub4e4\uc774 \ub098\uc624\uace0 \uc788\uc9c0\ub9cc, \ub2e8\uc21c \ub300\ud654 \ub0b4\uc6a9\uc744 Fine tuning \ud558\uae30 \uc704\ud574\uc11c\ub294 \ud55c\uad6d\uc5b4 \ub2a5\ub825\uc744 \uac00\uc9c4 Model \uc774\uba74 \uac00\ub2a5\ud560 \uac83\uc774\ub77c\uace0 \ubcf4\uace0 KoGPT2 \ub97c \uc120\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:python decode:true\">import torch\r\nfrom transformers import PreTrainedTokenizerFast\r\n\r\ncheckpoint = 'skt\/kogpt2-base-v2'\r\ndevice = 'cuda'\r\n\r\ntokenizer = PreTrainedTokenizerFast.from_pretrained(checkpoint,\r\n  bos_token='<s>', eos_token='<\/s>', unk_token='',\r\n  pad_token='', mask_token='')\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>SKT-AI github \uc5d0 \uc788\ub294 \uac00\uc774\ub4dc \ub300\ub85c Tokenizer \ub97c \uc120\uc5b8\ud558\uace0, \ubaa8\ub378\uc774 \ud559\uc2b5\ud560 \uc218 \uc788\ub3c4\ub85d Dataset\uc744 \uad6c\uc131\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uae30\ubcf8\uc801\uc778 Prompt\ub294 \uac00\uc7a5 \uac04\ub2e8\ud558\uac8c me \uc758 Message\uc640 you \uc758 Message \ud615\ud0dc\ub85c \uad6c\uc131\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:python decode:true\">'''\r\nDataSet \uad6c\uc131\r\n### me : \\n\r\n\uc624\ub298 \uc800\ub141 \ubb50 \uba39\uc744\uae4c?\\n\r\n### you : \\n\r\n\ub098\ub294 \ub2e4 \uc88b\uc9c0. \ub108 \uba39\uace0 \uc2f6\uc740\uac70 \uba39\uc5b4\r\n'''\r\n\r\nfrom datasets import Dataset\r\ndataset = Dataset.from_pandas(data).map(\r\n    lambda x: {'text': f\"### Me: {x['me']}\\n### You: {x['you']}\" } #end token \r\n).train_test_split(test_size=0.1)\r\n\r\n#kogpt2 \uc758 \uacbd\uc6b0 max length \uac00 1024\ub85c 1024 \uc774\uc0c1\uc758 \uae38\uc774\ub294 Truncate \ud574\uc57c\uc918\uc57c \ud569\ub2c8\ub2e4.\r\ndataset = dataset.map(lambda x: tokenizer(x[\"text\"] , truncation=True, max_length=1024, padding=\"max_length\"), batched=True)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\ubaa8\ub378\uc744 load \ud55c \ud6c4 huggingface \uc758 trainer \ub97c \uc0ac\uc6a9\ud574\uc11c 3 epochs \uc815\ub3c4\ub9cc \ud559\uc2b5\uc744 \uc9c4\ud589\ud569\ub2c8\ub2e4.<\/p>\n<pre class=\"lang:python decode:true\">from transformers import GPT2LMHeadModel\r\nmodel = GPT2LMHeadModel.from_pretrained(checkpoint).to(device)\r\nfrom transformers import TrainingArguments, Trainer , DataCollatorForLanguageModeling\r\ntokenizer.pad_token = tokenizer.eos_token\r\ntraining_args = TrainingArguments(output_dir=\"test_trainer\",\r\n                                  evaluation_strategy=\"epoch\",\r\n                                  per_device_train_batch_size=4,\r\n                                  gradient_accumulation_steps=4,\r\n                                  num_train_epochs=3,\r\n                                  save_total_limit = 1\r\n                                  )\r\ntrainer = Trainer(\r\n    model=model,\r\n    args=training_args,\r\n    train_dataset=dataset['train'],\r\n    eval_dataset=dataset['test'],\r\n    data_collator=DataCollatorForLanguageModeling(tokenizer, mlm=False)\r\n)\r\ntrainer.train()\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h2>3. \ubaa8\ub378 \ud3c9\uac00<\/h2>\n<p><strong>\uc9c8\ubb38<\/strong> : \uc624\ub298 \ubb50 \uba39\uc744\uae4c?<\/p>\n<p><strong>\uc0dd\uc131\ub41c \ub2f5\ubcc0 :\u00a0<\/strong><\/p>\n<p>\u3161\u315c<\/p>\n<p>\ub098 \uc624\ub298 \ubc25 \uba39\uad6c \uce74\ud398 \uac08\uae61<\/p>\n<p>\uc5c4\uccad \ud53c\uace4<\/p>\n<pre class=\"lang:python decode:true\">result = model.generate(\r\n        **tokenizer(\r\n            f\"### Me: \uc624\ub298 \ubb50 \uba39\uc744\uae4c?\\n### You: \",\r\n            return_tensors='pt',\r\n            return_token_type_ids=False\r\n        ).to(device),\r\n        max_length=32,\r\n        pad_token_id=tokenizer.pad_token_id,\r\n        eos_token_id=tokenizer.eos_token_id,\r\n        bos_token_id=tokenizer.bos_token_id,\r\n        use_cache=True,\r\n        early_stopping=True,\r\n        do_sample=True,\r\n        temperature=0.7, \r\n        top_k=30,\r\n        top_p=0.80\r\n    )\r\nprint(tokenizer.decode(result[0]).split('### You: ')[1])\r\n<\/pre>\n<p><img contenteditable=\"false\" src=\"https:\/\/devocean.sk.com\/editorImg\/2024\/3\/23\/536853cb418b185de0185c07fac66384c347c07e41ba904f88882e3bfa066a70\" alt=\"image.png\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\uc0dd\uc131\ub41c \uba54\uc138\uc9c0\ub294 \uae30\uc874 koGPT2 \uc640 \uc804\ud600 \ub2e4\ub978 \uba54\uc138\uc9c0\ub85c \ud30c\uc778\ud29c\ub2dd\ub41c \ub370\uc774\ud130\ub97c \ubc18\uc601\ud558\uc5ec \uc2e4\uc81c \ub300\ud654\uc640 \uac19\uc740 \uacb0\uacfc\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<h2>4. \ub9c8\ubb34\ub9ac<\/h2>\n<p>\uc601\ud654 &#8220;Her&#8221; \uac19\uc740 \uc138\uc0c1\uc774 \uc9c4\uc9dc\ub85c \uc62c\uae4c\uc694? \ub77c\ub294 \uc9c8\ubb38\uc5d0 \ub300\ud574 \uc774\uc81c \ub9ce\uc740 \uc0ac\ub78c\ub4e4\uc774 &#8220;\ub124&#8221; \ub77c\uace0 \ub2f5\ud560\uc9c0\ub3c4 \ubaa8\ub974\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc0ac\uc804 \ud559\uc2b5\ub41c LLM \uc740 \ub2e8\uc21c\ud55c fine tuning \uc791\uc5c5\ub9cc\uc73c\ub85c \uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 \ubc29\ud5a5\uc73c\ub85c AI \ubaa8\ub378\uc744 \ud559\uc2b5\uc2dc\ud0ac \uc218 \uc788\ub294 \uc138\uc0c1\uc744 \uc5f4\uc5b4 \uc8fc\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\ub9cc, &#8220;\uc6b0\ub9ac\uac00 \uc6d0\ud558\ub294 \ubc29\ud5a5&#8221; \uc774\ub77c\ub294\uac83\uc774 \ubb34\uc11c\uc6b4 \uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uc774\ubc88\uc5d0\ub294 \uc7ac\ubbf8\ub85c \uce74\uce74\uc624\ud1a1 \ub300\ud654 \ub0b4\uc6a9\uc744 \ubc14\ud0d5\uc73c\ub85c \ub098\ub9cc\uc758 Language Model \uc744 \ub9cc\ub4e4\uc5b4 \ubcf4\uc558\uc9c0\ub9cc,<\/p>\n<p>\uc5b4\ub5a4 \ubaa9\uc801\uc5d0 \ub530\ub77c \uc900\ube44\ub41c \ub370\uc774\ud130\uc14b\uc774 Model \uc744 \uc758\ub3c4\uc801\uc73c\ub85c \ud2b9\uc815 \ubc29\ud5a5\uc73c\ub85c \ud559\uc2b5\uc2dc\ud0a8\ub2e4\uba74 AI \uae30\uc220\uc774 \uc0ac\ud68c\uc5d0 \uc5b4\ub5a4 \uc601\ud5a5\uc744 \uc904\uc9c0 \ub450\ub824\uc6c0\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7f0\uc810\uc5d0\uc11c \ucd5c\uadfc \uacf5\uac1c\ub418\ub294 llama\ub098 gemma \uac19\uc740 \ubaa8\ub378\uc744 \ubcf4\uba74 AI safety \uac00\uc774\ub4dc(\u00a0<a href=\"https:\/\/llama.meta.com\/responsible-use-guide\">https:\/\/llama.meta.com\/responsible-use-guide<\/a>\u00a0,\u00a0<a href=\"https:\/\/ai.google.dev\/responsible?hl=ko\">https:\/\/ai.google.dev\/responsible?hl=ko<\/a>\u00a0)\ub97c \uc81c\uc2dc\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>Language Model \uc744 \ud65c\uc6a9\ud574\uc11c \uc11c\ube44\uc2a4\ub97c \uac1c\ubc1c\ud558\ub294 \uc8fc\uccb4\uc640 AI \uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud558\ub294 \uc0ac\uc6a9\uc790 \ubaa8\ub450 AI Safety \uc5d0 \ub300\ud55c \uc778\uc2dd\uacfc \ub17c\uc758\uac00 \ud544\uc694\ud558\uc9c0 \uc54a\uc744\uae4c \uc0dd\uac01\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c, \uce74\uce74\uc624\ud1a1 \ub300\ud654\ub97c \uae30\ubc18\uc73c\ub85c\ud55c \bChatBot \ubaa8\ub378\ucc98\ub7fc \uc774\uc81c\ub294 \uc6b0\ub9ac\uc758 \uac1c\uc778\uc815\ubcf4\uac00 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638, \uc8fc\uc18c, \uc804\ud654\ubc88\ud638 \ucc98\ub7fc \uc774\uc804\uc5d0 \uc911\uc694\ud558\uac8c \uc0dd\uac01\ud588\ub358 \uac1c\uc778 \uc815\ubcf4\uc678\uc5d0,<\/p>\n<p>\ub300\ud654 \uc774\ub825, \uc778\ud130\ub137\uc5d0 \uc5c5\ub85c\ub4dc \ub41c \uae00, \uc0ac\uc9c4 \ub4f1 \ub514\uc9c0\ud138 \ubc1c\uc790\uad6d \ub610\ud55c \uc911\uc694\ud55c \uac1c\uc778\uc815\ubcf4\uc784\uc744 \uc778\uc9c0\ud558\uace0 \uad00\ub9ac\ud574\uc57c\ud560\uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p>AI \uc2dc\ub300\ub294 \uc810\uc810 \ub354 \ube68\ub9ac \uc624\uace0 \uc788\ub294\uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\uae30\uc220\uc758 \ubc1c\uc804\ub9cc\ud07c \uc6b0\ub9ac \uc0ac\ud68c\ub3c4 \uc0c8\ub85c\uc6b4 \uc2dc\ub300\uc5d0 \ub300\ud55c \uace0\ubbfc\uc774 \ud544\uc694\ud560 \uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n<p>&nbsp;<\/p>\n<h2>\ucd9c\ucc98<\/h2>\n<p><a href=\"https:\/\/github.com\/SKT-AI\/KoGPT2\">https:\/\/github.com\/SKT-AI\/KoGPT2<\/a><\/p>\n<p><a href=\"https:\/\/llama.meta.com\/responsible-use-guide\">https:\/\/llama.meta.com\/responsible-use-guide<\/a><\/p>\n<p><a href=\"https:\/\/ai.google.dev\/responsible?hl=ko%5D\">https:\/\/ai.google.dev\/responsible?hl=ko]<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\uc774 \uae00\uc740 SK \uadf8\ub8f9\uc758 \uac1c\ubc1c\uc790 \ubaa8\uc784 Devocean \uc5d0 \ub3d9\uc77c\ud558\uac8c \uc791\uc131\ub41c \uae00\uc785\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc6b0\ub9ac\uac00 \uc790\uc8fc \uc0ac\uc6a9\ud558\ub294 \uce74\uce74\uc624\ud1a1 \uc5d0\uc11c\ub294 \ub300\ud654 \ub0b4\uc6a9\uc744 text \ud615\ud0dc\ub85c \ub0b4\ubcf4\ub0bc \uc218 \uc788\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5 \ud569\ub2c8\ub2e4. \uce74\uce74\uc624\ud1a1 \ub300\ud654 \ub0b4\uc6a9\uc73c\ub85c Language Model \uc744 Fine Tuning \ud574\ubcf4\uba74\uc11c AI&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":""},"categories":[3],"tags":[87,105,106,108,102,109,107],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/998"}],"collection":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=998"}],"version-history":[{"count":7,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/998\/revisions"}],"predecessor-version":[{"id":1006,"href":"http:\/\/mukgee.com\/index.php?rest_route=\/wp\/v2\/posts\/998\/revisions\/1006"}],"wp:attachment":[{"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=998"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=998"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/mukgee.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=998"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}