這里寫自定義目錄標題
- llm應用開發
- 什么是Agent?
- Agent1:工作流
- Agent2:自主Agent
- LLM如何擁有自主規劃能力?
- Tool
- 參考:
llm應用開發
llm工程師需要具備以下能力:
[] 軟件工程技能:將各個組件組裝在一起
[] 算法能力:理解模型和工具的原理
[] 深入業務理解:理解業務目標更重要,對人工流程進行建模是重要技能
llm應用開發的關鍵要素:
1.面對llm的脆弱性:分而治之,將工作分解至更小的實驗,逐個嘗試
2.從小處著手,自下而上:從小處著手,越小越好,不斷迭代。一個Prompt解決所有問題
3.
什么是Agent?
Agent1:工作流
1.增強:
- 檢索
- tool
- memory
2.推理:
- ReAct
- 思考鏈CoT
- 思考樹ToT
- 對任務進行拆分
3.Router(編排層):對輸入進行分類,并分別調用不同的模型
4.并行:拆分后聚焦。
5.評估者-優化器:需要多輪搜索和分析才能收集到全面信息的復雜搜索任務。
Agent2:自主Agent
1.能力:自主規劃并獨立執行,利用環境反饋,在循環中調用工具。
2.開始:與用戶溝通,獲取明確地任務目標后自行規劃并獨立執行,
3.獲取環境反饋:需要在每個步驟獲取‘真實’結果,來評估進展
4.檢查點或遇到障礙:在【checkpoint】檢查點暫停并尋求人類反饋
5.終止:任務完成,或設置停止條件
6.防護測試:
LLM如何擁有自主規劃能力?
1.動態與工具交互,根據實時反饋調整執行策略。
2.模型內外知識結合
3.基于預訓練的策略生成模型,模擬與推理???
4.任務拆解與步驟規劃能力
5.從自研語言中提取目標或需求
Tool
如何區分llm和tool的任務邊界?
llm:語言理解、生成和推理任務
tool:當llm需要直接與system交互時。system有特定的input schema
創建tool的幾個關鍵點:
tool需要有一個清晰明確的name和description
tool的功能盡量單一。
llm盡量不要綁定太多的tools
無論構件哪種agent,工具都是其中重要組成部分
一個好的工具定義通常包含示例用法、邊界情況、輸入格式要求,以及與其他工具的清晰差異。
參考:
[1] https://www.cnblogs.com/lusuo/p/18663007
[2] https://baoyu.io/translations/building-effective-agents
[3] https://mp.weixin.qq.com/s/tbcpCYZ5s_WGE7rOl22wQw