From 21a72ad4f3cbe1d0cdac7ca75c79768354c5e740 Mon Sep 17 00:00:00 2001 From: xuhu0115 <64852985+xuhu0115@users.noreply.github.com> Date: Mon, 31 Jul 2023 00:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E5=85=AD=E7=AB=A0---=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 --- ...¤„ç†è¾“å…¥-é“¾å¼ Prompt Chaining Prompts.ipynb | 95 +++++++++++++------ 1 file changed, 64 insertions(+), 31 deletions(-) diff --git a/docs/content/C2 Building Systems with the ChatGPT API/6.处ç†è¾“å…¥-é“¾å¼ Prompt Chaining Prompts.ipynb b/docs/content/C2 Building Systems with the ChatGPT API/6.处ç†è¾“å…¥-é“¾å¼ Prompt Chaining Prompts.ipynb index e0368a1..3a2e5a8 100644 --- a/docs/content/C2 Building Systems with the ChatGPT API/6.处ç†è¾“å…¥-é“¾å¼ Prompt Chaining Prompts.ipynb +++ b/docs/content/C2 Building Systems with the ChatGPT API/6.处ç†è¾“å…¥-é“¾å¼ Prompt Chaining Prompts.ipynb @@ -11,22 +11,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "åœ¨æœ¬ç« ä¸­ï¼Œæˆ‘ä»¬å°†å­¦ä¹ å¦‚ä½•é€šè¿‡ä½¿ç”¨é“¾å¼ Prompt 将夿‚任务拆分为一系列简å•çš„å­ä»»åŠ¡ã€‚\n", + "é“¾å¼æç¤ºæ˜¯å°†å¤æ‚任务分解为多个简å•Promptçš„ç­–ç•¥ã€‚åœ¨æœ¬ç« ä¸­ï¼Œæˆ‘ä»¬å°†å­¦ä¹ å¦‚ä½•é€šè¿‡ä½¿ç”¨é“¾å¼ Prompt 将夿‚任务拆分为一系列简å•çš„å­ä»»åŠ¡ã€‚ä½ å¯èƒ½ä¼šæƒ³ï¼Œå¦‚果我们å¯ä»¥é€šè¿‡æ€ç»´é“¾æŽ¨ç†ä¸€æ¬¡æ€§å®Œæˆï¼Œé‚£ä¸ºä»€ä¹ˆè¦å°†ä»»åŠ¡æ‹†åˆ†ä¸ºå¤šä¸ª Prompt 呢?\n", "\n", - "ä½ å¯èƒ½ä¼šæƒ³ï¼Œå¦‚果我们å¯ä»¥é€šè¿‡æ€ç»´é“¾æŽ¨ç†ä¸€æ¬¡æ€§å®Œæˆï¼Œé‚£ä¸ºä»€ä¹ˆè¦å°†ä»»åŠ¡æ‹†åˆ†ä¸ºå¤šä¸ª Prompt å‘¢ï¼Ÿè®©æˆ‘ä»¬ç”¨ä»¥ä¸‹ä¸¤ä¸ªæ¯”å–»æ¥æ¯”较æ€ç»´é“¾æŽ¨ç†å’Œé“¾å¼Prompt,从而æ¥è§£é‡Šé“¾å¼Promptçš„å¿…è¦æ€§ã€‚ \n", + "ä¸»è¦æ˜¯å› ä¸ºé“¾å¼æç¤ºå®ƒå…·æœ‰ä»¥ä¸‹ä¼˜ç‚¹:\n", "\n", - "- 将任务拆分为多个 Prompt å°±åƒæ˜¯ä¸€æ¬¡æ€§çƒ¹é¥ªå¤æ‚èœè‚´ä¸Žåˆ†é˜¶æ®µçƒ¹é¥ªçš„åŒºåˆ«ã€‚ä½¿ç”¨ä¸€ä¸ªé•¿è€Œå¤æ‚çš„ Prompt å¯èƒ½å°±åƒä¸€æ¬¡æ€§çƒ¹é¥ªå¤æ‚çš„èœè‚´ï¼Œæ‚¨å¿…é¡»åŒæ—¶ç®¡ç†å¤šä¸ªæˆåˆ†ã€çƒ¹é¥ªæŠ€å·§å’Œæ—¶é—´ã€‚è¿™å¯èƒ½å¾ˆå…·æœ‰æŒ‘战性,难以跟踪æ¯ä¸ªéƒ¨åˆ†å¹¶ç¡®ä¿æ¯ä¸ªç»„æˆéƒ¨åˆ†éƒ½çƒ¹é¥ªå¾—æ°åˆ°å¥½å¤„。å¦ä¸€æ–¹é¢ï¼Œé“¾å¼ Prompt å°±åƒåˆ†é˜¶æ®µçƒ¹é¥ªé¤ç‚¹ï¼Œä½ ä¸“注于一个组æˆéƒ¨åˆ†ï¼Œç¡®ä¿æ¯ä¸ªéƒ¨åˆ†éƒ½æ­£ç¡®çƒ¹é¥ªåŽå†è¿›è¡Œä¸‹ä¸€ä¸ªã€‚è¿™ç§æ–¹æ³•å¯ä»¥åˆ†è§£ä»»åŠ¡çš„å¤æ‚性,使其更易于管ç†ï¼Œå¹¶å‡å°‘错误的å¯èƒ½æ€§ã€‚但是,对于éžå¸¸ç®€å•çš„é£Ÿè°±ï¼Œè¿™ç§æ–¹æ³•则å¯èƒ½å› ä¸ºè¿‡äºŽå¤æ‚而ä¸é€‚用。\n", + "1. åˆ†è§£å¤æ‚度,æ¯ä¸ª Prompt 仅处ç†ä¸€ä¸ªå…·ä½“å­ä»»åŠ¡ï¼Œé¿å…è¿‡äºŽå®½æ³›çš„è¦æ±‚,æé«˜æˆåŠŸçŽ‡ã€‚è¿™ç±»ä¼¼äºŽåˆ†é˜¶æ®µçƒ¹é¥ªï¼Œè€Œä¸æ˜¯è¯•图一次完æˆå…¨éƒ¨ã€‚\n", "\n", - "- æ€ç»´é“¾æŽ¨ç†å’Œé“¾å¼Prompt的区别就åƒä¸€é•¿ä¸²è¢‹é¦å’Œç®€å•的模å—化程åºã€‚相比使用简å•的模å—化程åºï¼Œä¸€é•¿ä¸²ä»£ç ä¹‹å‰å¤æ‚çš„ä¾èµ–关系会导致代ç å˜å¾—混乱且难以调试。\n", + "2. é™ä½Žè®¡ç®—æˆæœ¬ã€‚过长的 Prompt 使用更多 tokens ï¼Œå¢žåŠ æˆæœ¬ã€‚拆分 Prompt å¯ä»¥é¿å…ä¸å¿…è¦çš„计算。\n", "\n", - "当你的工作æµç¨‹åŒ…å«å¤šä¸ªæ­¥éª¤å’Œå¤šä¸ªçжæ€ï¼Œåœ¨ä¸åŒçжæ€ä¸‹éœ€è¦é‡‡å–ä¸åŒæ“ä½œçš„æ—¶ï¼Œé“¾å¼ Prompt å°±æˆä¸ºä¸€ç§å¼ºå¤§çš„策略。比如在对客户的查询进行分类åŽï¼ŒèŽ·å¾—æŸ¥è¯¢çš„ç±»åˆ«ï¼šæ˜¯è´¦æˆ·é—®é¢˜è¿˜æ˜¯äº§å“问题。然åŽå¯ä»¥æ ¹æ®ä¸åŒçš„类别采å–ä¸åŒçš„行动。\n", + "3. 更容易测试和调试。å¯ä»¥é€æ­¥åˆ†æžæ¯ä¸ªçŽ¯èŠ‚çš„æ€§èƒ½ã€‚\n", "\n", - "在链å¼Promptä¸­ï¼Œå¤æ‚任务被拆分为å­ä»»åŠ¡ï¼Œæ¯ä¸ªå­ä»»åŠ¡ä»…åŒ…å«æ‰§è¡Œå¯¹åº”任务所需的指令,这使得系统更易于管ç†ï¼Œç¡®ä¿æ¨¡åž‹å…·å¤‡æ‰§è¡Œä»»åŠ¡æ‰€éœ€çš„æ‰€æœ‰ä¿¡æ¯ï¼Œå¹¶é™ä½Žäº†å‡ºé”™çš„å¯èƒ½æ€§ã€‚此外,链å¼Prompt还有有以下好处\n", - "- é™ä½Žæˆæœ¬ã€‚因为更长的 Prompt 和更多的 tokens 会导致更高的è¿è¡Œæˆæœ¬ï¼Œå¹¶ä¸”在æŸäº›æƒ…况下å¯èƒ½ä¸éœ€è¦æ¦‚述所有步骤。\n", - "- 更容易测试哪些步骤å¯èƒ½æ›´å®¹æ˜“出错,或者在特定步骤中需è¦äººå·¥å¹²é¢„。\n", - "- 使用外部工具。例如,在其中的æŸä¸€æ­¥ï¼Œä½ å¯ä»¥åŽ»äº§å“目录中查找æŸäº›å†…容,调用外部 API 或æœç´¢çŸ¥è¯†åº“,这些使用å•个 Prompt 无法实现的。\n", + "4. èžå…¥å¤–部工具。ä¸åŒ Prompt å¯ä»¥è°ƒç”¨ API ã€æ•°æ®åº“等外部资æºã€‚\n", "\n", - "éšç€æ‚¨ä¸Žè¿™äº›æ¨¡åž‹çš„æž„å»ºå’Œäº¤äº’ä¸æ–­æ·±å…¥ï¼Œæ‚¨å°†é€æ¸åŸ¹å…»å‡ºä½•æ—¶è¿ç”¨é“¾å¼ Prompt策略的直觉。\n" + "5. æ›´çµæ´»çš„工作æµç¨‹ã€‚æ ¹æ®ä¸åŒæƒ…况å¯ä»¥è¿›è¡Œä¸åŒæ“作。\n", + "\n", + "ç»¼ä¸Šï¼Œé“¾å¼æç¤ºé€šè¿‡å°†å¤æ‚任务进行科学拆分,实现了更高效ã€å¯é çš„æç¤ºè®¾è®¡ã€‚它使语言模型集中处ç†å•一å­ä»»åŠ¡ï¼Œå‡å°‘认知负è·ï¼ŒåŒæ—¶ä¿ç•™äº†å¤šæ­¥éª¤ä»»åŠ¡çš„èƒ½åŠ›ã€‚éšç€ç»éªŒå¢žé•¿ï¼Œå¼€å‘者å¯ä»¥é€æ¸æŽŒæ¡è¿ç”¨é“¾å¼æç¤ºçš„精髓。\n" ] }, { @@ -130,7 +129,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "å¯ä»¥çœ‹åˆ°ï¼Œè¾“出是一个对象列表,æ¯ä¸ªå¯¹è±¡éƒ½æœ‰ä¸€ä¸ªç±»åˆ«å’Œä¸€äº›äº§å“。如\"SmartX ProPhone\" å’Œ \"Fotosnap DSLR Camera\"ã€\"CineView 4K TV\"。\n", + "å¯ä»¥çœ‹åˆ°ï¼Œè¾“出是一个对象列表,æ¯ä¸ªå¯¹è±¡éƒ½æœ‰ä¸€ä¸ªç±»åˆ«å’Œä¸€äº›äº§å“。如 \"SmartX ProPhone\" å’Œ \"Fotosnap DSLR Camera\" ã€\"CineView 4K TV\"。\n", "\n", "æˆ‘ä»¬å†æ¥çœ‹ä¸€ä¸ªä¾‹å­ã€‚" ] @@ -167,11 +166,9 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "我们æä¾›å¤§é‡çš„产å“ä¿¡æ¯ä½œä¸ºç¤ºä¾‹ï¼Œè¦æ±‚模型æå–产å“和对应的详细信æ¯ã€‚é™äºŽç¯‡å¹…,我们产å“ä¿¡æ¯å­˜å‚¨åœ¨ products.json 中,通过 Python 代ç è¯»å–该信æ¯ã€‚\n", + "我们æä¾›å¤§é‡çš„产å“ä¿¡æ¯ä½œä¸ºç¤ºä¾‹ï¼Œè¦æ±‚模型æå–产å“和对应的详细信æ¯ã€‚é™äºŽç¯‡å¹…,我们产å“ä¿¡æ¯å­˜å‚¨åœ¨ products.json 中。\n", "\n", - "如下是产å“ä¿¡æ¯çš„å°‘é‡å±•示:\n", - "\n", - "![](../../../figures/docs/C2/ch6-products.png)" + "首先,让我们通过 Python 代ç è¯»å–产å“ä¿¡æ¯ã€‚" ] }, { @@ -186,6 +183,13 @@ " products = json.load(file)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "接下æ¥ï¼Œå®šä¹‰ get_product_by_name 函数,是我们能够根æ®äº§å“å称获å–产å“:" + ] + }, { "cell_type": "code", "execution_count": 5, @@ -211,6 +215,13 @@ " return [product for product in products.values() if product[\"类别\"] == category]" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "调用 get_product_by_name 函数,输入产å“åç§° “TechPro Ultrabookâ€ï¼š " + ] + }, { "cell_type": "code", "execution_count": 7, @@ -239,6 +250,13 @@ "get_product_by_name(\"TechPro Ultrabook\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "接下æ¥ï¼Œæˆ‘们å†çœ‹ä¸€ä¸ªä¾‹å­ï¼Œè°ƒç”¨ get_product_by_name 函数,输入产å“åç§° “电脑和笔记本â€ï¼š " + ] + }, { "cell_type": "code", "execution_count": 8, @@ -323,6 +341,13 @@ "### 3.1 è§£æžè¾“入字符串" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "定义一个 read_string_to_list 函数,将输入的字符串转æ¢ä¸º Python 列表" + ] + }, { "cell_type": "code", "execution_count": 6, @@ -377,6 +402,13 @@ "### 3.2 进行检索" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "定义函数 generate_output_string 函数,根æ®è¾“入的数æ®åˆ—表生æˆåŒ…å«äº§å“或类别信æ¯çš„字符串:" + ] + }, { "cell_type": "code", "execution_count": 10, @@ -632,6 +664,15 @@ "print(final_response)" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "在这个例å­ä¸­ï¼Œæˆ‘ä»¬åªæ·»åŠ äº†ä¸€ä¸ªç‰¹å®šå‡½æ•°æˆ–å‡½æ•°çš„è°ƒç”¨ï¼Œä»¥é€šè¿‡äº§å“å称获å–äº§å“æè¿°æˆ–é€šè¿‡ç±»åˆ«å称获å–类别产å“。但是,模型实际上擅长决定何时使用å„ç§ä¸åŒçš„工具,并å¯ä»¥æ­£ç¡®åœ°ä½¿ç”¨å®ƒä»¬ã€‚这就是 ChatGPT æ’件背åŽçš„æ€æƒ³ã€‚æˆ‘ä»¬å‘Šè¯‰æ¨¡åž‹å®ƒå¯ä»¥è®¿é—®å“ªäº›å·¥å…·ä»¥åŠå®ƒä»¬çš„作用,它会在需è¦ä»Žç‰¹å®šæ¥æºèŽ·å–ä¿¡æ¯æˆ–想è¦é‡‡å–其他适当的æ“作时选择使用它们。在这个例å­ä¸­ï¼Œæˆ‘们åªèƒ½é€šè¿‡ç²¾ç¡®çš„产å“和类别åç§°åŒ¹é…æŸ¥æ‰¾ä¿¡æ¯ï¼Œä½†è¿˜æœ‰æ›´é«˜çº§çš„ä¿¡æ¯æ£€ç´¢æŠ€æœ¯ã€‚检索信æ¯çš„æœ€æœ‰æ•ˆæ–¹æ³•ä¹‹ä¸€æ˜¯ä½¿ç”¨è‡ªç„¶è¯­è¨€å¤„ç†æŠ€æœ¯ï¼Œä¾‹å¦‚å‘½å实体识别和关系æå–。\n", + "\n", + "å¦ä¸€æ–¹æ³•是使用文本嵌入(Embedding)æ¥èŽ·å–ä¿¡æ¯ã€‚嵌入å¯ä»¥ç”¨äºŽå®žçŽ°å¯¹å¤§åž‹è¯­æ–™åº“çš„é«˜æ•ˆçŸ¥è¯†æ£€ç´¢ï¼Œä»¥æŸ¥æ‰¾ä¸Žç»™å®šæŸ¥è¯¢ç›¸å…³çš„ä¿¡æ¯ã€‚使用文本嵌入的一个关键优势是它们å¯ä»¥å®žçŽ°æ¨¡ç³Šæˆ–è¯­ä¹‰æœç´¢ï¼Œè¿™ä½¿æ‚¨èƒ½å¤Ÿåœ¨ä¸ä½¿ç”¨ç²¾ç¡®å…³é”®å­—的情况下找到相关信æ¯ã€‚因此,在此例å­ä¸­ï¼Œæˆ‘们ä¸ä¸€å®šéœ€è¦äº§å“的确切å称,而å¯ä»¥ä½¿ç”¨æ›´ä¸€èˆ¬çš„æŸ¥è¯¢å¦‚ **“手机â€** 进行æœç´¢ã€‚" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -643,29 +684,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "我们讨论了如何通过一系列步骤加载与用户查询相关的信æ¯ï¼Œä¸ºæ¨¡åž‹æä¾›æ‰€éœ€çš„上下文,以有效回答问题。\n", + "在设计æç¤ºé“¾æ—¶ï¼Œæˆ‘们并ä¸éœ€è¦ä¹Ÿä¸å»ºè®®å°†æ‰€æœ‰å¯èƒ½ç›¸å…³ä¿¡æ¯ä¸€æ¬¡æ€§å…¨åŠ è½½åˆ°æ¨¡åž‹ä¸­ï¼Œè€Œæ˜¯é‡‡å–动æ€ã€æŒ‰éœ€æä¾›ä¿¡æ¯çš„策略,原因如下:\n", "\n", - "您å¯èƒ½ä¼šæƒ³ï¼Œä¸ºä»€ä¹ˆæˆ‘ä»¬é€‰æ‹©æ€§åœ°å°†äº§å“æè¿°åŠ è½½åˆ°æç¤ºä¸­ï¼Œè€Œä¸æ˜¯åŒ…嫿‰€æœ‰äº§å“æè¿°ï¼Œè®©æ¨¡åž‹ä½¿ç”¨å®ƒæ‰€éœ€çš„ä¿¡æ¯å‘¢ï¼Ÿ\n", + "1. 过多无关信æ¯ä¼šä½¿æ¨¡åž‹å¤„ç†ä¸Šä¸‹æ–‡æ—¶æ›´åŠ å›°æƒ‘ã€‚å°¤å…¶æ˜¯ä½Žçº§æ¨¡åž‹ï¼Œå¤„ç†å¤§é‡æ•°æ®ä¼šè¡¨çŽ°è¡°å‡ã€‚\n", "\n", - "这其中有几个原因。\n", + "2. 模型本身对上下文长度有é™åˆ¶ï¼Œæ— æ³•一次加载过多信æ¯ã€‚\n", "\n", - "首先,包å«è¿‡å¤šçš„äº§å“æè¿°å¯èƒ½ä¼šä½¿æ¨¡åž‹åœ¨å¤„ç†ä¸Šä¸‹æ–‡æ—¶æ„Ÿåˆ°å›°æƒ‘,就åƒå¯¹äºŽè¯•图一次处ç†å¤§é‡ä¿¡æ¯çš„äººä¸€æ ·ã€‚å½“ç„¶ï¼Œå¯¹äºŽåƒ GPT-4 这样更高级的模型æ¥è¯´ï¼Œè¿™ä¸ªåŽŸå› å°±ä¸å¤ªé‡è¦äº†ã€‚尤其是当上下文åƒè¿™ä¸ªä¾‹å­ä¸€æ ·å…·æœ‰è‰¯å¥½çš„ç»“æž„æ—¶ï¼Œæ¨¡åž‹è¶³å¤Ÿèªæ˜Žï¼Œèƒ½å¤Ÿå·§å¦™åœ°å¿½ç•¥é‚£äº›æ˜Žæ˜¾ä¸ç›¸å…³çš„ä¿¡æ¯ã€‚\n", + "3. 包å«è¿‡å¤šä¿¡æ¯å®¹æ˜“导致模型过拟åˆï¼Œå¤„ç†æ–°æŸ¥è¯¢æ—¶æ•ˆæžœè¾ƒå·®ã€‚\n", "\n", - "接下æ¥çš„原因更加具有说æœåŠ›ã€‚\n", + "4. 动æ€åŠ è½½ä¿¡æ¯å¯ä»¥é™ä½Žè®¡ç®—æˆæœ¬ã€‚\n", "\n", - "é¦–å…ˆï¼ŒåŒ…å«æ‰€æœ‰äº§å“æè¿°å¯èƒ½ä¼šä½¿æ¨¡åž‹å¯¹ä¸Šä¸‹æ–‡æ›´åŠ æ··ä¹±ï¼Œå°±åƒå¯¹äºŽè¯•图一次处ç†å¤§é‡ä¿¡æ¯çš„äººä¸€æ ·ã€‚å½“ç„¶ï¼Œå¯¹äºŽåƒ GPT-4 这样更高级的模型æ¥è¯´ï¼Œè¿™ä¸ªé—®é¢˜ä¸å¤ªç›¸å…³ï¼Œç‰¹åˆ«æ˜¯å½“上下文åƒè¿™ä¸ªä¾‹å­ä¸€æ ·ç»“æž„è‰¯å¥½æ—¶ï¼Œæ¨¡åž‹è¶³å¤Ÿèªæ˜Žï¼Œåªä¼šå¿½ç•¥æ˜Žæ˜¾ä¸ç›¸å…³çš„ä¿¡æ¯ã€‚接下æ¥çš„原因更有说æœåŠ›ã€‚\n", + "5. å…è®¸æ¨¡åž‹ä¸»åŠ¨å†³å®šä½•æ—¶éœ€è¦æ›´å¤šä¿¡æ¯ï¼Œå¯ä»¥å¢žå¼ºå…¶æŽ¨ç†èƒ½åŠ›ã€‚\n", "\n", - "第二个原因是,语言模型有上下文é™åˆ¶ï¼Œå³å›ºå®šæ•°é‡çš„ token å…许作为输入和输出。如果您有一个巨大的产å“目录,您甚至无法将所有æè¿°éƒ½æ”¾å…¥ä¸Šä¸‹æ–‡çª—å£ä¸­ã€‚\n", + "6. 我们å¯ä»¥ä½¿ç”¨æ›´æ™ºèƒ½çš„æ£€ç´¢æœºåˆ¶ï¼Œè€Œä¸ä»…是精确匹é…,例如文本 Embedding 实现语义æœç´¢ã€‚\n", "\n", - "最åŽä¸€ä¸ªåŽŸå› æ˜¯ï¼ŒåŒ…å«æ‰€æœ‰äº§å“æè¿°å¯èƒ½ä¼šä½¿æ¨¡åž‹è¿‡æ‹Ÿåˆï¼Œå› ä¸ºå®ƒä¼šè®°ä½æ‰€æœ‰çš„äº§å“æè¿°ï¼Œè€Œä¸æ˜¯åªè®°ä½ä¸ŽæŸ¥è¯¢ç›¸å…³çš„ä¿¡æ¯ã€‚è¿™å¯èƒ½ä¼šå¯¼è‡´æ¨¡åž‹åœ¨å¤„ç†æ–°çš„æŸ¥è¯¢æ—¶è¡¨çްä¸ä½³ã€‚\n", - "\n", - "使用语言模型时,由于按 token 付费,å¯èƒ½ä¼šå¾ˆæ˜‚贵。因此,通过有选择地加载信æ¯ï¼Œå¯ä»¥å‡å°‘生æˆå“åº”çš„æˆæœ¬ã€‚一般æ¥è¯´ï¼Œç¡®å®šä½•时动æ€åŠ è½½ä¿¡æ¯åˆ°æ¨¡åž‹çš„上下文中,并å…è®¸æ¨¡åž‹å†³å®šä½•æ—¶éœ€è¦æ›´å¤šä¿¡æ¯ï¼Œæ˜¯å¢žå¼ºè¿™äº›æ¨¡åž‹èƒ½åŠ›çš„æœ€ä½³æ–¹æ³•ä¹‹ä¸€ã€‚\n", - "\n", - "并且è¦å†æ¬¡å¼ºè°ƒï¼Œæ‚¨åº”该将语言模型视为需è¦å¿…è¦ä¸Šä¸‹æ–‡æ‰èƒ½å¾—出有用结论和执行有用任务的推ç†ä»£ç†ã€‚å› æ­¤ï¼Œåœ¨è¿™ç§æƒ…å†µä¸‹ï¼Œæˆ‘ä»¬å¿…é¡»å‘æ¨¡åž‹æä¾›äº§å“ä¿¡æ¯ï¼Œç„¶åŽå®ƒæ‰èƒ½æ ¹æ®è¯¥äº§å“ä¿¡æ¯è¿›è¡ŒæŽ¨ç†ï¼Œä¸ºç”¨æˆ·åˆ›å»ºæœ‰ç”¨çš„答案。\n", - "\n", - "在这个例å­ä¸­ï¼Œæˆ‘ä»¬åªæ·»åŠ äº†ä¸€ä¸ªç‰¹å®šå‡½æ•°æˆ–å‡½æ•°çš„è°ƒç”¨ï¼Œä»¥é€šè¿‡äº§å“å称获å–äº§å“æè¿°æˆ–é€šè¿‡ç±»åˆ«å称获å–类别产å“。但是,模型实际上擅长决定何时使用å„ç§ä¸åŒçš„工具,并å¯ä»¥æ­£ç¡®åœ°ä½¿ç”¨å®ƒä»¬ã€‚这就是 ChatGPT æ’件背åŽçš„æ€æƒ³ã€‚æˆ‘ä»¬å‘Šè¯‰æ¨¡åž‹å®ƒå¯ä»¥è®¿é—®å“ªäº›å·¥å…·ä»¥åŠå®ƒä»¬çš„作用,它会在需è¦ä»Žç‰¹å®šæ¥æºèŽ·å–ä¿¡æ¯æˆ–想è¦é‡‡å–其他适当的æ“作时选择使用它们。在这个例å­ä¸­ï¼Œæˆ‘们åªèƒ½é€šè¿‡ç²¾ç¡®çš„产å“和类别åç§°åŒ¹é…æŸ¥æ‰¾ä¿¡æ¯ï¼Œä½†è¿˜æœ‰æ›´é«˜çº§çš„ä¿¡æ¯æ£€ç´¢æŠ€æœ¯ã€‚检索信æ¯çš„æœ€æœ‰æ•ˆæ–¹æ³•ä¹‹ä¸€æ˜¯ä½¿ç”¨è‡ªç„¶è¯­è¨€å¤„ç†æŠ€æœ¯ï¼Œä¾‹å¦‚å‘½å实体识别和关系æå–。\n", - "\n", - "å¦ä¸€æ–¹æ³•是使用文本嵌入(Embedding)æ¥èŽ·å–ä¿¡æ¯ã€‚嵌入å¯ä»¥ç”¨äºŽå®žçŽ°å¯¹å¤§åž‹è¯­æ–™åº“çš„é«˜æ•ˆçŸ¥è¯†æ£€ç´¢ï¼Œä»¥æŸ¥æ‰¾ä¸Žç»™å®šæŸ¥è¯¢ç›¸å…³çš„ä¿¡æ¯ã€‚使用文本嵌入的一个关键优势是它们å¯ä»¥å®žçŽ°æ¨¡ç³Šæˆ–è¯­ä¹‰æœç´¢ï¼Œè¿™ä½¿æ‚¨èƒ½å¤Ÿåœ¨ä¸ä½¿ç”¨ç²¾ç¡®å…³é”®å­—的情况下找到相关信æ¯ã€‚因此,在此例å­ä¸­ï¼Œæˆ‘们ä¸ä¸€å®šéœ€è¦äº§å“的确切å称,而å¯ä»¥ä½¿ç”¨æ›´ä¸€èˆ¬çš„æŸ¥è¯¢å¦‚ **“手机â€** 进行æœç´¢ã€‚我们计划很快推出一门全é¢çš„课程,介ç»å¦‚何在å„ç§åº”用中使用嵌入,敬请关注。\n", + "因此,åˆç†è®¾è®¡æç¤ºé“¾çš„ä¿¡æ¯æä¾›ç­–ç•¥ï¼Œæ—¢è€ƒè™‘æ¨¡åž‹çš„èƒ½åŠ›é™åˆ¶ï¼Œä¹Ÿå…¼é¡¾æå‡å…¶ä¸»åŠ¨å­¦ä¹ èƒ½åŠ›ï¼Œæ˜¯æç¤ºå·¥ç¨‹ä¸­éœ€è¦ç€é‡è€ƒè™‘的点。希望这些ç»éªŒå¯ä»¥å¸®åŠ©å¤§å®¶è®¾è®¡å‡ºè¿è¡Œé«˜æ•ˆä¸”智能的æç¤ºé“¾ç³»ç»Ÿã€‚\n", "\n", "在下一章中我们将讨论如何评估语言模型的输出。" ]