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

如何在HuggingFace中获取代码生成模型的last_hidden_state

获取代码生成模型的last_hidden_state方法

核心问题原因

你之前用AutoModelWithLMHead失败,是因为这个类已被弃用,且默认不会输出隐藏层状态。针对CodeParrot、InCoder这类因果语言模型,有两种更可靠的方式获取last_hidden_state:


方法一:用AutoModelForCausalLM并开启隐藏层输出

这类模型是专门针对因果生成任务设计的,加载时设置output_hidden_states=True,就能拿到包括last_hidden_state在内的所有层隐藏状态:

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

tokenizer = AutoTokenizer.from_pretrained("codeparrot/codeparrot")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
# 关键:开启output_hidden_states参数
model = AutoModelForCausalLM.from_pretrained(
    "codeparrot/codeparrot",
    output_hidden_states=True
).to(device)

inputs = tokenizer("def hello_world():", return_tensors="pt").to(device)
with torch.no_grad():
    outputs = model(**inputs)

# outputs.hidden_states是元组,最后一个元素即为last_hidden_state
last_hidden_state = outputs.hidden_states[-1]
print(f"last_hidden_state形状: {last_hidden_state.shape}")

方法二:用AutoModel直接提取编码器隐藏层

如果不需要生成任务的LM头,仅需编码器的最后隐藏状态,可以直接用AutoModel加载,它默认会输出last_hidden_state:

import torch
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("codeparrot/codeparrot")
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = AutoModel.from_pretrained("codeparrot/codeparrot").to(device)

inputs = tokenizer("def hello_world():", return_tensors="pt").to(device)
with torch.no_grad():
    outputs = model(**inputs)

# 直接获取last_hidden_state
print(f"last_hidden_state形状: {outputs.last_hidden_state.shape}")

批量检查模型的小技巧

不用逐个下载模型验证,可先通过配置文件确认模型是否支持输出隐藏层,还能直接修改配置后加载:

from transformers import AutoConfig, AutoModelForCausalLM

# 加载模型配置
config = AutoConfig.from_pretrained("codeparrot/codeparrot")
# 查看默认是否输出隐藏层(大多默认False)
print(f"默认输出隐藏层: {config.output_hidden_states}")

# 修改配置并加载模型
config.output_hidden_states = True
model = AutoModelForCausalLM.from_pretrained("codeparrot/codeparrot", config=config)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:35:10