【从0到1,训练大模型,从llama3开始】

摘要:

随着大模型越来越多,大家肯定眼花缭乱。不知道选择哪个好,换句话说,不知道哪个才适合自己。
通过社长的实操:chatgpt3.5、gpt4、gpt4o、llama3、通义千问、豆包等大模型,总结是:大家都很好,都能一定程度上的帮助你。
不过怎么说呢,他们什么都懂,但是,什么都不精。
比如:我想写一个sql,他们都可能给你一个错误的版本,只有当你跑完,发现错误之后,告诉他们,他们才会意识到自己的错误,然后重新给你生成一个。这样就导致一个问题,你不敢真正意义上的相信他们。可能在让他们帮你写代码的时候,他们直接偷懒或者把重要的部分写错了,你完全不知道,真正上线的时候,已经晚了。
怎么样才能避免这个问题呢?
只能微调,通过庞大的数据量告诉他,你想要的答案,你想要的回答方式,你想要的是什么。。。

谷歌Colab

当真正想对模型进行微调的时候,你会发现,自己的电脑配置好像不够,可能勉强能够运行大模型,但是在对模型进行大数据量训练的时候,算力的支持上需要更高的性能硬件配置。
这种情况只有## 标题两种解决方案:
1、买更高配置的电脑
2、租用、借用可以进行这种效果的服务器
我们现在呢,就租用谷歌的colab吧。它每天都可以免费使用2小时以上,对进行简单大模型的训练上,算力勉强够了。

使用unsoth

GitHub地址:https://github.com/unslothai/unsloth
详细你可以看它的readme,简单点说,直接用他们的训练步骤,你就可以训练了。

首先,打开GitHub地址,找到你要训练的模型,然后点Start for free。
在这里插入图片描述
然后你可以看到一个谷歌Colab的文件,点击复制,会在你自己的colab上复制一份。
下面,我贴上我的,你们到时候,复制到自己的colab上,一步步使用就行了。
地址是:https://colab.research.google.com/drive/1ltGhvWMWJAMx986V1if9E6_WFD_pZclE#scrollTo=bDp0zNpwe6U_

装环境

%%capture
!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
!pip install --no-deps "xformers<0.0.27" "trl<0.9.0" peft accelerate bitsandbytes

选择要训练的模型,可以从huggingface中选择

from unsloth import FastLanguageModel
import torch
max_seq_length = 2048 # Choose any! We auto support RoPE Scaling internally!
dtype = None # None for auto detection. Float16 for Tesla T4, V100, Bfloat16 for Ampere+
load_in_4bit = True # Use 4bit quantization to reduce memory usage. Can be False.

# 4bit pre quantized models we support for 4x faster downloading + no OOMs.
fourbit_models = [
    "unsloth/mistral-7b-v0.3-bnb-4bit",      # New Mistral v3 2x faster!
    "unsloth/mistral-7b-instruct-v0.3-bnb-4bit",
    "unsloth/llama-3-8b-bnb-4bit",           # Llama-3 15 trillion tokens model 2x faster!
    "unsloth/llama-3-8b-Instruct-bnb-4bit",
    "unsloth/llama-3-70b-bnb-4bit",
    "unsloth/Phi-3-mini-4k-instruct",        # Phi-3 2x faster!
    "unsloth/Phi-3-medium-4k-instruct",
    "unsloth/mistral-7b-bnb-4bit",
    "unsloth/gemma-7b-bnb-4bit",
    "hfl/llama-3-chinese-8b-instruct-v3"
    # Gemma 2.2x faster!
] # More models at https://huggingface.co/unsloth

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name = "hfl/llama-3-chinese-8b-instruct-v3",
    max_seq_length = max_seq_length,
    dtype = dtype,
    load_in_4bit = load_in_4bit,
    # token = "hf_...", # use one if using gated models like meta-llama/Llama-2-7b-hf
)

## 配置参数

```bash
model = FastLanguageModel.get_peft_model(
    model,
    r = 16, # Choose any number > 0 ! Suggested 8, 16, 32, 64, 128
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    lora_alpha = 16,
    lora_dropout 

相关推荐

  1. 01实现YOLOv3

    2024-07-21 00:04:02       26 阅读
  2. GPT-1GPT-3训练语言模型的演进与突破

    2024-07-21 00:04:02       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 00:04:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 00:04:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 00:04:02       45 阅读
  4. Python语言-面向对象

    2024-07-21 00:04:02       55 阅读

热门阅读

  1. Emacs

    2024-07-21 00:04:02       18 阅读
  2. 提升 Google 对网站兴趣的关键:颜值与内容并重

    2024-07-21 00:04:02       14 阅读
  3. 【js自学打卡8】filter / 类与原型链 / 转字符串

    2024-07-21 00:04:02       21 阅读
  4. 2024年交安安全员考试题库及答案

    2024-07-21 00:04:02       15 阅读
  5. [C/C++入门][for]23、求阶乘

    2024-07-21 00:04:02       20 阅读
  6. [rustlings]13_error_handling

    2024-07-21 00:04:02       19 阅读
  7. C语言经典例题-5

    2024-07-21 00:04:02       22 阅读
  8. 【面试题】Golang 锁的相关问题(第七篇)

    2024-07-21 00:04:02       16 阅读