徒步路线hiking routes
171.68MB · 2025-11-14
在大模型快速迭代的今天,Qwen3 作为开源圈的黑马,凭借强悍的推理能力、多语言支持和灵活的“思考模式”切换,吸引了无数开发者关注。
你想让自己的AI项目更聪明、更高效吗?今天就带你全流程掌握如何用 Unsloth 框架对 Qwen3 进行高效微调、推理和评估,让你的应用一飞冲天!
Qwen3 是新一代开源大语言模型,主打以下几个核心优势:
Qwen3 的最大特色就是“思考模式”与“非思考模式”自由切换:
<think>...</think>标签详细展示推理步骤,比如数学计算、逻辑推断等,让你清楚看到AI的思路。你可以通过三种方式控制思考模式:
enable_thinking=True(默认开启,输出完整推理过程);enable_thinking=False(只输出答案,不展示推理)。/no_think,即使API参数为True,也强制关闭思考展示。<think>标签。应用场景举例:
下面以 PyTorch + Unsloth 框架为例,手把手教你微调和推理 Qwen3:
import torch
from unsloth import FastLanguageModel
import weave # 可选,用于可视化和分析
weave.init('think_test')
BASE_MODEL_NAME = "unsloth/Qwen3-8B"
max_seq_length = 2048
dtype = None
load_in_4bit = False
BASE_MODEL, TOKENIZER = FastLanguageModel.from_pretrained(
model_name=BASE_MODEL_NAME,
max_seq_length=max_seq_length,
dtype=dtype,
load_in_4bit=load_in_4bit
)
BASE_MODEL.eval().to("cuda")
FastLanguageModel.for_inference(BASE_MODEL)
def make_prompt(instruction):
return [{"role": "user", "content": instruction}]
defapply_chat_template(prompt, tokenizer, enable_thinking=True):
messages = make_prompt(prompt)
return tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=enable_thinking
)
@weave.op
defgenerate_response(prompt, enable_thinking=True):
prompt_text = apply_chat_template(prompt, TOKENIZER, enable_thinking)
inputs = TOKENIZER([prompt_text], return_tensors="pt").to("cuda")
with torch.no_grad():
gen_output = BASE_MODEL.generate(
**inputs,
max_new_tokens=128,
use_cache=False,
temperature=0.7,
top_p=0.8,
top_k=20,
min_p=0.0,
)
output_text = TOKENIZER.decode(gen_output[0], skip_special_tokens=True)
return output_text
math_question = "What is 256 multiplied by 17?"
math_question_no_think = "/no_thinknWhat is 256 multiplied by 17?"
print("=== enable_thinking=True (默认) ===")
print(generate_response(math_question, enable_thinking=True).strip())
print("=== enable_thinking=False ===")
print(generate_response(math_question, enable_thinking=False).strip())
print("=== enable_thinking=True + /no_think in prompt ===")
print(generate_response(math_question_no_think, enable_thinking=True).strip())
效果说明:
/no_think,无论API参数如何,都只输出答案。Qwen3 + Unsloth 的组合,堪称国产大模型微调和推理的新范式。无论你是AI开发新手还是企业技术负责人,都能用极低门槛把AI能力集成到自己的产品中。只要学会上面这套流程,你就能让AI“会思考”、会解释、会多语言,还能轻松微调出专属模型!
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。