You need to enable JavaScript to run this app.
AI 数据湖服务

AI 数据湖服务

复制全文
文本生成
深度思考(Deepseek-R1)
复制全文
深度思考(Deepseek-R1)

算子介绍

描述

基于 DeepSeek-R1 模型的深度思考能力
使用具备深度思考能力的 DeepSeek-R1 模型对文本进行分析理解,并返回结构化输出。模型在回答问题前,会进行问题分析与拆解,并基于此生成回答。

核心功能

  • 深度思考机制:模型在回答问题前自动进行问题拆解和逻辑推理,生成思维链(reasoning_content),提升回答的全面性和深入性。
  • 纯文本输入:此算子变体专为文本任务设计,仅支持 texts 列输入。
  • 灵活的思考模式:支持通过 thinking_type 参数控制深度思考模式(enabled / disabled / auto),在回答质量与性能之间灵活权衡。

输入输出规范

  • 输入格式
    • texts (文本):stringlist 类型,作为用户输入的问题或提示词。
  • 输出格式
    • 默认模式:返回 struct 类型,包含:
      • llm_result:模型生成的最终回答。
      • reasoning_content:模型的思维链或推理过程。
    • 诊断与溯源模式
      • 当设置环境变量 LAS_LLM_FINISH_REASON_CHECK=true 时,struct 中额外包含 finish_reason 字段,用于判断输出终止原因(如 stop, length)。
      • 当设置环境变量 LAS_LLM_BOTS_REFERENCES=true 时,struct 中额外包含 references 字段(JSON 字符串),用于携带模型引用的外部知识信息。

版本兼容性说明

该算子(ArkLLMThinkingVision)在 Daft 0.6.5(及其以下版本),使用方式与 0.6.14 版本(及其以上版本)不相同。

  • 在 Daft 0.6.14 及其以上版本中,输入时可以指定 images、texts、 videos 字段,分别对应模型的图片、文本、视频输入,支持同时输入。下面是一个示例:
df = df.with_column(

        "llm_result",

        las_udf(

            ArkLLMThinkingVision,

            construct_args={

                "model": "deepseek-r1",

                "system_text": "你是一个专业的旅行规划助手。",

                "inference_type": "online",

            },

        )(texts=col("query")),

    )
  • 在 Daft 0.6.5 及其以下版本中,输入时只支持传入视频或图片,不支持同时传入视频和图片,通过multimodal_type指定输入类型,multimodal_type支持传入 "video" 和 "image"、"text"。同时也支持通过指定prompt传入文本信息。下面是一个示例:
df = df.with_column(

        "llm_result",

        las_udf(

            ArkLLMThinkingVision,

            construct_args={

                "model": "deepseek-r1",

                "multimodal_type": "text", 

                "inference_type": "online",

            },

        )(col("query")),

    )

Daft 调用

算子参数

输入

输入列名

说明

texts

(必需) 传入用户文本提示词。支持传入单条文本(string)或多条文本(list)。

输出

默认情况下,返回字段类型为 struct,包含以下字段:

  • llm_result: 模型输出的最终回答内容。
  • reasoning_content: 模型输出的思维链内容(推理过程)。

当设置相应环境变量时,返回的 struct 中会额外包含以下字段:

  • finish_reason (当 LAS_LLM_FINISH_REASON_CHECK=true 时):模型输出结束原因,常见取值包括 stop(正常终止)、length(达到长度上限)、content_filter(命中内容过滤策略)。
  • references (当 LAS_LLM_BOTS_REFERENCES=true 时):JSON 字符串形式的引用信息,用于承载模型引用的外部知识。

参数

如参数没有默认值,则为必填参数

参数名称

类型

默认值

描述

model

str

模型名称 支持的模型有: 豆包模型和 DeepSeek 模型。例如:deepseek-r1。

version

str or None

模型版本 输入模型对应的版本信息。例如:250528。

inference_type

str

batch

推理类型,支持在线推理和批量推理。默认值为 batch,即采用批量推理 - online: 采用方舟平台提供的在线推理模块进行推理 - batch:采用方舟平台提供的批量推理模块进行推理

system_text

str or None

系统提示内容 系统提示内容,以 system 角色作为模型的输入,用于统一约束模型行为。

system_image_url

str or None

系统图片 URL 图文混排场景下,输入系统图片 URL,用于指导模型的行为。

system_video_url

str or None

系统视频 URL 图文混排场景下,输入系统视频 URL,用于指导模型的行为。

image_format

str

jpeg

图片编码格式 默认 jpeg。支持格式: JPEG、PNG、WEBP、GIF、BMP、TIFF 等常见格式。详细格式请参考 https://www.volcengine.com/docs/82379/1362931#%E5%9B%BE%E7%89%87%E6%A0%BC%E5%BC%8F%E8%AF%B4%E6%98%8E

image_url_detail

str or None

图片质量 支持手动设置图片的质量,取值范围 high、low、auto。 - high:高细节模式,适用于需要理解图像细节信息的场景,如多个局部信息/特征提取、复杂/丰富细节图像理解等,理解更全面。 - low:低细节模式,适用于简单图像分类/识别、整体内容理解/描述等场景,理解更快速。 - auto:默认模式,不同模型选择的模式略有不同,具体请参见官方文档。

video_format

str

mp4

视频编码格式 配置视频格式,默认是 mp4。支持的视频格式:MP4、AVI、MOV。单视频文件需在 50MB 以内。

video_fps

float or None

视频帧率 取值范围:[0.2, 5]。默认值 1。每秒钟从视频中抽取指定数量的图像。取值越高,对于视频中画面变化理解越精细;取值越低,对于视频中画面变化感知减弱,但是使用的 token 花费少,速度也更快。

source_type

str

url

数据来源类型 指定媒体数据的来源格式,默认 url。可选值: - binary: 原始二进制数据 - base64: Base64 编码数据 - url: 网络资源地址(支持 http/https/tos/s3),其中 tos/s3 会自动转换为预签名 URL

max_tokens

int or None

模型回复最大长度(单位 token),输入输出总长度受模型上下文限制。

max_completion_tokens

int or None

模型生成的 token 数量的上限,包含思维链内容(reasoning_content)与回答内容(content),不包含传入的信息(messages)。 超出后,停止模型输出思维链内容及模型回答,并返回 finish_reason 字段为 length。

stop

list or None

停止词列表 模型遇到 stop 字段所指定的字符串时将停止继续生成,这个字符串本身不会输出。 最多支持 4 个字符串。例如 ["你好", "天气"]。

frequency_penalty

float

0

频率惩罚系数 频率惩罚系数。如果值为正,会根据新 token 在文本中的出现频率对其进行惩罚,从而降低模型逐字重复的可能性。 取值范围 [-2.0, 2.0],默认 0。

presence_penalty

float

0

存在惩罚系数 存在惩罚系数。如果值为正,会根据新 token 到目前为止是否出现在文本中对其进行惩罚,从而增加模型谈论新主题的可能性。 取值范围为 [-2.0, 2.0]。默认值 0。

temperature

float

1

采样温度 采样温度控制了生成文本时对每个候选词的概率分布进行平滑的程度。 - 当取值为 0 时模型仅考虑对数概率最大的一个 token。 - 较高的值(如 0.8)会使输出更加随机,而较低的值(如 0.2)会使输出更加集中确定。 通常建议仅调整 temperature 或 top_p 其中之一,不建议两者都修改。取值范围为 [0, 2],默认值 1。

top_p

float

0.7

核采样概率阈值 核采样概率阈值。模型会考虑概率质量在 top_p 内的 token 结果。 当取值为 0 时模型仅考虑对数概率最大的一个 token。 0.1 意味着只考虑概率质量最高的前 10% 的 token,取值越大生成的随机性越高,取值越低生成的确定性越高。 默认值 0.7。

logit_bias

dict or None

调整指定 token 在模型输出内容中出现的概率,使模型生成的内容更加符合特定的偏好。 logit_bias 字段接受一个 map 值,其中每个键为词表中的 token ID(使用 tokenization 接口获取),每个值为该 token 的偏差值,取值范围为 [-100, 100]。 -1 会减少选择的可能性,1 会增加选择的可能性;-100 会完全禁止选择该 token,100 会导致仅可选择该 token。 该参数的实际效果可能因模型而异。

tools

list or None

工具调用配置 待调用工具的列表,模型返回信息中可包含。当您需要让模型返回待调用工具时,需要配置该结构体。

thinking_type

str or None

思考模式 控制模型是否开启深度思考模式。不配置时,采用深度思考模式,可以手动关闭。可选值: - enabled:开启思考模式,模型一定先思考后回答。 - disabled:关闭思考模式,模型直接回答问题,不会进行思考。 - auto:自动思考模式,模型根据问题自主判断是否需要思考,简单题目直接回答。

llm_config

dict or None

自定义 LLM 配置 除了上述参数,其他参数会透传给模型。上述参数会覆盖 llm_config 中的值。

request_timeout

int

1200

超时时间 单次请求的超时时间(秒)。

max_concurrency

int

100

并发数 每个进程的最大并发数。

调用示例

下面的代码展示了如何使用 ArkLLMThinkingVision.Deepseek-R1 算子进行文本深度思考。

from __future__ import annotations

import os

import daft
from daft import col
from daft.las.functions.ark_llm.ark_llm_thinking_vision import ArkLLMThinkingVision
from daft.las.functions.udf import las_udf

if os.getenv("DAFT_RUNNER", "native") == "ray":
    import logging

    import ray

    def configure_logging():
        logging.basicConfig(
            level=logging.INFO,
            format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
            datefmt="%Y-%m-%d %H:%M:%S.%s".format(),
        )
        logging.getLogger("tracing.span").setLevel(logging.WARNING)
        logging.getLogger("daft_io.stats").setLevel(logging.WARNING)
        logging.getLogger("DaftStatisticsManager").setLevel(logging.WARNING)
        logging.getLogger("DaftFlotillaScheduler").setLevel(logging.WARNING)
        logging.getLogger("DaftFlotillaDispatcher").setLevel(logging.WARNING)

    ray.init(dashboard_host="0.0.0.0", runtime_env={"worker_process_setup_hook": configure_logging})
    daft.context.set_runner_ray()

daft.set_execution_config(min_cpu_per_task=0)

if __name__ == "__main__":
    # 需配置环境变量 LAS_API_KEY : LAS_API_KEY 通过在 LAS 服务页面上创建获取
    queries = {"query": ["帮我规划5月去新疆的10天旅行安排"]}

    df = daft.from_pydict(queries)
    df = df.with_column(
        "llm_result",
        las_udf(
            ArkLLMThinkingVision,
            construct_args={
                "model": "deepseek-r1",
                "system_text": "你是一个专业的旅行规划助手。",
                "inference_type": "online",
            },
        )(texts=col("query")),
    )

    df = df.with_column("reasoning_content", col("llm_result").struct.get("reasoning_content"))
    df = df.with_column("llm_result", col("llm_result").struct.get("llm_result"))
    df.show()

    # 输出 (每次大模型推理结果可能不同)
    # +------------------------------------+--------------------------------------------------+--------------------------------------------------------------------+
    # | query                              | llm_result                                       | reasoning_content                                                  |
    # | Utf8                               | Utf8                                             | Utf8                                                               |
    # +====================================+==================================================+====================================================================+
    # | 帮我规划5月去新疆的10天旅行安排    | 以下是为你规划的5月新疆10天旅行安排,主打北疆... | 好的,用户让我帮忙规划一个5月份去新疆的10天旅行安排。首...         |
    # +------------------------------------+--------------------------------------------------+--------------------------------------------------------------------+
最近更新时间:2026.01.08 19:14:54
这个页面对您有帮助吗?
有用
有用
无用
无用