ChatGPTã¯éŠ¬é¹¿ãããªãïŒ çã®å®åãè§£æŸããããã³ãããšã³ãžãã¢ãªã³ã°ã®æåç·
ã¯ããã«
ChatGPTãã¯ãããšããLLMã䜿ãããªãããã®å¿ é ã¹ãã«ãããã³ãããšã³ãžãã¢ãªã³ã° ã«ã€ããŠè§£èª¬ããŸãã
æè¿ã¯åããæ©ãããŠãã£ããã¢ãããé£ãããªã£ãŠããŸãããç¹ã«ä»¥äžã®ãããªææ³ã泚ç®ãããŠããããã§ãã
- In-context Learning (ICL)
- Chain-of Thought (CoT)
- Zero-shot CoT
- ReAct
- Self-Consistency
- Program-aided Language Model (PAL)
ä»åã¯ã6ã€ã®ãã¯ããã¯ã®äžããPart1ãšããŠãICLãCoTããããŠZero-shot CoTã®3ã€ã玹ä»ããŸãã
ãããã®ãã¯ããã¯ã¯ãChatGPTãã¯ãããšããLLMã®ããã³ã·ã£ã«ãæå€§éã«åŒãåºãããã«å¿
èŠäžå¯æ¬ ã§ãã
ããã«ãåãã¯ããã¯ã詳ãã解説ããè«æã玹ä»ããŠããŸãã®ã§ãæ¯éãäžèªãã ããã
In-context Learning (ICL)
ICLãšã¯ãã¿ã¹ã¯ãæç€ºããéã«åã«ã¿ã¹ã¯ã®å 容ãæç€ºããã ãã§ãªããã¿ã¹ã¯ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãæäŸããããšã§å€§ããæ§èœãé«ããæ¹æ³ã§ãã
ICLã¯äžãããã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®æ°ã«ãã£ãŠåé¡ãããŸãã
1ã€ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãäžããå Žåã¯ãOne-shot learningã
è€æ°ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãäžããå Žåã¯ãFew-shot learningã
ãšåŒã°ããŸãã
ãªãããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãçšããªãåŸæ¥ã®æ¹æ³ã¯ICLãšå¯Ÿæ¯ããŠãZero-shot transfer (learning)ããšåŒã°ããŸãã
Zero-shot
Zero-shotã§ã¯ã¿ã¹ã¯ã®æç€ºãäžããã ãã§ãèŠçŽãªã©ãããã«ããããŸãã
以äžã®äŸã§ã¯ãWikipediaã®ãã€ã³ãã¬ãŒã·ã§ã³ãã®æç« 1038æåã259æåã«èŠçŽããããšãã§ããŸããã
以äžã®æç« ãèŠçŽããŠ
çµæžåŠã§ã¯ãäžå®æéã«ããã£ãŠçµæžã®äŸ¡æ Œæ°Žæºãå
šè¬çã«äžæããããšãã€ã³ãã¬ãŒã·ã§ã³ïŒè±èª: inflationãç©äŸ¡äžæãã€ã³ãã¬ïŒãšåŒã¶[1][2][3][4]ãäžè¬çãªäŸ¡æ Œæ°Žæºãäžæãããšã1åäœã®é貚ã§è³Œå
¥ã§ãã財ããµãŒãã¹ã®æ°ãæžãããã®çµæãã€ã³ãã¬ãŒã·ã§ã³ã¯1åäœã®é貚ãããã®è³Œè²·åã®äœäžãã€ãŸãçµæžã«ãããäº€æææ®µãäŒèšåäœã®å®è³ªçãªäŸ¡å€ã®äœäžãåæ ãã[5][6]ãã€ã³ãã¬ãŒã·ã§ã³ã®å察ã¯ããã¬ãŒã·ã§ã³ã§ããã財ããµãŒãã¹ã®äžè¬çãªäŸ¡æ Œæ°Žæºãæç¶çã«äœäžããããšã§ãããã€ã³ãã¬ãŒã·ã§ã³ã®äžè¬çãªææšã¯ã€ã³ãã¬çã§ãç©äŸ¡ïŒéåžžã¯æ¶è²»è
ç©äŸ¡ææ°ïŒã®é·æçãªå€åçã幎çæç®ãããã®ã§ããã
çµæžåŠè
ã¯ãéåžžã«é«ãã€ã³ãã¬çããã€ããŒã€ã³ãã¬ãŒã·ã§ã³ã¯æå®³ã§ããããããŒãµãã©ã€ã®éå°ãªå¢å ãåå ã§ãããšèããŠãã[7]ãäžæ¹ãäœã»äžçšåºŠã®ã€ã³ãã¬çãæ±ºå®ã¥ããèŠå ã«ã€ããŠã¯ããã倿§ãªèŠè§£ããããäœã»äžçšåºŠã®ã€ã³ãã¬ã¯ã財ã»ãµãŒãã¹ã«å¯Ÿããå®è³ªçãªéèŠã®å€åããç©è³ãäžè¶³ããŠãããšããªã©ã®äŸçµŠå¯èœéã®å€åã«èµ·å ãããšèãããã[8]ãããããé·æçã«æç¶ããã€ã³ãã¬ã¯ããããŒãµãã©ã€ãçµæžæé·çãäžåãã¹ããŒãã§å¢å ããããšã«ãã£ãŠèµ·ãããšããã®ãå
±éã®èŠè§£ã§ãã[9][10]ã
ã€ã³ãã¬ã¯ãçµæžã«æ§ã
ãªè¯ã圱é¿ãšæªã圱é¿ãäžãããã€ã³ãã¬ã®è² ã®åœ±é¿ãšããŠã¯ããéãä¿æããããšã«ããæ©äŒè²»çšã®å¢å ãå°æ¥ã®ã€ã³ãã¬ã«å¯Ÿããäžç¢ºå®æ§ã«ããæè³ã貯èã®æå¶ãããã«ã€ã³ãã¬ãæ¥éã«é²ãã å Žåã«ã¯ãæ¶è²»è
ãå°æ¥ã®äŸ¡æ Œäžæãæžå¿µããŠè²·ãã ããå§ããååãäžè¶³ããããšãªã©ãæãããããããžãã£ããªå¹æãšããŠã¯ãåç®è³éã®ç¡¬çŽæ§ã«ãã倱æ¥çã®äœäžãäžå€®éè¡ã®éèæ¿çã®èªç±åºŠã®æ¡å€§ããéããã蟌ãã®ã§ã¯ãªãèè³ãæè³ãä¿ãããšãããã¬ã«äŒŽãéå¹çæ§ã®åé¿ãªã©ãæããããã
仿¥ã倧åã®ãšã³ããã¹ãã¯ãäœäœã§å®å®ããã€ã³ãã¬çãæ¯æããŠãã[11]ãã€ã³ãã¬çãäœãïŒãŒãããã€ãã¹ã§ã¯ãªãïŒãšãæ¯æ°åŸéã®éã«åŽååžå Žã®èª¿æŽãè¿
éã«è¡ããããããæ¯æ°åŸéã®æ·±å»ãã軜æžãããæµåæ§ã®çœ ã«ãã£ãŠéèæ¿çãçµæžãå®å®ãããããšãã§ããªããªããªã¹ã¯ã軜æžãããã®ã§ãããã€ã³ãã¬çãäœãå®å®çã«ç¶æããä»»åã¯ãéåžžãéèåœå±ã«äžããããŠãããäžè¬çã«ããããã®éèåœå±ã¯äžå€®éè¡ã§ãããéå©ã®èšå®ãå
¬éåžå Žæäœãéè¡ã®é éæºåçã®èšå®ãéããŠéèæ¿çãã³ã³ãããŒã«ããã
çµæžåŠã§ã¯ãç©äŸ¡ã®å
šè¬çãªäžæã§ããã€ã³ãã¬ãŒã·ã§ã³ãå®çŸ©ãããããã«ããé貚ã®è³Œè²·åãäœäžããããšãããããã€ã³ãã¬çã¯ãé·æçã«æç¶ããã€ã³ãã¬ã¯ãããŒãµãã©ã€ã®éå°ãªå¢å ãåå ã§ãããšããèŠè§£ãå
±éããŠãããã€ã³ãã¬ã«ã¯ãä¿æãããéã«å¯Ÿããæ©äŒè²»çšã®å¢å ãå°æ¥ã®äžç¢ºå®æ§ã«ããæè³ã貯èã®æå¶ãªã©ã®è² ã®åœ±é¿ãšã倱æ¥çã®äœäžãéèæ¿çã®èªç±åºŠã®æ¡å€§ãªã©ã®ããžãã£ããªåœ±é¿ãããã倧åã®ãšã³ããã¹ãã¯ãäœäœã§å®å®ããã€ã³ãã¬çãæ¯æããŠãããéèåœå±ãéåžžã¯äžå€®éè¡ãã€ã³ãã¬çãã³ã³ãããŒã«ããä»»åãæã£ãŠããã
One-shot/Few-shot
One-shot/Few-shotã§ã¯ããã¿ã¹ã¯ã®æç€ºãã«å ããŠããã¢ã³ã¹ãã¬ãŒã·ã§ã³ããäžããŸãã
å
·äœäŸãã¿ãŠã¿ãŸãããã
ãã¡ãã®GraphGPTã¯promptãããšã«Knowledge Graphãçæããããšãã§ãããã®ã§ããããã®å
éšã§ã¯One-shot learningãçšããããŠããŸãã

ãã¡ããGraphGPTã§çšããããŠããããã³ããã§ãã
çŸåšè¡šç€ºäžã®ã°ã©ãããŒã¿ãšãŠãŒã¶ãŒãå
¥åããããã³ããããããã$stateãš$promptã«ä»£å
¥ããäžã§GPT-3ã®APIãåŒã³åºããŠããŸãã
ãã¿ã¹ã¯ã®æç€ºãããã¢ã³ã¹ãã¬ãŒã·ã§ã³ãããããã®å
容ãèŠãŠã¿ãŸãããã
ã¿ã¹ã¯ã®æç€º (1è¡ç®)
ã°ã©ãã®çŸåšã®ç¶æ
ãšããã³ãããããšã«ãããã³ããããã§ããã ãå€ãã®é¢ä¿ãæšå®ããç¶æ
ãæŽæ°ãããåããŒãã«ã¯ãIDãã©ãã«ãè²ïŒ16鲿°ïŒãããããã¹ãŠã®ãšããžã¯ãããŒãIDãæã€toãšfromãããã³ã©ãã«ãæã€ããšããžã¯æåæ§ã§ãããããfromãštoã®é çªãéèŠã§ããã
ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ (3~10è¡ç®)
ãã®ãããªãã¢ã³ã¹ãã¬ãŒã·ã§ã³ãå«ããããšãOne-shotåã³Few-shotã®ç¹åŸŽã§ãã
ã以äžã®1æç®ã®ã°ã©ãã«å¯ŸããŠã¢ãªã¹ãšããã¯ã«ãŒã ã¡ã€ããšããããã³ãããçµã¿åããããš2æç®ã®ç»åã®ããã«ãªãããšããäŸãäžããŠããŸãã

{ "nodes": [ { "id": 1, "label": "Bob", "color": "#ffffff" } ], "edges": [] }

{ "nodes": [ { "id": 1, "label": "Bob", "color": "#ffffff" }, { "id": 2, "label": "Alice", "color": "#ff7675" } ], "edges": [ { "from": 1, "to": 2, "label": "roommate" } ] }
Chain-of-Thought (CoT)
CoTã¯Reasoningãšããè«ççãªæèèœåãæ±ããããã¿ã¹ã¯ã«ãããŠç²ŸåºŠãåäžãããããã«çšãããããã¯ããã¯ã§ãã
Reasoningã¿ã¹ã¯ã§ã¯Few-shotãçšããŠã粟床ãæåŸ
ããã»ã©åäžããªãããšãå€ããCoTãããçšããããŸãã
CoTãšã¯ãã®åã®éãé£éçãªæèããããããšã«ããåºåã®ç²ŸåºŠãé«ãããšãããã®ã§ãã
ãé£éçãªæèããšãã£ãŠããã³ãšããªãã§ãããæ°åŠã®èšŒæåé¡ã®ãããªã€ã¡ãŒãžã§ãã
äŸãã°ã人éãæ°åŠã®åé¡ãè§£ãæã«ããããªãçããåºãã®ã§ã¯ãªããéäžåŒãæžãããšã§ééãã«ãããªãããšã¯æ³åã«é£ããªãã§ãããã
CoTã¯ãã®åŸåã®LLMããŒãžã§ã³ã§ãã
å ·äœçãªã€ã¡ãŒãžãã€ããããã«ãå®éã«ChatGPTã«ç®æ°ã®åé¡ãè§£ãããŠCoTã®ç²ŸåºŠãæ€èšŒããŠã¿ãŸãããã
éåžžã®è³ªå
ChatGPTã®APIã䜿çšãã以äžã®ã€ãããç®ããããã100åãã€åçãããŸãã
é¶Žãšäºãåèš80å¹ããŸãã
è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
æ£è§£ã¯ãé¶Žã60å¹ãäºã20å¹ããªã®ã§ããããŸãã¯ç¹ã«å·¥å€«ããã«èããŠã¿ãŸãããã
åé¡ã®çã以å€ãåºåãããªãããã«ãã©ãŒããããJSONã§æå®ããŸãã
åé¡
é¶Žãšäºãåèš80å¹ããŸãã
è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
åçã¯ä»¥äžã®JSONãã©ãŒãããã«åŸã£ãŠãã ããã
{
"é¶Žã®æ°": ,
"äºã®æ°":
}
{
"é¶Žã®æ°": 60,
"äºã®æ°": 20
}
䜿çšããã³ãŒãã¯ãã¡ãã
import os
import openai
from dotenv import load_dotenv
import json
import pandas as pd
load_dotenv()
key = os.getenv("API_KEY")
openai.api_key = key
from datetime import datetime
class GptInterface:
def __init__(self, model: str, key: str):
self.model = model
self.key = key
openai.api_key = key
def single_message(self, message: str):
if hasattr(self, "last_exec_time"):
while (datetime.now() - self.last_exec_time).total_seconds() < 0.05:
pass
res = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": message},
],
)
message = res["choices"][0]["message"]["content"]
self.last_exec_time = datetime.now()
return message
def read_json(text:str):
is_valid_json = True
data = None
try:
data = json.loads(text)
except Exception as e:
is_valid_json = False
try:
json_string = text[text.find("{"): text.rfind("}") + 1]
data = json.loads(json_string.replace("'", '"'))
except Exception as e:
print(e)
return data, is_valid_json
gpt = GptInterface("gpt-3.5-turbo", key)
question = """
åé¡
é¶Žãšäºãåèš80å¹ããŸãã
è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
åçã¯ä»¥äžã®JSONãã©ãŒãããã«åŸã£ãŠãã ããã
{
"é¶Žã®æ°": ,
"äºã®æ°":
}
"""
responses = []
data_counter = 0
total_num = 100
while True:
total_counter += 1
content = gpt.single_message(question)
result, is_valid_json = read_json(content, )
if result is not None and is_valid_json:
responses.append(result)
data_counter += 1
if data_counter >= total_num:
break
df = pd.DataFrame(responses)
df.groupby(['é¶Žã®æ°', 'äºã®æ°']).size().reset_index(name='ããŒã¿æ°')
table = df.groupby(['é¶Žã®æ°', 'äºã®æ°']).size().reset_index(name='ããŒã¿æ°').sort_values("ããŒã¿æ°", ascending=False).reset_index(drop=True)
table
çµæ
æ£ççã¯28%ã§ããã
ã€ãããç®ã¯å°4ã»5幎ãããã«ç¿ãçšåºŠã®ãã®ãªã®ã§ãããŸãè³¢ããšã¯èšããŸãããã
| é¶Žã®æ° | äºã®æ° | ããŒã¿æ° |
|---|---|---|
| 60 | 20 | 28 |
| 50 | 30 | 28 |
| 20 | 60 | 23 |
| 40 | 40 | 14 |
| 30 | 50 | 6 |
| 35 | 45 | 1 |
One-shot
次ã«äŸé¡ã远å ããŠOne-shotã詊ããŠã¿ãŸãããã
åããããªã€ãããç®ã®åé¡ãäžããŠã¿ãŸãã
+äŸé¡
+é¶Žãšäºãåèš6å¹ããŸãã
+è¶³ã®æ°ã®åã20æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
+
+çã
+{
+ "é¶Žã®æ°": 2,
+ "äºã®æ°": 4
+}
åé¡
é¶Žãšäºãåèš80å¹ããŸãã
è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
åçã¯ä»¥äžã®JSONãã©ãŒãããã«åŸã£ãŠãã ããã
{
"é¶Žã®æ°": ,
"äºã®æ°":
}
çµæ
æ£ççã¯ãªããš 1% ã«ãªã£ãŠããŸããŸãããReasoningã¿ã¹ã¯ã§ã¯One-shotã¯äžåãã®ããã§ããã
ãªããæ°å€ãå€ããŠæ°ãã¿ãŒã³è©ŠããŠã¿ãŸããããã»ãšãã©åããããªçµæã«ãªããŸããã
| é¶Žã®æ° | äºã®æ° | ããŒã¿æ° |
|---|---|---|
| 40 | 40 | 49 |
| 50 | 30 | 27 |
| 30 | 50 | 22 |
| 20 | 60 | 1 |
| 60 | 20 | 1 |
Few-shot
ä»åºŠã¯äŸé¡ã5ã€ã«å¢ãããŠã¿ãŸããããæ£çç㯠3% ã§ããã
â»äŸé¡ã远å ããã ããªã®ã§ããã³ããã¯çç¥
çµæ
| é¶Žã®æ° | äºã®æ° | ããŒã¿æ° |
|---|---|---|
| 40 | 40 | 78 |
| 20 | 60 | 10 |
| 30 | 50 | 4 |
| 50 | 30 | 4 |
| 60 | 20 | 3 |
| 10 | 70 | 1 |
CoT
ããã§ã¯CoTã詊ããŠã¿ãŸãããããããŸã§ãšéãç¹ã¯2ã€ãããŸãã
-
äŸé¡ã®è§£æ³ã远å ãã
åŒãè§£ãéçšãããªã詳现ã«èšè¿°ããŠãããšããããã€ã³ãã§ã
+è§£æ³ +é¶Žã®æ°ãxãäºã®æ°ãyãšãã +é¶Žãšäºã®åèšã¯6å¹ãªã®ã§ãx + y = 6 (åŒ1) +è¶³ã®æ°ã®åèšã¯20æ¬ãªã®ã§ã2x + 4y = 20 (åŒ2) +åŒ1ãå€åœ¢ãããšãy = 6 - x (åŒ3) +åŒ2ã«åŒ3ãä»£å ¥ãããšã2x + 4(6 - x) = 20 (åŒ4) +åŒ4ãå€åœ¢ãã +2x + 24 - 4x = 20 +-2x + 24 = 20 +-2x = 20 - 24 +-2x = -4 +-2x / -2 = -4 / -2 +x = 2 +ãããåŒ1ã«ä»£å ¥ãããšã +2 + y = 6 +y = 6 - 2 +y = 4 +ãã£ãŠãé¶Žã¯2å¹ãäºã¯4å¹ã§ãã -
ChatGPTã«éäžåŒãèšè¿°ããã
è§£æ³ãšè¿œå ããããšã§ãæç€ºçã«è§£æ³ãã¢ãŠãããããããŠããŸããåé¡ é¶Žãšäºãåèš80å¹ããŸãã è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ +è§£æ³ çã { "é¶Žã®æ°": , "äºã®æ°": }
äŸé¡
é¶Žãšäºãåèš80å¹ããŸãã
è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
+è§£æ³
+é¶Žã®æ°ãxãäºã®æ°ãyãšãã
+é¶Žãšäºã®åèšã¯6å¹ãªã®ã§ãx + y = 6 (åŒ1)
+è¶³ã®æ°ã®åèšã¯20æ¬ãªã®ã§ã2x + 4y = 20 (åŒ2)
+åŒ1ãå€åœ¢ãããšãy = 6 - x (åŒ3)
+åŒ2ã«åŒ3ã代å
¥ãããšã2x + 4(6 - x) = 20 (åŒ4)
+åŒ4ãå€åœ¢ãã
+2x + 24 - 4x = 20
+-2x + 24 = 20
+-2x = 20 - 24
+-2x = -4
+-2x / -2 = -4 / -2
+x = 2
+ãããåŒ1ã«ä»£å
¥ãããšã
+2 + y = 6
+y = 6 - 2
+y = 4
+ãã£ãŠãé¶Žã¯2å¹ãäºã¯4å¹ã§ãã
çã
{
"é¶Žã®æ°": 2,
"äºã®æ°": 4
}
åé¡
é¶Žãšäºãåèš80å¹ããŸãã
è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
+è§£æ³
çã
{
"é¶Žã®æ°": ,
"äºã®æ°":
}
çµæ
æ£è§£çã¯ãªããš90%ïŒïŒããªãé©ç°çãªçµæã«ãªããŸããã
| é¶Žã®æ° | äºã®æ° | ããŒã¿æ° |
|---|---|---|
| 60 | 20 | 90 |
| 20 | 60 | 4 |
| 30 | 50 | 3 |
| 2 | 4 | 1 |
| 40 | 40 | 1 |
| 50 | 30 | 1 |
ãã¡ããChatGPTã®å®éã®åºåã§ããäŸé¡ã®è§£æ³ãå¿ å®ã«ç䌌ãŠããããšãããããŸãã
ãã®åé¡ã¯å
ã»ã©ã®äŸé¡ãšåãã§ãã
é¶Žã®æ°ãxãäºã®æ°ãyãšãã
é¶Žãšäºã®åèšã¯80å¹ãªã®ã§ãx + y = 80 (åŒ1)
è¶³ã®æ°ã®åèšã¯200æ¬ãªã®ã§ã2x + 4y = 200 (åŒ2)
åŒ1ãå€åœ¢ãããšãy = 80 - x (åŒ3)
åŒ2ã«åŒ3ã代å
¥ãããšã2x + 4(80 - x) = 200 (åŒ4)
åŒ4ãå€åœ¢ãã
2x + 320 - 4x = 200
-2x + 320 = 200
-2x = 200 - 320
-2x = -120
-2x / -2 = -120 / -2
x = 60
ãããåŒ1ã«ä»£å
¥ãããšã
60 + y = 80
y = 80 - 60
y = 20
ãã£ãŠãé¶Žã¯60å¹ãäºã¯20å¹ã§ãã
çã
{
"é¶Žã®æ°": 60,
"äºã®æ°": 20
}
Zero-shot Chain-of-Thought
Zero-shot CoTãšã¯ãReasoningã¿ã¹ã¯ã«ãããŠZero-shotã§ç²ŸåºŠãåäžããããã¯ããã¯ã§ãã
ãããªãåçãçæãããã®ã§ã¯ãªããããã«è³ãéçšãå
ã«çæãããã ãã§ç²ŸåºŠãåäžãããšãããã®ã§ãCoTãšåããããªã¢ãããŒãæ¹æ³ãåããŸãã
CoTã®ç¹åŸŽã¯æ¬¡ã®äºã€ã§ããã
- äŸé¡ã®è§£æ³ãäžãã
- éäžåŒãèšè¿°ããã
Zero-shot CoTãšã¯ããã®ãã¡ã® 2.éäžåŒãèšè¿°ãããã ãã§ã粟床ããããããšãã§ãã ãšãããã®ã§ãã
ããæ¹ã¯éåžžã«ã·ã³ãã«ã§ãè«æã§ã¯ããã³ããã«Let's think step by step.ãšå ããã ãã§ç²ŸåºŠãåäžããããšãå ±åããŠããŸãã
ããã§ã¯ãå ã»ã©ãšåãã€ãããç®ã®åé¡ã«ãããçšããŠã¿ãŸãããã
åé¡
é¶Žãšäºãåèš80å¹ããŸãã
è¶³ã®æ°ã®åã200æ¬ã§ãã£ããšããé¶Žãšäºã¯ããããäœå¹ããŸããïŒ
+è§£ãæ¹ãšçããæããŠãã ãã
è§£æ³
çã
{
"é¶Žã®æ°": ,
"äºã®æ°":
}
çµæ
æ£è§£ç㯠66% ãšãªããéåžžã®Zero-shotãã38%é«ãçµæãšãªããŸããã
è§£æ³ã®äŸãäžããCoTããã¯äœãã§ããããæèéçšãèšè¿°ããããã ãã§ç²ŸåºŠãåäžãããšããã®ãéèŠã§ãã
| é¶Žã®æ° | äºã®æ° | ããŒã¿æ° |
|---|---|---|
| 60 | 20 | 66 |
| 50 | 30 | 13 |
| 40 | 40 | 8 |
| 30 | 50 | 6 |
| 35 | 45 | 2 |
| 20 | 60 | 1 |
| 105 | 25 | 1 |
ãããã«
以äžãICL, CoT, Zero-shot CoTã®3ã€ã玹ä»ããŠããŸããã
å²ãšåæ©çãªå
容ã ã£ããããããŸããããäœç³»çãªçè§£ã®å©ãã«ãªãã°ãšæããŸãã
Part2ã§ã¯ReActãPALãªã©ãæ±ãäºå®ã§ãã®ã§ããã¡ãããããããé¡ãããŸãã
åèè³æ
ä»åã®èšäºã¯ãã¡ãã®åç»åã³ãªããžããªãåèã«ããŠããŸããè³ææ¢ãã«ã¯æé©ã§ãã®ã§æ¯éã
ICL: Language Models are Few-Shot Learners
CoT: Chain-of-Thought Prompting Elicits Reasoning in Large Language Models
Zero-shot Reasoning: Large Language Models are Zero-Shot Reasoners
Discussion
现ãããããããŸããããzero-shotã¯äŸã䌎ããªãã®ã§ãin-context learningã«è©²åœããŸããã
Brown, T., Mann, B., Ryder, N., Subbiah, M., Kaplan, J.D., Dhariwal, P., Neelakantan, A., Shyam, P., Sastry, G., Askell, A. and Agarwal, S., 2020. Language models are few-shot learners. Advances in neural information processing systems, 33, pp.1877-1901. https://proceedings.neurips.cc/paper/2020/hash/1457c0d6bfcb4967418bfb8ac142f64a-Abstract.html
ãææããããšãããããŸãïŒä»¥äžã®ããã«ä¿®æ£ããŸããã
è¿ éãªã察å¿ããããšãããããŸãã
ããçŽ æŽããããªã£ããšæããŸãã
ã§ããã"zero-shot learning"ã§ãè¯ãã®ãããããŸããããç§ã¯"zero-shot transfer (learning)"ãšããã»ããé©åãªæ°ãããŸãã
ã©ãæããŸããïŒ
ãããã«transferã®æ¹ãé©åã®ããã«æããŸãããåæ ãããŠããã ããŸãã
ããããšãããããŸãïŒ
è峿·±ãèšäºãããããšãããããŸã
å人çã«ããããã®LLMç³»ã®è«æã衚圢åŒã«ãŸãšããŠããŸã
ããè«æãããã°æããŠãã ãã