大模型.safetensors文件
文章目录生成示例文件打印文件内容修改并保存示例.safetensors(安全张量)是大模型中的权重配置文件本身是二进制不可直接修改。如果想看内容的话txt打开可以看到头部内容便于理解。如果直接修改了里面的内容启动大模型会报错因为二进制文件会损坏。如果把模型比作一个人config.json是这个人的骨架结构身高、臂长、关节数。tokenizer是这个人的语言能力懂中文还是英文。.safetensors就是这个人的“大脑”和“记忆”所有的知识、经验、性格。生成示例文件不太好找直接用代码生成比较方便。1、安装依赖pipinstalltorch safetensors2、用代码生成文件importtorchimportosfromsafetensors.torchimportsave_file# 1. 创建一些模拟的模型权重数据# 假设这是一个小型的神经网络包含嵌入层和两个线性层tensors{# 嵌入层权重 (词汇表大小 1000, 隐藏层维度 128)model.embed_tokens.weight:torch.randn(1000,128,dtypetorch.float32),# 第一层线性变换 (输入 128, 输出 256)model.layers.0.self_attn.q_proj.weight:torch.randn(256,128,dtypetorch.float16),model.layers.0.self_attn.q_proj.bias:torch.zeros(256,dtypetorch.float16),# 第二层线性变换 (输入 256, 输出 10)model.lm_head.weight:torch.randn(10,256,dtypetorch.float32),}# 2. 定义元数据 (可选但推荐)metadata{format:pt,created_by:user_demo,description:这是一个用于演示的示例 safetensors 文件}# 3. 保存文件output_filenameoriginal_model.safetensorssave_file(tensors,output_filename,metadatametadata)print(f✅ 成功生成文件:{output_filename})print(f 文件大小:{os.path.getsize(output_filename)/1024:.2f}KB)打印文件内容代码# 4. 验证读取刚刚生成的文件fromsafetensorsimportsafe_open output_filenameoriginal_model.safetensorsprint(\n 文件内容验证:)withsafe_open(output_filename,frameworkpt,devicecpu)asf:forkeyinf.keys():tensorf.get_tensor(key)print(f -{key}: 形状{tensor.shape}, 类型{tensor.dtype})修改并保存示例代码fromsafetensorsimportsafe_openfromsafetensors.torchimportsave_fileimporttorch# 1. 读取tensors{}withsafe_open(original_model.safetensors,frameworkpt,devicecpu)asf:forkeyinf.keys():tensors[key]f.get_tensor(key)# 2. 修改 (例如把第一层的权重全部乘以 2)first_layer_keylist(tensors.keys())[0]tensors[first_layer_key]tensors[first_layer_key]*2# 3. 保存为新文件 (原文件不变生成新文件)save_file(tensors,modified_model.safetensors)print(修改完成生成了新文件。)调用之前的查看代码查看内容记得替换文件名为modified_model.safetensors。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2444799.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!