近期AI领域较热门的三个点:LLM jailbreak, LLM+agent,ComfyUI

 

一.LLM jailbreak

早些年间Jailbreak通常指代苹果越狱,越狱就是借助某些特定的⼯具,对 iphone内的操作系统进⾏破
解,从⽽让⽤户可以做到很多苹果预先禁⽌的事情。
对应的在LLM领域中Jailbreak则指代通过⼀定的⼿段,绕开语⾔模型的预先进⾏安全训练。让模型能够
输出⼀些违反模型使⽤政策的⼀些内容。⽐如OpenAI的使⽤政策https://openai.com/policies/usage-policies,⾥⾯就规定了14种不同类型的使⽤政策。如果诱导模型输出不符合不符合以上使用政策的内容,那说明越狱成功了。

Jailbreak的具体示例(Generation of malware)

相关调研工作安排:

  1. 调研jailbreak基础知识及典型用例。以《Jailbreaking ChatGPT via Prompt Engineering: An Empirical Study》论文为基础。此论文将jailbreak总结为了三大类10个模式。每种模式都有一些相关用例。
  1. 尝试自己手工写新的jailbreak用例,以论文《JAILBREAKER: Automated Jailbreak Across Multiple Large Language Model Chatbots》 。理解论文作者拆分关键词的技巧和template⽣成策略。并简要总结。最后实际操刀写1~2个自己的jailbreak测试用例。
  1. 使用agent, 从jailbreak老模版自动化生成新模板。以论文《QUACK: AUTOMATIC JAILBREAKING LARGE LANGUAGE MODELS VIA ROLE-PLAYING》为基础。网上看视频了解什么是智能体(agent), 学习使用metaGPT,模仿此论文的方法批量生成jailbreak用例。但这一步比较复杂,不要求必须搞定。

最终目标是在这个测试用例库的基础上,开发一个自动化测试工具——该工具可以调用大模型的API,批量测试我们的用例库的内容。并且对测试结果进行评分,以可视化测评报告(类似于绿盟、奇安信的类网络安全测评报告)的形式进行展示。

二. LLM Powered Autonomous Agents

智能体(agent)或者称之为代理程序,是AI领域研究了几十年的内容。简单地说,就是写一个结合了AI的程序,替我们人类做或简单或复杂的工作。LLM风潮起来后,大部分人也就用用chatGPT帮自己写些文档,而计算机的一些专家要么去研究LLM本身,要么研究如何用LLM做更多的事。尤其是将agents与LLM结合,被认为是发挥LLM潜力做更多事情的可行之路。Lilian Weng blog对此有详细的阐述:https://lilianweng.github.io/posts/2023-06-23-agent/

那么LLM-based agent具体能做什么呢?

下面举个例子:

摘自论文《MEDAGENTS: Large Language Models as Collaborators for Zero-shot Medical Reasoning》的案例

案例说明:一名66岁的男性患者,因"咳嗽、胸痛、伴反复发作性胃溃疡"入院,近期CT显示可能存在肺部肿瘤。让大模型设计一个风险最小而效果最优的治疗方案。

第一步,让不同agent分别使用大语言模型扮演不同医学方向的专家

第二步,各位专家(agent)根据自己的专业对案例进行分析(图中:心脏科、肠胃科、放射科和临床外科)

第三步,汇总结果形成一份总体的分析报告

第四步,不同方向的专家(agent)进行讨论,直到完全达成共识。(这是一个迭代的过程)

第五步:最终做出决策,输出一份观点一致的报告,作为回答并输出。

当然以上只是举个例子,还有更多应用,比如基于多agent的游戏开发,游戏NPC扮演,写小说,解数学题,检索增强的问答和代码生成


那么这么强的agent应该具有哪些能力呢?

  • 规划(planning)
    • 子目标分解:agent将大任务拆分为更小的可管理的子目标,使得可以有效处理复杂任务。
    • 反思与完善:agent对历史动作可以自我批评和自我反思,从错误中学习并在后续步骤里完善,从而改善最终结果的质量。
  • 记忆(Memory)
    • 短期记忆:上下文学习即是利用模型的短期记忆学习
    • 长期记忆:为agent提供保留和召回长期信息的能力,通常利用外部向量存储和检索实现
  • 工具使用(tool use)
    • 对模型权重丢失的信息,agent学习调用外部API获取额外信息,包括当前信息、代码执行能力、专有信息源的访问等等。

那么如何入手学习使用agent呢?

2023年初LLM+Agent代表性的是AutoGPT和BabyAGI,代表方法是ReACT,总体上强调的是一个Agent使用工具的能力。后面很快出现了Multi-Agent,侧重角色扮演和Agents之间的交互来完成一项复杂的任务。典型的开放框架有微软的AutoGen, DeepWisdom开发的metaGPT等。

《AutoAgents: A Framework for Automatic Agent Generation》提到的截至2023年10月出现的LLM-based agent framework

相关调研工作安排:

  1. 调研metaGPT。 这是DeepWisdom 公司开发的一个智能体开发框架,是目前同类开发框架在github上star最多的(截至目前33.7K),也是浙大博士推荐的。它的论文可以参考这篇知乎介绍。具体如何使用,可以参考github项目和B站视频。
B站搜索metaGPT的结果。(现在学习全靠B站,老师只是个项目经理>_<)
    1. 你需要会使用git,会科学上网, 其默认的LLM是chatGPT,因此得有open_ai的API(这个API可能会花一点钱)
    2. 先搭建该框架。然后可以模仿B站视频或者github上的案例库,实现一个小功能:例如让metaGPT自动写个贪吃蛇游戏。相关文档:https://docs.deepwisdom.ai/main/en/guide/get_started/introduction.html
    3. 相关工作尽可能多写文档留下记录
  1. 调研使用metaGPT模拟多个角色共同完成一项任务。

三.ComfyUI的测试使用

客观的说,到2023年底,AI文生图在舆论上已经没那么火热了。但事实上是该技术越来越下沉,更接近生产端了,尤其是在游戏开发等行业。ComfyUi是目前比较实用的图形化界面(以及使用流程)。

在AI文生图领域,目前主流的模型是开源的stable diffusion。但直接使用命令行调用stable diffusion,对于普通人来说效率低且难用。于是github上有了webui,一个专门用于stable diffusion得图形化界面。从2023年中SDXL出现以后,目前商业上进行AI绘画,大都会使用comfyUI这套图形化界面。

comfyUI的形态,图片摘自https://www.reddit.com/r/StableDiffusion/comments/152q1hu/just_started_out_using_comfyui_is_this_how_you/

相对于webUI,comfyui优势在于:

  1. 采用节点工作流的表达方式,类似于substance designer等3D建模软件或unity3D游戏开发软件的做法。但是节点工作流也提升了一部分使用门槛。
  2. 细致控图,能迅速切换场景同时依旧保持图片的稳定性。
  3. 生成图片时的速度相较于webui有10%~25%的提升(根据不同显卡提升幅度不同),生成大图片的时候不会爆显存,只是图片太大时,会因为切块运算的导致图片碎裂。
  4. 可以导出工作流,然后分享给其他用户,以便其他人完美复现。

关于comfyUI更详细的介绍:解放AI生产力——为什么要使用ComfyUI - 程序员张旭的文章 - 知乎

https://zhuanlan.zhihu.com/p/615190870

可以看B站视频来了解如何安装使用comfyUI

相关调研工作安排:

调研如何使用comfyUI。并且绘制一些建筑外立面图,comfyUI的使用效果进行测试。

1.部署使用comfyUI
可参考对象:Stable Diffusion ComfyUI 入门感受 - 旧书的文章 - 知乎

2.使用comfyUI绘制图像,注意修改画面局部细节