主要是在和gpt对话过程中的一些内容的总结
一、针对项目
1.为什么这么设计?
这个问题在之前的面试也被问到了,因为我的是多agent就从多个agent职责分离,模型输入的信息更少,减少幻觉发生的可能性、并且因为职责分离,输出的内容也更加少,更少出现其他内容的角度去考量。
2.怎么证明结果是更好的?
首先是实验证明结果更好,在多个模型上做了验证,其次是多个agent的实验符合现实的想象就是类似真实应用场景
3.如果线上效果差怎么解决,如果成本更多了怎么解决?
这里我的是agent所以主要涉及的问题可能就是token多了,延迟多了,这是一个均衡考量的问题,看我们能接受的成本增加和实际增加的收益。
总结一下之前的面试,一定不要立马说不清楚或者对于自己简历上的东西含糊不清,哪怕自己的想法不成熟,很多问题本身没有标准答案,只要合理就比没有思考好的多,而且事实上因为是你的东西,你有自己的思考,只要合理,面试官大概率是不会比你考虑更多的。
比如怎么设计怎么考虑的这个问题要会"讲故事",第一次意识到star有实际意义,最后的结果以及思考过程。
二、针对八股
1.为什么transformer要softmax里除以根号d,为什么需要多头注意力机制?
根号d是因为当q和k很大时,softmax的数据方差可能很大,出现极端数值,注意力分布过于尖锐,梯度变得不稳定。
多头注意力机制不同的头可能学到不同的内容比如语言风格比如语义等等。
KV CACHE显存空间怎么节省/优化?
a.可以使用prefix sharing,多个prompt共有的前缀共享存储
b.量化,减少存储的位数,准确性
c.减少kv head的数量
2.C++的,shared_ptr相关的内容
shared_ptr内部是通过一个管理块实现的,当复制shared_ptr对象时内部的引用计数就加1,释放对象时就减1,引用计数为0时释放空间,但是shared_ptr会有一个循环引用的问题,所以weak_ptr不增加循环引用就可以解决这个问题。
3.RAG的流程
分块、嵌入、检索相似性、拼成完整的prompt
总结:ai infra的内容和agent的内容都很重要,当前以八股为导向的学习主要是为了面试能回答出问题。