目录
如果想启动webui,我们还需要进入llamafactory容器内部。
LLaMA-Factory 启动docker 容器 报错
cd ~/LLaMA-Factory-main/docker/docker-cuda
docker compose up -d
报错:
ERROR load metadata for docker.io/hiyouga/pytorch:th2.6.0-cu124-flashattn2.7.4-cxx11abi0 4.0s
解决方法:
docker pull hiyouga/pytorch:th2.6.0-cu124-flashattn2.7.4-cxx11abi0-devel
然后:
docker compose up -d
这个过程需要下载很多依赖,最终会构建一个33G左右的docker镜像。
ok的截图:
如果想启动webui,我们还需要进入llamafactory容器内部。
docker compose exec llamafactory bash
然后执行
llamafactory-cli webui
启动webui。
llama-factory数据格式:Alpaca格式和Sharegpt格式。
有个注意事项,就是llama-factory目前只支持两种格式的数据集。
一、Alpaca 格式(单轮对话)
特点:
一问一答
常用于 指令微调(Instruction tuning)
结构简单,适合监督微调(SFT)
🔹 示例(JSONL 格式,每行一个 JSON 对象):
{
"instruction": "写一个 Python 函数,实现斐波那契数列。",
"input": "",
"output": "def fibonacci(n):\n if n <= 1:\n return n\n return fibonacci(n-1) + fibonacci(n-2)"
}
🧠 含义:
instruction
: 你希望模型完成的任务(如翻译、写代码等)input
: 可选的上下文输入,很多时候是空的output
: 对应的模型回答(ground truth)
✅ 二、ShareGPT 格式(多轮对话)
特点:
多轮对话(可以无限轮)
结构为一个
conversation
数组每轮对话包含
role
(如 user / assistant) 和content
🔹 示例(JSON):
{ "conversations": [
{
"role": "user",
"content": "你好,可以给我写一段 Python 代码打印 1 到 10 吗?" },
{
"role": "assistant",
"content": "当然可以:\n\n```python\nfor i in range(1, 11):\n print(i)\n```" },
{
"role": "user",
"content": "那你能把它改成倒序输出吗?" },
{
"role": "assistant",
"content": "当然,这是倒序输出的版本:\n\n```python\nfor i in range(10, 0, -1):\n print(i)\n```"
} ] }
🧠 含义:
一组完整的问答记录,每个轮次都有明确的角色和内容
适合对话模型的训练(如 ChatGPT、Qwen)
🆚 Alpaca vs ShareGPT 区别对比表
项目 | Alpaca 格式 | ShareGPT 格式 |
---|---|---|
对话轮数 | 单轮 | 多轮 |
数据结构 | instruction + input + output |
conversations = [ {role, content} ] |
用途 | 指令微调(SFT) | 多轮对话训练、chat 模型预训练 |
示例场景 | 问:写个排序函数;答:代码 | 模拟用户与 AI 聊天全过程 |
数据格式 | JSONL(每行一条) | JSON(每条一个多轮结构) |
拷贝数据到路径:/LLaMA-Factory-main/data
在llama-factory添加数据集
在llama-factory添加数据集,不仅要把数据文件放到data目录下,还需要在配置文件dataset_info.json里面添加一条该数据集的记录。
然后,打开data文件夹中一个名为dataset_info.json的配置文件。
添加一条huanhuan.json的json配置,保存。
这样,我们新添加的数据集才能被llama-factory识别到。