CAMEL:大型语言模型社会的“心智”探索沟通代理
12345678英文名称: CAMEL: Communicative Agents for “Mind” Exploration of Large Language Model Society中文名称: CAMEL:大型语言模型社会的“心智”探索沟通代理链接: https://arxiv.org/pdf/2303.17760.pdf代码: https://github.com/camel-ai/camel 4.4K Star作者: Guohao Li(李国豪), Hasan Abed Al Kader Hammoud, Hani Itani, Dmitrii Khizbullin, Bernard Ghanem机构: 沙特阿拉伯阿卜杜拉国王科技大学日期: 2023-03-31引用次数: 56
1 读后感
以往的工作流程主要通过人与 LLM 的交互来控制。文中作者使用一个 Agent
来取代人的计划和决策,而另一个 Agent
负责执行具体的操作。通过这两者的交互,实现复杂工具,从而把人们从繁重的工作中解脱出来。为了示范这个过程,作者开发了一个股票投资机器人。同时通过实验发现并总结了
A ...
论文阅读_股票预测强化学习_StockFormer
1 StockFormer
1234567中文名称:StockFormer: 混合交易机与预测编码英文名称:StockFormer: Learning Hybrid Trading Machines with Predictive Coding作者:Siyu Gao, Yunbo Wang∗, and Xiaokang Yang机构:MoE Key Lab of Artificial Intelligence, AI Institute, Shanghai Jiao Tong University发表时间:IJCAI-23代码:https://github.com/gsyyysg/StockFormer地址:https://www.ijcai.org/proceedings/2023/0530.pdf
2 读后感
这里采用了预测编码模型与强化学习的结合方法。三个独立的预测编码模型分别用于预测短期(1
天)和长期(5
天)的回报率,以及各股票间的动态相关性。在训练预测编码模型的过程中,可获取有价值的潜在状态,并将这些状态组合成一个状态空间,用于训练强化学习模型。
论文带来一些启发:可以将 ...
50行代码实现股票回测
1 引言
之前,尝试做股票工具一直想做的大而全,试图抓取长期的各个维度数据,然后统计或者训练模型。想把每个细节做到完美,结果却陷入了细节之中,最后烂尾了。
最近,听到大家分享了一些关于深度学习、时序模型、强化学习在股票预测方面的新论文。但是觉得这些理论与我们的实际操作还有很大的距离。目前好像更需要的是一些具体而实用的辅助工具。
这次,尝试用 50 行代码完成一个简单的股票回测工具。输入的数据是 A
股的股票代码和时间,通过工具抓取股票数据。然后编写了策略,并使用回测工具来展示策略在数据上的具体操作和盈亏。
具体使用场景如下:当我们想采用某种策略来操作某支股票时,可以选择想要购买的股票,或者选择与之类似的股票;然后,选择一个与当前大趋势相似的时段,用历史数据来验证这个策略是否可行,以及其可能带来的盈利效果。
你不会编写策略也没关系。这里使用的 backtrader 库自 2015
年就已经开源,相关资料丰富。一般的交易策略代码,编程机器人(如 gpt4,
copilot)都能根据文字描述直接编写,只需要稍作修改即可。
2 工具介绍
这里采用了两种工具,一是用于抓取 A 股股票数据的
a ...
开源工具_Aider_重塑编程体验
项目地址:https://github.com/paul-gauthier/aider
编程语言:主要使用 Python
Star:8.9K+
功能:在终端中直接与 GPT-3.5/GPT-4 交互,编写或修改代码
主要优点:增加了代码生成的可控性,一次可以修改多个文件
1 编程工具
以前我们使用的辅助编辑工具多数是嵌入在 IDE
里的插件,主要提供代码段和建议。或者与 Agent
结合,实现复杂项目。相对来说比较细碎且不可控,还是主要以人为主。
另外,编程时使用大模型和问答场景一样,也存在数据问题,例如如何精准地提问、如何在有限的上下文限制下传达重要信息、如何判断哪些信息最相关,以及如何在解决问题时节约
token 等。
与问答不同之处在于,编程返回内容有更高要求,生成的程序需要可执行,并且在修改代码的场景中最好能看到代码对比效果。同时,我们还有一些工具可以辅助生成数据,例如语法检查工具,在运行的错误信息传给大模型继续修改。通过
Agent 之间的配合可以实现多步组合效果。
目前这些功能基本由本地端的编程工具控制,最好能让程序员更为可控,比如批量调用;再如简化工作流程:查
-&g ...
Agent具体实现
1 适用场景
需要多步组合、选择路径的复杂问题。
该问题可以被拆分成多个子模块,每个子模块都能清晰地定义输入、输出和功能,并能判断是否达成目标。
可能感觉有解决的方法,但不能确定具体的每一步方法。
可能存在多种组合方式,而不仅限于单一的方法,并且我们无法确定最优的解决方案。
对于单个模块而言,只需将接口描述清楚,无需过多考虑它与其他模块之间的调用关系。
2 原理
Thought->Action->Observation (Repeated many times)。
代理根据用户输入及当前状态选择一个动作,执行该动作并观察结果,然后继续下一个动作。
有了代理,就不需要手动编写 if/else
逻辑了,只需将选项提供给模型,让其进行判断。
|500
(图片来自网络)
3 langchain agent
Langchain 本身提供一些工具,例如 Google 搜索、GitHub 和 Python
等。如果需要自己实现工具,则需要继承 BaseTool 类,并实现 run
方法。模型根据工具的描述调用相应的方法,并观察其返回结果。
3.1.1 类别
计划代理:通过 l ...
ffmpeg常用命令
1 取视频中的音频
1$ ffmpeg -i xxx.mp4 -vn -acodec libmp3lame -ar 44100 -ac 2 -ab 192k xxx.mp4
2 加字幕
1$ ffmpeg -i xxx.mp4 -vf "subtitles=xxx.srt:force_style='FontName=SimSun,Bold=-1,Fontsize=8,outline=1,Shadow=0,OutlineColour=&H555555&'" -c:a copy -f mp4 xxx_out.mp4
3 换声音
1$ ffmpeg -i xx.mp4 -i xx.mp3 -c:v copy -map 0:v:0 -map 1:a:0 xxx.mp4
4 参考
ffmpeg
使用方法
ffmpeg
字幕设置
推荐一个Obsidian皮肤
大道至简——皮肤的最高境界是你感觉不到它的存在。
自从开始使用 OB 以来,我几乎没有更换过皮肤,一直用 Blue
topaz。在使用了两年半后,我终于决定换成了新的皮肤 Border,它是今年
Obsidian 官方大奖 Gems of The Year 的最佳主题。
小伙伴问我为啥,我认真想了想:并不是因为它好看,而只是因为它可以减轻我的阅读负担,让阅读和写作不那么辛苦。我有一点轻微的阅读障碍,在面对大段文字时总是当然地排斥。所以更倾向于使用工具来改善情况,觉得没有必要非得通过锻炼自己来解决问题,毕竟我也练不出来。
Blue Topaz
细致细腻,这种透明的质感女生都很喜欢。
经过多次更新,当前版本更朴素了。
实际上只使用了主色 (蓝)
和灰两种颜色,比较清新,但这也限制了它的表达能力。
主色深蓝和浅蓝之间的区别并不明显,不对比常常看不出标题层级。
Border
标题没使用彩色,标题前用不同颜色区分层级,细细一条又不突兀。
标题从大到小分别是:红橙黄绿蓝紫,符合色谱基本认知。
白底有 Word
某个版本的风格,有种久违的熟悉感,暗底不完全黑比较柔和。
使用强刺激的颜色:粗 ...
开机自动启动autossh
1 功能
我有一个本地服务器,想通过网络服务器端口映射的方式供其他主机连接。具体使用
SSH 端口映射的方式,并且希望在重新启动后,登录之前也能正常连接。
2 原理
定期检查 SSH 连接是否仍然正常,并在发现连接中断或不稳定时重新启动 SSH
进程。
它会创建一个额外的 " 监控端口 "(通常由 -M
选项指定),通过这个端口发送和接收数据包。如果发现数据包不能通过这个监控端口到达远程服务器,就认为连接已断开。如果不设置
-M 端口,autossh 会依赖于 SSH 本身的心跳(通过
ServerAliveInterval 等参数)来进行监控。
3 操作
3.1 配置服务
123456789101112131415161718$ vi /etc/systemd/system/autossh.service编辑如下:[Unit]Description=Autossh tunnelWants=network-online.targetAfter=network-online.target [Service]Type=simpleUser=xieyanExecStart=autossh - ...
Obsidian_多文档管理插件Longform
1 使用场景
Longform 插件是 Obsidian
的一个功能强大的插件,用于帮助用户更好地管理复杂文档。它适用于写小说、长篇文档或管理复杂项目笔记等场景。
当文档很长时,一般将复杂内容都放在一个 markdown
文件中进行维护。我们常常将每个主题拆分为小文章,并在文章中相互链接。如果需要与他人分享这些文档,就比较麻烦。
在没有 Longform
插件之前,我们如何处理呢?首先,无法一次导出多个文档,只能手动合并后再导出;在维护项目时,可能需要生成索引文件,然后手动编辑这个文件以添加新文档,这也相当痛苦;文档之间的先后关系通过命名顺序(0_xx、1_xx)来调整,但如果改变顺序,则需要修改多个文件名。
2 原理
树型结构和网状结构都是比较松散的结构。无论笔记的重要性、大小还是时间顺序,对用户来说都是一样的。
而 Longform
可以看作是在树状结构和网状结构之外加入了一个“项目”的结构。每个项目包含多个文档,Longform
用以更好地组织这些文档,并提供视图、编辑、统计和导出功能。让我们能够专注于当前进行的项目,并快速切换到该项目,并管理文档之间的层次关系和先后关系。
具 ...
开源AI程序员SWE-Agent的实现方法
1 引子
前几天,AI 编程机器人 Devin
引起了热议。传言称:程序员的饭碗就要丢了。这两天,一个类似功能的产品
SWE-Agent 开源,在 SWE-Bench 上实现了与 Devin
类似的效果。下面让我们来看看 AI 程序员的具体实现方法。
2 信息
地址:https://github.com/princeton-nlp/SWE-agent
功能:修复 Github 库 Issue 中的问题。
3 原理
作者提出了:Agent-Computer Interface (ACI) 代理计算机接口。优化了
Agent 与计算机之间的衔接,使LLM
能够访问、查看、编辑和执行代码文件。
贡献如下:
添加了编辑时运行命令的
Linter,如果语法不正确,则不允许编辑命令通过。
为 Agent 提供了文件查看器,在每个回合只显示 100
行时,查看器效果最佳。作者构建的查看器支持上下文滚动,并且可以在文件中进行搜索。
为 Agent
提供了专门构建全目录字符串搜索命令,并发现以简洁的方式列出匹配项很重要。因为每次向模型展示每个匹配项反而会给模型带来更大混乱。
当命令的输出为空时, ...