モデル概要
モデル特徴
モデル能力
使用事例
🚀 Llama-3-6Bモデル
このモデルは、60億個のパラメータを持つ世界初のLlama-3ベースモデルです。Meta-Llama-3-8Bからdowncyclingという手法を用いて作成されたprince-canuma/Llama-3-6B-v0の事前学習バージョンです。finewebの英語のみの10億トークンのテキストで継続的に事前学習され、評価セットで印象的な結果を達成しています。
🚀 クイックスタート
このモデルを使い始めるには、以下のコードを使用します。
基本的な使用法
from transformers import AutoModelForCausalLM, AutoConfig, AutoTokenizer
# Load model, config and tokenizer
model_name = "prince-canuma/Llama-3-6B-v0.1"
model = AutoModelForCausalLM.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)
inputs = tokenizer(
[
"Who created Python?"
], return_tensors = "pt")
from transformers import TextStreamer
text_streamer = TextStreamer(tokenizer)
_ = model.generate(**inputs, streamer = text_streamer, max_new_tokens = 200)
出力:
<|begin_of_text|>Who created Python? What is Python used for? What is the difference between Python 2 and Python 3? What is the difference between Python and Python 3?
Python is a programming language that was created by Guido van Rossum in 1991. It is a widely used language for web development, data science, and machine learning. Python is also used for creating software applications and games.
Python is a powerful language that is easy to learn and use. It has a large library of built-in functions and packages that make it easy to write code. Python is also a very popular language for web development, with many popular web frameworks such as Django and Flask being written in Python.
Python is also used for data science and machine learning. It has a large library of packages for data analysis, machine learning, and artificial intelligence. Python is also used for creating software applications and games.
Python 2 and Python 3 are two different versions of the Python language. Python 2 was the original version of the
✨ 主な機能
- 世界初の60億パラメータのLlama-3ベースモデル。
- finewebの英語のみのテキストで継続的に事前学習されている。
- 複数の評価ベンチマークで良好な性能を示す。
📦 インストール
インストールに関する具体的な手順は提供されていません。
📚 ドキュメント
モデル概要

このモデルは、世界初の60億パラメータを持つLlama-3ベースモデルです。prince-canuma/Llama-3-6B-v0の事前学習バージョンで、Meta-Llama-3-8Bからdowncyclingという手法を用いて作成されました。
モデルの説明
これは🤗 transformersモデルのモデルカードで、自動生成されています。
- 開発者: Prince Canuma
- 後援: General
- モデルタイプ: Llama
- ライセンス: Llama-3
- 事前学習元モデル: prince-canuma/Llama-3-6B-v0
モデルのソース
- リポジトリ: https://github.com/Blaizzy/Coding-LLMs-from-scratch/tree/main/Llama-3
- 動画: https://youtube.com/playlist?list=PLDn_JsyofyfTH5_5V1MNb8UYKxMl6IMNy&si=5Y4cm-6wrMOD1Abr
使用方法
このモデルは、コーディングアシスタント、RAG、関数呼び出しなどのさまざまなユースケースの指示およびチャットバージョンを作成するために使用できます。
制限事項
このモデルは、ベースモデルの一部の制限事項と、作成プロセスからの追加の制限事項を引き継いでいます。
- コーディングと数学の範囲が限られている: ベンチマークによると、このモデルは推論タスクで優れた性能を発揮するために、コードと数学のデータでさらに事前学習/微調整する必要があります。
- 言語の制限: このモデルは英語のみのデータで継続的に事前学習されています。多言語のユースケースで使用する場合は、微調整または継続的な事前学習をお勧めします。
学習の詳細
ダウンサイクリング

大規模な事前学習モデルのチェックポイントからさまざまなサイズの新しいLLMを作成できる手法です。参照モデル(例:Llama-3-8B)を取り、32層のうち24層の重みと埋め込みおよび予測ヘッドをコピーします。次に、24層の小さなターゲットモデルを初期化し、それらの事前学習された重みをロードします。
この新しいモデルはおそらくまだ読みやすい出力を生成しますが、良好な性能を発揮するためには事前学習を続ける必要があります。

学習データ
継続的な事前学習には、Huggingface's FineWeb CC-Main-2024-10のスライスから10億トークンを抽出しました。
学習ハイパーパラメータ
学習中に使用されたハイパーパラメータは次のとおりです。
- 学習率: 0.0002
- 学習バッチサイズ: 2
- 評価バッチサイズ: 2
- シード: 42
- 分散タイプ: マルチGPU
- デバイス数: 4
- 勾配累積ステップ: 8
- 総学習バッチサイズ: 64
- 総評価バッチサイズ: 8
- オプティマイザ: Adam (betas=(0.9,0.999), epsilon=1e-08)
- 学習率スケジューラタイプ: コサイン
- 学習率スケジューラウォームアップステップ: 100
- エポック数: 2
axolotl設定を表示
axolotlバージョン: 0.4.0
base_model: prince-canuma/Llama-3-6B-v0.1
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer
load_in_8bit: false
load_in_4bit: true
strict: false
datasets:
- path: prince-canuma/fineweb-CC-MAIN-2024-10-1B-en
type: completion
split: train
dataset_prepared_path: last_run_prepared
val_set_size: 0.001
output_dir: ./llama-3-6b
save_safetensors: true
adapter: qlora
lora_model_dir:
sequence_len: 8192
sample_packing: false
pad_to_sequence_len: false
lora_r: 128
lora_alpha: 128
lora_dropout: 0.05
lora_target_modules:
lora_target_linear: true
lora_fan_in_fan_out:
wandb_project: llama-3-6b
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:
gradient_accumulation_steps: 8
micro_batch_size: 2
num_epochs: 2
optimizer: paged_adamw_32bit
lr_scheduler: cosine
learning_rate: 2e-4
train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: false
gradient_checkpointing: true
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true
warmup_steps: 100
evals_per_epoch: 4
eval_table_size:
save_steps: 4000
debug:
deepspeed:
weight_decay: 0.0
fsdp:
fsdp_config:
special_tokens:
pad_token: "<|reserved_special_token_0|>"
学習結果
3つの異なる実験が行われました。これらの実験では、予算の制約から完全な微調整ではなくQLoRAが使用されました。
- v0: QLoRAパラメータでモデルが改善するかどうかを確認するために1000ステップのテストが実行されました。
- v1: ここではQLoRAパラメータ(ランクとアルファ)が調整されました。
- v2: これはメインの実験で、FineWebからの10億トークンで2エポック学習されました。
すべての詳細は、私のWandbダッシュボードで確認できます: https://wandb.ai/prince-canuma/llama-3-6b?nw=nwuserprincecanuma

全体的なメトリクス:
学習損失 | エポック | ステップ | 検証損失 |
---|---|---|---|
7.1562 | 0.0 | 1 | 7.1806 |
2.7339 | 0.25 | 5867 | 2.6266 |
2.6905 | 0.5 | 11734 | 2.5872 |
2.6134 | 0.75 | 17601 | 2.5549 |
2.532 | 1.0 | 23468 | 2.5235 |
2.5319 | 1.25 | 29335 | 2.5067 |
2.3336 | 1.5 | 35202 | 2.4968 |
2.3486 | 1.75 | 41069 | 2.4942 |
フレームワークのバージョン
- PEFT 0.10.0
- Transformers 4.40.0.dev0
- Pytorch 2.2.0+cu121
- Datasets 2.15.0
- Tokenizers 0.15.0
ハードウェア
- 4xRTX6000を使用したJarvisLabs(General Catalystによる後援、Vietに感謝)
評価
ベンチマーク
- Hellaswag: 根拠のある常識的推論を研究するためのデータセット。
- ARC: 3年生から9年生までの科学試験の複数選択式質問応答データセット。
- MMLU: テキストモデルのマルチタスク精度を測定する57のタスクを持つテスト。
- TruthfulQA: オンラインで一般的に見られる虚偽を再現するモデルの傾向を測定するテスト。
- Winogrande: 常識的推論のためのテスト。
- GSM8k: 多段階の数学的推論問題を解くモデルの能力を測定するための多様な小学校の数学の文章問題。
結果

10億トークンで2エポックの事前学習は、全体的にプラスの影響を与えました。新しいベースモデルは、参照モデル(Llama-3-8B)と競争力を持ち、サイズが1.3倍小さくなっています。

Llama-3-6Bは、同じカテゴリのモデルと競争力があり、6つの多様なベンチマークで自身の2倍までのサイズのモデルと競争できます。
まとめと将来の方向性
この実験は成功しました!この手法を使用することで、多くのバリアントを構築することができます。これは、私が作成する予定の多くの新しいベースモデルの最初のものです。
次に、異なるデータ混合を探索し、完全な微調整を行う予定です。これらはすべて、他の小さなモデルや、より大きく頑健なモデルの開発に貢献します。
引用
BibTeX
@misc{prince2024downcycling,
title={Efficient LLM Downcycling: Generating Diverse Model Sizes from Pretrained Giants},
author={Prince Canuma},
year={2024},
}
参考文献
@misc{komatsuzaki2023sparse,
title={Sparse Upcycling: Training Mixture-of-Experts from Dense Checkpoints},
author={Aran Komatsuzaki and Joan Puigcerver and James Lee-Thorp and Carlos Riquelme Ruiz and Basil Mustafa and Joshua Ainslie and Yi Tay and Mostafa Dehghani and Neil Houlsby},
year={2023},
eprint={2212.05055},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
@misc{sanyal2024pretraining,
title={Pre-training Small Base LMs with Fewer Tokens},
author={Sunny Sanyal and Sujay Sanghavi and Alexandros G. Dimakis},
year={2024},
eprint={2404.08634},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
📄 ライセンス
このモデルはLlama-3ライセンスの下で提供されています。



