大型语言模型 (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)。