大型语言模型 (LLM) 与 LM Studio 交互笔记

260 阅读2分钟

大型语言模型 (LLM) 与 LM Studio 交互笔记

1. 核心概念

  • 大型语言模型 (LLM):

  • 经过大量文本数据训练的深度学习模型。

  • 能够理解和生成自然语言文本。

  • 常见任务:文本生成、问答、翻译、摘要等。

  • LM Studio:

  • 用于在本地运行和与 LLM 交互的工具。

  • 提供用户友好的界面和 API。

  • 支持多种不同的 LLM 模型。

  • Token:

  • LLM 处理文本的基本单位。

  • 可以是单词、子词(subword)或字符,取决于模型的分词方式。

  • 上下文长度 (Context Length):

  • LLM 能够处理的最大 token 数量(包括输入 prompt 和生成的 completion)。

  • 是模型固有的属性,在训练时确定。

  • 不同的 LLM 模型有不同的上下文长度限制。

  • Prompt:

  • 提供给 LLM 的输入文本,用于引导 LLM 生成回复。

  • 可以包含指令、问题、背景信息等。

  • Completion:

  • LLM 根据 prompt 生成的回复文本。

2. 消息类型

  • System 消息:

  • 设定 LLM 的角色、行为、风格或任务。

  • 影响整个对话。

  • 通常位于消息列表的开头。

  • User 消息:

  • 代表用户的输入或问题。

  • 影响 LLM 的当前回复。

  • 与 Assistant 消息(LLM 的回复)交替出现。

3. API 调用与参数

  • 与 LM Studio 交互的方式:

  • OpenAI Python 库 (推荐):简洁易用。

  • requests 库:更底层的控制。

  • 关键 API 参数:

  • messages: 构建对话消息列表(包含 System 消息和 User 消息)。

  • max_tokens: 限制 LLM 生成 的 token 数量(不限制 prompt 长度)。

  • stream: 控制是否使用流式响应(True 为流式,False 为非流式)。

  • n_ctx (某些后端支持): 限制本次会话中使用的上下文窗口大小(不能超过模型固有长度)

  • API 响应:

  • usage: 字段提供 token 消耗信息:

  • prompt_tokens: prompt 部分占用的 token 数量。

  • completion_tokens: LLM 生成的回复占用的 token 数量。

  • total_tokens: 总 token 消耗量 (prompt_tokens + completion_tokens)。

4. 上下文长度管理

  • 不能直接设置: 无法通过 API 调用更改模型的上下文长度。

  • “管理”方法:

  • 选择合适的模型: 根据任务需求选择具有足够上下文长度的模型。

  • 控制输入长度: 确保 prompt_tokens + 预期的 completion_tokens 不超过模型的上下文长度限制。

  • 监控 usage 信息: 密切关注 total_tokens,避免超出限制。

  • n_ctx 参数(如果支持): 限制本次会话中使用的上下文窗口大小(不能超过模型固有长度)。

  • 长文本处理策略:

  • 文本分割。

  • 文本摘要。

  • 检索增强生成 (RAG)。