当前位置: 首页 > news >正文

thinking-intervention开源程序用于DeepSeek-R1等推理模型的思维过程干预,有效控制推理思考过程

一、软件介绍

文末提供程序和源码下载

       thinking-intervention开源程序用于DeepSeek-R1等推理模型的思维过程干预,有效控制推理思考过程。基于论文 《Effectively Controlling Reasoning Models through Thinking Intervention》 实现的思维干预技术,用于引导大语言模型的推理过程。

二、功能特点

  • 直接干预:在提示后直接添加干预文本,引导模型输出
  • 流式生成:支持流式文本生成,实时返回生成内容
  • JSON响应:支持以JSON格式返回响应,便于集成到应用中
  • 简单易用:提供简洁的API,易于在各种应用中集成

 三、思维干预简介

       思维干预是一种在LLM推理过程中插入或修改思考步骤的方法,用于引导模型的推理过程。通过在模型生成思考的关键位置(一般是开头)注入干预文本,可以显著改变模型的输出方向和质量。

四、快速开始

文末下载源码或程序
安装依赖
pip install torch transformers loguru
命令行使用
# 使用干预文本生成JSON格式回答,演示了流式和非流式生成
python thinking_intervention.py --model "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B" --prompt "一句话介绍北京" --intervention "我需要用json格式回答,并且只返回json里面的内容,不要返回任何其他信息。"
Python代码使用
from thinking_intervention import ThinkingIntervention
ti = ThinkingIntervention(
    model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
    system_prompt="你是一个有用的助手。中文回答"
)

# 非流式生成
response = ti.intervene_generate(
    prompt="一句话介绍北京",
    intervention_text="我需要用json格式回答,并且只返回json里面的内容,不要返回任何其他信息。"
)
print(response)

# 流式生成
for chunk in ti.stream_intervene_generate(
    prompt="一句话介绍北京",
    intervention_text="我需要用json格式回答,并且只返回json里面的内容,不要返回任何其他信息。"
):
    print(chunk.decode())
output:   输出:

高级思维干预示例

python demo.py
output:   输出:

五、干预策略示例


以下是一些常用的干预策略:

JSON格式化输出
我需要用json格式回答,并且只返回json里面的内容,不要返回任何其他信息。
指令遵循增强
我需要仔细理解用户的指令,并确保我的回答符合所有要求。
1. 首先,我会分析用户指令中的所有关键要求和约束条件
2. 我会确保我的回答满足所有这些要求,不遗漏任何关键点
3. 如果指令中有矛盾或不明确的地方,我会以用户明确表达的要求为准
4. 我不会添加用户未要求的额外信息或功能
5. 我会特别注意指令中的格式、长度和风格要求
安全内容引导
我必须确保我的回答是安全、合规且有益的。
1. 我会拒绝生成任何可能导致伤害的内容,包括但不限于:违法活动、有害建议、歧视性言论等
2. 对于边界情况,我会倾向于保守和安全的解释
3. 如果需要拒绝请求,我会解释原因并尝试提供合适的替代建议
4. 我会确保我的回答符合道德准则和社会规范
5. 我不会提供可能被误用或滥用的信息或方法
📊 使用场景
Web应用集成:在网站或应用中使用流式生成API
内容格式控制:强制模型输出特定格式(如JSON、Markdown)
安全内容过滤:引导模型生成符合安全标准的内容
特定领域优化:针对数学、编程等领域优化模型输出

六、软件下载

夸克网盘分享

本文信息来源于GitHub作者地址:https://github.com/shibing624/thinking-intervention

http://www.xdnf.cn/news/157087.html

相关文章:

  • RAG技术与应用---0426
  • Qt Charts 绘制曲线图示例
  • 创新项目实训开发日志5
  • 基于STM32单片机PWM讲解(HAL库)
  • HTTP 协议深度解析:从基础到实战的完整指南
  • 运算放大器版图设计与后仿真实战指南
  • 如何在项目中使用双token机制?
  • Python类和对象三(十二)
  • 多线程(1)——认识线程
  • 交换机之配置系统基本信息(Basic Information of the Configuration System for Switches)
  • 架构进阶:105页PPT学习数字化转型企业架构设计手册【附全文阅读】
  • 【Python】使用uv管理python虚拟环境
  • 【计算机网络】信息时代的数字神经系统
  • 新电脑工作环境初始化2025
  • Python基于Django的全国二手房可视化分析系统【附源码】
  • 搭建spark-local模式
  • html css js网页制作成品——HTML+CSS+js美甲店网页设计(5页)附源码
  • 毕业项目-基于深度学习的入侵检测系统
  • 北斗导航 | Transformer增强BiLSTM网络的GNSS伪距观测量误差探测
  • 冯·诺依曼和哈佛架构​​​​两种架构的总线组成及核心特点
  • LiveCharts.WPF图表模块封装
  • asammdf 库的信号处理和数据分析:深入挖掘测量数据
  • 自然语言处理——语言转换
  • Redis常见面试题——List对象
  • 26 Arcgis软件常用工具有哪些
  • JUC多线程:辅助类CountDownLatch、CyclicBarrier、Semaphore实战指南(附保姆级代码)
  • AIGC在自动化测试领域的创新应用:智能生成测试用例与缺陷预测
  • 云原生--核心组件-容器篇-2-认识下Docker(三大核心之镜像,容器,仓库)
  • 前端与Rust后端交互:跨越语言鸿沟 (入门系列三)
  • JS自动化获取网站信息开发说明