大模型文本生成专用处理器(豆包/DeepSeek)
输入列名 | 说明 |
|---|---|
raw_text | 包含待处理文本数据。类型为 str |
(默认情况下)当环境变量LAS_LLM_FINISH_REASON_CHECK=false时,返回字段类型为str。
当环境变量LAS_LLM_FINISH_REASON_CHECK=true时,返回字段类型为struct,包含以下字段:
如参数没有默认值,则为必填参数
参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
model | str | 模型名称 支持的模型有:豆包模型和DeepSeek模型。 示例 doubao-1.5-lite-32k | |
version | str or None | 模型版本 输入模型对应的版本信息。示例 250115 | |
inference_type | str | batch | 推理类型,支持在线推理和批量推理。默认值为batch,即采用批量推理 - online: 采用方舟平台提供的在线推理模块进行推理 - batch:采用方舟平台提供的批量推理模块进行推理 |
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,取值越大生成的随机性越高,取值越低 生成的确定性越高。通常建议仅调整 temperature 或 top_p 其中之一,不建议两者都修改。 默认值 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 | 待调用工具的列表,模型返回信息中可包含。当您需要让模型返回待调用工具时,需要配置该结构体。 | |
llm_config | dict or None | 自定义LLM配置 除了上述参数,其他参数会透传给模型。上述参数会覆盖llm_config中的值 | |
request_timeout | int | 1200 | 超时时间 单次请求的超时时间(秒) |
max_concurrency | int | 100 | 并发数 每个进程的最大并发数 |
system_content | str or None | 系统提示内容 系统提示内容,以system角色作为模型的输入 | |
prompt | str or None | 用户提示词, 用户提示词,用于指导模型的行为。配置该字段时,会和输入的文本拼接,以user角色方式输入给模型。同时,该字段也可以配置为{query},此时,输入的文本会替换掉该字段. |
下面的代码展示了如何使用 daft访问火山方舟 文本生成 模型进行批量推理。请注意每次大模型推理结果可能不同。
from __future__ import annotations import os import daft from daft import col from daft.las.functions.ark_llm.ark_llm_text_generate import ArkLLMTextGenerate 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": [ "中国的首都在哪里", "十字花科植物有哪些", ] } ds = daft.from_pydict(queries) ds = ds.with_column( "llm_result", las_udf( ArkLLMTextGenerate, construct_args={ "model": "doubao-lite-32k", "inference_type": "online", }, )(col("query")), ) ds.show() # 输出(每次大模型推理结果可能不同) # ╭────────────────────┬───────────────────────────────────────╮ # │ query ┆ llm_result │ # │ --- ┆ --- │ # │ Utf8 ┆ Utf8 │ # ╞════════════════════╪═══════════════════════════════════════╡ # │ 中国的首都在哪里 ┆ 中国的首都是北京。 │ # │ ┆ │ # │ ┆ 北京是中国的政治中心、文化中心、国际… │ # ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ # │ 十字花科植物有哪些 ┆ 十字花科植物种类繁多,常见的有: │ # │ ┆ 1. **蔬菜类** │ # │ ┆ … │ # ╰────────────────────┴───────────────────────────────────────╯