李宏毅-Generative AI-第二课
首先要理解 input,LLM,output 这三者的关系:
input 是 x
LLM 是 f()
output 是 f(x)
那么影响 output 的关键就在于 input(context)和 LLM (参数)
context就是指在上下文窗口中放 又少又正确的数据
参数 就是指 把LLM 训练好
context engineering vs prompt engineering
两个概念比较相似,可理解为换种说法
当然我们要知晓,我们是可以通过在context窗口中放置更多有效信息,来让LLM输出更好
举个例子,让LLM翻译一个ta不知晓的语言 & 网络上也搜索不到,但是此时我们在context窗口中放置这个语言的词典和文章,LLM就可以有一个很好的翻译输出,甚至非常逼近一个学会这门语言的人的翻译能力
所以,llm是可以在context中进行learnning的,但不是train,分清概念,这是暂时的
tool use:
在 context 的 sys_prompt 中写好 LLM可以调用的 tool列表,以及在哪些情况调用,选择调用 tool 时,LLM 输出相应的 特殊字符,用代码去识别字符,代码再去调用相关的函数or 服务
而且一次性写在context中的tool数量不要太多,几个就够了,如果我们手里有很多tool,就意味着我们需要在每次任务去帮 LLM做一次tool挑选
LLM 的深度思考也是放在context中完成的
Agent:
以及说context engineering这个概念在 Agent 开发中尤其重要,因为任务如果复杂,可能会有很多上下文记忆,但是context中的token是有数量限制的,而且context 太多太杂,影响 LLM输出质量