题库 人工智能大模型 题目列表 在⼤语⾔模型的实际部署中,推理阶段通常需要在保证稳...
组合题

在⼤语⾔模型的实际部署中,推理阶段通常需要在保证稳定性、时延与显存效率之间取得平衡。常⻅策略包括: 

• 将模型切换⾄推理模式以禁⽤ Dropout; 

• 在推理时关闭梯度计算以减少显存占⽤; 

• 通过温度采样(Temperature Sampling)或核采样(Top-p Sampling)控制⽣成的多样性。 

以下⽰例基于 Qwen2.5-7B 模型,实现了推理函数 deploy_generate ,演⽰如何完成多轮增量⽂ 本⽣成与结果解码。请阅读以下代码,并在 [1] ⾄ [5] 处选择合适选项填⼊。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
# === 模型路径 ===
model_name = "Qwen/Qwen2.5-7B"
# === 准备模型与分词器 ===
tokenizer = ____[1]____
model = ____[2]____
# === 推理函数(deploy_generate) ===
def deploy_generate(model, tokenizer, prompts, max_new_tokens=64,
temperature=0.8, eos_id=None, device="cuda"):
    # 0) 模型切换为推理模式
    model = ____[3]____
    # 1) Tokenize 输⼊
    inputs = tokenizer(prompts, return_tensors="pt", padding=True)
    tokens = inputs["input_ids"].to(device)
    batch_size = tokens.size(0)
    # 2) 预热:完整提⽰构建 KV 缓存并得到⾸个 logits
    with torch.inference_mode():
    prime_logits = model(tokens).logits[:, -1, :] # 取最后⼀步的 logits
    start_pos = tokens.size(1)
    generated = []
    finished = torch.zeros(batch_size, dtype=torch.bool, device=device)
    # 3) 增量⽣成循环
    with torch.inference_mode():
        logits = prime_logits
        for step in range(max_new_tokens):
        # 温度缩放与 softmax
        probs = ____[4]____
        next_token = torch.multinomial(probs, num_samples=1) # 采样⼀个
token
        # 拼接⽣成序列
        tokens = torch.cat([tokens, next_token], dim=1)
        generated.append(next_token)
        # 判断是否结束
        if eos_id is not None:
            finished |= (next_token.squeeze(1) == eos_id)
            if torch.all(finished):
                break
        # 增量步(此处使⽤简化形式重新计算 logits)
        logits = model(tokens).logits[:, -1, :]
        start_pos += 1
    # 4) 拼接新增 tokens 并解码
    if len(generated) > 0:
        new_tokens = torch.cat(generated, dim=1)
    else:
        new_tokens = torch.empty(batch_size, 0, dtype=torch.long,
device=device)
    texts = []
    for i in range(batch_size):
        texts.append(____[5]____)
    return texts
if __name__ == "__main__":
    prompts = [
        "介绍⼀下西安的特⾊美⻝。",
        "请写⼀⾸关于秋天的短诗。"
    ]
    results = deploy_generate(model, tokenizer, prompts, max_new_tokens=50)
    for i, res in enumerate(results):
        print(f"\nPrompt {i+1}: {prompts[i]}")
        print("Model output:", res)
第1题 单选
Qwen2.5 模型需要加载⽀持⾃定义代码的分词器。请选择正确的加载⽅式:
A.
AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
B.
AutoTokenizer.load(model_name)
C.
AutoProcessor.from_pretrained(model_name)
D.
AutoTokenizer(model_name)
第2题 单选
为优化推理效率,需要⾃动分配 GPU 设备并使⽤半精度格式以节省显存。请选择正确的模型加载 ⽅式:
A.
AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", trust_remote_code=True)
B.
AutoModelForSeq2SeqLM.from_pretrained(model_name, device_map="auto", torch_dtype=torch.float16, trust_remote_code=True)
C.
AutoModelForCausalLM.load(model_name, device_map="auto", torch_dtype=torch.float16, trust_remote_code=True)
D.
AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype=torch.float16, trust_remote_code=True)
第3题 单选
推理前需要将模型移⾄⽬标设备并切换到评估模式以禁⽤ Dropout 等训练⾏为。请选择正确的实现⽅式:
A.
model.train()
B.
model.to(device).eval()
C.
model.cuda()
D.
model.bfloat16()
第4题 单选
需要对 logits 应⽤温度缩放并通过 softmax 转换为概率分布以控制⽣成多样性。请选择正确的实 现⽅式:
A.
torch.softmax(logits / temperature, dim=-1)
B.
torch.softmax(logits * temperature, dim=0)
C.
torch.sigmoid(logits)
D.
torch.softmax(logits, dim=-2)
第5题 单选
⽣成完成后需要将新增的 token 序列解码为可读⽂本。请选择正确的解码⽅式:
A.
tokenizer.decode(new_tokens[i])
B.
tokenizer.batch_decode(new_tokens, skip_special_tokens=True)
C.
tokenizer.decode(new_tokens[i].tolist(), skip_special_tokens=True)
D.
tokenizer.decode(tokens, skip_special_tokens=False)
题目信息
青少年组 第一轮 2025年 编程题 成人组
-
正确率
0
评论
35
点击