关于 AI 开发相关的一些面经。

1.在工作中怎么把 AI 融入自己的工作流程?

从需求阶段、执行阶段、测试阶段以及线上观察四个阶段去考虑。首先在需求阶段,要明确业务的需求,要和 AI 去分析,需要修改的接口,需要完整的数据结构,需要修改的文件。在这个阶段,人的作用主要是确认和选型,比如说选择设计。第二种阶段是执行阶段,执行阶段需要最小范围代码范围的去执行,逐步的去完成。然后在每个范围都要检查 diff,然后查看它是否修改了其他范围的代码,然后查看代码逻辑。第三个阶段就是测试,首先是让 AI 去写正常的测试、异常的测试、边界测试,然后人去做那种线上真实业务场景的测试。第四个阶段就是上线,在上线的过程中要持续观察各种指标。

2.5 种 AI 范式以及它们解决的问题、应用场景。

分别是 Prompt Engineering、 Context Engineering、 Skill Engineering、 Harness Engineering 以及 Loop Engineering。

Prompt Engineering 解决的是模型不知道怎么做问题,它可以提供背景知识。Context Engineering 解决的是模型不知道历史信息,不知道相关数据,它可以提供相关数据。Skill Engineering 解决的是不需要向模型反复叙述工作经验,解决的是需要反复去叙述工作经验的一个场景。Harness Engineering 解决的是模型的可靠性、输出的随机性,去对抗这个随机性。比如说输入输出需要进行安全的校验。如果说工具校验失败,要有参数校验,要有重试。Loop Engineering 解决的是模型无法在错误中获得反馈,它可以通过建立循环的方式持续迭代,直到完成。

3.工具在架构上的实现是什么样的?

首先是 Schema 格式去输出,然后根据这个去匹配。然后其次是有参数校验的功能,参数校验、参数类型校验,如果失败就需要重试。第三点就是工具校验的结果要反馈给模型,判断是否继续执行,或者说直接输出结果。模型在这个过程中只能去调用在注册过程中已经注册的,或者它有权限执行的工具。

4.什么是 Harness Engineering?

如果用一句话来说,就是模型以外的东西都是 Harness Engineering,不管是工具调用、输输出的安全性的检查、参数校验以及 Skill,任何东西都是 Engineering,就是 Harness Engineering。不过如果说它的作用其实就是对抗模型生成过程中的随机性和不确定性,规范模型整个执行过程。

5.Skill 和 MCP 同样都是 10 个,它们谁消耗的 token 更多?

这种问题都要考虑具体的场景,比如说。 skill 和 MCP 它们描述的 TOKEN 是否一样多?如果在这种情况下一样多的话,要考虑它们返回的结果。如果都是直接返回给大模型,如果 MCP 是调用数据库返回海量的数据,那明显数据库中的数据要多得多。Skill 是按需加载去加载内容,不过具体实际使用场景中也可能 MCP 返回的很少,所以说不是一个一句话就能定论的一个事情。

6.怎么对 AI 生成的进行校验?

首先是在执行阶段,不能让它进行大范围的修改,要通过 diff 进行逐块的进行修改,要有代码审查。在提交的时候,在具体执行的时候,执行完之后要进行测试,要有正常测试、异常测试、边界测试,还有自己去测试。在线上过程中要进行观察。不能,我只是把任务交给 AI,让 AI 完成,然后我们就等这个过程中需要人去进行兜底的验证认证。

然后会一点之前很久之前学过的知识,比如说一个 rag 效果不好,怎么去判断?怎么去优化?

首先,优化这种事情一定是要有指标的。所以说要有一个测试集合,这个测试集合可以最初我们自己设计,也可以在线上使用的过程中不断的把不好的测试加进去。

如果 RAG 效果不好,首先得考虑是不是召回效果不好。召回效果不好,首先要考虑采用不同的分块策略,比如说使用重叠。第二种是要考虑嵌入模型是不是选择的不好,是不是得微调或者换模型,或者使用多路召回。第三种是用户的输入过于口语化,这个也就是使用多路召回,或者是使用模型进行重现。

在修改完成之后,要进行对的测试。比如说我们的召回准确率达到一定条件,才代表符合要求。要在线上环境中要不断的去监控,根据召回准确率,比如说转人工率或者点彩率,然后把这些也加入到测试集合中,进行后续的优化。

为什么需要有向量数据库?

因为传统的数据库,不管是关型数据库还是非关型数据库,它都不支持基于向量进行高效的检影检索和它相近的向量。索引数据库都是基于索引去构建的,而非关型数据库只能进行全表的去扫描,所以说它效率比较低。而通过向量数据库可以去高效的实现这种召回,所以说还是有意义的,尤其是在需要 RAG 的情况下。

相关推荐
2603_969694851 小时前
JDBC 基础学习笔记:API 核心原理解析与 CRUD 代码实操
数据库·笔记·mysql·学习方法·database·sql注入
迪康coolmu2 小时前
出差终端数据安全落地实战:基于迪康端点安全一体化管理系统的四道防线实践
运维·服务器·经验分享·笔记·其他·安全·php
无咎.lsy5 小时前
《机器学习》笔记
笔记·机器学习
坤坤子吖7 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
蒸蒸yyyyzwd8 小时前
后端相关学习笔记。
笔记·学习
旖旎夜光9 小时前
【C++ 基础入门】C++ 多态(上):虚函数、重写、override/final 与抽象类
开发语言·c++·笔记·学习
Oll Correct10 小时前
Adobe illustrator 案例十二:视频播放(Media & Video)图标绘制
笔记·ui·adobe·illustrator
橙橙笔记11 小时前
QT的学习第四部分
linux·qt·学习·音视频
叼烟扛炮12 小时前
Linux 学习笔记(五十四):内网穿透实战——用 frp 让外网访问你的私人电脑
linux·服务器·网络·笔记·学习