Repolode
DLLXW

DLLXW/baby-llama2-chinese

単一の24GB GPUで実行できる、小規模な中国語LLaMA2系モデル向けの事前学習・SFTパイプラインをゼロから構築。

スター
2,923
フォーク
354
未解決の Issue
42
最終コミット
2 か月前

これは何?

Baby-Llama2-Chineseは、小規模な中国語LLaMA2系言語モデルを一貫して構築する、学習目的のプロジェクトです。コーパスのトークナイズから事前学習、指示データセットを使った教師ありファインチューニング(SFT)、推論までを扱います。単一の24GB GPUで、基本的な中国語の質疑応答ができるチャットモデルを作ることを目標としています。

パイプラインではChatGLM2-6B tokenizerを使用します。語彙数は64,793で、uint16で保存できます。Wikipedia-zh、BaiduBaiKe、C4_zh、WuDaoCorporaなどの事前学習コーパスをバイナリファイルに変換します。事前学習はtorchrunを使って複数GPUで実行し、SFTスクリプトでは回答部分だけを損失計算の対象とするプロンプト・回答サンプルを作成します。パラメータ数92M〜218Mの事前学習済みチェックポイントに加え、汎用チャットと医療チャット向けの複数のSFTモデルが公開されています。

リポジトリには、短文のフィルタリングやMinHash・SimHashによる重複排除などのデータクリーニング用スクリプトも含まれています。また、過去のチェックポイントを読み込み、モデルの次元数を自動検出する統合版のinfer.pyも用意されています。報酬モデルと強化学習の段階は計画されていますが、まだ実装されていません。

主な機能

  • 01トークナイザーの設定、事前学習、全パラメータを更新するSFTを1つのリポジトリで扱う。
  • 02単一の24GB GPUで、パラメータ数92M〜218Mの中国語モデルを事前学習する。
  • 03ChatGLM2-6B tokenizerを使い、コーパスをuint16形式のバイナリファイルに前処理する。
  • 04コーパスのクリーニングに使えるMinHashおよびSimHashの重複排除スクリプトを収録。
  • 05事前学習済みおよびSFTのチェックポイントを読み込み、次元数を自動検出するinfer.pyを提供。
  • 06事前学習済みモデルとファインチューニング済みモデルの重みをダウンロード用に公開。

ユースケース

  • 小規模なLLaMA系モデルをゼロから事前学習・ファインチューニングする方法を学ぶ。
  • 限られたGPU環境で、中国語の事前学習コーパスを使った実験を行う。
  • モデルサイズや語彙サイズが事前学習の損失に与える影響を比較する。
  • 既存のSFTデータから、医療QAモデルなどの小規模な特定ドメイン向けチャットモデルを構築する。

クイックスタート

  1. 1

    Baidu Netdiskのリンクからトークン化済みの事前学習コーパスをダウンロードします(約118 GB)。

  2. 2

    ダウンロードしたデータを./dataディレクトリに配置し、データ処理スクリプトを実行します。

    python data_process.py
  3. 3

    READMEの構成例に従い、4 GPUでtorchrunを使って事前学習を実行します。

    torchrun --standalone --nproc_per_node=4 pretrain.py
  4. 4

    SFTのファインチューニングを実行します。

    python sft.py

使う前に知っておきたいこと

  • READMEの事前学習構成例では複数のGPUが必要です。また、作者によると、4台の3090ではモデルとコーパスのサイズに制限があります。
  • 事前学習コーパス全体は約118 GBあり、Baidu Netdiskからダウンロードする必要があります。
  • データとモデルのダウンロード先の大半はBaidu Netdiskのため、中国国外からは利用しにくい場合があります。
  • ドキュメントは主に中国語で、強化学習の段階はまだTODOとされています。

トピック

よくある質問

baby-llama2-chinese とは?
単一の24GB GPUで実行できる、小規模な中国語LLaMA2系モデル向けの事前学習・SFTパイプラインをゼロから構築。 Baby-Llama2-Chineseは、小規模な中国語LLaMA2系言語モデルを一貫して構築する、学習目的のプロジェクトです。コーパスのトークナイズから事前学習、指示データセットを使った教師ありファインチューニング(SFT)、推論までを扱います。単一の24GB GPUで、基本的な中国語の質疑応答ができるチャットモデルを作ることを目標としています。
baby-llama2-chinese は無料で使えますか?ライセンスは?
baby-llama2-chinese は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
baby-llama2-chinese は今もメンテナンスされていますか?
半年以内に更新あり。baby-llama2-chinese の最終コミットは 2026年8月13日 です。
baby-llama2-chinese は何に使えますか?
小規模なLLaMA系モデルをゼロから事前学習・ファインチューニングする方法を学ぶ。 限られたGPU環境で、中国語の事前学習コーパスを使った実験を行う。 モデルサイズや語彙サイズが事前学習の損失に与える影響を比較する。 既存のSFTデータから、医療QAモデルなどの小規模な特定ドメイン向けチャットモデルを構築する。
baby-llama2-chinese のインストール方法は?
Baidu Netdiskのリンクからトークン化済みの事前学習コーパスをダウンロードします(約118 GB)。 ダウンロードしたデータを./dataディレクトリに配置し、データ処理スクリプトを実行します。: python data_process.py READMEの構成例に従い、4 GPUでtorchrunを使って事前学習を実行します。: torchrun --standalone --nproc_per_node=4 pretrain.py SFTのファインチューニングを実行します。: python sft.py
baby-llama2-chinese はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/DLLXW/baby-llama2-chinese

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト