02打卡

发布时间:2026/5/19 14:23:18

最新修改时间:暂无更新时间

16 min read

目录

前言

[创建AI + Web3 学习仓库](#创建AI + Web3 学习仓库)

git两种工作流

先有本地项目

先有远程仓库

[LLM 基础概念](#LLM 基础概念)

​ [🎯 核心问题](#🎯 核心问题)

​ [✅ 今天学到的关键理解](#✅ 今天学到的关键理解)

​ [1. LLM 的运作机制](#1. LLM 的运作机制)

​ [2. Control Layers 层级体系](#2. Control Layers 层级体系)

​ [3. Tokenizer 分词机制](#3. Tokenizer 分词机制)

​ [4. Multimodal 现状](#4. Multimodal 现状)

​ [5. Hallucination 幻觉的本质](#5. Hallucination 幻觉的本质)

​ [6. Schema Validation 校验机制](#6. Schema Validation 校验机制)

初学问题

​ [learning agent答案](#learning agent答案)

第一个问题

第二个问题

第三个问题

第四个问题

第五个问题

第六个问题

额外提升

结语

前言

经过第一天的learning agent部署,以及当晚的co-learning,我了解到许多新颖的知识,并且我认识到我所部署的hermes只是初级阶段,还能进一步提升,我决心加快基础学习,尽快享受其高阶玩法!

今天主要是根据learning agent提示的学习仓库创建(锻炼git的操作流程)、并加以整理,以及AI基础的LLM和Prompt

创建AI + Web3 学习仓库

此步骤不再过多赘述,只记录几点新知识:

  1. License和.gitignore部分的作用
  2. 以及github远程仓库的操作能由终端直接完全代替(这是高阶玩法)

git两种工作流

理解并掌握这两种方式,几乎可以应对大部分场景了!!!

先有本地项目

创建项目文件夹

  1. 初始化仓库 git init
  2. 连接远程仓库 git remote add origin <repository_url>
  3. 切换并命名分支 git branch -M main
  4. 添加提交文件 git add .(作用只限于当前目录,这个可以涵盖整个仓库的改变git add -A)
  5. 提交说明 git commit -m ‘Your commit message here!’
  6. 首次推送 git push -u origin main(后面只需要 git push)

先有远程仓库

流程:远程 → 下载到本地 → 修改 → 推送

git clone 仓库地址
# 后续就是同样的操作了
git add .
git commit -m "说明"
git push

LLM 基础概念

LLM = Large Language Model (大语言模型)

🎯 核心问题

核心问题、今天学到的关键理解是由我的learning agent总结的(非常全面)

LLM 的本质是什么?它能做什么?不能做什么?

✅ 今天学到的关键理解

1. LLM 的运作机制
2. Control Layers 层级体系
3. Tokenizer 分词机制
4. Multimodal 现状
5. Hallucination 幻觉的本质
6. Schema Validation 校验机制

初学问题是第一遍都文档学习所疑惑的地方;

初学问题

我认为应该记忆的内容,不过我目前大脑比较混乱疲惫,故留下后续记忆。我觉得LLM的概念非常好,但我更好奇是如何实现的,把超多的文本、代码等数据和多模态信号压进概率模型,听起来像是把一个个相似的东西在一条线上放置,看谁离这条线近。我也不确定我的理解对不对。

  1. 模型负责理解用户意图,还是生成内容?它只是在回答问题,还是能调用工具?它的错误会停留在文本里,还是会进入真实工作流?
  2. 把输出变成可检查对象
  3. 把不确定性前移暴露中:让系统显式降级
  4. 什么是tokenizer(分词器)?
  5. 代码、JSON、长标识符、表格和混合语言文本经常比普通段落更吃 token是因为模型参数问题吗?
  6. Multimodal其实还是依据文本内容进行分析的吗?(各种形式的输入)

learning agent答案

看到其回答,我是彻底接受了LLM是概率模型,不是事实!!!

第一个问题

模型负责理解用户意图,还是生成内容?它只是在回答问题,还是能调用工具?它的错误会停留在文本里,还是会进入真实工作流?

我一开始有疑惑,是因为我停留在LLM是概率模型的问题中,并未认识到有数据层、编排层、执行层、安全层。

总之一个公式解释LLM的本质:

给定已有序列(上下文窗口里的所有 Token) → 预测下一个最可能的 Token → 把新 Token 拼到序列末尾 → 重复直到结束

Hermes提到:其既不”理解意图”,也不”生成内容”——它只是在做概率性的序列续写。

其中让我真的接受其是概率模型的是它给出的一个例子:

打个比方:
你以为它在:
  "用户想了解 Token → 我理解了这个需求 → 我解释 Token"

实际上它在:
  "用户说了'什么是Token' → 我最常接的模式是解释 Token 的文章开头 → 
   输出 'Token是模型的最小文本单位...' → 接下来最可能接什么..."

最常接的模式???什么是最常接? 不应该是最直接嘛!!!


而且对于真实工作流,我联想到day 1 的co-learning中老师提到的一些安全问题,恰如模型调用工具时输出的参数错误,未成功校验便被当作参数传入工具,传回的数据必然不可信,再进入真实工作流必然会出现安全问题。

第二个问题

把输出变成可检查对象

首先我对于可检查/校验是十分清楚的,我疑惑的地方是:模型输出如何去校验?像JS中数据类型给schema校验?

Hermes给出的解释是举例:

不好的用法:               好的用法:
"帮我解释Token"           "帮我解释 Token,输出 JSON 格式:
→ 自然语言段落展示          {concept: "...", mechanism: "...", 
  ✓ 但不可检查               analogy: "..."}
                            → 可以程序化检查每个字段是否合理"

确实,按照概率模型来讲没办法保真,只是靠近更接近,输出又不是一对一定义格式的让你校验!

疑问终结:说对了,还真就是1v1定义格式校验,只不过分的更大,规格更多。不过我对此保持观望,因为模型最后的校验必须包含很多安全问题。

第三个问题

把不确定性前移暴露中:让系统显式降级

这个问题能解决,只不过有一些特殊的疑惑,先看Hermes给出的答案:

# 伪代码
def agent_respond(query):
    confidence = model.evaluate_confidence(query)
    if confidence > 0.9:
        return model.generate_answer(query)
    elif confidence > 0.5:
        return model.generate_answer(query) + "\n⚠️ 建议验证以下来源..."
    else:
        return "我不确定这个问题,建议你参考官方文档..."

首先我能理解,就是看概率模型参数了,概率高就是你了,概率低自然而然是可信度更低的数据,直接强制输出后三行类似即可!

但是我的特殊疑惑:

  1. 如果没有显式降级,为什么模型会给出虚假、甚至欺骗的回答(或者说输出参数)?

​ 疑问终结:模型问题,因为用户输入必须要回应,如果没有相关的数据,也会按照最接近的数据输出,导 致出现错误,犯错多了,总结最后发现是其出现类似幻觉/欺骗,并不是真的幻觉/欺骗!

  1. 难道模型参数概率低到一定程度必然会出现这种情况?(想必是设定了)

​ 疑问终结:概率模型,要深刻理解其本质(输出必须相关,没有最最低,只有最高,即便是0.0001%)

第四个问题

什么是tokenizer(分词器)?(主要是为了理解什么是token)

显而易见,就是把输入参数分开。

Hermes的答案:

原始文本:"我是一个AI助手"

Tokenizer(分词器)

Token序列:[] [] [] [] [AI] [] []
           (3 tokens)      (2 tokens)   (2 tokens)

每个 Token 对应一个数字 ID

模型看到的是:[1123] [4567] [8901] [2345] [6789] [9876] [5432]

这一点我能理解,但是最后一行,如何排列?还是一定参数模型先排列吗?从第一个输入参数到最后一个输入参数,依次分配数字ID吗?

疑问终结:不是如何排列、也不是依次分配ID;要明白其是概率模型,即已经设定好了 “词表” ,输入数据会被tokenizer切分后自动按照对应 “词表” 相应数字ID,然后再去进行选择!

第五个问题

代码、JSON、长标识符、表格和混合语言文本经常比普通段落更吃 token是因为模型参数问题吗?

Hermes答案:

因为代码里有大量的标识符、特殊符号、空格缩进,Tokenizer 没有为这些优化,所以它们比自然语言”密”很多。

模型上下文窗口 = 128K tokens
自然语言 = 可以放 ~10 万字的书
代码 = 可能只能放几千行
混合语言 = 中间地带

所以这就是为什么大家疯狂使用编程模型消耗token大的原因了(0.0怪不得要花这么多钱才能体会更高的代码体验)

依旧又产生新的疑问:为什么不对编程方面进行调整,譬如说:自然语言先行处理,输出的参数直接校验转换提供给实际编程模型,再对编程模型进行tokenizer优化,那岂不是0.0(而且开源代码这么多,你懂的(~ ̄▽ ̄)~)

疑惑终结:

第六个问题

Multimodal其实还是依据文本内容进行分析的吗?(各种形式的输入)

这个问题我彻底明白了

无论是文本还是图片、视频等,从自然语言、代码等到图片视频类的编码,不再是单一的参数比对输出。

Qwen3.5 / GPT-4o 等模型:
  ┌──────────────────────┐
  │ 文本 Token → 统一     │
  │ 图片 Token → 编码空间 │
  │ 语音 Token →          │
  └──────────────────────┘

     放在一起做自回归预测

模型真正在看"像素"和"音波"了

额外提升

这里给出一个额外问题和答案:

问:模型怎么实现的?

答:(新词:表征学习)

是一个几百到几千维的"超大空间"

每个概念(Token、词、句子)在这个空间里有一个位置

相似的概念距离近:  "猫" 🐱 ──── "狗" 🐶 (近)
不相似的概念距离远:  "猫" ────────────────── "量子力学" (远)

"国王 - 男人 + 女人 ≈ 女王" 这个经典例子就是空间向量运算

结语

LLM 生成的是概率上合理的输出,而不是天然可信的事实。(这句话真棒!!!)

📝 LLM收获汇总

  1. ✅ 模型不关心真假,只是预测下一个 token
  2. ✅ 显式降级是为了让模型承认”我不知道”而不是瞎编
  3. ✅ Tokenizer 是预训练的词表,不是按输入顺序编号
  4. ✅ 代码吃 token 多是因为没有为代码优化的 Tokenizer
  5. ✅ 解决方案已经存在(Code-specific Tokenizer、Plan-Execute 架构)
  6. ✅ 校验靠 Schema(JSON Schema、Pydantic 等)