LangChain4j 模型参数配置

在大语言模型(LLM)或多模态模型中,模型参数分为两类:

  • 一类是模型训练阶段固化的权重参数(决定模型的基础能力)

  • 另一类是推理阶段可调的生成控制参数(如温度、TopP、TopK)

下面将介绍如何通过 LangChain4j 调整大模型的生成控制参数。

通常,根据你选择的模型和提供商(不同的模型和提供商提供的参数存在差异),你可以调整众多参数,这些参数将定义:

  • 模型的输出:生成内容(文本、图像)中的创造性或确定性程度、生成内容的量等。

  • 连接性:基础 URL、授权密钥、超时设置、重试机制、日志记录等。

通常,你可以在模型提供商的网站上找到所有参数及其含义。例如,OpenAI API 的参数可以在 https://platform.openai.com/docs/api-reference/chat(最新版本,注意需要科学上网才能访问该地址)上找到,其中包括以下选项:

参数

描述

类型

modelName

要使用的模型名称(例如,gpt-4o、gpt-4o-mini 等)

String

temperature

使用什么采样温度,范围在0到2之间。较高的值(如0.8)会使输出更具随机性,而较低的值(如0.2)会使输出更具针对性和确定性。

Double

maxTokens

在聊天补全中可以生成的最大token数量。

Integer

frequencyPenalty

介于-2.0到2.0之间的数字。正值会根据新标记在目前文本中的现有频率对其进行惩罚,从而降低模型逐字重复相同内容的可能性。

Double

...

...

...

有关 OpenAI 大语言模型中的完整参数列表,请参见 OpenAI 语言模型页面。每个模型的完整参数列表和默认值可在单独的模型页面(位于 “集成”、“语言模型” 和 “图像模型” 下方)中找到。

您可以通过两种方式创建 *Model:

  • 一个静态工厂,它只接受必需的参数(如API密钥),而所有其他必需的参数都设置为合理的默认值。

  • 构建者模式:在这里,你可以为每个参数指定值。

模型构建器(Builder)

我们可以使用构建器模式设置模型的所有可用参数,如下所示:

OpenAiChatModel model = OpenAiChatModel.builder()
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .modelName("gpt-4o-mini")
        .temperature(0.3)
        .timeout(ofSeconds(60))
        .logRequests(true)
        .logResponses(true)
        .build();

在 Quarkus 中设置参数

Quarkus 应用程序中的 LangChain4j 参数可以在 application.properties 文件中按如下方式设置:

quarkus.langchain4j.openai.api-key=${OPENAI_API_KEY}
quarkus.langchain4j.openai.chat-model.temperature=0.5
quarkus.langchain4j.openai.timeout=60s

什么是 Quarkus 应用程序?简单来说是基于 Quarkus 框架构建的、专为云原生和容器化环境(尤其是 Kubernetes)优化的 Java 应用,核心特点是 “为 GraalVM 和容器量身打造”,解决了传统 Java 应用启动慢、内存占用高的痛点。

有趣的是,为了调试、调整甚至只是了解所有可用参数,你可以查看 Quarkus 的 DEV UI。在这个仪表盘中,你可以进行更改,这些更改会立即反映在运行中的实例上,并且你的更改会自动移植到代码中。通过使用命令 quarkus dev 运行你的 Quarkus 应用程序,就可以访问 DEV UI,然后你可以在localhost:8080/q/dev-ui(或者你部署应用程序的其他位置)找到它。

image.png

有关 Quarkus 集成的更多信息可以在此处找到。

在 Spring Boot 中设置参数

如果你正在使用我们的 Spring Boot 启动器之一,你可以在 application.properties 文件中按如下方式配置模型参数:

langchain4j.open-ai.chat-model.api-key=${OPENAI_API_KEY}
langchain4j.open-ai.chat-model.model-name=gpt-4-1106-preview
...

或者在 application.yml 文件中这样做:

# langchain4j 配置
langchain4j:
  open-ai:
    chat-model:
      base-url: https://api.xty.app/v1
      # 推荐:将OPEN_API_KEY设置成环境变量, 避免硬编码或随着代码泄露
      # 注意,设置完环境变量记得重启IDEA,不然可能环境变量不会生效
      api-key: ${OPEN_API_KEY}
      model-name: gpt-3.5-turbo
      log-requests: true
      log-responses: true

支持的属性完整列表可在此处找到。

有关 Spring Boot 集成的更多信息可在此处找到。

👉更多 LangChain4j 知识请继续阅读后续章节……

 

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
其他应用
公众号