每日Github探索:拥抱新技术,探索创新世界

1. huggingface/lerobot

图片[1]-每日Github探索:拥抱新技术,探索创新世界-诚哥博客

🌟截止发稿星数: 2108
🇨🇳仓库语言: Python
🤝仓库开源协议:Apache License 2.0
🔗仓库地址:https://github.com/huggingface/lerobot

🤗 LeRobot是由Hugging Face团队开发的一个专注于真实世界机器人的机器学习库,旨在通过提供模型、数据集和工具,降低机器人领域的入门门槛,促进数据和预训练模型的共享。该库基于PyTorch构建,包含模仿学习和强化学习等领域的尖端技术,并已证明这些技术可以成功应用于现实世界。

🤗 LeRobot提供了预训练模型、人类收集演示的数据集以及模拟环境,使得用户无需组装机器人即可开始使用。未来计划增加对市场上最具性价比和能力的机器人的支持。预训练模型和数据集托管在Hugging Face社区页面:huggingface.co/lerobot

库中包含多个预训练模型在模拟环境中的示例,如ACT政策在ALOHA环境、TDMPC政策在SimXArm环境、Diffusion政策在PushT环境等。此外,还对Tony Zaho、Zipeng Fu、Cheng Chi、Zhenjia Xu、Nicklas Hansen、Yunhai Feng、Vincent Moens等人的开源工作表示感谢,他们的贡献对LeRobot的设计和实现起到了重要作用。

安装🤗 LeRobot非常简单,只需克隆仓库、创建虚拟环境并使用pip安装即可。库还提供了gymnasium环境的额外安装选项,如aloha、xarm和pusht。通过Weights and Biases进行实验跟踪也是支持的。

🤗 LeRobot的目录结构清晰,包含示例、配置文件、通用类和实用程序、脚本、输出结果和测试等。用户可以通过脚本可视化数据集、评估预训练政策或训练自己的政策。对于贡献者,库提供了详细的贡献指南,包括如何添加新数据集和预训练政策的说明。

最后,如果用户希望引用此工作,可以使用提供的BibTeX条目。🤗 LeRobot的目标是推动机器人技术的民主化,让更多人能够参与并从中受益。

2. HVision-NKU/StoryDiffusion

图片[2]-每日Github探索:拥抱新技术,探索创新世界-诚哥博客

🌟截止发稿星数: 3377
🇨🇳仓库语言: Jupyter Notebook
🤝仓库开源协议:Apache License 2.0
🔗仓库地址:https://github.com/HVision-NKU/StoryDiffusion

StoryDiffusion 是一款创新的图像和视频生成工具,它通过一致的自注意力机制实现了长序列内角色一致的图像生成,并且能够预测长距离视频中的运动变化。该工具的核心特性包括两个主要部分:一是用于长序列图像生成的角色一致性自注意力模块,该模块与所有基于SD1.5和SDXL的图像扩散模型兼容,用户需提供至少3个文本提示以驱动生成过程,推荐使用5-6个提示以获得更好的布局效果;二是用于长距离视频生成的运动预测器,它能够在压缩的图像语义空间中预测条件图像之间的运动,实现更大的运动预测范围。StoryDiffusion 不仅能够生成连贯的漫画,还能将生成的图像转换为视频,通过无缝过渡实现两阶段长视频生成。目前,该项目提供了漫画生成和图像到视频生成的源代码,以及一个基于gradio的演示应用。用户可以通过提供的jupyter notebook或启动本地gradio演示来体验生成过程。项目团队鼓励用户通过电子邮件进行交流和讨论,同时强调用户在使用该工具时应遵守当地法律并负责任地使用。StoryDiffusion 的目标是为AI驱动的图像和视频生成领域带来积极影响,并为用户提供一个强大的创作工具。

3. ejoy/ant

🌟截止发稿星数: 3413
🇨🇳仓库语言: Lua
🤝仓库开源协议:MIT License
🔗仓库地址:https://github.com/ejoy/ant

Ant游戏引擎,由灵犀互娱倾力打造,是一款开源的游戏开发利器。目前,该项目已公开代码仓库,但尚未正式发布,其文档和示例等资源正在Wiki上逐步完善。对于开发者而言,若在探索过程中遇到任何疑问,可在Discussions板块发帖交流,而Issues板块则专为Bug追踪而设。

在引擎的使用上,首先需更新并初始化第三方库,通过执行git submodule update --init命令来完成。随后,根据不同的操作系统搭建编译环境:在Windows系统中,可选择MSVC或MINGW方式进行安装;而在MacOS系统中,则需安装xcode和ninja。此外,通用步骤中还包括了编译构建工具luamake的安装。

编译过程分为多个步骤,首先编译runtime,使用luamake命令;接着编译tools,通过luamake -mode release tools命令实现,其中release模式相比debug模式效率更高。编译选项可通过luamake [target] -mode [debug/release]命令进行设置,默认模式为debug。

运行引擎时,可通过bin/msvc/debug/ant.exe test/simple/main.lua命令运行一个简单示例。若要启动编辑器,则使用bin/msvc/debug/lua.exe tools/editor/main.lua [projectdir]命令,例如test/simple

调试方面,需安装VSCode并配置Lua Debug插件,随后在.vscode/launch.json中添加调试配置。Ant游戏引擎的目录结构清晰,包括编译结果的bin目录、编译中间结果的build目录、C/C++代码的clibs目录、引擎基础支持代码的engine目录、功能包的pkg目录、不同平台运行时支持的runtime目录、测试工程的test目录以及相关工具的tools目录。

Ant游戏引擎以其开源的特性,为游戏开发者提供了一个强大而灵活的平台,无论是编译环境的搭建,还是编译、运行、调试的流程,都体现了其设计的专业性与便捷性。随着文档和示例的不断完善,Ant游戏引擎有望成为游戏开发领域的一颗新星。

4. hbb1/2d-gaussian-splatting

图片[3]-每日Github探索:拥抱新技术,探索创新世界-诚哥博客

🌟截止发稿星数: 842
🇨🇳仓库语言: Python
🤝仓库开源协议:Other
🔗仓库地址:https://github.com/hbb1/2d-gaussian-splatting

本仓库提供了名为“2D Gaussian Splatting for Geometrically Accurate Radiance Fields”的论文的官方实现,该论文通过使用一组2D定向圆盘(表面元素)来表示场景,并采用透视正确的可微分光栅化技术来光栅化这些表面元素。该方法还开发了正则化技术以提高重建质量,并设计了用于高斯散射的网格化方法。最新特性包括支持无界网格提取,通过将空间收缩到一个球体并执行自适应TSDF截断来实现。安装过程简单,通过conda环境创建和激活即可。训练和测试命令行参数提供了调整选项,如正则化参数和深度比率,以适应不同数据集。此外,还提供了快速示例和自定义数据集的准备指南。评估脚本用于新视角合成和几何重建的完整评估。该项目建立在3DGS、Open3D、Multinerf等多个优秀项目的基础上,并对这些项目的作者表示感谢。如果该代码或论文对您有所帮助,请考虑引用相关文献。

5. wandb/openui

图片[4]-每日Github探索:拥抱新技术,探索创新世界-诚哥博客

🌟截止发稿星数: 11338
🇨🇳仓库语言: TypeScript
🤝仓库开源协议:Apache License 2.0
🔗仓库地址:https://github.com/wandb/openui

OpenUI是一个旨在简化UI组件构建过程的开源项目,它致力于使UI开发变得有趣、快速和灵活。该项目由W&B团队开发,用于测试和原型化基于大型语言模型(LLM)的强大应用程序构建工具的下一代工具。OpenUI允许用户通过想象力描述UI,并实时渲染,支持将HTML转换为React、Svelte、Web Components等多种格式。虽然它不像v0那样精致,但作为开源项目,它提供了更多的灵活性。

用户可以通过提供的链接尝试在线演示,也可以在本地运行OpenUI,使用Ollama提供的模型。安装Ollama后,可以拉取如CodeLlama等模型,并通过简单的命令行操作在本地运行OpenUI。此外,OpenUI还支持通过Docker Compose和Docker进行部署,用户可以根据自己的环境选择合适的方式。

在开发方面,OpenUI提供了一个dev container配置,方便开发者快速开始工作。GitHub Codespaces也支持OpenUI,开发者可以在Codespaces中运行服务器和前端服务,实现自动重载和浏览器实时更新。Ollama在Codespaces中自动安装,并预先下载了llava模型,用户可以通过设置选择不同的Ollama模型。

OpenUI的详细开发指南和资源可以在前端和后端的README文件中找到,为开发者提供了全面的指导和帮助。总的来说,OpenUI是一个强大的开源工具,旨在提升UI开发的效率和乐趣,适合希望在LLM基础上构建应用程序的开发者和团队使用。

6. langgenius/dify

图片[5]-每日Github探索:拥抱新技术,探索创新世界-诚哥博客

🌟截止发稿星数: 27937
🇨🇳仓库语言: TypeScript
🤝仓库开源协议:Other
🔗仓库地址:https://github.com/langgenius/dify

Dify是一个开源的LLM(大型语言模型)应用开发平台,它提供了一个直观的界面,集成了AI工作流、RAG(检索增强生成)管道、代理功能、模型管理、可观察性特性等,使得从原型到生产的过程变得迅速而高效。Dify的核心特性包括:1. 工作流:在可视化画布上构建和测试强大的AI工作流,利用所有以下特性和更多。2. 全面的模型支持:无缝集成数百个专有/开源LLM,来自数十个推理提供商和自托管解决方案,涵盖GPT、Mistral、Llama3以及任何OpenAI API兼容模型。3. 提示IDE:直观的界面用于制作提示、比较模型性能,并为基于聊天的应用添加额外功能,如文本到语音。4. RAG管道:广泛的RAG能力,覆盖从文档摄入到检索的所有内容,对PDF、PPT等常见文档格式的文本提取提供开箱即用的支持。5. 代理功能:可以基于LLM函数调用或ReAct定义代理,并添加预构建或自定义工具。Dify提供了50多种内置工具,如Google搜索、DELL·E、Stable Diffusion和WolframAlpha。6. LLMOps:监控和分析应用日志和性能随时间的变化。您可以根据生产数据和注释持续改进提示、数据集和模型。7. 后端即服务:Dify的所有功能都带有相应的API,因此您可以轻松地将Dify集成到自己的业务逻辑中。

Dify的使用方式包括:1. 云服务:我们提供了一个Dify Cloud服务,任何人都可以零设置尝试。它提供了自部署版本的所有功能,并在沙盒计划中包含200次免费GPT-4调用。2. 自托管Dify社区版:通过快速启动指南快速在您的环境中运行Dify。使用我们的文档获取进一步的参考和更深入的说明。3. Dify for企业/组织:我们提供额外的以企业为中心的功能。安排与我们开会发送电子邮件讨论企业需求。

Dify还鼓励社区贡献,包括代码贡献、社交媒体分享、在活动和会议上的推广,以及帮助翻译Dify到其他语言。社区和联系方式包括GitHub讨论、GitHub问题、电子邮件、Discord和Twitter。安全问题应直接发送到security@dify.ai。该仓库根据Dify开源许可证提供,基本上是Apache 2.0,带有几个额外的限制。

7. assafelovic/gpt-researcher

图片[6]-每日Github探索:拥抱新技术,探索创新世界-诚哥博客

🌟截止发稿星数: 9514
🇨🇳仓库语言: Python
🤝仓库开源协议:MIT License
🔗仓库地址:https://github.com/assafelovic/gpt-researcher

GPT Researcher是一款专为多样化在线研究任务设计的自主代理工具。它能够生成详细、事实性和无偏见的研究报告,并提供定制选项,专注于相关资源、大纲和课程。受到Plan-and-Solve和RAG论文的启发,GPT Researcher解决了速度、确定性和可靠性问题,通过并行化代理工作,提供更稳定的性能和更快的速度。该工具旨在通过利用AI的力量,为个人和组织提供准确、无偏见和事实信息。GPT Researcher的优势在于,它能够快速形成客观结论,避免当前大型语言模型(LLMs)基于过时信息和幻觉风险的问题,以及现有服务在网络搜索时可能导致的表面和偏见回答。其架构包括“规划者”和“执行”代理,规划者生成研究问题,执行代理根据每个生成的研究问题寻找最相关的信息。最终,规划者过滤和聚合所有相关信息,并创建研究报告。GPT Researcher利用gpt3.5-turbo和gpt-4-turbo模型完成研究任务,平均研究任务约3分钟完成,成本约为$0.1。它具有生成研究、大纲、资源和课程报告的功能,能够生成超过2000字的长篇详细研究报告,聚合超过20个网络资源以形成客观和事实性结论,并包括易于使用的网页界面。用户可以通过Python 3.11或更高版本安装该工具,设置API密钥后即可开始使用。此外,GPT Researcher还提供了详细的文档,包括入门指南、定制和配置、示例演示、集成和Docker支持等。该工具欢迎贡献,并提供了贡献指南和路线图页面。用户可以通过Discord社区或电子邮件与开发者联系。需要注意的是,GPT-4语言模型的使用可能会产生较高的成本,用户需负责监控和管理自己的令牌使用和相关费用。

8. gabime/spdlog

🌟截止发稿星数: 22410
🇨🇳仓库语言: C++
🤝仓库开源协议:Other
🔗仓库地址:https://github.com/gabime/spdlog

spdlog 是一个高性能的 C++ 日志库,以其快速和灵活的特点受到开发者的青睐。它支持头文件只有和编译两种模式,并且兼容多种平台,包括 Linux、Windows、macOS 和 Android 等。通过各种包管理器,如 Debian、Homebrew、MacPorts 等,可以轻松安装 spdlog。

该库提供了丰富的功能,包括异步模式、自定义格式化、多线程/单线程日志记录器、多种日志目标(如旋转日志文件、每日日志文件、控制台日志、syslog、Windows 事件日志等),以及易于扩展的自定义日志目标。spdlog 还支持日志过滤,允许在运行时和编译时修改日志级别,并支持从命令行参数或环境变量加载日志级别。

使用 spdlog 非常简单,通过包含相应的头文件和调用 spdlog 提供的宏和函数,即可实现日志记录。例如,创建一个基本的控制台日志记录器,只需包含 “spdlog/spdlog.h” 并调用 spdlog::info() 函数。此外,spdlog 还支持创建旋转文件日志记录器、每日日志记录器等,以及实现自定义的日志目标。

spdlog 的性能非常出色,通过提供的基准测试可以看到,在同步模式和异步模式下,它都能保持高效率的日志记录。详细的文档可以在项目的 wiki 页面找到,为开发者提供了全面的指南和示例。

总的来说,spdlog 是一个功能强大、易于使用且性能卓越的 C++ 日志库,适用于各种规模的项目,无论是小型应用还是大型企业级系统,都能提供稳定可靠的日志记录支持。

9. Blealtan/efficient-kan

🌟截止发稿星数: 1790
🇨🇳仓库语言: Python
🔗仓库地址:https://github.com/Blealtan/efficient-kan

本仓库提供了一种高效的Kolmogorov-Arnold网络(KAN)实现方案。原始的KAN实现存在性能问题,主要是因为它需要将所有中间变量扩展以执行不同的激活函数。对于具有in_features输入和out_features输出的层,原始实现需要将输入扩展为一个形状为(batch_size, out_features, in_features)的张量以执行激活函数。然而,所有激活函数都是一组固定基函数的线性组合,这些基函数是B样条。因此,我们可以将计算重新表述为激活输入与不同的基函数,然后线性组合它们。这种重新表述可以显著降低内存成本,并将计算简化为直接的矩阵乘法,自然适用于前向和后向传递。

关键问题在于稀疏化,这是KAN可解释性的关键。作者提出了一种在输入样本上定义的L1正则化,这需要在(batch_size, out_features, in_features)张量上进行非线性操作,因此与重新表述不兼容。我改为使用在权重上的L1正则化,这在神经网络中更为常见,并且与重新表述兼容。作者的实现确实包括了这种正则化,所以我认为它可能有所帮助。需要更多的实验来验证这一点;但至少原始方法在追求效率时是不可行的。

另一个区别是,除了可学习的激活函数(B样条),原始实现还包括每个激活函数的可学习尺度。我提供了一个名为enable_standalone_scale_spline的选项,默认设置为True以包含此功能;禁用它将使模型更高效,但可能会损害结果。这需要更多的实验。

2024年5月4日更新:@xiaol暗示base_weight参数的常量初始化在MNIST上可能是一个问题。目前,我已经将base_weightspline_scaler矩阵的初始化更改为kaiming_uniform_,遵循nn.Linear的初始化。这在MNIST上似乎效果好得多(从约20%提高到约97%),但我不确定这在一般情况下是否是一个好主意。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容