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 進行微調,使其行為類似於能回答問題、生成文字並處理多種語言的對話助理。
倉庫包含哪些內容?
| 領域 | 倉庫中可找到的內容 |
|---|---|
| 資料準備 | data_prep/ 中的腳本,進一步清理並合併三個來源資料集,生成兩個可用於分詞的 JSONL 檔案。 |
| 分詞 | tokenization_prep/ 中的 Bash 包裝器,呼叫 SambaNova 的 generative_data_prep 工具,將 JSONL 檔案轉換為 HDF5 令牌串流與分割檔案。 |
| 訓練 | training/ 中的參考腳本,用於 SambaNova 內部的 可重構資料流單元(RDU)。展示了超參數與兩階段微調流程(先在 OIG 上,再在 Dolly 2.0 + OASST1 上)。 |
| 推論(GPU) | 使用 Hugging Face 的 transformers-bloom-inference 倉庫在標準 GPU 上執行發布模型的逐步指南,包含程式碼的小修補與 bf16 與 int8 精度的範例指令。 |
| 推論(RDU) | 指向 rdu_quick_start/ 資料夾的連結,其中包含透過 SambaFlow SDK 在 SambaNova 的 RDU 上執行模型的程式碼。 |
| 元資料 | 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/中執行兩個 Python 腳本,產生oasst1_dolly.jsonl與bloom_ock_100K_each.jsonl。 - 分詞 – 將
tokenization_prep/中的兩個 Bash 腳本指向本地的 SambaNovagenerative_data_prep倉庫;它們會在*_out/下輸出 HDF5 令牌檔案。 - 訓練 – 倉庫僅包含 RDU 訓練腳本(無法在一般 GPU 上執行)。它們對於理解兩階段微調排程非常有用。
- GPU 推論 – 克隆
huggingface/transformers-bloom-inference,套用 README 中顯示的兩個小修補,然後執行其中一個範例指令,例如: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/的說明操作,如有 SambaNova RDU 存取權限,請使用 SambaFlow SDK。
BLOOMChat 的獨特之處
- 規模與多語系性 – 1760 億參數,支援多種語言生成。
- 指令微調 – 模型已針對聊天式互動進行優化,而非原始文字續寫。
- 硬體感知 – 訓練利用了 SambaNova 的專有 RDU 架構;倉庫記錄了該環境下的完整工作流程。
- 開源透明 – 所有資料預處理、分詞與(部分)訓練腳本均公開,最終模型權重託管於 Hugging Face 上。
接下來該做什麼?
- 在 README 中連結的 Hugging Face Space 上與模型互動。
- 加入 Discord 社群以取得支援與更新。
- 探索資料 – 檢查準備好的 JSONL 檔案與分詞後的 HDF5 目錄,以理解指令資料。
- 適配該流程 – 將來源資料集替換為自己的領域資料,按相同步驟在 RDU 上或經修改後在 GPU 集群上微調大型 LLM。
- 上述所有陳述均直接取自倉庫的 README;未推斷任何額外功能。*
相關
- Dispatch
- 專案
- Dispatch
- 專案
- Dispatch