利用trae的deepseekV3学习数据集的使用过程

298 阅读3分钟

太赞了,学习和实践的好工具!

从魔搭社区下载了一个数据集,利用trae的deepseekV3学习数据集的使用,以下是全部过程。

我理解您需要将JSON中定义的数据集用于本地Ollama模型的训练/推理。这里提供一个简单的实现方案:

{
  "default": {
    "train": {
      "meta": "train.csv",
      "file": "h:\\git\\jinyong\\data\\train.jsonl"  // ← 新增实际数据文件路径
    },
    "test": {
      "meta": "",
      "file": ""
    },
    "validation": {
      "meta": "test.csv",
      "file": "h:\\git\\jinyong\\data\\validation.jsonl"  // ← 新增验证集路径
    }
  }
}

需要执行以下步骤:

  1. 准备数据格式(假设CSV包含prompt-response对):
# 安装依赖
pip install pandas
  1. 创建数据转换脚本:
import pandas as pd

def convert(csv_path, jsonl_path):
    df = pd.read_csv(csv_path)
    with open(jsonl_path, 'w', encoding='utf-8') as f:
        for _, row in df.iterrows():
            # 根据实际CSV结构调整下列字段
            f.write(f'{{"prompt": "{row.prompt}", "response": "{row.response}"}}\n')

# 转换训练集和验证集
convert("h:\\git\\jinyong\\train.csv", "h:\\git\\jinyong\\data\\train.jsonl")
convert("h:\\git\\jinyong\\test.csv", "h:\\git\\jinyong\\data\\validation.jsonl")
  1. 运行Ollama
# 启动模型(以llama2为例)
ollama run llama2

# 或者在微调时指定数据路径
ollama create my-model -f h:\git\jinyong\jinyong.json

注意事项:

  1. 请根据实际CSV文件结构调整JSONL的字段名称
  2. 如果数据量较大,建议将数据文件单独存放在h:\git\jinyong\data\目录
  3. Ollama模型名称需要替换为您实际使用的模型名称(如qwen、mistral等)

jinyong.jsonModelfile 在 Ollama 模型训练中扮演不同的角色,它们之间的关系如下:

  1. jinyong.json
    • 主要功能:定义数据集的结构和路径
    • 包含内容:训练集、验证集、测试集的元信息和文件路径
    • 示例:
{
  "default": {
    "train": {
      "meta": "train.csv",
      "file": "h:\\git\\jinyong\\data\\train.jsonl"
    },
    "validation": {
      "meta": "test.csv",
      "file": "h:\\git\\jinyong\\data\\validation.jsonl"
    }
  }
}
  1. Modelfile
    • 主要功能:定义模型配置和训练参数
    • 包含内容:基础模型、训练参数、系统提示等
    • 示例:
FROM llama2
PARAMETER learning_rate 0.0003
SYSTEM "你是一个金庸武侠专家"
  1. 关系

    • jinyong.json 负责数据管理,Modelfile 负责模型配置
    • 在模型训练时,Ollama 会同时使用这两个文件:
      • jinyong.json 读取训练数据
      • Modelfile 读取模型配置
    • 它们共同定义了完整的训练任务
  2. 使用流程

# 1. 准备数据(使用 jinyong.json 定义的数据)
# 2. 配置模型(使用 Modelfile 定义的参数)
# 3. 创建模型
ollama create my-model -f h:\git\jinyong\Modelfile -d h:\git\jinyong\jinyong.json

总结:jinyong.jsonModelfile 是互补的关系,前者管理数据,后者管理模型配置,两者共同完成模型的训练任务。

在创建好模型之后,以下是使用模型的几种常见方式:

  1. 交互式命令行使用
# 启动模型进行实时对话
ollama run my-model
  1. 作为API服务使用
# 启动API服务(默认端口11434)
ollama serve

# 然后可以通过HTTP请求调用
curl http://localhost:11434/api/generate -d '{
  "model": "my-model",
  "prompt": "金庸小说中谁武功最高?"
}'
  1. 更新模型
# 当需要更新模型时
ollama rm my-model
ollama create my-model -f h:\git\jinyong\Modelfile -d h:\git\jinyong\jinyong.json
  1. 查看和管理模型
# 查看已安装模型
ollama list

# 删除模型
ollama rm my-model

# 查看模型信息
ollama show my-model
  1. 在应用程序中集成
import requests

def ask_model(prompt):
    response = requests.post(
        "http://localhost:11434/api/generate",
        json={
            "model": "my-model",
            "prompt": prompt,
            "stream": False
        }
    )
    return response.json()["response"]

# 示例调用
answer = ask_model("金庸小说中最聪明的角色是谁?")
print(answer)

注意事项:

  1. 确保Ollama服务正在运行
  2. API调用时model参数必须与创建时指定的名称一致
  3. 如果修改了训练数据或配置,需要重新创建模型
  4. 可以使用--verbose参数查看详细日志信息