专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
OSC开源社区  ·  金蛇贺岁迎新春,LFOSSA陪您开启2025 ... ·  5 天前  
OSC开源社区  ·  全面进击的JavaScript运行时:Bun ... ·  4 天前  
程序员的那些事  ·  TikTok 停用字节跳动的 CDN ·  3 天前  
程序员的那些事  ·  OpenAI 突发 ... ·  3 天前  
51好读  ›  专栏  ›  OSC开源社区

DeepSeek R1发布:国产AI新高度,附Spring AI扩展集成指南

OSC开源社区  · 公众号  · 程序员  · 2025-01-26 23:33

正文

首先恭喜深度求索推出了全新的推理模型 R1,这是一个国内大模型厂商重要的里程碑。让我们一起来看看这个模型的特点和如何在 Spring AI 中使用它。


DeepSeek R1 的突破性进展

DeepSeek R1 是一个专注于推理能力的大模型,其最大的特点是采用了"思维链"(Chain of Thought)技术。与传统的 GPT-4 和 DeepSeek V3 相比,R1 在以下方面有显著优势:

  1. 推理过程可视化:不同于通用模型的"黑盒"输出,R1 会展示完整的思维推理过程,让用户能够理解模型是如何得出结论的。

  2. 强化学习突破:通过大规模强化学习技术,R1 在仅有少量标注数据的情况下,就达到了与 OpenAI O1 相当的推理能力。这一点尤其难得,因为 O1 被认为是目前最强的推理模型。

  3. 性能对标:在数学、代码和自然语言推理等任务上,R1 已经能够对标 OpenAI O1 正式版。这意味着在复杂推理任务上,R1 可以作为 O1 的有力开源替代。

R1 vs V3:写作能力对比

如下图所示,相比通用型的 DeepSeek V3,R1 在结构化写作和逻辑推理方面表现出明显优势:

开源与生态优势

与 OpenAI O1 和 GPT-4 的封闭特性不同,DeepSeek R1 选择了开源路线:

  1. 完整开源:提供了 660B 参数的完整模型,包括 DeepSeek-R1-Zero 和 DeepSeek-R1
  2. 蒸馏小模型:通过模型蒸馏技术,开源了 6 个小模型,其中 32B 和 70B 版本在多项能力上已经对标 O1-mini
  3. MIT License:采用最宽松的开源协议,允许商用和二次开发,甚至支持通过蒸馏技术训练新模型

Spring AI 集成实践

下面我们通过一个简单的示例来展示如何使用 Spring AI 集成 DeepSeek Reasoner 模型。

添加依赖

首先在 pom.xml 中添加 Spring AI 依赖:

<dependency>
    <groupId>org.springframework.aigroupId>
    <artifactId>spring-ai-openai-spring-boot-starterartifactId>
    <version>1.0.0-M4version>
dependency>

配置文件

在 application 中配置 DeepSeek API 相关信息:

spring.ai.openai.chat.options.model=deepseek-reasoner
spring.ai.openai.base-url=https://api.deepseek.com
spring.ai.openai.api-key=sk-xxx

处理 Temperature 参数问题

需要注意的是,作为专注推理的模型,DeepSeek Reasoner 不支持 temperature 参数(这与 O1 类似,都是为了保证推理结果的稳定性)。但 Spring AI 默认会添加此参数,这会导致如下错误:

Caused by: dev.ai4j.openai4j.OpenAiHttpException: {"error":{"message":"deepseek-reasoner does not support the parameter `temperature`","type":"invalid_request_error","param":null,"code":"invalid_request_error"}}

为了解决这个问题,我们需要添加一个请求拦截器来移除 temperature 参数,实现"越狱效果":

@Configuration
public class AIConfig {

    @Bean
    public RestClientCustomizer restClientCustomizer() {
        return restClientBuilder -> restClientBuilder.requestInterceptor((request, body, execution) -> {
            // 使用 jackson 解析请求体,去掉 temperature 参数
            JSONObject entries = JSONUtil.parseObj(new String(body));
            entries.remove("temperature");
            return execution.execute(request, entries.toString().getBytes(StandardCharsets.UTF_8));
        }).build();
    }
}

创建控制器

创建一个简单 Test 处理 AI 对话请求:

  @Autowired
  private ChatClient chatClient;

  @Test
  void contextLoads() {
      String content = chatClient.prompt("9.11 and 9.8, which is greater?").call().content();
      System.out.println(content);
  }

DeepSeek R1 API 特点

  1. 输入参数

  • max_tokens:最终回答的最大长度(不含思维链输出),默认为 4K,最大为 8K
  • 思维链输出最多可达 32K tokens
  • 不支持 temperature 参数(默认固定为 0.7)
  • 输出字段

    • reasoning_content:思维链内容
    • content:最终回答内容
  • 上下文长度

    • API 最大支持 64K 上下文
    • 输出的 reasoning_content 长度不计入 64K 上下文长度中
  • 定价说明

    • 输入 tokens:1 元/百万 tokens(缓存命中)或 4 元/百万 tokens(缓存未命中)
    • 输出 tokens:16 元/百万 tokens
  • 复杂推理任务

    • R1/O1:通过思维链提供详细推理过程,适合数学证明、逻辑推理
    • GPT-4:通用性强但推理过程不透明
    • V3:更适合创意写作和开放性对话

    定价优势

    相比 Open AI O1,DeepSeek R1 的定价更具竞争力:

    • 输入 tokens:1 元/百万 tokens(缓存命中)或 4 元/百万 tokens(缓存未命中)
    • 输出 tokens:16 元/百万 tokens

    总结

    DeepSeek R1 的发布标志着中国大模型在推理能力上已经达到世界领先水平。通过 Spring AI 的集成,我们可以方便地使用这一强大的推理模型。虽然在参数兼容性上需要一些技术处理,但这丝毫不影响它在复杂推理场景下的出色表现。

    对于需要强大推理能力的应用场景,R1 是一个比 GPT-4 更专业、比 O1 更开放、比 V3 更专注的选择。它的开源特性更是为整个 AI 生态的发展提供了宝贵的资源。




    🔗《2024 中国开源开发者报告》正式发布


    在线阅读:https://talk.gitee.com/report/china-open-source-2024-annual-report.pdf