AI探索指南

  1. Andrej Karpathy 的《Let's reproduce GPT-2 (124M)》视频真是学习 LLM 的至宝,虽然时间有点长(4小时), 但完整跟下来收获巨大,强烈推荐

    Andrej Karpathy 的《Let's reproduce GPT-2 (124M)》视频真是学习 LLM 的至宝,虽然时间有点长(4小时), 但完整跟下来收获巨大,强烈推荐。
    如果你和我一样,一步一步地跟着增加、修改代码,而不是拿着最终结果 repo 里的代码去直接运行的话,有个小坑:见图 1,红框中的代码,在原视频中是在 L500 loss.backward() 之前才调用的,但如果这么做的话,会导致 loss & HellaSwag eval 没有视频里的效果好,训练完成后没能超过 OpenAI GPT-2 124M checkpoint,见图 2。
    需要像红框中代码一样,model.require_backward_grad_sync 放在 forward pass 之前,就能成功复现出来了,参见图 3(所以要注意 repo 里带有“# added after video”的 comment😅)

  2. 今天用了一下 Claude 的 prompt 调试台,真的强烈推荐

    今天用了一下 Claude 的 prompt 调试台,真的强烈推荐。

    写一句话任务,自动生成 prompt
    简单修改 prompt 之后测试了三个 case
    指令遵循非常好
    翻译结果非常好
    要不要例句都能随时提要求
    还可以用表格批量跑结果
    跑完结果还能直接打分评估

    这是把大模型公司的内部的最佳实践工具直接做成了产品

    使用地址:
    https://console.anthropic.com/dashboard

  3. 实现垂类 AI 搜索引擎 SOP👇

    实现垂类 AI 搜索引擎 SOP👇

    # 确定三个核心问题:

    1. source list 从哪些地方检索数据
    2. answer prompt 使用什么提示词模板回复
    3. llm model 使用哪个大语言模型回复

    # 搜索前query rewrite:

    1. 结合历史消息,判断当前 query 是否需要 retrieve
    2. 结合历史消息,做指代消解,把代词替换成具体的名词
    3. 从指代消解后的 query 提取关键词 keywords

    # RAG 流程

    1. 使用query + keywords 作为入参,从source list 获取检索结果(在线API检索+本地index检索),必要时可对 query + keywords 进行翻译,使用不同语言进行多轮检索
    2. 检索结果聚合重排reranking
    3. 获取重排后 top_k 条内容详情
    4. 使用回复提示词 + 检索内容 + 历史消息作为 context,带上最新 query 请求 LLM 回复

    # 主要工程量

    1. 对内容源 build index

    对于没有标准API的source,需要对source站点的数据构建索引。增量构建使用source的搜索框,存量构建使用搜索引擎网页快照,很难拿到某个 source 的全量数据

    2. 更新 source 权重

    系统预置权重 + 用户点击更新 source 权重,多信息源检索时依据 source 权重返回结果数量和初始排序

    3. 多信息源重排

    需要一个高效/快速的 reranking 框架,比如 FlashRank

    4. 构建 chunk 内容池

    对检索到的内容进行 chunk 拆分,存储向量数据库,挂载上下文请求 LLM 回答时,相似度匹配部分内容,避免暴力传输

    5. 构建关键词库

    定期分析历史 query,提取热搜关键词,构建关键词库。命中关键词库的 query,retrieve 环节走缓存

    ------

    AI 搜索引擎,做一个容易,做好太难,细节太多,需要大量的雕花工作。

    欢迎补充。