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_prepSambaFlow SDK 集成到训练-推理工作流中。
社区成员 可访问 Discord 频道和 Hugging Face Space,可直接与模型对话。

如何快速上手(快速入门摘要)

  1. 克隆仓库 并安装所需的 Python 包(pip install datasets 加上 Pipfile 中列出的依赖项)。
  2. 准备数据 – 在 data_prep/ 中运行两个 Python 脚本,生成 oasst1_dolly.jsonlbloom_ock_100K_each.jsonl
  3. 分词 – 将 tokenization_prep/ 中的两个 Bash 脚本指向本地的 SambaNova generative_data_prep 仓库;它们会在 *_out/ 下输出 HDF5 令牌文件。
  4. 训练 – 仓库仅包含 RDU 训练脚本(无法在普通 GPU 上运行)。它们对于理解两阶段微调调度非常有用。
  5. 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}'
    
  6. 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