# Fusion-LLM 快速开始 (3分钟) ## 安装 ### 方式1: 从源码安装 (推荐) ```bash git clone https://github.com/zhan1206/fusion-llm.git cd fusion-llm pip install -e . # core only # pip install -e ".[all]" # 安装所有可选依赖 ``` ### 方式2: 仅核心依赖 ```bash pip install torch numpy tqdm pyyaml pip install -e . ``` ## 推理 (无需预训练权重) ```python import sys sys.path.insert(0, 'fusion-llm') from models.fusion_model import FusionModel, FusionConfig import torch # 创建模型 config = FusionConfig( vocab_size=100, hidden_size=64, num_hidden_layers=2, num_attention_heads=4, intermediate_size=128, ) model = FusionModel(config) model.eval() # 推理 input_ids = torch.tensor([[1, 2, 3, 4]]) with torch.no_grad(): out = model.generate(input_ids, max_new_tokens=5, do_sample=False) print(out) ``` ## 训练 (合成数据, CPU 可跑) ```python from models.fusion_model import FusionModel, FusionConfig from models.thinking_dial import ThinkingDialModel, ThinkingConfig import torch config = FusionConfig(vocab_size=100, hidden_size=64, num_hidden_layers=2, num_attention_heads=4, intermediate_size=128) model = FusionModel(config) optimizer = torch.optim.AdamW(model.parameters(), lr=1e-2) # 简单训练数据: [2, x, y] -> [x, y, 99, x+y] data = [([2, x, y], [x, y, 99, x + y]) for x in range(1, 6) for y in range(1, 6)] for epoch in range(100): for inp, lab in data: ids = torch.tensor([inp], dtype=torch.long) labs = torch.tensor([[-100]*len(inp) + lab], dtype=torch.long) out = model(ids, labels=labs) out.loss.backward() optimizer.step() optimizer.zero_grad() print("训练完成!") ``` ## Thinking Dial 使用 ```python from models.thinking_dial import ThinkingDialModel, ThinkingConfig base = FusionModel(config) td = ThinkingDialModel(base, ThinkingConfig(num_thinking_depths=4)) td.eval() # depth=0: 直接回答 with torch.no_grad(): out0 = td.generate(torch.tensor([[1, 2, 3]]), max_new_tokens=5, thinking_depth=0) # depth=3: 深度思考 with torch.no_grad(): out3 = td.generate(torch.tensor([[1, 2, 3]]), max_new_tokens=5, thinking_depth=3) ``` ## 下一步 - [理解模型架构](./02-模型架构.md) - [完整训练教程](./03-训练指南.md) - [推理部署](./04-推理部署.md)