推荐一个图片识别的llama3微调版本 清华面壁项目

水一篇:

MiniCPM-V是面向图文理解的端侧多模态大模型系列。该系列模型接受图像和文本输入,并提供高质量的文本输出。自2024年2月以来,我们共发布了4个版本模型,旨在实现领先的性能和高效的部署,目前该系列最值得关注的模型包括:

  • MiniCPM-Llama3-V 2.5:🔥🔥🔥 MiniCPM-V系列的最新、性能最佳模型。总参数量8B,多模态综合性能超越 GPT-4V-1106、Gemini Pro、Claude 3、Qwen-VL-Max 等商用闭源模型,OCR 能力及指令跟随能力进一步提升,并支持超过30种语言的多模态交互。通过系统使用模型量化、CPU、NPU、编译优化等高效推理技术,MiniCPM-Llama3-V 2.5 可以实现高效的终端设备部署

  • MiniCPM-V 2.0:MiniCPM-V系列的最轻量级模型。总参数量2B,多模态综合性能超越 Yi-VL 34B、CogVLM-Chat 17B、Qwen-VL-Chat 10B 等更大参数规模的模型,可接受 180 万像素的任意长宽比图像输入,实现了和 Gemini Pro 相近的场景文字识别能力以及和 GPT-4V 相匹的低幻觉率。

测试的DEMO: https://huggingface.co/spaces/openbmb/MiniCPM-Llama3-V-2_5

项目地址中文介绍:

### Llama3 模型微调方法教程 #### 准备工作 在开始对 Llama3 模型进行微调之前,需要确保环境已经配置完成。这通常包括安装必要的依赖库以及下载预训练模型权重文件。可以通过 `ollama list` 命令来确认当前已安装的模型版本[^1]。 #### 数据准备 数据集的质量直接影响到微调的效果。对于监督式微调 (Supervised Fine-Tuning),建议收集高质量的人类标注对话数据或者特定领域内的文本数据。这些数据应经过清洗和格式化处理以便于后续输入给模型使用[^2]。 #### 微调流程概述 以下是基于开源工具链实现Llama3模型微调的一般步骤: 1. **克隆仓库**: 使用Git命令获取官方或社区维护的相关项目源码。 ```bash git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B-Instruct.git ``` 2. **加载并部署基础模型**: 利用Ollama框架或其他支持的服务端解决方案加载初始的大规模参数集合,并将其作为服务暴露出来供进一步操作。 3. **定义目标任务架构**: 根据具体应用场景调整网络结构设计,比如增加额外分类头用于意图识别任务等扩展功能模块开发。 4. **执行实际Fine-tune过程**: 应用梯度下降算法更新选定层中的可训练变量直至满足收敛条件为止;期间需密切监控损失函数变化趋势以防止过拟合现象发生。 5. **评估性能表现**: 完成一轮迭代之后应当选取部分测试样本来验证改进后的效果是否达到了预期目标水平之上。 6. **保存最终成果物**: 将优化完毕的新版checkpoint妥善存档备份以防丢失同时方便日后重复利用价值最大化[^3]. ```python import torch from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3b") model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3b") def fine_tune_model(train_dataset, val_dataset): optimizer = torch.optim.AdamW(model.parameters(), lr=5e-5) train_loader = DataLoader(train_dataset, batch_size=8, shuffle=True) validation_loader = DataLoader(val_dataset, batch_size=8) device = 'cuda' if torch.cuda.is_available() else 'cpu' model.to(device) epochs = 3 for epoch in range(epochs): model.train() total_loss = 0 for step, batch in enumerate(train_loader): inputs = tokenizer(batch['text'], return_tensors="pt", truncation=True, padding=True).to(device) outputs = model(**inputs, labels=inputs["input_ids"]) loss = outputs.loss optimizer.zero_grad() loss.backward() optimizer.step() total_loss += loss.item() avg_train_loss = total_loss / len(train_loader) print(f"Epoch {epoch}, Average Training Loss: {avg_train_loss}") # Save the tuned model save_directory = "./tuned_llama" model.save_pretrained(save_directory) tokenizer.save_pretrained(save_directory) ``` 上述脚本展示了如何通过PyTorch框架来进行简单的因果语言建模(Causal Language Modeling)形式下的精修作业[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值