sambanova/bloomchat
This repo contains the data preparation, tokenization, training and inference code for BLOOMChat. BLOOMChat is a 176 billion parameter multilingual chat model based on BLOOM.
BLOOMChat とは何か?
BLOOMChat は、オープンソースの BLOOM-176B 言語モデルを基盤にした、1760億パラメータの多言語対応チャットモデルです。SambaNovaは、指示に従うデータ(OpenChatKit OIG、Dolly 2.0、OpenAssistant OASST1)でBLOOMをファインチューニングし、質問に答える、テキストを生成する、多数の言語を扱える会話アシスタントとしての振る舞いを実現しました。
リポジトリに含まれるもの
| 分野 | リポジトリに含まれるもの |
|---|---|
| データ準備 | 3つのソースデータセットをさらにクリーニング・統合し、トークナイゼーション用に準備された2つのJSONLファイルを生成するスクリプト(data_prep/) |
| トークナイゼーション | SambaNovaの generative_data_prep ユーティリティを呼び出すBashラッパー(tokenization_prep/)で、JSONLファイルをHDF5トークンストリームおよび分割ファイルに変換 |
| トレーニング | SambaNova社内再構成可能データフロー・ユニット(RDU) で使用されたリファレンススクリプト(training/)。ハイパーパラメータと2段階のファインチューニングプロセス(最初にOIG、次にDolly 2.0 + OASST1)を示しています |
| 推論(GPU) | Hugging Faceの transformers-bloom-inference リポジトリを使用して、標準GPU上でリリースされたモデルを実行する手順ガイド。bf16およびint8精度用のコード修正と例示コマンドラインが含まれます |
| 推論(RDU) | SambaNovaのRDU上でモデルを実行するためのコードを含む rdu_quick_start/ フォルダへのリンク |
| メタデータ | Hugging Face上のモデルへのリンク、ブログ記事、Discordコミュニティ、引用情報ブロック |
だれが使うべきか?
| ターゲット | なぜ重要か |
|---|---|
| 研究者 | 超大規模な多言語LLMの再現可能なパイプライン(データ準備 → トークナイゼーション → トレーニング)と、RDUで使用された正確なハイパーパラメータを提供 |
| 開発者 | GPU(transformersを使用)およびSambaNovaハードウェア用の即時実行可能な推論スクリプトを提供。推論設定(temperature 0.8、top-p 0.9など)も提案 |
| MLエンジニア | SambaNovaの generative_data_prep および SambaFlow SDKをトレーニング-推論ワークフローに統合する方法を示す |
| コミュニティメンバー | DiscordチャンネルとHugging Face Spaceにアクセス可能。直接モデルと会話できる |
すぐに始める(クイックスタート要約)
- リポジトリをクローンし、必要なPythonパッケージをインストール(
pip install datasetsおよびPipfileに記載された依存関係) - データ準備 –
data_prep/内の2つのPythonスクリプトを実行し、oasst1_dolly.jsonlとbloom_ock_100K_each.jsonlを生成 - トークナイゼーション –
tokenization_prep/内の2つのBashスクリプトを、SambaNovaのgenerative_data_prepリポジトリのローカルチェックアウトに指向。*_out/下にHDF5トークンファイルが出力される - トレーニング – リポジトリにはRDU用のトレーニングスクリプトのみが含まれる(通常のGPUでは実行不可)。2段階ファインチューニングスケジュールの理解に役立つ
- GPU推論 –
huggingface/transformers-bloom-inferenceをクローンし、READMEに示された2つの小さな差分を適用。その後、以下の例示コマンドのいずれかを実行:python -m inference_server.cli \ --model_name sambanovasystems/BLOOMChat-176B-v1 \ --model_class AutoModelForCausalLM \ --dtype bf16 \ --deployment_framework hf_accelerate \ --generate_kwargs '{"do_sample": true, "temperature": 0.8, "repetition_penalty": 1.2, "top_p": 0.9, "max_new_tokens": 512}' - RDU推論 –
rdu_quick_start/の手順に従い、SambaFlow SDKを使用(SambaNova RDUにアクセスできる場合)
BLOOMChatの特徴
- 大規模性と多言語対応 – 1760億パラメータ、多数の言語で生成可能
- 指示ファインチューニング済み – テキストの連続生成ではなく、チャット形式の対話に適応済み
- ハードウェアに最適化 – トレーニングはSambaNovaの独自RDUアーキテクチャを活用。その環境での正確なワークフローがドキュメント化済み
- オープンソースの透明性 – データ前処理、トークナイゼーション、(一部の)トレーニングスクリプトが公開。最終モデルの重みはHugging Faceにホスト
次に何をすべきか?
- READMEにリンクされたHugging Face Spaceでモデルと遊んでみる
- サポートや更新情報を得るためにDiscordに参加
- データを調査 – 生成されたJSONLファイルとトークナイズされたHDF5ディレクトリを確認し、指示データの構造を理解
- パイプラインをカスタマイズ – ソースデータセットを独自ドメインデータに置き換え、同じ手順でRDUまたは(修正後)GPUクラスタ上で大規模LLMをファインチューニング可能
- 上記のすべての記述はリポジトリのREADMEから直接引用。追加機能は推測されていません。*
関連
- Dispatch
- プロジェクト
- Dispatch
- プロジェクト
- Dispatch