File size: 4,882 Bytes
4a51346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
{
 "cells": [
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 이 λ¬Έμ„œλ₯Ό μˆ˜μ •ν•  λ‹Ήμ‹ μ—κ²Œ...\n",
    "#### ν˜„μž¬ 상황은 μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.\n",
    "1. ν˜„μž¬ Assistant와 Agent에 λŒ€ν•΄ evaluation setκ³Ό few shot examplesλ₯Ό μœ„ν•œ 우리 μ±—λ΄‡λ‚΄μ—μ„œ μΌμ–΄λ‚ λ§Œν•œ λŒ€ν™” 데이터셋을 μ œμž‘ν•΄μ•Όν•©λ‹ˆλ‹€.\n",
    "\n",
    "#### λ‹Ήμ‹ μ˜ λͺ©ν‘œλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.\n",
    "1. μ΅œλŒ€ν•œ 우리 μ±—λ΄‡μ—μ„œ μΌμ–΄λ‚ λ§Œν•œ λŒ€ν™” 데이터셋 100개 μ œμž‘μ„ λͺ©ν‘œλ‘œ ν•©λ‹ˆλ‹€.\n",
    "\n",
    "#### ν˜„μž¬ μ œκ°€ μƒκ°ν•œ λ°©μ‹μž…λ‹ˆλ‹€.\n",
    "1. GPT4 APIλ₯Ό μ‚¬μš©ν•œ 데이터셋 μ œμž‘\n",
    "- GPT 3.5λŠ” ν•œκ΅­μ–΄μ— λŒ€ν•œ μ„±λŠ₯κ³Ό λŒ€ν™”μ…‹ μ œμž‘μ— λŒ€ν•œ μ„±λŠ₯이 λΆ€μ‘±ν•˜κΈ° λ•Œλ¬Έμ— GPT4 APIλ₯Ό ν™œμš©ν•©λ‹ˆλ‹€.\n",
    "- μ•„λž˜ 논문을 ν™•μΈν•˜μ—¬ ν”„λ‘¬ν”„νŠΈλ₯Ό μž‘μ„±ν•˜κ³ , 데이터셋을 μˆ˜μ§‘ν•©λ‹ˆλ‹€.\n",
    "[Building a Role Specified Open-Domain Dialogue System Leveraging Large-Scale Language Models λ…Όλ¬Έ](https://arxiv.org/pdf/2205.00176.pdf)\n",
    "- μ„ νƒμ‚¬ν•­μ΄μ§€λ§Œ ν™•μž₯성을 μœ„ν•΄ Azure OpenAI API보닀 Langchain을 ν™œμš©ν•΄ κ°œλ°œν•˜λŠ” 것을 μΆ”μ²œν•©λ‹ˆλ‹€.\n",
    "\n",
    "#### μ˜ˆμƒλ˜λŠ” 문제\n",
    "1. 데이터 μˆ˜μ§‘μ—μ„œ 바닐라 GPT-4와 μ‹€μ œλ‘œ μš°λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” 챗봇은 λ‹€λ¦…λ‹ˆλ‹€. λ˜ν•œ μ‹€μ œ μœ μ €κ°€ ν•˜λŠ” 말과 GPT-4κ°€ ν•˜λŠ” 말은 λ‹€λ¦…λ‹ˆλ‹€. μ΄λ‘œμΈν•΄ μ‹€μ œ 배포 ν™˜κ²½κ³Ό λ‹€λ₯Έ λŒ€ν™” μ…‹μž…λ‹ˆλ‹€. 이 λ•Œλ¬Έμ— 일단은 적은 수의 λŒ€ν™”μ…‹λ§Œ μˆ˜μ§‘ν•©λ‹ˆλ‹€. \n",
    "2. 우리의 챗봇은 μ‹€μ œ DB에 μžˆλŠ” 데이터λ₯Ό μ‚¬μš©ν•˜λŠ” λ“±μ˜ μ™ΈλΆ€μ˜ 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ 말을 μƒμ„±ν•©λ‹ˆλ‹€. 이 λ˜ν•œ μ‹€μ œ ν™˜κ²½κ³Ό λ‹€λ₯Έ 데이터셋이 생성될 κ²ƒμž…λ‹ˆλ‹€.\n",
    "\n",
    "#### Future works\n",
    "1. μ‹€μ œ λ°μ΄ν„°μ™€μ˜ 괴리λ₯Ό 쀄이기 μœ„ν•΄ 우리의 챗봇과 μ‚¬λžŒμ΄ λŒ€ν™”ν•  수 μžˆλŠ” UIλ₯Ό μ œμž‘ν•©λ‹ˆλ‹€.\n",
    "2. μœ μ € ν”„λ‘¬ν”„νŠΈ 등을 μž‘μ„±ν•˜μ—¬ μ‹€μ œ μœ μ €μ™€ μ΅œλŒ€ν•œ μœ μ‚¬ν•œ μœ μ € μ–Έμ–΄λͺ¨λΈμ„ 돌릴 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. 즉 데이터셋 μƒμ„±μ—μ„œ μœ μ € μ–Έμ–΄λͺ¨λΈκ³Ό 챗봇 μ–Έμ–΄λͺ¨λΈ 2κ°€μ§€μ˜ λͺ¨λΈμ΄ λŒμ•„κ°€λ©΄μ„œ λŒ€ν™”ν•  수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.\n",
    "3. μœ μ €μ— λ‹€μ–‘ν•œ 페λ₯΄μ†Œλ‚˜λ₯Ό λΆ€μ—¬ν•˜μ—¬ μ’€ 더 λ‹€μ–‘μ„±μžˆλŠ” 데이터λ₯Ό μˆ˜μ§‘ν•˜λ„λ‘ ν•©λ‹ˆλ‹€.\n",
    "4. μ–Έμ–΄λͺ¨λΈμ˜ 문제 쀑에 hallucination(거짓말)κ³Ό 성별,쒅ꡐ에 편ν–₯λ˜κ±°λ‚˜ 폭λ ₯적인 말을 ν•˜λŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€. 그리고 이λ₯Ό μœ λ„ν•˜λŠ” μœ μ €μ˜ 말이 μžˆμŠ΅λ‹ˆλ‹€. 이런 κ²ƒλ“€λ§Œμ„ μœ„ν•œ λŒ€ν™” 데이터셋도 ꡬ성될 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.(졜근 λ„€μ΄λ²„μ—μ„œ 이런 문제λ₯Ό μœ λ°œν•˜λŠ” ν•œκ΅­μ–΄ 데이터셋을 κ³΅κ°œν•˜κΈ°λ„ ν•˜κ³ , 이에 κ΄€λ ¨ν•œ μ˜μ–΄ 데이터셋도 많이 μ‘΄μž¬ν•©λ‹ˆλ‹€.)\n",
    "\n",
    "#### μ°Έκ³  사항\n",
    "μ•„λž˜λŠ” μœ„μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ 쒋은 μžλ£Œλ“€μž…λ‹ˆλ‹€. μœ„μ˜ λ¬Έμ œν•΄κ²° 전에 μ•„λž˜ μžλ£Œλ“€μ„ λ¨Όμ € ν•™μŠ΅ν•˜λŠ” 것을 맀우 κ°•λ ₯ν•˜κ²Œ μΆ”μ²œν•©λ‹ˆλ‹€.\n",
    "- [ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§ κ°•μ˜ 2μ‹œκ°„](https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/)\n",
    "- [ν”„λ‘¬ν”„νŠΈ μ—”μ§€λ‹ˆμ–΄λ§ κ°€μ΄λ“œ documentation](https://www.promptingguide.ai/techniques)\n",
    "\n",
    "μ•„λž˜ 논문은 직접적이진 μ•Šμ§€λ§Œ λΉ„μ‹Ό μ‚¬λžŒ λ°μ΄ν„°λŒ€μ‹  μ–Έμ–΄λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μˆ˜μ§‘ν•˜λŠ” 방식에 근간이 된 λ…Όλ¬Έμž…λ‹ˆλ‹€.\n",
    "- [Self-Instruct: Aligning Language Models with Self-Generated Instructions](https://arxiv.org/pdf/2212.10560.pdf)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----------------------------------------------------------------"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### API ν‚€ 뢈러였기"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import configparser\n",
    "import time\n",
    "import copy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['./secrets.ini']"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "config = configparser.ConfigParser()\n",
    "config.read('./secrets.ini')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "openai_api_key = config['OPENAI']['OPENAI_API_KEY']\n",
    "os.environ.update({'OPENAI_API_KEY': openai_api_key})"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}