Python3.2 --- Print函数用法

Python3.2 Print函数详解
本文详细介绍了Python3.2中Print函数的使用,包括输出字符串、格式化输出整数和不同进制数、浮点数,以及列表和自动换行的控制。通过实例演示了如何利用print进行有效输出。

1. 输出字符串

>>> strHello = 'Hello World' 
>>> print (strHello)
Hello World

2. 格式化输出整数

支持参数格式化,与C语言的printf类似

>>> strHello = "the length of (%s) is %d" %('Hello World',len('Hello World'))
>>> print (strHello)
the length of (Hello World) is 11

3. 格式化输出16进制,十进制,八进制整数

#%x --- hex 十六进制
#%d --- dec 十进制
#%o --- oct 八进制
  >>> nHex = 0xFF
>>> print("nHex = %x,nDec = %d,nOct = %o" %(nHex,nHex,nHex))
nHex = ff,nDec = 255,nOct = 377
### 微调 Llama3.2-1B 模型的方法和步骤 微调 Llama3.2-1B 模型涉及多个关键步骤,包括环境准备、数据预处理、模型配置、训练设置以及最终的评估与部署。以下是一个详细的指南: #### 1. 环境准备 在开始微调之前,确保你已经安装了必要的库和工具。推荐使用 Hugging Face 的 `transformers` 和 `peft` 库来进行微调。可以通过以下命令安装这些库: ```bash pip install transformers peft datasets accelerate ``` 此外,还需要准备好 GPU 或 TPU 资源以加速训练过程。 #### 2. 数据预处理 数据预处理是微调过程中至关重要的一步。你需要将原始数据转换为适合模型输入的格式。通常情况下,这包括分词、编码以及构建数据集对象。例如,可以使用 `datasets` 库来加载和处理数据: ```python from datasets import load_dataset # 加载数据集 dataset = load_dataset('json', data_files={'train': 'path/to/train.json', 'test': 'path/to/test.json'}) # 分词器初始化 from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-1B") # 对数据进行分词 def tokenize_function(examples): return tokenizer(examples["text"], padding="max_length", truncation=True) tokenized_datasets = dataset.map(tokenize_function, batched=True) ``` #### 3. 模型配置 为了提高效率并减少计算资源的需求,建议使用低秩适配(LoRA)技术进行微调。LoRA 通过引入低秩矩阵来减少微调时的参数量,从而显著降低内存占用和训练时间 [^5]。 首先,需要导入 `prepare_model_for_kbit_training` 函数,并启用梯度检查点功能以进一步优化内存使用: ```python from peft import prepare_model_for_kbit_training # 启用梯度检查点 model.gradient_checkpointing_enable() # 准备模型进行 k-bit 量化训练 model = prepare_model_for_kbit_training(model) ``` 接下来,定义 LoRA 配置并应用到模型中: ```python from peft import LoraConfig, get_peft_model # 定义 LoRA 配置 lora_config = LoraConfig( r=8, # 低秩矩阵的秩 lora_alpha=16, // 缩放因子 target_modules=["q_proj", "v_proj"], // 目标模块 lora_dropout=0.1, // Dropout 概率 bias="none", // 是否使用偏置 task_type="CAUSAL_LM" // 任务类型 ) # 应用 LoRA 配置到模型 model = get_peft_model(model, lora_config) ``` #### 4. 训练设置 使用 `Trainer` 类来管理训练过程。需要指定训练参数、优化器、学习率调度器等: ```python from transformers import TrainingArguments, Trainer, AdamW, get_linear_schedule_with_warmup # 定义训练参数 training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, per_device_eval_batch_size=4, warmup_steps=500, weight_decay=0.01, logging_dir="./logs", logging_steps=10, save_steps=1000, evaluation_strategy="epoch" ) # 初始化优化器和学习率调度器 optimizer = AdamW(model.parameters(), lr=5e-5) lr_scheduler = get_linear_schedule_with_warmup(optimizer, num_warmup_steps=500, num_training_steps=len(tokenized_datasets["train"]) * training_args.num_train_epochs) # 初始化 Trainer trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"], eval_dataset=tokenized_datasets["test"], tokenizer=tokenizer, optimizers=(optimizer, lr_scheduler) ) # 开始训练 trainer.train() ``` #### 5. 模型评估与部署 训练完成后,可以通过验证集或测试集对模型进行评估。可以使用 `evaluate` 方法来计算损失或其他指标: ```python # 评估模型 eval_results = trainer.evaluate() print(f"Evaluation results: {eval_results}") ``` 如果模型表现良好,可以将其保存以便后续部署或推理: ```python # 保存模型 model.save_pretrained("./fine_tuned_model") tokenizer.save_pretrained("./fine_tuned_model") ``` ###
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值