wisent-ai/ster

解决的问题

Ster 是一个专为控制和修改开放权重语言模型行为而设计的原生 Rust 工具包。它解决了在无需大量计算资源或复杂分布式训练设置的情况下,精确地将模型输出引导至特定特征(如真实性)或微调其权重以提升性能的问题。

工作原理

Ster 使用基于 Candle 运行时构建的自定义 Llama 解码器循环,使其能够与模型的内部隐藏状态进行交互。它通过两种主要机制发挥作用:

  1. 激活引导:从 Transformer 层读取隐藏状态,并从对比示例(正负文本对)中学习“方向”。这些方向随后被添加到生成过程中的残差流中,以将模型推向期望的特征。
  2. 微调:使用各种目标函数训练低秩适配器(LoRA),包括监督微调、直接偏好优化(DPO)和组相对策略优化(GRPO)。它还可以训练 Bradley-Terry 奖励模型。

适用人群

旨在为处理开放权重模型(特别是 Llama 系列)并希望执行表示读取、激活引导和高效本地微调的开发人员和研究人员提供服务。

亮点

  • 原生 Rust 实现:基于 Candle 构建,支持高性能以及 CPU、Metal 和 CUDA。
  • 对比学习:用于合成、检查和评估用于引导的对比对集合的工具。
  • 灵活调优:支持用于本地训练的 LoRA、DPO、IPO 和 GRPO 目标函数。
  • cedores:能够将适配器合并到基础权重中,或在生成过程中将其作为冻结工件应用。
  • 集成工作流:一个完整的 CLI,用于训练方向、评估向量和运行引导生成。

相关

  • 项目
  • Dispatch
  • 项目
  • 项目
  • 项目