主题
QwQ-32B
基于Qwen2.5-32B模型训练的QwQ推理模型,通过强化学习大幅度提升了模型推理能力。
模型数学代码等核心指标(AIME 24/25、livecodebench)以及部分通用指标(IFEval、LiveBench等)达到DeepSeek-R1 满血版水平, 各指标均显著超过同样基于 Qwen2.5-32B 的 DeepSeek-R1-Distill-Qwen-32B
API调用
python
from openai import OpenAI
import os
# 初始化OpenAI客户端
client = OpenAI(
# 如果没有配置环境变量,请用百炼API Key替换:api_key="sk-xxx"
api_key = os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = "" # 定义完整思考过程
answer_content = "" # 定义完整回复
is_answering = False # 判断是否结束思考过程并开始回复
# 创建聊天完成请求
completion = client.chat.completions.create(
model="qwq-32b", # 此处以 qwq-32b 为例,可按需更换模型名称
messages=[
{"role": "user", "content": "9.9和9.11谁大"}
],
stream=True,
# 解除以下注释会在最后一个chunk返回Token使用量
# stream_options={
# "include_usage": True
# }
)
print("\n" + "=" * 20 + "思考过程" + "=" * 20 + "\n")
for chunk in completion:
# 如果chunk.choices为空,则打印usage
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# 打印思考过程
if hasattr(delta, 'reasoning_content') and delta.reasoning_content != None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
# 开始回复
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "完整回复" + "=" * 20 + "\n")
is_answering = True
# 打印回复过程
print(delta.content, end='', flush=True)
answer_content += delta.content
# print("=" * 20 + "完整思考过程" + "=" * 20 + "\n")
# print(reasoning_content)
# print("=" * 20 + "完整回复" + "=" * 20 + "\n")
# print(answer_content)
输出结果
xml
====================思考过程====================
嗯,今天用户问的是“9.9和9.11谁大”。这个问题看起来简单,但作为刚开始学数学的人可能会有点困惑,特别是涉及到小数的比较。首先,我得确认用户的需求到底是什么。他们可能是在学习小数比较,或者是在实际生活中遇到了需要比较这两个数的情况,比如价格、版本号或者测量值之类的。
,我应该回忆一下小数比较的基本方法。通常比较小数的时候,先比较整数部分,整数部分大的那个数就大。如果整数部分相同,就比较小数点后的第一位,依此类推。比如,比较9.9和9.11,它们的整数部分都是9,所以需要看小数部分。
,小数点后第一位,9.9的小数部分是9,而9.11的小数点后第一位是1。这时候可能会有人觉得9比1大,所以9.9更大。不过,这里有个问题,就是9.11的小数部分其实是两位,而9.9只有一位。这时候应该怎么处理呢?
需要把两个数的小数位数统一起来,比如把9.9写成9.90,这样和9.11比较的话,小数点后的第二位就是0和1。这时候,第二位的话,9.90的第二位是0,而9.11的是1,所以9.11的第二位更大,因此9.11更大?
,这样是不是有问题呢?因为通常比较小数的时候,当位数不同时,比如一位小数和两位小数,其实可以补零到相同位数,然后再比较每一位。所以9.9等于9.90,而9.11就是两位小数。这样比较的话,第一位小数是9 vs 1,这时候第一位小数9比1大,所以9.9更大?
就出现了矛盾,两种不同的思路会导致不同的结论。这时候需要仔细想想,哪里出错了?
,对了,这里可能有个误区。正确的比较步骤应该是这样的:首先比较整数部分,都是9,相等。然后比较小数点后的第一位数字,9.9的第一位是9,而9.11的第一位是1,所以9比1大,因此9.9更大?但是这样的话,为什么有人会觉得9.11更大呢?
可能用户把9.11当成了9.1和1的组合?比如在中文里,有时候可能会有歧义,比如“9.11”可能被误解为9.1加上1,但其实应该严格按照小数的写法来,9.11就是九点一一,也就是9又11/100,而9.9就是九点九,也就是9又9/10。这时候,9.9等于9.90,而9.11是9.11,所以比较的时候,第一位小数是9 vs 1,所以第一位小数更大的那个数更大,即9.9更大。
,这时候可能有人会混淆,比如在版本号中,有时候版本号的比较规则不同,比如9.11可能比9.9大,因为版本号通常会把后面的数字视为更高位的细分,比如9.11可能等同于9.11.0,而9.9可能视为9.9.0,这时候比较的话,第二位是11比9大,所以9.11更大。但这里题目里没有说明是版本号,所以应该按照数学上的小数比较规则来。
正确的比较应该是:9.9等于9.90,而9.11是9.11,比较到第一位小数时,9>1,所以9.9更大?
为什么之前有人可能会觉得9.11更大呢?可能是因为看到后面的数字更长,比如两位小数,所以觉得后面的数更大?或者在某些上下文中,比如货币,9.11是9元1角1分,而9.9是9元9角,显然9元9角更多,所以9.9更大?
我需要再仔细确认一下小数的比较规则。数学上的正确方法是,比较小数时,从高位到低位逐位比较,直到出现不同的数字为止。例如:
9.9和9.11:
,整数部分都是9,相等。
比较小数点后的第一位:9.9的第一位是9,而9.11的第一位是1。显然9>1,所以9.9更大。后面的第二位小数(9.9的第二位是0,因为可以看成9.90,而9.11的第二位是1)这时候已经不需要比较了,因为第一位已经分出胜负了。
正确的结论应该是9.9比9.11大?
这里可能有一个常见的误区,就是当小数位数不同时,人们可能会错误地认为位数多的数更大,但实际上应该逐位比较,直到找到不同的位为止。比如,比较1.2和1.23,虽然1.23有两位小数,但第一位都是2,第二位是0和3,所以1.23更大。但在这个例子中,第一位小数就不同了,所以直接比较第一位。
,正确的结论应该是9.9更大?
,可能用户的问题存在其他理解方式,比如在某些情况下,比如月份和日期,9.11可能指的是9月11日,而9.9是9月9日,这时候比较日期的话,9.11在后面,所以更大。但题目里没有给出上下文,所以应该按数学上的数值比较来处理。
,可能用户输入的时候有笔误,比如9.11是否应该是9.1?如果是的话,那9.9更大。但题目里是9.11,所以应该按照正确的数值处理。
一下,正确的步骤是:
. 整数部分比较:9=9,继续。
. 小数点后第一位:9 vs 1 → 9>1,所以9.9更大。
答案应该是9.9更大。
,我需要再确认一下,是否有例外情况或者我的理解有误?
,如果用户写的是9.11,是否可能是指其他进制?比如十六进制?但通常如果没有说明的话,默认是十进制。或者是否有其他含义?
,有没有可能用户把9.11误解为9.1的平方?比如9.1的平方是82.81,但这样显然和9.9无关,所以应该排除。
,最终结论是9.9比9.11大。
====================完整回复====================
比较小数时,首先比较整数部分,若相同则逐位比较小数部分:
. **整数部分**:9.9 和 9.11 的整数部分均为 **9**,相等,继续比较小数部分。
. **小数点后第一位**:
9.9 的小数第一位是 **9**(可视为 9.90)。
9.11 的小数第一位是 **1**。
**9 > 1**,因此 **9.9** 更大。
结论**:**9.9 比 9.11 大**。
---
关键点:
**逐位比较**:从高位到低位依次对比,遇到不同位时停止,高位大的数更大。
**补零原则**:若小数位数不同,可将较短的小数补零至相同位数(如 9.9 → 9.90),再逐位比较。
,**9.9 是较大的数值**。