
SAE完全指南從安裝到加載預訓練模型的5分鐘入門教程【免費下載鏈接】saeSparsify transformers with SAEs and transcoders項目地址: https://gitcode.com/gh_mirrors/sae/saeSAESparse Autoencoders稀疏自編碼器是一種強大的工具用于稀疏化Transformer模型的激活值幫助研究人員和開發者更高效地理解和優化大型語言模型。本教程將帶你快速掌握SAE的安裝方法和預訓練模型加載技巧讓你在5分鐘內開啟稀疏化Transformer的探索之旅。快速安裝一行命令搞定SAE環境 安裝SAE庫非常簡單只需使用pip命令即可完成。打開你的終端輸入以下命令pip install eai-sparsify如果你需要進行開發或貢獻代碼可以從源碼安裝git clone https://gitcode.com/gh_mirrors/sae/sae cd sae pip install -e .[dev]加載預訓練SAE模型3行代碼實現SAE庫支持直接從HuggingFace Hub加載預訓練模型讓你無需從頭訓練即可使用強大的稀疏化功能。以下是加載單個SAE模型的示例from sparsify import Sae # 加載Llama 3 8B模型第10層的SAE sae Sae.load_from_hub(EleutherAI/sae-llama-3-8b-32x, hookpointlayers.10)如果你需要同時加載多個層的SAE模型可以使用load_many方法# 加載所有層的SAE模型 saes Sae.load_many(EleutherAI/sae-llama-3-8b-32x) # 獲取第10層的SAE layer_10_sae saes[layers.10]提取模型激活值簡單幾步實現加載SAE模型后你可以輕松提取Transformer模型的激活值。以下是使用Llama 3模型和SAE提取激活值的完整示例from transformers import AutoModelForCausalLM, AutoTokenizer import torch # 加載分詞器和模型 tokenizer AutoTokenizer.from_pretrained(meta-llama/Meta-Llama-3-8B) inputs tokenizer(Hello, world!, return_tensorspt) with torch.inference_mode(): model AutoModelForCausalLM.from_pretrained(meta-llama/Meta-Llama-3-8B) outputs model(**inputs, output_hidden_statesTrue) # 提取各層的SAE激活值 latent_acts [] for sae, hidden_state in zip(saes.values(), outputs.hidden_states): # 展平輸入形狀以匹配SAE的預期輸入 (N, D) hidden_state hidden_state.flatten(0, 1) latent_acts.append(sae.encode(hidden_state)) # 現在你可以使用latent_acts進行進一步分析或應用自定義鉤子點靈活選擇激活值來源SAE默認在模型的殘差流residual stream激活值上進行訓練但你也可以自定義鉤子點選擇模型的其他子模塊作為SAE的輸入。例如你可以選擇注意力模塊或MLP的輸出作為鉤子點python -m sparsify gpt2 --hookpoints h.*.attn h.*.mlp.act如果你只想在特定層上訓練SAE可以使用通配符限制層范圍# 僅在第0、1、2層訓練SAE python -m sparsify gpt2 --hookpoints h.[012].attn h.[012].mlp.act分布式訓練充分利用多GPU資源SAE庫支持使用PyTorch的torchrun進行分布式訓練讓你可以充分利用多GPU資源加速訓練過程。以下是一個分布式訓練的示例命令torchrun --nproc_per_node gpu -m sparsify meta-llama/Meta-Llama-3-8B --batch_size 1 --layers 16 24 --k 192 --grad_acc_steps 8 --ctx_len 2048如果你需要訓練多個層的SAE可以使用--distribute_modules標志將不同層的SAE分配到不同的GPU上提高內存使用效率torchrun --nproc_per_node gpu -m sparsify meta-llama/Meta-Llama-3-8B --distribute_modules --batch_size 1 --layer_stride 2 --grad_acc_steps 8 --ctx_len 2048 --k 192 --load_in_8bit --micro_acc_steps 2總結開啟你的SAE探索之旅通過本教程你已經掌握了SAE的安裝方法、預訓練模型加載、激活值提取、自定義鉤子點和分布式訓練等核心功能。SAE庫的設計簡潔高效讓你可以輕松地將稀疏化技術應用到各種Transformer模型中。無論是進行學術研究還是工業應用SAE都能幫助你更深入地理解模型內部的工作機制優化模型性能。現在就開始你的SAE探索之旅吧如果你想了解更多關于SAE的高級功能和最新進展可以查閱項目的CHANGELOG.md文件獲取詳細的版本更新信息。【免費下載鏈接】saeSparsify transformers with SAEs and transcoders項目地址: https://gitcode.com/gh_mirrors/sae/sae創作聲明:本文部分內容由AI輔助生成(AIGC),僅供參考