分类目录归档:Uncategorized

AIlice,一个自扩展的多智能体协作Agent框架 之二

最近因故导致更新较慢,多模态还没有做上.但是边边角角的抛光工作还是做了一些,AIlice的使用体验上应该是好一些了.今天重新实现了子agent “researcher”,这是一个最早在llama 13b上开发的组件,使用了非常极端的手段尝试节省context使用,但后来发现得不偿失,于是有了本次更新.这次更新后AIlice做调查任务更稳健了,而且能跟编程任务很好的配合,实现调查-执行混合型任务.

最近这些开发里逐渐意识到IACT架构还有一些当初始料不及的优点,除了在计算中提供优良的容错性,它对于context window的扩展也有很大的意义,这个意义可以直接以CPU上为类比来说明:CPU上的寄存器资源很有限,但它可以执行非常复杂的计算任务,原因在于我们在函数调用时把寄存器的内容保存到内存里,函数调用结束后再恢复现场.因而每个函数被调用后都有着干干净净的工作空间.IACT中agent之间可以动态的创建子agents,这类比于函数调用,虽然每个agents都只有有限的context window,但它们的组合可以解决非常复杂的问题.

IACT还有超出上述经典类比的深层意义.原因是IACT中的agent调用本质上其实是主调和被调agents之间的一种对话,而非简单的调用-返回.这种设计下,当子agent的context window耗尽,遗忘了自己的任务目标,它可以询问主agent,让后者重新告诉它自己的任务是什么.我们也可以实现对大量数据的处理,只需要让子agent分批处理并分批返回给主agent即可,而不是一次性处理全部数据再返回–那当然会耗尽context window.

我们今天更新一篇文章,从一个典型用例来展示IACT架构的运作.这个用例很简单,我让AIlice去寻找男神David Tong的量子场论讲义并下载.这是个简单任务,但它同时是一个调查-编程混合型任务,我们可以在这个例子中看到有趣的agents协作.

prompt: Find David Tong’s QFT lecture notes and download the pdf file to the “physics” folder in the current directory. You may need to create the folder first.

USER: Find David Tong’s QFT lecture notes and download the pdf file to the “physics” folder in the current directory. You may need to create the folder first.

ASSISTANT_AIlice: To accomplish this task, I will create and communicate with a “researcher” agent that can search the internet for David Tong’s Quantum Field Theory (QFT) lecture notes and download the PDF file. Additionally, I will instruct a “coder-proxy” agent to create the “physics” folder in the current directory if it does not already exist and to move the downloaded file into that folder.

First, I will instruct the “coder-proxy” agent to check for the existence of the “physics” folder and create it if necessary. Then, I will instruct the “researcher” agent to find and download the PDF file.

Let’s start with the “coder-proxy” agent to handle the folder creation.

!CALL<!|”coder-proxy”, “folder_creator”, “import os\n\nfolder_path = ‘physics’\nif not os.path.exists(folder_path):\n os.makedirs(folder_path)”|!>

ASSISTANT_folder_creator: It seems you want to create a directory named ‘physics’ if it does not already exist. I will execute the provided Python code to accomplish this task.

!PYTHON<!|

import os

folder_path = ‘physics’

if not os.path.exists(folder_path):

os.makedirs(folder_path)

|!>

SYSTEM_folder_creator: PYTHON_RESULT=[

Execution completed.

]

ASSISTANT_folder_creator: The directory named ‘physics’ has been successfully created. If you have any further instructions or need assistance with anything else, please let me know!

SYSTEM_AIlice: Agent folder_creator returned: The directory named ‘physics’ has been successfully created. If you have any further instructions or need assistance with anything else, please let me know!

ASSISTANT_AIlice: The “physics” folder has been successfully created. Now, I will instruct the “researcher” agent to find David Tong’s Quantum Field Theory (QFT) lecture notes and download the PDF file into the “physics” folder.

!CALL<!|”researcher”, “pdf_downloader”, “Please find David Tong’s Quantum Field Theory (QFT) lecture notes and download the PDF file into the ‘physics’ folder in the current directory.”|!>

ASSISTANT_pdf_downloader: To accomplish this task, I will first need to search for David Tong’s Quantum Field Theory lecture notes online. Once I find the correct PDF file, I will then download it into the specified ‘physics’ folder in the current directory.

I will start by searching for the lecture notes.

!CALL<!|”search-engine”, “QFTLectureNotesSearch”, “David Tong Quantum Field Theory lecture notes PDF”|!>

ASSISTANT_QFTLectureNotesSearch: To find the PDF of David Tong’s Quantum Field Theory lecture notes, I will use the GOOGLE command to search for it on the internet. Here is the command: !GOOGLE<!|”David Tong Quantum Field Theory lecture notes PDF”|!>.

SYSTEM_QFTLectureNotesSearch: GOOGLE_RESULT=[[SearchResult(url=https://www.damtp.cam.ac.uk/user/tong/qft.html, title=David Tong: Lectures on Quantum Field Theory – DAMTP, description=These lecture notes are based on an introductory course on quantum field theory, aimed at Part III (i.e. masters level) students. The full set of lecture notes …), SearchResult(url=https://www.damtp.cam.ac.uk/user/tong/qft/qft.pdf, title=Quantum Field Theory – DAMTP, description=by D Tong · Cited by 4 — Dr David Tong. Department of Applied Mathematics and Theoretical Physics … These lecture notes are far from original. My primary contribution has been …), SearchResult(url=https://www.damtp.cam.ac.uk/user/dbs26/AQFT/chap1.pdf, title=Quantum Field Theory II – DAMTP, description=by D Skinner · Cited by 14 — • Tong, D., Quantum Field Theory, http://www.damtp.cam.ac.uk/user/tong/qft.html. The lecture notes from the Michaelmas QFT course in Part III.), SearchResult(url=https://www.damtp.cam.ac.uk/user/tong/qft/qfthtml/qfthtml.html, title=Quantum Field Theory by David Tong, description=Quantum Field Theory by David Tong … If you’re not using speech conversion software then you will likely be better served by the lecture notes in pdf form.), SearchResult(url=https://knzhou.github.io/notes/qft.pdf, title=Quantum Field Theory, description=David Tong’s Gauge Theory lecture notes. An absolutely exceptional set of notes on special topics in quantum field theory, with many references to original …), SearchResult(url=http://www.damtp.cam.ac.uk/user/tong/teaching.html, title=David Tong: Lectures on Theoretical Physics, description=These notes provide an introduction to the fun bits of quantum field theory, in particular those topics related to topology and strong coupling. They are aimed …), SearchResult(url=https://archive.org/details/Dr_David_Tong__Quantum_Field_Theory, title=Dr David Tong – Quantum Field Theory, description=Oct 5, 2013 — This is a very clear and comprehensive book, covering everything in this course at the right level. It will also cover everything in the ” …), SearchResult(url=https://pirsa.org/c09033, title=09/10 PSI – Quantum Field Theory, description=Quantum Field Theory (PHYS 601) – Lecture 1 · David Tong University of Cambridge. September 28, 2009. PIRSA:09090108. Quantum Field Theory (PHYS 601) – Lecture …), SearchResult(url=https://www.e-booksdirectory.com/details.php?ebook=3941, title=Quantum Field Theory by David Tong – Download link, description=These notes are based on an introductory course on quantum field theory. … (PDF/PS). Similar books. Book cover: Introduction to Quantum Fields in Curved …), SearchResult(url=https://lim.physics.ucdavis.edu/teaching/files/qft-notes-partiii.pdf, title=qft-notes-partiii.pdf, description=May 20, 2019 — These notes were taken for the Quantum Field Theory course taught by Ben Allanach at the University of Cambridge as … David Tong’s notes. Under …), SearchResult(url=https://www.reddit.com/r/Physics/comments/qpzgr/qft_lecture_series_given_by_david_tong/, title=QFT lecture series given by David Tong : r/Physics, description=… especially the historical background for QFT and other theories. Edit: And here are his lecture notes in PDF. Upvote 10. Downvote Reply reply), SearchResult(url=https://www.ippp.dur.ac.uk/~mspannow/files/SkriptQFT_Weigand.pdf, title=Quantum Field Theory I + II, description=… course. Excellent lecture notes available online include. • A. Hebecker: Quantum Field Theory,. • D. Tong: Quantum Field Theory. … pdf. 2In short, a …), SearchResult(url=https://ocw.mit.edu/courses/8-323-relativistic-quantum-field-theory-i-spring-2008/pages/related-resources/, title=Related Resources | Relativistic Quantum Field Theory I, description=David Tong, High Energy Particle Physics Group, Department … In additon, handwritten lecture notes of the lectures are available as transcribed by Brian Hill.), SearchResult(url=https://cirosantilli.com/quantum-field-theory-lecture-notes-by-david-tong-2007, title=Quantum Field Theory lecture notes by David Tong (2007), description=Quantum Field Theory lecture notes

This is a page of the results. To browse more results, you can use the following functions.

#scroll down the page:

SCROLLDOWNGOOGLE<!||!>

]

ASSISTANT_QFTLectureNotesSearch: David Tong’s Quantum Field Theory lecture notes can be found on the DAMTP (Department of Applied Mathematics and Theoretical Physics, University of Cambridge) website. The full set of lecture notes is available in PDF format. You can directly access them through the following link: [David Tong: Lectures on Quantum Field Theory – DAMTP](https://www.damtp.cam.ac.uk/user/tong/qft/qft.pdf).

If you need more information or additional resources, please let me know, and I can continue the search.

SYSTEM_pdf_downloader: Agent QFTLectureNotesSearch returned: David Tong’s Quantum Field Theory lecture notes can be found on the DAMTP (Department of Applied Mathematics and Theoretical Physics, University of Cambridge) website. The full set of lecture notes is available in PDF format. You can directly access them through the following link: [David Tong: Lectures on Quantum Field Theory – DAMTP](https://www.damtp.cam.ac.uk/user/tong/qft/qft.pdf).

If you need more information or additional resources, please let me know, and I can continue the search.

ASSISTANT_pdf_downloader: Great, the PDF of David Tong’s Quantum Field Theory lecture notes has been found. I will now proceed to download the file into the ‘physics’ folder in the current directory.

!BASH<!|”wget -P ./physics/ https://www.damtp.cam.ac.uk/user/tong/qft/qft.pdf”|!>

SYSTEM_pdf_downloader: BASH_RESULT=[–2024-01-07 10:28:38– https://www.damtp.cam.ac.uk/user/tong/qft/qft.pdf

Resolving www.damtp.cam.ac.uk (www.damtp.cam.ac.uk)… 131.111.20.161

Connecting to www.damtp.cam.ac.uk (www.damtp.cam.ac.uk)|131.111.20.161|:443… connected.

HTTP request sent, awaiting response… 200 OK

Length: 1357194 (1.3M) [application/pdf]

Saving to: ‘./physics/qft.pdf.5’

0K ………. ………. ………. ………. ………. 3% 240K 5s

50K ………. ………. ………. ………. ………. 7% 499K 4s

100K ………. ………. ………. ………. ………. 11% 6.56M 2s

150K ………. ………. ………. ………. ………. 15% 9.16M 2s

200K ………. ………. ………. ………. ………. 18% 514K 2s

250K ………. ………. ………. ………. ………. 22% 5.44M 1s

300K ………. ………. ………. ………. ………. 26% 6.06M 1s

350K ………. ………. ………. ………. ………. 30% 8.76M 1s

400K ………. ………. ………. ………. ………. 33% 644K 1s

450K ………. ………. ………. ………. ………. 37% 9.75M 1s

500K ………. ………. ………. ………. ………. 41% 10.3M 1s

550K ………. ………. ………. ………. ………. 45% 9.53M 1s

600K ………. ………. ………. ………. ………. 49% 8.44M 1s

650K ………. ………. ………. ………. ………. 52% 8.82M 0s

700K ………. ………. ………. ………. ………. 56% 9.86M 0s

750K ………. ………. ………. ………. ………. 60% 9.98M 0s

800K ………. ………. ………. ………. ………. 64% 9.15M 0s

850K ………. ………. ………. ………. ………. 67% 908K 0s

900K ………. ………. ………. ………. ………. 71% 4.44M 0s

950K ………. ………. ………. ………. ………. 75% 3.44M 0s

1000K ………. ………. ………. ………. ………. 79% 11.4M 0s

1050K ………. ………. ………. ………. ………. 82% 8.45M 0s

1100K ………. ………. ………. ………. ………. 86% 11.2M 0s

1150K ………. ………. ………. ………. ………. 90% 9.59M 0s

1200K ………. ………. ………. ………. ………. 94% 10.3M 0s

1250K ………. ………. ………. ………. ………. 98% 11.3M 0s

1300K ………. ………. ….. 100% 9.51M=0.7s

2024-01-07 10:28:40 (1.93 MB/s) – ‘./physics/qft.pdf.5’ saved [1357194/1357194]

Execution completed.

]

ASSISTANT_pdf_downloader: The PDF file of David Tong’s Quantum Field Theory lecture notes has been successfully downloaded into the ‘physics’ folder in the current directory. If you need any further assistance, please let me know.

SYSTEM_AIlice: Agent pdf_downloader returned: The PDF file of David Tong’s Quantum Field Theory lecture notes has been successfully downloaded into the ‘physics’ folder in the current directory. If you need any further assistance, please let me know.

ASSISTANT_AIlice: The PDF file of David Tong’s Quantum Field Theory lecture notes has been successfully downloaded into the “physics” folder in the current directory. If you need any further assistance or have another task, please let me know.

AIlice接收到用户请求后,随即创建了coder-proxy类型的agent “folder_creator”,创建了我们要求的文件夹.当然,这个任务太简单,AIlice的主agent一时技痒自己把代码给写了,即便我们在系统prompt里告诫她不要这么做.这是gpt-4这个级别的LLM经常出现的一种情况,不爱遵循没道理的规矩.我们就不怪她了.

文件夹创建后AIlice又创建了researcher类型的agent “pdf_downloader”,让他去找David Tong QFT讲义并下载到刚才创建的文件夹里.pdf_downloader创建了search-engine类型的”QFTLectureNotesSearch”让他去找链接,一通google后找到了,pdf_downloader连coder-proxy都不想调,自己随手写了个命令给下载了.

这就完了.

很简单是吧,就是函数调用嘛.其实并不是,只是用例太简单,根本没给更复杂的交互一个机会.太冗长的用例不适合拿来写文章,毕竟这里空间太小,写不下.

你还是去玩玩吧.

GitHub – myshell-ai/AIlice: A lightweight AI Agent

AIlice,一个自扩展的多智能体协作Agent框架

AIlice(GitHub – stevenlu137/AIlice: A lightweight AI Agent).

一天没陪儿子玩,成效显著,AIlice终于如愿支持自扩展了—她自己可以完成外部环境交互模块的构建,并且立即加载使用!而今天统计了下代码量,竟然还在2300行左右,可以说是相当的轻量级了.

AIlice的构建初衷是基于开源模型构建一款Agent框架,要足够的轻,从而开发者能清楚的明白系统整体的运转,从而具有足够可控性;同时要足够灵活,在一个相当泛化的框架基础上再做特化,即应用层agents.另一方面,我非常希望未来的agents能一次性帮我调研一个学术方向,它自己去收集文献阅读文献,回头再在对话里教给我.这就要求agents具有长时间针对一个主题做深入调研的能力,这种任务需要大量的计算时间,用眼下的商业LLM显然不合适,因而这就要求有一个充分强大的开源LLM做保障,当然这还没有.但我觉得,眼下这个时代,构建任何软件系统都要面向未来,我们的时间轴在加速,你无法预期明天是不是就会出来一个开源的GPT4级别LLM,而你知道,这早晚会发生.所以,AIlice就这样被做出来了.她尚且无法帮我调研一个学术方向,但能针对一个主题做长时间的探索了,而且具有极佳的编程/脚本执行能力,在自我扩展做上后,我想,是时候让她出来面对世界了.

基本特性

  1. 自然且高度容错的IACT(Interactive Agents Calling Tree)架构。
  2. 以最灵活的方式解析LLM输出,支持更多种多样的函数调用机制.
  3. 自我构建并动态加载环境交互模块,为功能扩展提供无限潜力。
  4. 专为开源模型设计,但可以无缝支持商业模型,如GPT-4。
  5. 支持对特定主题进行深入调查。
  6. 自动化编程和脚本执行。它是一个全能的coder和系统管理工具,掌握所有系统命令——你可以把它看作一个人工智能操作系统。

接下来我还会加上多模态支持,届时AIlice的基本框架就差不多完成了,代码量会控制在3k行之内.

AIlice能做什么?

我们来罗列一些典型的用例.我经常用这些例子来对开发中的AIlice做测试,确保性能的稳定.但即便如此,执行结果仍然和你选择的模型,所用的代码版本,甚至是测试时间有关(chatgpt疑似在高负荷下会降智,当然开源模型没这个问题,它们的智力是一直低).另外,AIlice是一个基于多智能体对话协作的Agent,这里作为用户的你,也是”智能体”之一(不承认?),所以,当它需要额外信息时,会来询问你,你充分详细的信息是她成功的关键.另外,当任务执行的不尽人意,你也可以告诉她正确的做法,她会回头纠正的.

最后一个需要注意的地方是,AIlice目前没有运行时间控制机制,因此她可能陷入死循环或长期运行,在使用商业LLM运行时你需要关注她的运行.

  • “Please search the internet for 100 tutorials in various branches of physics and report the URLs for the PDF files you find. There is no need to verify these URLs, we only need a rough collection for now.”
  • “Please conduct an investigation on open-source PDF OCR tools, with a focus on those capable of recognizing mathematical formulas and converting them into LaTeX code. Consolidate the findings into a report.”
  • “Deploy a straightforward website on this machine using the Flask framework. Ensure accessibility at 0.0.0.0:2006. The website should have a single page capable of displaying all images located in the ‘images’ directory.” 在docker环境里执行绘图任务是比较麻烦的,我们只能把图像存盘,然后docker cp出来查看.这个例子给了另一种玩法:让AIlice自己构建一个简易网站并运行,这个网站将images下的图像显示在它的页面上.你只需要在宿主机上用浏览器就可以查看结果啦.
  • “Please use python programming to solve the following tasks: obtain the price data of BTC-USDT for six months and draw it into a graph, and save it in the ‘images’ directory.” 如果你成功构建了前面的网站,这一步是可以直接看到结果的.如果看不到,请检查网站的images文件夹是否和这里的images文件夹不是一个(比如可能是在static/images下)?
  • “Please use cadquery to implement a cup.” 这是个比较有趣的玩法,Cadquery是个用python构建3d模型的CAD软件,你可以通过这个例子了解LLM对物理世界3d结构的理解.当然,接下来我实现了多模态后,我们可以让AIlice看到她自己建模出来的效果,从而能继续调整模型,形成一个非常有效的反馈机制,这样或许就可以实现真正可用的语言控制3D建模了.
  • “Please write an external interactive module. The function of the module is to obtain the content of related pages on the wiki through keywords.” 这就是自动扩展机制.AIlice可以自己构建外部交互模块并动态加载使用,而这只需要你的几句prompt提示和引导.这打开了无限的可能性空间.

架构设计

设计AIlice时的基本原则包括:
1. 通过高度动态的提示构建机制丰富LLM的行为;

2. 尽可能分离不同的计算任务,使用从传统计算中的递归和分而治之来解决复杂问题。

3. 代理间应能够双向交互。

我们来简单解释一下几条基本原则.

从最显而易见的层面说,高度动态的提示构建会让agent更不容易陷入死循环,来自外界的各种新变量会不断冲击LLM使其避免进入那个坑. 进一步说,每次推理中,向LLM充分输入当前可用的信息可以对它的输出产生巨大的改善,比如在自动编程里,来自解释器或命令行的错误信息会辅助LLM不断修改代码最终达到正确结果.最后,动态的提示构建中,提示中的新信息还可能来自其他Agent,这起到了一种串联推理计算的作用,使得系统的计算机制更复杂,变化万端,产生更丰富的行为.

分离计算任务,从现实的角度说,是因为我们只有有限的context window.我们无法预期在一个几千token的window里完成一项复杂任务.这时,如果能把复杂任务分解,每个子任务都在有限的资源内解决,就是美好的结局了.传统的计算模式里,我们一直在利用这一点,但在LLM为核心的新计算里,这一点不易实现,最简单的问题就是,如果一个子任务失败了,整个任务都有失败的风险.递归则更难实现:你怎么确保在每次调用里LLM都解决了一部分子问题,而不是把包袱都丢给下一级调用呢?我们在AIlice里用IACT架构解决了第一个问题,第二个问题原则上也不难解决,但估计需要更聪明的LLM.

第三个原则是目前大家都在做的事情,让多智能体交互合作完成更复杂的任务.这条原则的实现事实上解决了前面所说的子任务失败问题.多智能体协作对于agents运行中的容错性至关重要,事实上这可能是新计算范式和传统计算的最大区别之一:传统计算精确无误,仅通过单向发起交流(函数调用)来分配子任务,而新计算范式里错误百出,需要计算单元之间双向的交流来纠错.这会在下文关于IACT框架的介绍里详细说明.

计算模型:IACT(Interactive Agents Calling Tree)

一个自然的想法是通过LLM与外部调用者和外围模块进行多轮对话,在最简单的计算单元中解决特定问题(如信息检索、文档理解等)。我们临时将这个计算单元称为“函数”。然后,类比传统计算,我们允许函数互相调用,并最终添加线程的概念来实现多代理交互。然而,我们可以拥有比这更简单和更优雅的计算模型。
关键在于封装LLM推理的“函数”实际上可以被调用和返回多次。一个具有coder功能的“函数”在编程过程中遇到不清晰的需求时,可以暂停工作并向其调用者返回查询语句。如果调用者对答案仍然不清楚,它将继续询问下一个更高级别的调用者。这个过程甚至可以一直延伸到最终用户的聊天窗口。当添加新信息时,调用者将通过传入补充信息重新激活coder的执行过程。可以看出,这个“函数”不是传统的函数,而是一个可以被多次调用的对象。LLM的高智能性使得这种有趣的特性成为可能。您也可以将其看作由调用关系串联在一起的agents,其中每个agent可以创建和调用更多的子agents,并且还可以与其调用者对话以获取补充信息或报告进度。在AIlice中,我们将这个计算单元称为“AProcessor”。其代码位于core/AProcessor.py中(其实它就是我们说的agent)。

由于我对学术文献的无知(看在上帝的份上,我都要做个AI来帮自己读文献了),尚不知晓是否有人做过这种东西,所以就给它起了一个名字: IACT. 这个架构在实践里表现很不错,agents之间的调用机制确保了agent可以把任务动态的分解成子任务去让更动agents解决, 而调用者和被调者间的对话机制使得计算有了超强的容错性:子agent失败了,它的调用者会去提醒他;调用者提供的任务描述有问题,被调者会反馈问题给调用者. 甚至它还缓解了context window资源受限问题:一个agent失忆了,但别的agent还记得,就可以提醒他.

基本计算单元:LLM和解释器的太极图

原谅我最终还是止不住痒用了这个民间科学爱好者最喜欢的词汇.但考虑到胡渊鸣大佬也用了并且感觉很好,我想那没事了.
接下来,我们将详细介绍AProcessor内部的结构。AProcessor内部是一个多轮对话。定义AProcessor功能的“程序”是一个提示生成机制,它从对话历史中生成每一轮对话的提示。对话是一对多的。在外部调用者输入请求后,LLM将与外围模块进行多轮对话,LLM以各种语法形式输出函数调用,系统调用外围模块生成结果并将结果放入回复消息中。最终,LLM得到答案并回应外部调用者,结束此次调用。但由于对话历史仍然保留,调用者可以再次调用以继续执行更多任务。

我们要介绍的最后一部分是LLM输出的解析模块。实际上,我们将LLM的输出文本视为半自然语言和半形式语言的“脚本”,并使用简单的解释器来执行它。我们可以使用正则表达式来表示精心设计的语法结构,将其解析为函数调用并执行。在这种设计下,我们可以设计更灵活的函数调用语法形式,比如具有某个固定标题(如“UPDATE MEMORY: …..”)的部分,也可以直接解析出并触发执行一个动作。这种隐式函数调用无需让LLM意识到其存在,只需让其严格遵循某种格式约定即可。对于最geek的可能性,我们留有余地。这里的解释器不仅可以使用正则表达式进行模式匹配,其Eval函数还是递归的,因而可以用于真正复杂的语法解析和动作执行。我们不知道这将用于什么,但留下一个酷炫的可能性似乎也不错,对吧?因此,在AProcessor内部,计算由LLM和解释器交替完成,它们的输出是彼此的输入,形成一个循环。这就是为啥本节标题叫这玩意儿的原因.

结果,以及未来展望

目前AIlice要有正常的表现,仍然需要gpt4级别的模型.不过前文也说了,这不是我们担心的问题.agents所需要的LLM并不需要海量的知识储备,而只需要常识和强大的reasoning能力.我乐观的预期在不远的将来我们会有一个这样的轻量级LLM出现(事实上,眼下的Open-Orca/Mistral-7B-OpenOrca就是一个命令理解能力极好的开源小模型,这也是我这种乐观的支柱之一).

AIlice的编程能力不错,在用户参与下可以轻松完成形形色色的编程小任务.将来的进化方向是通过更好的长短期记忆机制和针对大工程的经验注入,实现大软件工程的实现能力.我想,基于IACT这不是太难的事情.

调查功能还比较初级,只能针对一些简单主题,通过大量网络搜索和页面浏览收集信息整理出结果,还不能做到调研一个领域这种夸张的事情. 这个我最早想要的功能目前发展滞后.我们需要一种对大量文本形成一致理解的机制(在long context window LLM这种方案之外),我们总不能把所有的东西都放入context,也没有那么大显存去做这件事.这方面将来会继续想办法.

接下来最重大的事情是多模态模型的支持.这在目前的架构下是很直截了当的,但事关重大,我还要磨一会儿洋工.

希望明年,我们能在自己的电脑上拥有自己的Jarvis.

向未来的AI主致敬.

开源了个工作

养个AI在自己电脑里是我一直以来的愿望.但从未预想这个时刻会在我还年轻的时代到来.这一年是人类历史上从未有过的时刻,我时时为技术所昭示的未来感到激动和焦虑.

但有件事不能不做.在照顾我家的碳基小犊子和电脑上的硅基小生命之中艰难扑腾了小半年,总算拿出来一个雏形.一个支持agent自己创建及调用子agents,同时又支持agent间相互通讯的轻量级LLM Agent框架, AIlice.

AIlice已经有几个创建好的agents了,通过一个主agent将不同的任务分发给子agents.目前你可以让她去互联网上调研一个主题,或者阅读理解一篇文献,抑或自动编写运行代码.虽然还很简陋,但考虑到LLM模型的发展速度,我想一两年内就会有足以胜任这些工作的开源模型出现.GPT4上则目前就已经能达到非常不错的效果.

AIlice的构想初衷来自于我使用chatpdf之后,深感这项技术如果能用于针对一个领域的调研该多好.这是一个非常科幻的未来,我们把调研一个科研领域的任务交给agent,经过一天半天的努力工作,她再回来跟我们对话,解决你所有的疑问.当然现在AIlice离实现这个初衷还很远,但我想,这几年,我们就能见到这样一项技术的落地.

而另一方面,基于多agents对话的自动编程,效果好的让我意外.微软近期大火的autogen我试用了几次,确实激动人心.后来就在AIlice中也做了一个两角色对话完成编程任务的agent,三下五除二就能在docker容器里部署一个网站,或者去获取一些金融数据做计算分析绘图,这时候,会有一种触摸到未来脉搏的感觉.

当然,openai在突飞猛进,似乎很多应用层的事情都已经不值得做.但我想,并不尽然.比如需要大量计算时间的调研性工作,再比如需要数据保密的处理工作,都更倾向于使用本地开源模型.更重要的,AGI时代,一个高度中心化的科技公司掌握全世界的数据和计算命脉,这真的是个安全的选项吗?绝对不是.openai的使命是让人们为AGI时代即将到来的冲击做好认知准备,而开源AI全面落地的时代终将到来.

你有兴趣的话,不妨来玩玩.

AIlice on Github

若为自由故

两年前,加班到晚上十点的我打的回到嘉定南城空寂的两居室里,无意间从床底的灰尘里翻出一本书,Peskin的量子场论,书里的笔记仍如昨日,但封皮已经蒙尘。那时的床头经常青山乱叠,从场论到黑洞物理,却从来无暇读书。每天从公司回来倒头就睡,夜里书掉到地上,咕咚一声惊醒,沉淀了种种琐事的心头此刻无比清晰,我是谁,我本应该去做点什么。但终于有一天,它掉下去了,我没有醒来。

三年前我是一个理论物理方向的小研究生,生活在文献和据说叫做学术讨论的一种活动里。我想了解更多的事情,AdS/CFT,引力理论中的量子纠缠…后来我决定出逃,当你无法做自己想要做的事情,没必要去找一个虚假的安慰。

刚毕业那会儿兵荒马乱,最后找到了魔都的一家公司去做磁共振。创业公司的种种艰辛不需多说,每天深夜打电话叫的,不需报地址人家就知道你是哪家公司的。终归不是做自己喜欢的事,一年后智力和健康水平急剧下滑,离职。

我从小就曾思考自己将来的职业。成为物理学家?那是一个理想,如果走不通呢?互联网刚在大陆兴起时流行一个词儿,SOHO,自由职业,像所有理论物理方向的自由主义分子一样,这让我很向往。

2014年4月10日,我开始了解图像处理和计算机视觉。6月,把妹子从公司里拐出来,从广东迁徙回我们的第二故乡,一个北方的滨海小城。8月,我们有了第一个多路视频实时拼接产品。

这条路,我还算喜欢。

计算机这个年轻的学科算不上一个有深度的领域,但是它的确好玩。借助于前所未有的计算能力,有太多未知的可能等待人们去探索,而且这种探索,会几乎是实时的变成代码,以最廉价的方式给你试验结果。这种成就感是挺美的。

另一方面,它能够把数学、建模和逻辑能力很好地转换成物质收益,在这样一个社会,仰望星空的人应该首先有养活自己的能力。数千年来这个国家只靠沉思就可以生存的基本上只有和尚。我没事的时候仍然可以读点数学和物理,满足自己的好奇心,喜欢物理并非一定要到planck能区的荒原上冲锋陷阵。

这世界上充满了追逐基础科学(甚至是数学)而失意的理科人,据我所知,计算机和金融成为这类人最多的第二选择。我相信,每一个这样的同道,心中都有深藏的火焰,我们有好奇心,爱玩,喜欢创造出一个系统看它如愿运转起来所体验到的控制力与成就感,我们不甘于忍受旧世界的寡淡,不甘于日复一日毫无悬念的生活,不甘于自由被束缚。

基础科学或数学背景的人通常具有更高的眼光和高度的问题解决能力、学习能力,我相信这样的人最大的危险是被世界之大所稀释,所隔离。所以我想建立一个某种形式的社区,召集同道,或许可以互助,或许可以做些有趣的事情。

这项工作才刚刚开始,如果你是这样一个人,请加入我们的qq群

397499642