# Summary
- **学术/教学**: 仍然使用`.pt`格式 (如CS336)
- **工业/开源**: 主流是`.safetensors`格式 (如现代Qwen)
- **趋势**: `.safetensors`正在成为事实标准,因为更安全、更快
# Cues
# Notes
Ran tool
是的,但**现代开源Qwen模型主要使用`.safetensors`格式**,而不是传统的`.pt`格式!
## 现代Qwen模型的文件格式
从Hugging Face上的Qwen模型可以看到:
### 主流格式:`.safetensors`
```Java
Qwen/Qwen2-72B/
├── model-00001-of-00037.safetensors (3.76 GB)
├── model-00002-of-00037.safetensors (4 GB)
├── ...
├── model-00037-of-00037.safetensors (3.46 GB)
└── model.safetensors.index.json (索引文件)
```
### 为什么用`.safetensors`而不是`.pt`?
| 特性 | `.pt` (PyTorch) | `.safetensors` (Hugging Face) |
|------|----------------|----------------------------|
| **安全性** | ❌ 可执行任意Python代码 | ✅ 只存储张量数据,无代码执行 |
| **跨框架** | ❌ 仅限PyTorch | ✅ 支持PyTorch/TensorFlow/JAX |
| **加载速度** | 较慢 | ✅ 更快的加载速度 |
| **内存映射** | 有限支持 | ✅ 零拷贝内存映射 |
| **文件完整性** | ❌ 无校验 | ✅ 内置校验和 |
## 实际使用对比
### 传统方式 (CS336作业用的)
```python
# 加载.pt文件
state_dict = torch.load("model.pt", map_location="cpu")
```
### 现代开源模型
```python
# 加载.safetensors格式
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-7B-Instruct")
```
## Qwen模型的完整生态
现代Qwen模型提供多种格式:
| 格式 | 用途 | 文件扩展名 |
|------|------|-----------|
| **Safetensors** | 🔥 主流,安全快速 | `.safetensors` |
| **GGUF** | CPU/移动端推理 | `.gguf` |
| **AWQ** | 4-bit量化推理 | `.safetensors` (量化) |
| **ONNX** | 跨平台部署 | `.onnx` |
## 为什么CS336课程还用`.pt`?
1. **教学简单性**: `.pt`格式更直接,学生容易理解
2. **完全控制**: 课程需要测试学生的底层实现,不用高级库
3. **历史原因**: 课程设计时`.safetensors`还不够普及
所以虽然CS336用`.pt`来教学,但实际生产环境中,你更可能遇到`.safetensors`格式的Qwen模型!