微信扫码
与创始人交个朋友
我要投稿
北京时间4月19日凌晨,Meta公司通过其官方网站宣布了Llama系列的最新开源大模型:Llama-3。
继Llama-1、Llama-2以及Code-Llama之后,Llama-3作为该系列的第三代模型,在众多关键的基准测试中取得了全面的进步,其性能在当前业界的同类模型中处于领先地位。
Llama大模型家族概述
Llama3技术特性
模型架构
预训练数据
扩展预训练
指令微调
Llama3大模型微调
注:请申请一个免费 T4 GPU 来运行该脚本
%cd /content/%rm -rf LLaMA-Factory!git clone https://github.com/hiyouga/LLaMA-Factory.git%cd LLaMA-Factory%ls!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"!pip install --no-deps xformers==0.0.25!pip install .[bitsandbytes]
检查 GPU 环境
import torchtry:assert torch.cuda.is_available() is Trueexcept AssertionError: print("ERROR,需要 GPU 环境")
更新自我认知数据集
import json
%cd /content/LLaMA-Factory/
NAME = "Llama-Chinese"
AUTHOR = "LLaMA Factory"
with open("data/identity.json", "r", encoding="utf-8") as f:
dataset = json.load(f)
for sample in dataset:
sample["output"] = sample["output"].replace("NAME", NAME).replace("AUTHOR", AUTHOR)
with open("data/identity.json", "w", encoding="utf-8") as f:
json.dump(dataset, f, indent=2, ensure_ascii=False)
from llmtuner import run_exp
from llmtuner.extras.misc import torch_gc
%cd /content/LLaMA-Factory/
run_exp(dict(
stage="sft",# 进行指令监督微调
do_train=True,
model_name_or_path="unsloth/llama-3-8b-Instruct-bnb-4bit", # 使用 4 比特量化版 Llama-3-8b-Instruct 模型
dataset="identity,alpaca_gpt4_en,alpaca_gpt4_zh",# 使用 alpaca 和自我认知数据集
template="llama3", # 使用 llama3 提示词模板
finetuning_type="lora", # 使用 LoRA 适配器来节省显存
lora_target="all", # 添加 LoRA 适配器至全部线性层
output_dir="llama3_lora",# 保存 LoRA 适配器的路径
per_device_train_batch_size=2, # 批处理大小
gradient_accumulation_steps=4, # 梯度累积步数
lr_scheduler_type="cosine", # 使用余弦学习率退火算法
logging_steps=10,# 每 10 步输出一个记录
warmup_ratio=0.1,# 使用预热学习率
save_steps=1000,# 每 1000 步保存一个检查点
learning_rate=5e-5, # 学习率大小
num_train_epochs=3.0,# 训练轮数
max_samples=300,# 使用每个数据集中的 300 条样本
max_grad_norm=1.0, # 将梯度范数裁剪至 1.0
quantization_bit=4, # 使用 4 比特 QLoRA
loraplus_lr_ratio=16.0, # 使用 LoRA+ 算法并设置 lambda=16.0
use_unsloth=True,# 使用 UnslothAI 的 LoRA 优化来加快一倍的训练速度
fp16=True, # 使用 float16 混合精度训练
))
torch_gc()
模型推理
from llmtuner import ChatModel
from llmtuner.extras.misc import torch_gc
%cd /content/LLaMA-Factory/
chat_model = ChatModel(dict(
model_name_or_path="unsloth/llama-3-8b-Instruct-bnb-4bit", # 使用 4 比特量化版 Llama-3-8b-Instruct 模型
adapter_name_or_path="llama3_lora",# 加载之前保存的 LoRA 适配器
finetuning_type="lora",# 和训练保持一致
template="llama3", # 和训练保持一致
quantization_bit=4,# 加载 4 比特量化模型
use_unsloth=True, # 使用 UnslothAI 的 LoRA 优化来加快一倍的推理速度
))
messages = []
while True:
query = input("\nUser: ")
if query.strip() == "exit":
break
if query.strip() == "clear":
messages = []
torch_gc()
print("History has been removed.")
continue
messages.append({"role": "user", "content": query}) # 把提示词添加到消息中
print("Assistant: ", end="", flush=True)
response = ""
for new_text in chat_model.stream_chat(messages):# 流式输出
print(new_text, end="", flush=True)
response += new_text
print()
messages.append({"role": "assistant", "content": response}) # 把回答添加到消息中
torch_gc()
Llama3的大模型测评
Llama3系列的基础预训练模型在多个评测基准的性能表现,相较于上一代的Llama2和Llama系列,性能得到了很大提升。
Llama3部署与应用
Meta AI,使用 Llama 3 构建
在线体验
本地部署
未来展望
Meta将发布多个具有新功能的模型,包括多模态、使用多种语言交谈的能力、更长的上下文窗口和更强大的整体功能。先一睹为快~
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-13
通义牛逼!!比肩Chatgpt-4o 还自带 Artifact
2024-11-13
Ollama 更新!本地跑 LLama3.2,轻量级+视觉能力,能媲美GPT-4o?
2024-11-13
开源版SearchGPT来了,两张3090就可复现,超越Perplexity付费版
2024-11-12
字节跳动AI社区新动作:炉米Lumi,一站式模型共创平台揭秘
2024-11-12
我们是这样做大模型应用的(文末有惊喜)
2024-11-12
Qwen新作,代码界的王!
2024-11-12
我手搓了个“自动生成标书”的开源大模型工具
2024-11-12
通义千问Qwen2.5-Coder 全系列来咯!强大、多样、实用!
2024-05-06
2024-08-13
2024-07-25
2024-06-12
2024-06-16
2024-07-11
2024-07-20
2024-06-15
2024-07-25
2024-07-25
2024-11-13
2024-10-07
2024-09-22
2024-09-20
2024-09-14
2024-09-14
2024-09-12
2024-09-07