You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Notebook运行Falcon-7B模型无输出求助

解决Azure Notebook CPU实例运行Falcon-7B无输出问题

你的Standard_E4ds_v4是纯CPU实例(无GPU),Falcon-7B有70亿参数,纯CPU推理速度极慢,10分钟无法出结果是正常现象。以下是针对性优化方案:

一、清理冗余环境配置

代码里存在无效的环境安装步骤,先删掉这些冗余操作:

  • 去掉%pip install conda和import conda,conda是包管理器,无需通过pip安装
  • 去掉%conda install cudatoolkit,没有GPU的情况下安装CUDA工具包完全没用

二、模型加载优化(关键)

纯CPU不支持torch.bfloat16,且大模型必须量化才能在32GB内存里高效运行:

  • 使用load_in_8bit=True开启8位量化,大幅降低内存占用并提升推理速度
  • 明确指定device='cpu'避免device_map自动分配的问题
  • 改用torch.float32作为数据类型(如果8位量化报错的话)

三、生成参数调优

减少生成长度、改用更快的解码策略:

  • 把max_length从2000降到200以内(纯CPU生成2000 token可能需要数小时)
  • 关闭采样(do_sample=False)改用贪心解码,速度会快很多;如果需要采样,降低top_k值
  • 移除手动生成的attention_mask,由tokenizer自动生成即可

修改后的完整代码

!source activate llm_env

# 只保留必要的依赖安装
%pip install torch einops accelerate transformers==4.27.4 huggingface-hub chardet cchardet

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model = "tiiuae/falcon-7b"
# 开启8位量化,指定CPU设备
rrmodel = AutoModelForCausalLM.from_pretrained(
    model, 
    torch_dtype=torch.float32,
    trust_remote_code=True,
    load_in_8bit=True,
    device_map="cpu",
)
tokenizer = AutoTokenizer.from_pretrained(model)

input_text = "What is a giraffe?"
# 让tokenizer自动生成attention_mask
inputs = tokenizer(input_text, return_tensors='pt')

# 优化生成参数
output = rrmodel.generate(
    **inputs, 
    max_length=150,  # 大幅减少生成长度
    do_sample=False,  # 贪心解码更快
    pad_token_id=tokenizer.eos_token_id,
    eos_token_id=tokenizer.eos_token_id,
)

print(f"Got output: {output}")
output_text = tokenizer.decode(output[0], skip_special_tokens=True)
print(output_text)

额外建议

如果需要更快的推理速度,建议切换到带GPU的Azure计算实例(比如Standard_NC6s_v3及以上),GPU推理Falcon-7B的速度会比CPU快几十倍。

内容的提问来源于stack exchange,提问作者Yassin Sameh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:07:34