第21章:探索与发现 Exploration and Discovery

本章探讨了使AI智能体能够主动寻求新信息、发现新可能性以及识别其操作环境中未知未知的模式。探索与发现不同于在预定义解决空间内的反应行为或优化。相反,它们侧重于智能体主动进入陌生领域,尝试新方法,并生成新的知识或理解。这种模式对于在开放性、复杂或快速变化领域中运行的智能体至关重要,因为静态知识或预设解决方案往往不足以应对。这强调了智能体扩展其理解和能力的能力。

实际应用与使用案例

AI智能体具备智能优先排序和探索的能力,这使其能够在多个领域中发挥作用。通过自主评估和排序潜在行动,这些智能体可以在复杂环境中导航,发现隐藏的洞察力并推动创新。这种优先探索的能力使它们能够优化流程、发现新知识并生成内容。

示例:

  • 科学研究自动化: 智能体设计并运行实验,分析结果,制定新假设,以发现新材料、药物候选物或科学原理。
  • 游戏玩法与策略生成: 智能体探索游戏状态,发现新兴策略或识别游戏环境中的漏洞(例如,AlphaGo)。
  • 市场研究与趋势发现: 智能体扫描非结构化数据(社交媒体、新闻、报告),以识别趋势、消费者行为或市场机会。
  • 安全漏洞发现: 智能体探测系统或代码库,以发现安全漏洞或攻击向量。
  • 创意内容生成: 智能体探索风格、主题或数据的组合,以生成艺术作品、音乐作品或文学作品。
  • 个性化教育与培训: AI导师根据学生的学习进度、学习风格以及需要改进的领域,优先安排学习路径和内容交付。

Google Co-Scientist

Google Research开发的AI协同科学家是一种设计为计算科学协作者的AI系统。它协助人类科学家进行研究工作,例如假设生成、提案优化和实验设计。该系统基于Gemini LLM运行。

AI协同科学家的开发旨在解决科学研究中的挑战,包括处理大量信息、生成可测试的假设以及管理实验规划。AI协同科学家通过执行涉及大规模信息处理和综合的任务来支持研究人员,潜在地揭示数据中的关系。其目的是通过处理早期研究阶段中计算需求高的部分来增强人类的认知过程。

系统架构与方法论: AI协同科学家的架构基于多智能体框架,旨在模拟协作和迭代过程。该设计集成了专门的AI智能体,每个智能体在实现研究目标方面都有特定角色。一个监督智能体负责管理和协调这些单独智能体的活动,并采用异步任务执行框架,允许灵活扩展计算资源。

核心智能体及其功能包括(见图1):

  • 生成智能体:通过文献探索和模拟科学辩论生成初始假设,启动整个过程。
  • 反思智能体:充当同行评审者,批判性地评估生成假设的正确性、新颖性和质量。
  • 排名智能体:通过模拟科学辩论,采用基于 Elo 的锦标赛机制对假设进行比较、排名和优先级排序。
  • 进化智能体:通过简化概念、综合想法以及探索非常规推理,不断优化排名靠前的假设。
  • 接近智能体:计算接近图以对相似的想法进行聚类,并协助探索假设的整体布局。
  • 元评审智能体:综合所有评审和辩论的洞见,识别共同模式并提供反馈,使系统能够持续改进。

该系统的运行基础依赖于 Gemini,它提供语言理解、推理和生成能力。系统采用“测试时计算扩展”机制,通过分配更多计算资源来迭代推理和优化输出。系统从多种来源处理和综合信息,包括学术文献、网络数据和数据库。

图 1: (作者提供) AI 共科学家:从构思到验证

系统遵循迭代的“生成、辩论和进化”方法,模拟科学方法。在接收到人类科学家输入的科学问题后,系统会进入一个自我改进的循环,进行假设生成、评估和优化。假设经过系统性评估,包括智能体之间的内部评估以及基于锦标赛的排名机制。

验证与结果:AI 共科学家的实用性已在多个验证研究中得到证明,尤其是在生物医学领域,通过自动化基准测试、专家评审以及端到端湿实验进行性能评估。

自动化与专家评估:在具有挑战性的 GPQA 基准测试中,系统内部的 Elo 评分与其结果的准确性一致,在难度较大的“钻石集”上实现了 78.4% 的 top-1 准确率。对超过 200 个研究目标的分析表明,扩展测试时计算资源能够持续提高假设质量,Elo 评分也随之提升。在一组精心挑选的 15 个具有挑战性的问题上,AI 共科学家优于其他最先进的 AI 模型以及人类专家提供的“最佳猜测”解决方案。在小规模评估中,生物医学专家认为共科学家的输出相比其他基线模型更具新颖性和影响力。系统提出的药物重新定位建议以 NIH 特定目标页面格式呈现,并被六位肿瘤学专家评定为高质量。

端到端实验验证

药物重新定位:针对急性髓系白血病(AML),系统提出了新的药物候选方案。其中一些药物(如 KIRA6)是完全新颖的建议,之前没有任何关于其用于 AML 的临床前证据。后续的体外实验确认了 KIRA6 和其他建议药物在多个 AML 细胞系中以临床相关浓度抑制肿瘤细胞活性的效果。

新靶点发现:系统识别了针对肝纤维化的新表观遗传靶点。使用人类肝类器官进行的实验验证了这些发现,显示针对建议的表观遗传修饰剂的药物具有显著的抗纤维化活性。其中一种药物已经获得 FDA 批准用于其他疾病,为药物重新定位提供了新的机会。

抗菌素耐药性:AI协同科学家独立重现未发表的实验发现

AI协同科学家被赋予任务,解释为何某些可移动遗传元件(cf-PICIs)存在于众多细菌种类中。在两天内,该系统提出的排名最高的假设是:cf-PICIs与多种噬菌体尾部相互作用以扩大其宿主范围。这一假设与一个独立研究团队经过十多年研究后实验验证的新发现相吻合。

增强与局限性

AI协同科学家的设计理念强调增强而非完全自动化人类研究。研究人员通过自然语言与系统互动,提供反馈、贡献自己的想法,并在“科学家参与式”协作模式中指导AI的探索过程。然而,该系统也存在一些局限性。其知识依赖于开放获取文献,可能会遗漏付费墙后的关键前期研究。此外,它对负面实验结果的访问有限,而这些结果对经验丰富的科学家来说至关重要且通常未被发表。此外,该系统继承了底层大语言模型(LLM)的局限性,包括潜在的事实错误或“幻觉”。

安全性

安全性是一个关键考虑因素,该系统集成了多重安全保障措施。所有研究目标在输入时都会接受安全审查,生成的假设也会被检查,以防止系统被用于不安全或不道德的研究。一项针对1,200个对抗性研究目标的初步安全评估发现,该系统能够稳健地拒绝危险输入。为了确保负责任的发展,该系统通过“可信测试者计划”向更多科学家开放,以收集真实世界的反馈。

实践代码示例

以下是一个关于探索与发现的智能体型AI实际应用的具体示例:由Samuel Schmidgall开发的项目“Agent Laboratory”,基于MIT许可协议。

“Agent Laboratory”是一个自主研究工作流框架,旨在增强人类科学研究,而非取代它。该系统利用专门的LLM来自动化科学研究过程的各个阶段,从而使人类研究人员能够将更多的认知资源用于概念化和批判性分析。

该框架集成了“AgentRxiv”,一个用于自主研究智能体的去中心化存储库。AgentRxiv促进了研究成果的存储、检索和开发。

Agent Laboratory通过以下几个明确的阶段指导研究过程:

  1. 文献综述: 在初始阶段,专门的基于大型语言模型(LLM)的AI智能体负责自主收集和批判性分析相关学术文献。这包括利用外部数据库(如 arXiv)来识别、综合和分类相关研究,从而为后续阶段建立全面的知识库。

  2. 实验设计: 这一阶段涵盖了实验设计的协同制定、数据准备、实验执行以及结果分析。AI智能体利用集成工具(如 Python 用于代码生成和执行,Hugging Face 用于模型访问)进行自动化实验。系统设计为迭代优化模式,AI智能体能够根据实时结果调整和优化实验流程。

  3. 报告撰写: 在最后阶段,系统自动生成全面的研究报告。这包括将实验阶段的发现与文献综述的见解相结合,根据学术规范组织文档,并集成外部工具(如 LaTeX)以实现专业化的格式和图表生成。

  4. 知识共享: AgentRxiv 是一个平台,支持自主研究AI智能体共享、访问并协同推进科学发现。它允许AI智能体基于已有研究成果进行构建,促进累积性研究进展。

Agent Laboratory 的模块化架构确保了计算的灵活性。其目标是通过自动化任务提高研究生产力,同时保留人类研究者的参与。

代码分析: 虽然本书无法提供全面的代码分析,但我希望能为您提供一些关键见解,并鼓励您自行深入研究代码。

评估机制: 为了模拟人类的评估过程,系统采用三部分组成的AI智能体评估机制来对输出进行评估。该机制部署了三个独立的自主AI智能体,每个智能体从特定的视角评估成果,从而共同模拟人类评估的复杂性和多样性。这种方法使评估更加稳健和全面,超越单一指标,捕捉更丰富的定性评价。

class ReviewersAgent:
    def __init__(self, model="gpt-4o-mini", notes=None, openai_api_key=None):
        if notes is None:
            self.notes = []
        else:
            self.notes = notes
        self.model = model
        self.openai_api_key = openai_api_key

    def inference(self, plan, report):
        reviewer_1 = "你是一位严格但公平的审稿人,期待实验能够为研究主题带来洞察力。"
        review_1 = get_score(outlined_plan=plan, latex=report, reward_model_llm=self.model, reviewer_type=reviewer_1, openai_api_key=self.openai_api_key)

        reviewer_2 = "你是一位严格、批判但公平的审稿人,关注能够对领域产生影响的创意。"
        review_2 = get_score(outlined_plan=plan, latex=report, reward_model_llm=self.model, reviewer_type=reviewer_2, openai_api_key=self.openai_api_key)

        reviewer_3 = "你是一位严格但公平且开放思维的审稿人,关注尚未被提出的新颖创意。"
        review_3 = get_score(outlined_plan=plan, latex=report, reward_model_llm=self.model, reviewer_type=reviewer_3, openai_api_key=self.openai_api_key)

        return f"审稿人 #1:\n{review_1}, \n审稿人 #2:\n{review_2}, \n审稿人 #3:\n{review_3}"

判断智能体被设计为具有特定的提示,这些提示模拟了人类评审者通常采用的认知框架和评估标准。该提示引导智能体通过类似于人类专家的视角分析输出,考虑诸如相关性、一致性、事实准确性和整体质量等因素。通过设计这些提示以反映人类评审协议,系统旨在实现接近人类辨别能力的评估复杂性。

def get_score(outlined_plan, latex, reward_model_llm, reviewer_type=None, attempts=3, openai_api_key=None):
    e = str()
    for _attempt in range(attempts):
        try:
            template_instructions = """
            请按照以下格式回复:
            思考:
            <思考>
            评审JSON:
            ```json
            <JSON>

            在<思考>部分,首先简要讨论您对评估的直觉和推理。
            详细说明您的高层次论点、必要选择以及评审的预期结果。
            此处不要做泛泛的评论,而是针对当前论文具体说明。
            将此视为评审的笔记阶段。

            在<JSON>部分,以JSON格式提供评审,字段顺序如下:
            - "Summary": 论文内容及其贡献的总结。
            - "Strengths": 论文的优势列表。
            - "Weaknesses": 论文的劣势列表。
            - "Originality": 从1到4的评分
              (低、中、高、非常高)。
            - "Quality": 从1到4的评分
              (低、中、高、非常高)。
            - "Clarity": 从1到4的评分
              (低、中、高、非常高)。
            - "Significance": 从1到4的评分
              (低、中、高、非常高)。
            - "Questions": 提供给论文作者的一组澄清问题。
            - "Limitations": 论文的局限性及潜在的负面社会影响。
            - "Ethical Concerns": 一个布尔值,指示是否存在伦理问题。
            - "Soundness": 从1到4的评分
                (差、一般、好、优秀)。
            - "Presentation": 从1到4的评分
                (差、一般、好、优秀)。
            - "Contribution": 从1到4的评分
              (差、一般、好、优秀)。
            - "Overall": 从1到10的评分
              (非常强烈拒绝到授予质量奖)。
            - "Confidence": 从1到5的评分
              (低、中、高、非常高、绝对)。
            - "Decision": 决策必须是以下之一:
              接受、拒绝。
            对于"Decision"字段,不要使用弱接受、边界接受、边界拒绝或强烈拒绝。
            而是仅使用接受或拒绝。
            此JSON将被自动解析,因此请确保格式准确。
            """

在这个多智能体系统中,研究过程围绕专业化角色进行结构化,模拟典型的学术层级以优化工作流程和输出。

教授智能体: 教授智能体充当主要的研究负责人,负责制定研究议程、定义研究问题并将任务分配给其他智能体。该智能体设定战略方向并确保与项目目标保持一致。

class ProfessorAgent(BaseAgent):
    def __init__(self, model="gpt4omini", notes=None, max_steps=100, openai_api_key=None):
        super().__init__(model, notes, max_steps, openai_api_key)
        self.phases = ["报告撰写"]
    def generate_readme(self):
    sys_prompt = f"""You are {self.role_description()} \n Here is the written paper \n{self.report}. Task instructions: Your goal is to integrate all of the knowledge, code, reports, and notes provided to you and generate a readme.md for a github repository."""
    history_str = "\n".join([_[1] for _ in self.history])
    prompt = (
        f"""History: {history_str}\n{'~' * 10}\n"""
        f"Please produce the readme below in markdown:\n")
    model_resp = query_model(model_str=self.model, system_prompt=sys_prompt, prompt=prompt, openai_api_key=self.openai_api_key)
    return model_resp.replace("```markdown", "")

博士后智能体(PostDoc Agent):

博士后智能体的职责是执行研究工作。这包括进行文献综述设计与实施实验、以及产出研究成果(例如论文)。

重要的是,博士后智能体具备编写与执行代码的能力,从而能够将实验方案付诸实践并进行数据分析

它是研究产出的主要创造者与执行者

class PostdocAgent(BaseAgent):
    def __init__(self, model="gpt4omini", notes=None, max_steps=100, openai_api_key=None):
        super().__init__(model, notes, max_steps, openai_api_key)
        self.phases = ["plan formulation", "results interpretation"]

    def context(self, phase):
        sr_str = str()
        if self.second_round:
            sr_str = (
                f"The following are results from the previous experiments\n",
                f"Previous Experiment code: {self.prev_results_code}\n"
                f"Previous Results: {self.prev_exp_results}\n"
                f"Previous Interpretation of results: {self.prev_interpretation}\n"
                f"Previous Report: {self.prev_report}\n"
                f"{self.reviewer_response}\n\n\n"
            )

        if phase == "plan formulation":
            return (
                sr_str,
                f"Current Literature Review: {self.lit_review_sum}",
            )
        elif phase == "results interpretation":
            return (
                sr_str,
                f"Current Literature Review: {self.lit_review_sum}\n"
                f"Current Plan: {self.plan}\n"
                f"Current Dataset code: {self.dataset_code}\n"
                f"Current Experiment code: {self.results_code}\n"
                f"Current Results: {self.exp_results}"
            )
        return ""

机器学习工程智能体(ML Engineering Agents):

机器学习工程智能体的角色相当于机器学习工程师,它们与博士生通过对话式协作共同开发代码。

其核心职责是生成用于数据预处理的简洁代码,并融合来自文献综述与实验方案中的洞见,以确保数据能够被正确格式化并充分准备,满足既定实验的需求。

"You are a machine learning engineer being directed by a PhD student who will help you write the code, and you can interact with them through dialogue.\n"
"Your goal is to produce code that prepares the data for the provided experiment. You should aim for simple code to prepare the data, not complex code. You should integrate the provided literature review and the plan and come up with code to prepare data for this experiment.\n"

SW工程师智能体:

软件工程师智能体指导机器学习工程师智能体。其主要目的是协助机器学习工程师智能体为特定实验创建简单的数据准备代码。软件工程师智能体将整合提供的文献综述和实验计划,确保生成的代码简洁且直接与研究目标相关。

"你是一名软件工程师,负责指导机器学习工程师。机器学习工程师将编写代码,你可以通过对话与他们互动。\n"
"你的目标是帮助机器学习工程师生成用于实验数据准备的代码。你应当着重于编写非常简单的数据准备代码,而非复杂代码。你需要整合提供的文献综述和实验计划,并设计出用于该实验的数据准备代码。\n"

简而言之,“智能体实验室”代表了一个复杂的自主科学研究框架。它旨在通过自动化关键研究阶段和促进协作式AI驱动的知识生成来增强人类的研究能力。该系统通过管理常规任务并保持人类监督来提高研究效率。

概览

定义(What)

AI智能体通常在预定义的知识范围内运行,这限制了它们应对新情况或开放性问题的能力。在复杂和动态的环境中,这种静态的预编程信息不足以实现真正的创新或发现。核心挑战在于使智能体能够超越简单的优化,主动寻找新信息并识别“未知的未知”。这需要从纯粹的反应行为转变为主动的智能体性探索,以扩展系统自身的理解和能力。

设计意图(Why)

标准化的解决方案是构建专门设计用于自主探索和发现的智能体性AI系统。这些系统通常利用多智能体框架,其中专门的LLM(大型语言模型)协作模拟科学方法等过程。例如,不同的智能体可以被分配生成假设、进行批判性审查以及发展最有前景的概念。这种结构化的协作方法使系统能够智能地导航广阔的信息领域,设计并执行实验,生成真正的新知识。通过自动化探索中劳动密集型的部分,这些系统增强了人类的智力,并显著加快了发现的速度。

使用原则(Rule of Thumb)

在解决空间未完全定义的开放性、复杂或快速发展的领域中,使用探索和发现模式是最佳选择。该模式非常适合需要生成新颖假设、策略或洞察的任务,例如科学研究、市场分析和创意内容生成。当目标是发现“未知的未知”而不仅仅是优化已知过程时,这种模式至关重要。

图解 (Visual Summary)

图2:探索和发现设计模式

关键要点

  • AI中的探索和发现使智能体能够主动追求新信息和可能性,这对于导航复杂和不断发展的环境至关重要。
  • 像Google Co-Scientist这样的系统展示了智能体如何自主生成假设和设计实验,从而补充人类的科学研究。
  • 多智能体框架(例如智能体实验室的专门角色)通过自动化文献综述、实验和报告撰写来改善研究。
  • 最终,这些智能体旨在通过管理计算密集型任务来增强人类的创造力和问题解决能力,从而加速创新和发现。

结论

总结来说,探索与发现模式是一个真正具备自主性系统的核心本质,它定义了系统从被动地遵循指令转变为主动探索环境的能力。这种内在的自主驱动力使得人工智能能够在复杂领域中自主运作,不仅仅是执行任务,还能够独立设定子目标以发现新的信息。这种高级的自主行为在多智能体框架中得以最强有力地实现,其中每个智能体在一个更大的协作过程中都承担着特定的主动角色。例如,谷歌的 Co-scientist 系统就是一个高度自主的系统,其智能体能够自主生成、讨论和发展科学假设。

像 Agent Laboratory 这样的框架进一步通过创建一个模仿人类研究团队的自主层级结构来实现这一点,使系统能够自我管理整个发现生命周期。这种模式的核心在于协调涌现的自主行为,使系统能够以最少的人类干预追求长期的、开放式的目标。这提升了人类与人工智能的合作关系,将人工智能定位为真正的自主协作伙伴,能够自主执行探索性任务。通过将这种主动的发现工作委托给自主系统,人类的智慧得以显著增强,从而加速创新。开发如此强大的自主能力也需要对安全和伦理监督的高度重视。最终,这种模式为创建真正自主的人工智能提供了蓝图,将计算工具转变为独立的、目标导向的知识追求伙伴。

参考文献

  1. 探索-利用困境 增强学习和不确定性决策中的一个基本问题。https://en.wikipedia.org/wiki/Exploration%E2%80%93exploitation_dilemma
  2. 谷歌 Co-scientist:https://research.google/blog/accelerating-scientific-breakthroughs-with-an-ai-co-scientist/
  3. Agent Laboratory:使用 LLM 智能体作为研究助手 https://github.com/SamuelSchmidgall/AgentLaboratory
  4. AgentRxiv:迈向协作自主研究:https://agentrxiv.github.io/

results matching ""

    No results matching ""