1. 核心概览 (Core Overview)
作为 Java 架构师,你习惯了 Objects、Threads 和 Locks。但在 LLM 的世界里,一切皆为概率。AI 并不理解“代码”或“逻辑”,它理解的是海量文本中词语出现的统计分布。学习 AI 的第一步,是理解数据如何变成“向量”,以及模型如何通过“注意力机制”在海量数据中建立联系。
2. 分段拆解 (Breakdown)
A. 数据单位:Token 与 Embedding
Token: 不是字符,也不是单词,而是语义片段。对于 Java 开发者,可以类比为字节码(Bytecode),它是模型处理的最小单元。
Embedding(嵌入): 这是架构师最需要理解的概念。它将 Token 转换为高维向量(通常是几千维的浮点数数组)。
本质: 语义相近的词,在向量空间中的空间距离更近。这解决了传统搜索“关键词匹配”的痛点,实现了“语义匹配”。
B. 运行配置:Temperature (温度) 与 Top-P
Temperature: 控制输出的“发散程度”。
:模型总是选概率最高的词(确定性高,适合写代码)。
:模型会尝试低概率词(随机性高,适合创意)。
架构思考: 在生产环境中,对于需要严谨格式(如 JSON)的任务,务必将
设为 0。
C. 内存限制:Context Window (上下文窗口)
内存模型: 模型是“无状态”的(Stateless)。每一次对话,你都必须把之前的对话历史重新传给它。
瓶颈: 窗口大小(如 128k)就像 JVM 的堆内存。如果超出,模型会“遗忘”之前的信息。在后续学习 Agent 时,我们将学习如何通过 RAG(检索增强生成)来突破这个“内存限制”。
3. 最终总结 (Summary)
第一课的核心在于:接受不确定性。LLM 是一个在海量数据中寻找“下一个字出现概率”的黑盒。我们作为架构师的任务,就是通过精准的 Prompt(指令)和参数配置(如 Temperature),将这种概率性转化为业务所需的确定性输出。
测验 (Assessment)
为了验证第一天的学习效果,请回答以下三个架构思维问题:
场景: 你需要 AI 为你重构一段复杂的 Java 业务逻辑。你会将 Temperature 设为 0 还是 0.8?为什么?
概念: 既然模型是无状态的(Stateless),为什么我们在网页端聊天时感觉它记得我说过的话?在后端 API 调用中,这需要开发者做什么?
计算: 如果一个模型支持 8k 的上下文,而你的 Java 源代码文件有 10k Token,直接把代码塞进 Prompt 会发生什么?