20250130 SingleAgent - LlamaIndex笔记
基于baseembeding模型,训练1个新的adapterembeding(本质上是加深了embeding网络的层数,甚至可以customize自定义更复杂的结构?基于LLM模型(任意),训练出1个新的微调后的FT_LLM。和(3)一样,llamaindex封装了openai的FT接口,数据上传,opanai云服务完成训练。用于从更强的模型(已学会相关知识/模式/风格等)“蒸馏”知识到相对小一些
LlamaIndex MultiModal RAG
Multi-Modal Applications - LlamaIndex
1.用clip图+文转vector 存到并检索向量数据库(dqrant/chroma)
能力:图/文 查 图/文;
图CLIP embedding + 文:默认?(gpt ada embeding ?)
2. 直接使用多模态模型(完整RAG)
图/文 查 图/文;+ 多模型大模型合成;
默认queryengine:图+文转vector 存到并检索向量数据库(dqrant/chroma);大模型合成结果
GPT: CLIP embedding + gpt ada embeding ? + GPT4V
GEMINI: embeding001 + gemini pro
3. 图转文embeding,基于文本(可以时结构化的) 存库并检索。
- 结构的,可以实现类似查询SQL一样查询(过滤出)数据(并且附带对于的图)
- 非结构的,可以查到语言相关的记录,实现RAG。(从库中获取更多事实信息)
LlamaIndex FT
1. FT embedding
基于base embeding模型,训练1个新的adapter embeding (本质上是加深了embeding 网络的层数,甚至可以customize自定义更复杂的结构?)
用于提高对新知识(任意文本) 的表达能力,从而提高检索的性能(更好的相关性)。
2. FT cross-encoder
基于base 模型(默认bert?),训练1个新的小模型,通过cross encoder 监督训练 (训练数据是对文本对和正确性/相关性打标 1代表正确/相关 0代表不正确/不相关)。相当与让ft bert做分类任务?
用于在index检索到相关文本段后,重新排序(rerank),根据相关性排序。
* 好像有个专业的模型cohere,专门做检索(embeding + rerank)?
3. FT LLM (peft + lora)
基于LLM模型(任意),训练出1个新的微调后的FT_LLM。这是真正的微调大模型本身,基于peft lora修改部分模型参数。提高模型性能。
*“蒸馏”训练数据通常是用“最好”的模型基于RAG生成N个QA 或 QueationContextRefrenceAnswer等,喂给待微调的模型。
- 用于 补充模型知识(减少幻觉)
- 用于 让模型学会一种“语言”/”风格“,比如更好的按格式输出(SQL)
- 用于 从更强的模型(已学会相关知识/模式/风格等)“蒸馏”知识到相对小一些模型。
4. FT GPT3.5 (open ai ft api)
训练数据准备思路和(3)一样;训练过程 llamaindex 封装了openai的FT接口,数据上传,opanai云服务完成训练。
LlamaIndex Agent
1. Agent with Tools (RAG/Simple Fn/Other Agents)
框架对agent和Tools有统一的接口和封装,Agent (tools, llm) ; 所有LLM需要向外对接的都是工具(subclass)
Llamaindex针对多文档,给出了对应的MultiDocAgent实现(含TopAgent通过ObjectIndex决定需要查询那些subDocs,即调用那些子文档对应的QueryEngineTool),对比nativeRAG(直接使用QueryEngineTool)效果要好。特别是,文档对比时。
2. Agent (Protocol)
Fundamental Protocol: Function Call / Planning/ SubTasking //目前看来是重要的底层protocol,大模型agent的基础
React (Reason and Act) //可能研究的比较多效果较好的方法
CoA (Chain of abstraction) //有介绍,论文/文档中建议gpt4级别的,或针对性训练的LLM
Lats (LLM agent with tree search) //这个是React的升级版?(TOT的一种协议实现?)
3. 改写
输入改写例子:增加步骤,先通过llm尝试理解用户的意图,返回完整的query,再开始pipeline; 比如HyDE,比如textToSQL retry;
输出改写例子:InflectionAgent(mainagent + critricAgent),C打分,M修改,循环直到neutral。
4. WORKFLOW
基于nvidia nim展示了一个workflow例子:写blog。给一堆文档(可以基于multidocumentagent?topAgent + docAgent)作为queryEngineTool,定义一个工作流(outline --> start_loop -> questions -> subquestions -> answer each query by RAG -> critique ->end_loop when pass, else restart loop for revision --> synthesize final blog)
5. Evaluation
例子给了正确性和语义近似,方便开发者使用:
CorrectnessEvaluator,
SemanticSimilarityEvaluator,
BatchEvalRunner,
LlamaIndex Agent (based on OpenAI)
1. OpenAI 提供了Assitant 功能和API
行业标杆?所以几乎所有大模型的平台都有了自定agent的功能,也是低代码的开发,并提供了API。 agent直接封装到了平台里面,应用侧给数据调接口。
2. 基于OpenAI普通模型chat.complete接口
- prompt中system字数限制,改用让模型参考query,并将工具说明写在query里面。
- gpt支持1个response返回多个tool calls
- call parser (给的用例相当于对json报文做修正,避免异常;当然可以更复杂,是人工处理结果的地方)
- with query engine tools (llamaindex的强项,RAG as tool, 将复杂的高级向量查询封装成tool,参考:multiple documents query, sub doc query, object index等)
- force function call
- Query Planing (先制定计划分解任务,执行,合并结果; 有点类似StructuedPlanningAgent,后者会随着任务执行refineplan)
------------------------------------------------------------------------------------------------------------
x. 开箱即用Agent?
ComplierAgent //多工具调用参考实现?可能优化了并发调用,计划(找到工具依赖)等技术实现,简化了开发?(input rewrite?) + plan + object index + tool calling + refine + critique ?
更多推荐

所有评论(0)