成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

當下最容易上手的大模型微調工具是誰?LLamaFactory或是其中之一

發布于 2024-4-9 10:29
瀏覽
0收藏

近日,國內的一款微調框架發布了自己的論文《LLAMAFACTORY: Unified Efficient Fine-Tuning of 100+ Language Models》,對他們的框架做了系統性的總結。該框架自推出后迅速出圈,現已斬獲15.6k的star,逐步成為當下微調的首選工具。

當下最容易上手的大模型微調工具是誰?LLamaFactory或是其中之一-AI.x社區

??https://arxiv.org/pdf/2403.13372.pdf??

模型微調相較于上下文學習來講,存在比較高的門檻,但又是模型專業化,領域化不可或缺的技術手段。而其復雜性突出表現在這些方面:

1)理論基礎,如果說基于大模型寫prompt 根據一定范式來構建RAG或者Agent不需要太多機器學習理論知識,然而微調就必須要對這些有理解,比如樣本,學習率,logloss等。

2)數據準備,對于普通開發者,高質量的數據是微調成功的關鍵保證,而如何預處理,清洗,標注這些樣本本身就很復雜,更因此誕生了大模型數據工程這樣的領域來解決這一問題。

3)基座模型存在分化,雖然當下很多模型都參考llama和huggingface的一些規范,但是仍然都有一些特殊之處,想要微調也需要針對性地去分析和構建相應的策略。

4)超參數優化,微調本身是一個“煉丹”過程,如何能夠找到合適的超參數,達到一個最佳性能,是一個重大挑戰。

5)AI工程復雜性,涉及到硬件\軟件\復雜流程的協同配合以及系統優化,在有限的成本、資源和時間要求下完成模型訓練過程。

正是因為這些原因,對于預訓練微調,需要一個類似于工廠的工業化手段來降低門檻,提升效率。

因此,行業內出現了很多微調框架,而LLamaFactory(https://github.com/hiyouga/LLaMA-Factory)便是其中之一,從起名上就可以看出它們的目標是成為模型微調的工廠。

當下最容易上手的大模型微調工具是誰?LLamaFactory或是其中之一-AI.x社區

它得以流行主要得益于支持當下主流的大模型百川、千問、LLaMA等,不僅集成了大模型預訓練、監督微調和強化微調等階段的主流的微調技術(支持 LoRA 和 QLoRA 等參數高效微調策略),還提供了預訓練、指令微調等豐富的數據集,方便參考使用,最重要的是提供了一個無代碼的圖形界面,大幅降低使用門檻,非開發者也可以方便地完成模型微調。

該框架架構上由四個模塊構成:模型加載器、數據工作器和訓練器,以及用戶界面LlamaBoard。

當下最容易上手的大模型微調工具是誰?LLamaFactory或是其中之一-AI.x社區

在根據官方文檔安裝好LLamaFactory后,可以有三種方式進行操作,WebUI、CLI或者Python。

1.webUI。

CUDA_VISIBLE_DEVICES=0 python src/train_web.py

當下最容易上手的大模型微調工具是誰?LLamaFactory或是其中之一-AI.x社區

2.CLI,由于有時候界面限制,可能需要命令行的方式進行微調。如果不知道具體格式,可以在界面上配置好,再復制到命令行中調整使用。

當下最容易上手的大模型微調工具是誰?LLamaFactory或是其中之一-AI.x社區


在example目錄中有大量的示例可供參考。

examples/
├── lora_single_gpu/
│   ├── pretrain.sh: 進行預訓練
│   ├── sft.sh: 進行指令監督微調
│   ├── reward.sh: 進行獎勵模型訓練
│   ├── ppo.sh: 進行 PPO 訓練
│   ├── dpo.sh: 進行 DPO 訓練
│   ├── orpo.sh: 進行 ORPO 訓練
│   ├── prepare.sh: 保存預處理后的數據集
│   └── predict.sh: 進行批量預測
├── qlora_single_gpu/
│   ├── bitsandbytes.sh: 微調 4/8 比特 BNB 模型
│   ├── gptq.sh: 微調 4/8 比特 GPTQ 模型
│   ├── awq.sh: 微調 4 比特 AWQ 模型
│   └── aqlm.sh: 微調 2 比特 AQLM 模型
├── lora_multi_gpu/
│   ├── single_node.sh: 使用 Accelerate 進行單節點訓練
│   └── multi_node.sh: 使用 Accelerate 進行多節點訓練
├── full_multi_gpu/
│   ├── single_node.sh: 使用 DeepSpeed 進行單節點訓練
│   └── multi_node.sh: 使用 DeepSpeed 進行多節點訓練
├── merge_lora/
│   ├── merge.sh: 將 LoRA 權重合并到預訓練模型中
│   └── quantize.sh: 使用 AutoGPTQ 量化模型
├── inference/
│   ├── cli_demo.sh: 啟動命令行推理接口
│   ├── api_demo.sh: 啟動 OpenAI 風格 API
│   ├── web_demo.sh: 啟動瀏覽器推理接口
│   └── evaluate.sh: 在 MMLU 數據集上評測模型
└── extras/
    ├── galore/
    │   └── sft.sh: 使用 GaLore 訓練模型
    ├── loraplus/
    │   └── sft.sh: 使用 LoRA+ 訓練模型
    ├── llama_pro/
    │   ├── expand.sh: 擴展模型中的層
    │   └── sft.sh: 訓練擴展后的模型
    └── fsdp_qlora/
        └── sft.sh: 使用 FSDP 微調量化模型

3)編程方式。

from llmtuner import run_exp
run_exp(dict(
  stage="sft",
  do_train=True,
  model_name_or_path="Qwen/Qwen1.5-0.5B-Chat",
  dataset="identity,alpaca_gpt4_en,alpaca_gpt4_zh",
  template="qwen",
  finetuning_type="lora",
  lora_target="all",
  output_dir="test_identity",
  per_device_train_batch_size=4,
  gradient_accumulation_steps=4,
  lr_scheduler_type="cosine",
  logging_steps=10,
  save_steps=100,
  learning_rate=1e-4,
  num_train_epochs=5.0,
  max_samples=500,
  max_grad_norm=1.0,
  fp16=True,
))

對于用戶來講,準備正確高質量的數據是用好該工具的關鍵。在使用自定義數據集時需要在 dataset_info.json 文件中按照以下格式提供數據集定義,數據集格式支持兩種:alpaca 和 sharegpt,具體可參考其官方文檔。

"數據集名稱": {
  "hf_hub_url": "Hugging Face 的數據集倉庫地址(若指定,則忽略 script_url 和 file_name)",
  "ms_hub_url": "ModelScope 的數據集倉庫地址(若指定,則忽略 script_url 和 file_name)",
  "script_url": "包含數據加載腳本的本地文件夾名稱(若指定,則忽略 file_name)",
  "file_name": "該目錄下數據集文件的名稱(若上述參數未指定,則此項必需)",
  "file_sha1": "數據集文件的 SHA-1 哈希值(可選,留空不影響訓練)",
  "subset": "數據集子集的名稱(可選,默認:None)",
  "folder": "Hugging Face 倉庫的文件夾名稱(可選,默認:None)",
  "ranking": "是否為偏好數據集(可選,默認:False)",
  "formatting": "數據集格式(可選,默認:alpaca,可以為 alpaca 或 sharegpt)",
  "columns(可選)": {
    "prompt": "數據集代表提示詞的表頭名稱(默認:instruction)",
    "query": "數據集代表請求的表頭名稱(默認:input)",
    "response": "數據集代表回答的表頭名稱(默認:output)",
    "history": "數據集代表歷史對話的表頭名稱(默認:None)",
    "messages": "數據集代表消息列表的表頭名稱(默認:conversations)",
    "system": "數據集代表系統提示的表頭名稱(默認:None)",
    "tools": "數據集代表工具描述的表頭名稱(默認: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 列)"
  }
}

經過以上的步驟,剩下的就是需要耐心的調參和評估了。下面是一個利用webui進行微調操作示例。

小結

相較于其他方法,目前,LlamaFactory可以說是當下最簡單快捷又功能強大的一種微調工具,值得大家學習使用。

收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 天天干天天色 | 黄色一级大片在线免费看产 | 国产精品99久久免费观看 | 999精品视频 | 欧美性成人 | 啪视频在线 | av中文字幕在线观看 | 国产成人精品一区 | 久久午夜电影 | 亚洲国产精品一区二区久久 | 欧美天堂一区 | 国产激情一区二区三区 | 青青草在线视频免费观看 | 免费一级片 | 亚洲高清视频在线观看 | 亚洲欧美在线视频 | 天天操夜夜操 | 国产精品99久久久久久宅男 | 日韩国产中文字幕 | 992人人草| 日韩视频在线一区 | 99久久免费精品国产男女高不卡 | www.亚洲.com| 日韩精品中文字幕一区二区三区 | 久久首页 | 欧美一级在线免费观看 | 九七午夜剧场福利写真 | 日本成人三级电影 | 一区二区三区中文字幕 | 欧美不卡网站 | 99久久婷婷国产综合精品首页 | 精品一区二区观看 | 国产精品99一区二区 | 欧美成ee人免费视频 | 男人天堂久久久 | 欧美 视频| 日韩国产中文字幕 | 91国产精品在线 | 天堂中文在线播放 | 综合五月婷 | 在线日韩不卡 |