# experiment-04 **Repository Path**: az13js/experiment-04 ## Basic Information - **Project Name**: experiment-04 - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 数学表达式语言模型 (Math Expression Language Model) 一个基于Transformer的小型语言模型,专门用于学习和生成数学表达式。 ## 项目简介 本项目实现了一个轻量级的Transformer模型,能够学习数学表达式的模式,并自动补全和生成数学计算式。模型使用PyTorch实现,支持基本的算术运算(加、减、乘、除)以及带括号的复杂表达式。 ## 项目结构 ``` experiment-04/ ├── config.py # 训练配置文件 ├── math_model.py # Transformer模型定义 ├── math_tokenizer.py # 数学表达式Tokenizer ├── data_preprocessing.py # 数据预处理工具 ├── dataset_tool.py # 数据集生成工具 ├── train.py # 训练脚本 ├── inference.py # 推理/测试脚本 ├── math_expressions.txt # 训练数据 ├── README.md # 项目说明文档 └── requirements.txt # 依赖包列表 ``` ## 安装依赖 ```bash pip install torch numpy tqdm matplotlib ``` ## 快速开始 ### 1. 准备数据 项目已经包含了预生成的数学表达式数据集。如果你想生成新的数据: ```python from dataset_tool import generate_math_expressions # 生成1000个数学表达式 expressions = generate_math_expressions(1000, 'math_expressions.txt') ``` ### 2. 训练模型 ```bash python train.py ``` ### 3. 模型推理 ```bash python inference.py ``` 推理脚本会: - 加载训练好的模型 - 测试预设的数学表达式 - 进入交互模式,支持用户输入表达式 ## 使用示例 ### Python API使用 ```python import torch from math_model import MathTransformer from math_tokenizer import MathTokenizer from inference import load_model_and_tokenizer # 加载模型和tokenizer device = 'cuda' if torch.cuda.is_available() else 'cpu' model, tokenizer = load_model_and_tokenizer( 'math_model_final.pt', 'math_tokenizer.pkl', device ) # 生成数学表达式 prompt = '12+34=' result = model.generate( tokenizer=tokenizer, prompt=prompt, max_length=20, temperature=0.8, device=device ) print(f'{prompt}{result}') ``` ### 交互式测试 运行 `python inference.py` 后,可以输入任意数学表达式: ``` Enter expression (e.g., "23+45="): 56-23= Result: 56-23=33 Enter expression (e.g., "23+45="): 7*8= Result: 7*8=56 Enter expression (e.g., "23+45="): quit ``` ## 项目文件清单 ```plaintext experiment-04/ ├── README.md ✨ 新建 - 项目文档 ├── requirements.txt ✨ 新建 - 依赖列表 ├── .gitignore ✨ 新建 - Git忽略配置 ├── config.py - 训练配置 ├── math_model.py - Transformer模型 ├── math_tokenizer.py - Tokenizer ├── data_preprocessing.py - 数据预处理 ├── dataset_tool.py - 数据集生成 ├── train.py - 训练脚本 ├── inference.py - 推理脚本 ├── simple_math_lm.py - 简单数学语言模型 └── tokenizer_tool.py - Tokenizer工具 ```