From dbdef5a9b96875a46df097e9bf24f09218a1a77c Mon Sep 17 00:00:00 2001 From: xuhu0115 <64852985+xuhu0115@users.noreply.github.com> Date: Sun, 30 Jul 2023 23:27:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=94=E7=AB=A0=20--=20=20=E6=96=87?= =?UTF-8?q?=E5=AD=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...…¥-æ€ç»´é“¾æŽ¨ç† Chain of Thought Reasoning.ipynb | 34 +++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/docs/content/C2 Building Systems with the ChatGPT API/5.处ç†è¾“å…¥-æ€ç»´é“¾æŽ¨ç† Chain of Thought Reasoning.ipynb b/docs/content/C2 Building Systems with the ChatGPT API/5.处ç†è¾“å…¥-æ€ç»´é“¾æŽ¨ç† Chain of Thought Reasoning.ipynb index 779fa40..af82f41 100644 --- a/docs/content/C2 Building Systems with the ChatGPT API/5.处ç†è¾“å…¥-æ€ç»´é“¾æŽ¨ç† Chain of Thought Reasoning.ipynb +++ b/docs/content/C2 Building Systems with the ChatGPT API/5.处ç†è¾“å…¥-æ€ç»´é“¾æŽ¨ç† Chain of Thought Reasoning.ipynb @@ -11,9 +11,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "在本章中,我们将学习处ç†è¾“å…¥ï¼Œé€šè¿‡ä¸€ç³»åˆ—æ­¥éª¤ç”Ÿæˆæœ‰ç”¨çš„输出。\n", + "有时,语言模型需è¦è¿›è¡Œè¯¦ç»†çš„逿­¥æŽ¨ç†æ‰èƒ½å›žç­”特定问题。如果过于匆忙得出结论,很å¯èƒ½åœ¨æŽ¨ç†é“¾ä¸­å‡ºçŽ°é”™è¯¯ã€‚å› æ­¤ï¼Œæˆ‘ä»¬å¯ä»¥é€šè¿‡â€œ**æ€ç»´é“¾æŽ¨ç†**â€ï¼ˆChain of Thought Reasoningï¼‰çš„ç­–ç•¥ï¼Œåœ¨æŸ¥è¯¢ä¸­æ˜Žç¡®è¦æ±‚语言模型先æä¾›ä¸€ç³»åˆ—ç›¸å…³æŽ¨ç†æ­¥éª¤ï¼Œè¿›è¡Œæ·±åº¦æ€è€ƒï¼Œç„¶åŽå†ç»™å‡ºæœ€ç»ˆç­”案,这更接近人类解题的æ€ç»´è¿‡ç¨‹ã€‚\n", "\n", - "模型在回答特定问题之å‰éœ€è¦è¿›è¡Œè¯¦ç»†åœ°æŽ¨ç†ï¼Œå¦è€…å¯èƒ½ä¼šå› ä¸ºè¿‡äºŽåŒ†å¿™å¾—出结论而在推ç†è¿‡ç¨‹ä¸­å‡ºé”™ã€‚为了é¿å…以上问题,我们å¯ä»¥é‡æž„è¾“å…¥ï¼Œè¦æ±‚æ¨¡åž‹åœ¨ç»™å‡ºæœ€ç»ˆç­”æ¡ˆä¹‹å‰æä¾›ä¸€ç³»åˆ—ç›¸å…³çš„æŽ¨ç†æ­¥éª¤ï¼Œè¿™æ ·å®ƒå°±å¯ä»¥æ›´é•¿æ—¶é—´ã€æ›´æ·±å…¥åœ°æ€è€ƒé—®é¢˜ã€‚è¿™ç§è¦æ±‚æ¨¡åž‹é€æ­¥æŽ¨ç†é—®é¢˜çš„策略为æ€ç»´é“¾æŽ¨ç†ï¼ˆChain of Thought Reasoning)。" + "ç›¸æ¯”ç›´æŽ¥è¦æ±‚输出结果,这ç§å¼•å¯¼è¯­è¨€æ¨¡åž‹é€æ­¥æŽ¨ç†çš„æ–¹æ³•,å¯ä»¥å‡å°‘å…¶åŒ†å¿™é”™è¯¯ï¼Œç”Ÿæˆæ›´å‡†ç¡®å¯é çš„å“应。æ€ç»´é“¾æŽ¨ç†ä½¿è¯­è¨€æ¨¡åž‹æ›´å¥½åœ°æ¨¡æ‹Ÿäººç±»é€»è¾‘æ€è€ƒï¼Œæ˜¯æå‡å…¶å›žç­”è´¨é‡çš„é‡è¦ç­–略之一。\n", + "\n", + "在本章中,我们将探讨如何处ç†è¯­è¨€æ¨¡åž‹çš„输入,以生æˆé«˜è´¨é‡çš„输出。我们将详细介ç»å¦‚何构建æ€ç»´é“¾æŽ¨ç† Prompt ,并通过案例分æžè¿™ç§æ–¹æ³•的效果。掌æ¡è¿™ä¸€æŠ€å·§å°†æœ‰åŠ©äºŽå¼€å‘者获得更佳的语言模型输出。" ] }, { @@ -22,7 +24,9 @@ "source": [ "## ä¸€ã€æ€ç»´é“¾æç¤ºè®¾è®¡\n", "\n", - "æ€ç»´é“¾æç¤ºè®¾è®¡ï¼ˆChain of Thought Prompting)是通过设计系统消æ¯ï¼Œè¦æ±‚模型在得出结论之å‰ä¸€æ­¥ä¸€æ­¥æŽ¨ç†ç­”案。" + "æ€ç»´é“¾æç¤ºæ˜¯ä¸€ç§å¼•å¯¼è¯­è¨€æ¨¡åž‹è¿›è¡Œé€æ­¥æŽ¨ç†çš„ Prompt 设计技巧。它通过在 Prompt 中设置系统消æ¯ï¼Œè¦æ±‚语言模型在给出最终结论之å‰ï¼Œå…ˆæ˜Žç¡®å„ä¸ªæŽ¨ç†æ­¥éª¤ã€‚\n", + "\n", + "具体æ¥è¯´ï¼ŒPromptå¯ä»¥å…ˆè¯·è¯­è¨€æ¨¡åž‹é™ˆè¿°å¯¹é—®é¢˜çš„åˆæ­¥ç†è§£ï¼Œç„¶åŽåˆ—出需è¦è€ƒè™‘的方方é¢é¢ï¼Œæœ€åŽå†é€ä¸ªåˆ†æžè¿™äº›å› ç´ ï¼Œç»™å‡ºæ”¯æŒæˆ–å对的论æ®ï¼Œæ‰å¾—出整体的结论。这ç§é€æ­¥æŽ¨ç†çš„æ–¹å¼ï¼Œæ›´æŽ¥è¿‘人类处ç†å¤æ‚问题的æ€ç»´è¿‡ç¨‹ï¼Œå¯ä»¥å‡å°‘è¯­è¨€æ¨¡åž‹åŒ†å¿™å¾—å‡ºé”™è¯¯ç»“è®ºçš„æƒ…å†µã€‚å› ä¸ºå®ƒå¿…é¡»é€æ­¥è®ºè¯è‡ªå·±çš„è§‚ç‚¹ï¼Œè€Œä¸æ˜¯ç›´æŽ¥è¾“出çµè®ºã€‚通过详细的æ€ç»´é“¾æç¤ºï¼Œå¼€å‘者å¯ä»¥èŽ·å¾—è¯­è¨€æ¨¡åž‹ç”Ÿæˆçš„结论更加å¯é ï¼Œç†ç”±æ›´åŠ å……åˆ†ã€‚è¿™ç§æç¤ºè®¾è®¡æŠ€å·§å€¼å¾—åœ¨éœ€è¦è¯­è¨€æ¨¡åž‹è¿›è¡Œå¤æ‚æŽ¨ç†æ—¶åР以è¿ç”¨ã€‚" ] }, { @@ -32,6 +36,13 @@ "### 1.1 系统消æ¯è®¾è®¡" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "首先,在系统消æ¯ä¸­ä½¿ç”¨æ€ç»´é“¾æç¤ºï¼š" + ] + }, { "cell_type": "code", "execution_count": 3, @@ -123,6 +134,13 @@ "### 1.2 ç”¨æˆ·æ¶ˆæ¯æµ‹è¯•" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "接下æ¥ï¼Œåœ¨ç”¨æˆ·æ¶ˆæ¯ä¸­æµ‹è¯•在系统消æ¯ä¸­è®¾ç½®çš„æ€ç»´é“¾æç¤ºï¼š" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -208,8 +226,11 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "在æŸäº›åº”用场景下,完整呈现语言模型的推ç†è¿‡ç¨‹å¯èƒ½ä¼šæ³„éœ²å…³é”®ä¿¡æ¯æˆ–答案,这并ä¸å¯å–。例如在教学应用中,我们希望学生通过自己的æ€è€ƒèŽ·å¾—ç»“è®ºï¼Œè€Œä¸æ˜¯ç›´æŽ¥è¢«å‘ŠçŸ¥ç­”案。\n", "\n", - "åœ¨å®žé™…åº”ç”¨ä¸­ï¼Œæˆ‘ä»¬å¹¶ä¸æƒ³è¦å°†æŽ¨ç†çš„过程呈现给用户。比如在辅导类应用程åºä¸­ï¼Œæˆ‘们希望学生能够æ€è€ƒå¾—出自己的答案。呈现关于学生解决方案的推ç†è¿‡ç¨‹å¯èƒ½ä¼šå°†ç­”案泄露。内心独白(Inner Monologue)本质就是éšè—模型推ç†è¿‡ç¨‹ï¼Œå¯ä»¥ç”¨æ¥ä¸€å®šç¨‹åº¦ä¸Šè§£å†³è¿™ä¸ªé—®é¢˜ã€‚具体而言,通过让模型将部分需è¦éšè—的输出以结构化的方å¼å‚¨å­˜ä»¥ä¾¿åŽç»­è§£æžã€‚接下æ¥ï¼Œåœ¨å°†ç»“果呈现给用户之å‰ï¼Œç»“构化的结果被解æžï¼Œåªæœ‰éƒ¨åˆ†ç»“果被输出并呈现给用户。" + "针对这一问题。“**内心独白**â€æŠ€å·§å¯ä»¥åœ¨ä¸€å®šç¨‹åº¦ä¸Šéšè—语言模型的推ç†é“¾ã€‚å…·ä½“åšæ³•是,在 Prompt 中指示语言模型以结构化格å¼å­˜å‚¨éœ€è¦éšè—的中间推ç†ï¼Œä¾‹å¦‚存储为å˜é‡ã€‚ç„¶åŽåœ¨è¿”回结果时,仅呈现对用户有价值的输出,ä¸å±•示完整的推ç†è¿‡ç¨‹ã€‚è¿™ç§æç¤ºç­–ç•¥åªå‘用户呈现关键信æ¯ï¼Œé¿å…é€éœ²ç­”æ¡ˆã€‚åŒæ—¶è¯­è¨€æ¨¡åž‹çš„æŽ¨ç†èƒ½åŠ›ä¹Ÿå¾—ä»¥ä¿ç•™ã€‚适当使用“内心独白â€å¯ä»¥åœ¨ä¿æŠ¤æ•感信æ¯çš„åŒæ—¶ï¼Œå‘挥语言模型的推ç†ç‰¹é•¿ã€‚\n", + "\n", + "总之,适度éšè—ä¸­é—´æŽ¨ç†æ˜¯Prompt工程中é‡è¦çš„æŠ€å·§ä¹‹ä¸€ã€‚å¼€å‘者需è¦ä¸ºä¸åŒç”¨æˆ·åˆ¶å®šä¸åŒçš„ä¿¡æ¯å‘ˆçŽ°ç­–ç•¥ã€‚ä»¥å‘æŒ¥è¯­è¨€æ¨¡åž‹æœ€å¤§ä»·å€¼ã€‚\n" ] }, { @@ -242,8 +263,9 @@ "metadata": {}, "source": [ "
\n", - "在下一章中,我们将学习一ç§å¤„ç†å¤æ‚任务的新策略,å³å°†å¤æ‚任务分解为一系列更简å•çš„å­ä»»åŠ¡ï¼Œè€Œä¸æ˜¯è¯•图在一个 Prompt ä¸­å®Œæˆæ•´ä¸ªä»»åŠ¡ã€‚\n", - "\n" + "åœ¨å¤æ‚任务中,我们往往需è¦è¯­è¨€æ¨¡åž‹è¿›è¡Œå¤šè½®äº¤äº’ã€é€æ­¥æŽ¨ç†ï¼Œæ‰èƒ½å®Œæˆæ•´ä¸ªæµç¨‹ã€‚如果想在一个Prompt中完æˆå…¨éƒ¨ä»»åŠ¡ï¼Œå¯¹è¯­è¨€æ¨¡åž‹çš„èƒ½åŠ›è¦æ±‚会过高,æˆåŠŸçŽ‡è¾ƒä½Žã€‚\n", + "\n", + "因此,下一章将介ç»ä¸€ç§æ›´å¯é çš„ç­–ç•¥ï¼šå°†å¤æ‚任务分解为多个å­ä»»åŠ¡ï¼Œé€šè¿‡æç¤ºé“¾(Prompt Chaining) step-by-step引导语言模型完æˆã€‚具体æ¥è¯´ï¼Œæˆ‘们å¯ä»¥åˆ†æžä»»åŠ¡çš„ä¸åŒé˜¶æ®µï¼Œä¸ºæ¯ä¸ªé˜¶æ®µè®¾è®¡ä¸€ä¸ªç®€å•明确的 Prompt 。我们将通过实例展示æç¤ºé“¾çš„è¿ç”¨ï¼Œä»¥åŠå¦‚何科学拆分Promptæ¥å¼•导语言模型递进完æˆå¤šæ­¥éª¤ä»»åŠ¡ã€‚è¿™æ˜¯æç¤ºå·¥ç¨‹ä¸­éžå¸¸é‡è¦çš„æŠ€èƒ½ä¹‹ä¸€ã€‚\n" ] }, {