Granite Decision选项决策：从选项logits取分布，别把聊天生成当单步分类

素材身份：作者原创输入/可编辑参考。目标工具未在本轮执行。
先打开 index.html；input.csv 是原始字段，reference.csv 是验收基准，negative.csv 是故意构造的坏样例。
actual-results.csv 保留未测状态，实际执行后再填写。

前置条件：
使用IBM官方Granite base与对应adapter；只制作输入和校验可以离线免费进行，真正推理需可承担模型内存的本地/自有环境。
Granite Switch当前仓库要求Python3.11+、PyTorch2.11+；vLLM路径还有CUDA/Transformers兼容要求，不承诺Mac可直接跑同一CUDA栈。
官方代码与所列adapter采用Apache2.0；按具体base card核对许可与版本，目标推理未执行，不编造评分和速度。

操作步骤：
1. 定义状态与选项
工单有付款失败、登录失败和咨询时间三种，团队为payments、account和other。
选项描述互斥且保留other，避免强行误分。

2. 核对支持底模
按官方Decision目录选择Granite4.1-8B或30B及同尺寸adapter。
当前没有3B Decision权重，不能用3B当省内存替代而宣称兼容。

3. 准备单token标签
按官方示例把选项映射到A、B、C并验证tokenizer编码。
业务key不必自身是单token，内部标签与业务key映射要保存。

4. 读取选项logits
一次forward取最后位置logits，只对允许标签做softmax。
不要用generate输出一段团队解释再截首词，机制不同。

5. 还原业务选项
将argmax标签映回团队key，同时保留所有选项概率。
概率只在给定选项集合内归一，不能当世界所有可能原因的完整概率。

6. 测试边界输入
对含两类问题的工单记录歧义，不能因永远落在集合内就当准确。
无选项或只有一个选项的choice请求先拦截。

7. 交付决策证据
保存状态、问题、选项、label映射和实际分布。
未推理时分布为空，不沿用官方示例的0.91数字。

验收：
只使用官方支持8B/30B配对。
标签/业务key映射不串。
概率来自实际logits，不是生成文字解析。

官方资料：
https://huggingface.co/ibm-granite/granitelib-core-r1.0/blob/main/decision/README.md

图片身份：assets/ 为内置image_gen生成的原创练习输入缩略版，原始文件保留在网站图片来源地址。可编辑SVG为作者原生排版。
