本文是原文副本
CBOW, Transformer, BERT, GPT-3等model各自的作用
InstructGPT:
GPT-3.5 & GPT-3.5 turbo
GPT-4:
Agent = LLM + 思考/规划(Planning) + 行动/工具(Action, Tools) + 记忆(Memory) + 神经 + 直觉
Multi-Agent = Agent + env + SOP(标准作业程序) + 评审 + 路由 + 订阅 + 经济
智能体是一个新的物种
MG的作者吴承霖,自述在2023年3月,看完了市面上所有论文和框架
MetaGPT社区总人数874
flowchart LR
A0(initialize_agent)==>A1(agent_cls.from_llm_and_tools)
A1 -.-> B0[LLMChain]
A1 --> B1["Agent._get_default_output_parser()"]
A1 -.-> B2[Agent]
A1 -.-> X
A1 ==> X2
A1 ==> X4
A1 -.-> OpenAI
B0 -.-> I1
B0 -.-> I2
B0 -.-> J5
B0 -.-> J6
B0 -.-> J7
B0 -.-> J8
B0 -.-> J9
B0 -.-> J10
B0 -.-> H2
B2 -.-> D
B2 -.-> G1
B2 -.-> X
A0==>A2(return AgentExecutor.from_agent_and_tools)
A2==>A
B0 -.-> A00
B2 -.-> A00
subgraph AgentExecutorRelated
A00(AgentExecutor) --> A
A("AgentExecutor(Chain).run")==>B(Chain.run)==>I1
I1-->C1(Chain.prep_inputs)
I1==>D("Agent._call(inputs, run_manager=run_manager)")
I1-->C2(Chain.prep_outputs)
D-->E["intermediate_steps: List[Tuple[AgentAction, str]] = []"]
D==>F("while self._should_continue(iterations, time_elapsed):")
D==>D0("intermediate_steps.extend(next_step_output)")
D==>D1("next_step_output = self._take_next_step")
D-->D2("self._return(output / tool_return, intermediate_steps)")
D1==>G1("output = self.agent.plan")
D1-->G2("for agent_action in actions:")
G2==>H("observation = tool.run")
G1==>H1("full_inputs = self.get_full_inputs(intermediate_steps, **kwargs)")
G1==>H2("full_output = self.llm_chain.predict(callbacks=callbacks, **full_inputs)")
G1==>H3("return self.output_parser.parse(full_output)") ==> parser.parse
H3-->X1
H1==>H4("thoughts = self._construct_scratchpad(intermediate_steps)")
end
subgraph LanguageModelRelated
BaseLLM -.-> BaseLanguageModel
BaseLanguageModel -.-> I3
BaseLLM -.-> BaseLLM.generate_prompt
BaseLLM.generate_prompt ==> BaseLLM.generate
BaseLLM.generate ==> OpenAIChat._generate
BaseLLM.__call__ --> BaseLLM.generate
OpenAI -.-> BaseOpenAI -.-> BaseLLM
BaseOpenAI -.-> OpenAIChat
OpenAIChat -.-> OpenAIChat.get_num_tokens
I3("BaseLanguageModel.generate_prompt") ==> BaseLLM.generate_prompt
end
subgraph ChainRelated
J6 --> parser.parse
H2-->I1("Chain.__call__")==>I2("LLMChain.generate")==>I3
J1(LLMChain.apply) --> J2(callback_manager.on_chain_start)
J1 --> J3(LLMChain.create_outputs)
J1 --> J4(callback_manager.on_chain_end)
J1 --> I2
J5(LLMChain.apply_and_parse) --> J1
J5 --> J6(LLMChain._parse_result)
J10(LLMChain._call) --> I2
I2 --> J9(LLMChain.prep_prompts)
J9 --> J8("LLMChain.prompt.format_prompt(**selected_inputs)")
J7(LLMChain.predict_and_parse) --> H2
J7 --> parser.parse
J7 --> J6
end
subgraph PlanRelated
X["class ZeroShotAgent(Agent)"] -.-> X1["Field(default_factory=MRKLOutputParser)"]
X -.-> X4(ZeroShotAgent._get_default_output_parser) ==> X1
X -.-> X2(ZeroShotAgent.create_prompt) ==> X3[FORMAT_INSTRUCTIONS]
X1 -.-> parser.parse
end
以上是吴承霖用mermaid画的langchain主流程图,参考原文这里
Multi-task language understanding on MMU: 对GPT-4 实行CoT,GPT-4在MMU榜单的效果可以到90%+; 开源model可能是68,69,是Llama2 70B/65B;