【Qwen3_ 4b lora xinli 】 task完成实践记录

 task

我需要 基于llamafactory框架选取基本上相同的数据集用lora微调Qwen3_ 4b两次并保存lora参数然后分别合并这两个lora参数到基座模型。再换个数据集上接着进行微调。并且保存新的lora参数,然后我们匹配这里面的特征值和特征向量,如果这两个新的lora参数的特征值和特征向量有显著不同,并且跟他们微调到一半的时候的特征值和特征下降更相似的话(观测loss 曲线) 

进入启智开发机 

cd /tmp/code/

 一、llamafactory框架安装

 二、基本上相同的数据集

由于我们要做心里方面的,所以去魔塔社区找到情感标签

zengzihuan/xinli_dataset 

YIRONGCHEN/PsyDTCorpus 

xinli数据集下载 

打开数据集 需要一段时间请耐心等待 

构建dataset_info  并用vim写入到dataset_info.json中 

可选构建字段                                                                                                             --官方readme

目前我们支持 **alpaca** 格式和 **sharegpt** 格式的数据集。

```json
"数据集名称": {
  "hf_hub_url": "Hugging Face 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)",
  "ms_hub_url": "ModelScope 的数据集仓库地址(若指定,则忽略 script_url 和 file_name)",
  "script_url": "包含数据加载脚本的本地文件夹名称(若指定,则忽略 file_name)",
  "file_name": "该目录下数据集文件夹或文件的名称(若上述参数未指定,则此项必需)",
  "formatting": "数据集格式(可选,默认:alpaca,可以为 alpaca 或 sharegpt)",
  "ranking": "是否为偏好数据集(可选,默认:False)",
  "subset": "数据集子集的名称(可选,默认:None)",
  "split": "所使用的数据集切分(可选,默认:train)",
  "folder": "Hugging Face 仓库的文件夹名称(可选,默认:None)",
  "num_samples": "该数据集所使用的样本数量。(可选,默认:None)",
  "columns(可选)": {
    "prompt": "数据集代表提示词的表头名称(默认:instruction)",
    "query": "数据集代表请求的表头名称(默认:input)",
    "response": "数据集代表回答的表头名称(默认:output)",
    "history": "数据集代表历史对话的表头名称(默认:None)",
    "messages": "数据集代表消息列表的表头名称(默认:conversations)",
    "system": "数据集代表系统提示的表头名称(默认:None)",
    "tools": "数据集代表工具描述的表头名称(默认:None)",
    "images": "数据集代表图像输入的表头名称(默认:None)",
    "videos": "数据集代表视频输入的表头名称(默认:None)",
    "audios": "数据集代表音频输入的表头名称(默认:None)",
    "chosen": "数据集代表更优回答的表头名称(默认:None)",
    "rejected": "数据集代表更差回答的表头名称(默认:None)",
    "kto_tag": "数据集代表 KTO 标签的表头名称(默认:None)"
  },
  "tags(可选,用于 sharegpt 格式)": {
    "role_tag": "消息中代表发送者身份的键名(默认:from)",
    "content_tag": "消息中代表文本内容的键名(默认:value)",
    "user_tag": "消息中代表用户的 role_tag(默认:human)",
    "assistant_tag": "消息中代表助手的 role_tag(默认:gpt)",
    "observation_tag": "消息中代表工具返回结果的 role_tag(默认:observation)",
    "function_tag": "消息中代表工具调用的 role_tag(默认:function_call)",
    "system_tag": "消息中代表系统提示的 role_tag(默认:system,会覆盖 system column)"
  }
}
```

 显然我们 是 Sharegpt 格式

## Sharegpt 格式

### 指令监督微调数据集

- [样例数据集](glaive_toolcall_zh_demo.json)

相比 alpaca 格式的数据集,sharegpt 格式支持**更多的角色种类**,例如 human、gpt、observation、function 等等。它们构成一个对象列表呈现在 `conversations` 列中。

注意其中 human 和 observation 必须出现在奇数位置,gpt 和 function 必须出现在偶数位置。

```json
[
  {
    "conversations": [
      {
        "from": "human",
        "value": "人类指令"
      },
      {
        "from": "fu
### Qwen1.5-4B 聊天大模型用于手写字识别 Qwen1.5系列的大规模预训练模型主要设计目的是为了自然语言处理任务,特别是对话生成和理解。然而,在特定情况下也可以尝试将其应用于其他领域,比如图像到文本的任务转换,这其中包括手写字符识别。 对于想要利用Qwen1.5-4B进行手写字体识别的应用场景来说,通常需要额外的数据集以及针对该数据集微调过的视觉编码器部分来提取笔迹特征[^1]。这是因为原始版本的Qwen更侧重于文本输入而非图片形式的手稿扫描件作为输入源材料。 考虑到这一点,如果确实希望基于此架构开展此类项目,则建议采取如下策略: #### 数据准备 收集并整理大量带有标注信息的手写样本图片库,并确保这些资源能够覆盖目标应用场景下的各种变化情况(字体风格差异、书写习惯不同等),从而提高最终系统的泛化能力。 #### 模型调整 引入适合处理二维图形信号的基础网络结构(如ResNet, EfficientNet)并与现有的Transformer层相结合形成一个多模态学习框架;或者直接采用已经过优化配置好的现成解决方案,例如Hugging Face上提供的vision transformer (ViT)[^2]。 #### 训练过程 通过迁移学习的方式加载预训练权重初始化参数值,接着依据自定义损失函数指导整个体系逐步适应新的任务需求直至收敛稳定为止。 ```python from transformers import VisionEncoderDecoderModel, ViTImageProcessor, AutoTokenizer import torch from PIL import Image device = "cuda" if torch.cuda.is_available() else "cpu" model_name_or_path = 'nlpconnect/vit-gpt2-image-captioning' feature_extractor = ViTImageProcessor.from_pretrained(model_name_or_path) tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = VisionEncoderDecoderModel.from_pretrained(model_name_or_path).to(device) def predict(image_path): image = Image.open(image_path).convert("RGB") pixel_values = feature_extractor(images=image, return_tensors="pt").pixel_values.to(device) with torch.no_grad(): output_ids = model.generate(pixel_values=pixel_values, max_length=16) preds = tokenizer.batch_decode(output_ids, skip_special_tokens=True) return preds[0] print(predict('./handwriting_sample.png')) ``` 上述代码片段展示了如何使用Vision Encoder Decoder Model来进行简单的图像描述生成实验,这里可以替换为专门面向OCR任务定制化的组件组合以满足具体业务逻辑的要求。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值