《DEEPSEEK原生应用与智能体开发实践 王晓华 书籍 图书》【摘要 书评 试读】- 京东图书
在之前讲解的示例中(指这个示例:通过Prompt提示构建思维链-CSDN博客),无论是进行日常对话还是调用特定工具,我们所依赖的底层技术均是DeepSeek普通对话模型。这一模型以其高效和稳定的性能,为我们的交流提供了坚实的基础。然而,技术的探索永无止境,DeepSeek团队在此基础上更进一步,推出了一种创新的输出方案—— DeepSeek-Reasoner推理模型,为我们与大模型的对话体验增添了新的维度。
DeepSeek-Reasoner,作为DeepSeek家族中的新成员,是一款专为复杂推理任务设计的模型。它不仅仅满足于给出一个直接的答案,而是在生成最终回答之前,会精心构建一段详尽的思维链内容。这段思维链,就像是模型在解题过程中的“草稿纸”,记录了它从问题出发,逐步分析、推理,直至得出结论的全过程。通过这种方式,DeepSeek-Reasoner显著提升了最终答案的准确性和可信度,让用户不仅知其然,更知其所以然。
为了增强透明度和互动性,DeepSeek API特别向用户开放了DeepSeek-Reasoner的思维链内容。这意味着,用户不仅可以获得最终的回答,还能深入查看模型是如何一步步得出这个结论的。这一特性对于教育、研究以及需要高度解释性的应用场景来说,无疑是一大福音。用户可以根据需要,选择查看、展示甚至进一步蒸馏这些思维链内容,以更好地理解和利用模型的推理过程。具有思维链的多轮对话如图4-3所示。
图4-3 具有思维链的多轮对话
在具体的应用场景中,当我们使用DeepSeek-Reasoner进行每一轮对话时,模型都会输出两部分内容:一部分是思维链内容(reasoning_content),它详细记录了模型的推理步骤;另一部分是最终回答(content),即模型基于思维链得出的结论。值得注意的是,为了保持对话的连贯性和简洁性,在下一轮对话中,之前轮次输出的思维链内容并不会被直接拼接到上下文中。这样的设计既保证了每轮对话的独立性,又避免了信息冗余,使得对话更加高效和流畅。
下面我们演示一下如何使用DeepSeek推理模型访问思维链和最终回答,以及如何在多轮对话中进行上下文拼接的方法,代码如下所示:
from openai import OpenAI
client = OpenAI(api_key="sk-dfd742ec38dc4ede96977974085485b0", base_url="https://api.deepseek.com")# Round 1
messages = [{"role": "user", "content": "9.11 与 9.8, 哪个数字比较大?"}]
response = client.chat.completions.create(model="deepseek-reasoner",messages=messages
)reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content
print("Answer 1:",content)# Round 2
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "一斤的铁和一斤的棉花哪个重?"})
response = client.chat.completions.create(model="deepseek-reasoner",messages=messages
)
content = response.choices[0].message.content
print("Answer 2:",content)
这个示例首先比较一个经典的数学题,之后又使用一个脑筋急转弯问题考察推理模型的思考能力,结果如下:
Answer 1: 在数值比较中,9.8 比 9.11 大。具体分析如下:1. **整数部分相同**:两数的整数部分均为 9,因此需比较小数部分。
2. **小数部分比较**:- 9.8的小数部分为 **0.8**(等价于 0.80)。- 9.11的小数部分为 **0.11**。- 由于 **0.80 > 0.11**,因此 **9.8 > 9.11**。**结论**:9.8 更大。
(若比较版本号,则 9.11 可能代表更高版本,但按数值计算时 9.8 更大。)Answer 2: **答案:两者重量相同,都是一斤。**
1. **单位明确**: 在标准单位下,1斤(市斤)= 500克。无论是铁还是棉花,若均为“一斤”,则其质量均为500克,重量相等。2. **常见误解解析**: 铁密度大、体积小,棉花密度小、体积大,容易让人误以为“棉花更轻”。但**重量与体积无关**,仅取决于质量。因此,**一斤铁 = 一斤棉花**。3. **扩展思考(若考虑复杂因素)**: - **空气浮力**:体积大的棉花受空气浮力影响略多,实际称重可能极轻微减少,但日常可忽略。 - **单位差异**:若使用非标准“斤”(如台斤600克),需确认单位,但通常按市斤计算。**结论**:严格按照质量单位比较,两者一样重。
从上面结果可以看到,相对于原有的输出,在问题的解答上推理模型使用了更多的推理过程与解答,并且对结果进行更细密的分析,从而获得对逻辑和推理步骤进行说明的结果。有兴趣的读者可以自行尝试更多的内容。