GitHub 每周热点(231029)
潘忠显 / 2023-10-29
本周GitHub热点中,有几个程序员面试相关的窜升上来了。上周诺基亚宣布裁员1.4万人,寒潮持续中。
大规模语言模型相关的仓库相对减少,比较亮眼的是10月19日 NVIDIA 公开的 TensorRT-LLM 项目。
系统设计入门 - ByteByteGoHq/system-design-101
总 Star: 39535, 本周新增 Star: 21258
在美国大学课程编号系统中,编号101通常用于院系学科领域的初级入门课程。这种通用编号系统旨在使大学之间的转学更加容易。它还可以为不打算主修该学科的学生指明一门课程(例如,打算主修英语的学生会选择English 111,而不是English 101)。基于这种用法,“101”(发音为ONE -oh- ONE)变成了一个俚语,指某个主题的基本知识或者介绍性材料的集合。《牛津英语词典》从 1986 年开始收录了 “101” 这个俚语用法。
system-design-101 也是对系统设计相关各方面主题的介绍,广泛而不深入。
可以带新人快速的理解互联网系统的一些基础知识点,也可以作为老鸟用来巩固知识的列表。但是要深入了解某项知识,光看这个仓库还是不够的。
这里列举一下其一级目录的结构:
- Communication protocols
- CI/CD
- Architecture patterns
- Database
- Cache
- Microservice architecture
- Payment systems
- DevOps
- GIT
- Cloud Services
- Developer productivity tools
- Linux
- Security
- Real World Case Studies
比如,对 HTTPS 工作原理就只有一张简单的图:
再如 Twitter 的架构图:
技术面试手册 - yangshun/tech-interview-handbook
总 Star: 99683, 本周新增 Star: 3127
为忙碌的软件工程师精心准备的编码面试准备材料。如果你是想在科技公司找工作但对技术面试不熟悉的新手,或者是经验丰富的工程师,但是很久没有参加过面试而想出去找工作,都可以看看这个仓库。
相对于 GitHub 上有很多其他技术面试相关的仓库,这个仓库其实是对应一个网站:https://www.techinterviewhandbook.org/coding-interview-study-plan/。有独立的资源(而不是只是外部资源链接的整理),除了典型算法编码问题之外,还涵盖更多特定领域和非技术问题。具体地:
- 编码面试的最佳实践问题
- Grind 75 - 根据个性化需求定制 LeetCode 学习计划
- 如何准备编码面试
- 编码面试的注意事项
- 按主题分类的算法备忘单和技巧
- 软件工程师简历分步指南,帮助您准备 FAANG 简历
- 顶级科技公司提出的行为问题(behavioral interview questions)
- 前端面试准备
AirDrop替代品 - localsend/localsend
总 Star: 21431, 本周新增 Star: 3121
LocalSend 是一款 AirDrop 的开源跨平台替代品,可使用 REST API 和 HTTPS 加密在设备之间实现安全通信。
与其他依赖外部服务器的消息传递应用程序不同,它不需要互联网连接或第三方服务器,使其成为快速可靠的本地通信解决方案。
所有数据均通过 HTTPS 安全发送,并且 TLS/SSL 证书是在每台设备上动态生成的,从而确保最大程度的安全性。
开发者成长路线图 - kamranahmedse/developer-roadmap
总 Star: 255394, 本周新增 Star: 2057
面向开发人员的社区驱动的路线图、文章和资源,有具体的网站 https://roadmap.sh/。
这些路线图包括两方面,一方面是按照开发人员的角色区分的,比如:
- 前端路线图
- 后端路线图
- DevOps 路线图
- 全栈路线图
- 人工智能和数据科学家路线图
另外一方面是按照语言区分的,比如:
- JavaScript 路线图
- Java 路线图
- C++ 路线图
因为该项目证书不允许私自转发其中的路线图,这里不贴完整的图了,这里自行访问网站查阅,比如后端路线图https://roadmap.sh/backend,这里网站是交互式,可以单击节点来阅读有关主题的更多信息:
API集合 - public-apis/public-apis
总 Star: 263345, 本周新增 Star: 1748
之前介绍过,所有公共API的集合
另外有一个类似的项目 <sindresorhus/awesome>,总 Star: 275166, 本周新增 Star: 1518
OpenBMB/XAgent
总 Star: 3787, 本周新增 Star: 1434
面壁智能和清华大学 NLP 实验室共同推出的 XAgent,对标 AutoGPT, 可以实现自主解决复杂任务的全新 AI 智能体,以 LLM 为核心,能够理解人类指令、制定复杂计划并自主采取行动。
XAgent由三部分组成:
- 调度器 负责动态实例化和分派任务给不同的智能体。它允许我们添加新的智能体和改进智能体的能力。
- 规划器 负责为任务生成和校正计划。它将任务分解为子任务,并为它们生成里程碑,使智能体能够逐步解决任务。
- 行动者 负责采取行动实现目标和完成子任务。行动者利用各种工具来解决子任务,它也可以与人类合作来解决任务。
【案例】数据分析:展示双环机制的有效性
在这个案例中,我们将展示XAgent如何使用双环机制来解决数据分析任务。 我们将使用一个简单的数据集iris.zip
上传到XAgent,然后让XAgent分析数据集并生成一个报告。 XAgent将任务分解为4个子任务:
- 数据理解
- 验证Python环境
- 编写数据分析代码
- 编写报告,最终得到分析数据图
NVIDIA/TensorRT-LLM
总 Star: 2456, 本周新增 Star: 1308
背景:NVIDIA TensorRT™ 是用于高性能深度学习推理的SDK。 此 SDK 包含深度学习推理优化器和运行时环境,可为深度学习推理应用提供低延迟和高吞吐量。 在推理过程中,基于TensorRT 的应用程序的执行速度可比 CPU 平台的速度快40 倍。TensorRT 以 NVIDIA 的并行编程模型 CUDA 为基础构建而成,借助 TensorRT,可以优化在所有主要框架中训练的神经网络模型,精确校正低精度,并最终将模型部署到超大规模数据中心、嵌入式或汽车产品平台中。
自 2023 年 10 月 19 日起,NVIDIA TensorRT-LLM 现已公开,具体官方说明https://developer.nvidia.com/blog/nvidia-tensorrt-llm-supercharges-large-language-model-inference-on-nvidia-h100-gpus。
TensorRT-LLM 为用户提供了易于使用的 Python API 来定义大型语言模型 (LLM) 并构建包含最先进优化的 TensorRT 引擎,以便在 NVIDIA GPU 上高效地执行推理。TensorRT-LLM 还包含用于创建执行这些 TensorRT 引擎的 Python 和 C++ 运行时的组件。
利用 TensorRT-LLM,开发者不需要深入的 C++ 或 CUDA 专业知识,就能够部署、运行、调试各种大语言模型,还能获得顶尖性能表现,以及快速定制化的功能。
有另外一个相关项目 <NVIDIA/Stable-Diffusion-WebUI-TensorRT> 也上了本周热榜。总 Star: 810, 本周新增 Star: 170。
有记忆的GPT - cpacker/MemGPT
总 Star: 4954, 本周新增 Star: 1238
MemGPT(全称 Memory-GPT)是一个智能管理 LLM 中不同内存层的系统,以便在 LLM 的有限上下文窗口内有效地提供扩展上下文。
例如,MemGPT 知道何时将关键信息推送到矢量数据库以及何时在聊天中稍后检索它,从而实现永久对话。
项目对应的论文地址在 https://arxiv.org/abs/2310.08560。
具体功能点包括:
- 创建具有自我编辑记忆的永久聊天机器人
- 与您的数据对话 - 与您的 SQL 数据库或本地文件对话!
- 您还可以与文档交谈 - 例如询问LlamaIndex!
开源驾驶员辅助系统 - commaai/openpilot
总 Star: 43652, 本周新增 Star: 1217
openpilot是一个开源驾驶员辅助系统。目前,openpilot 为越来越多受支持的汽车品牌、型号和型号年份执行一些功能:
-
自适应巡航控制 (ACC)
-
自动车道居中 (ALC)
-
前方碰撞警告 (FCW)
-
车道偏离警告 (LDW)
-
基于摄像头的驾驶员监控 (DM) 功能会向分心和睡着的驾驶员发出警报
可以在 Comma 3X车内专用设备上运行,很多汽车品牌的汽车上可以运行,包括:本田、丰田、现代、日产、起亚等。
也可以在电脑上运行而无需汽车或硬件,可以对记录或模拟的数据运行 openpilot,以使用 openpilot 进行开发或实验。
使用 openpilot 的工具,可以绘制日志、重放驱动器并观看全分辨率摄像机流。
Python代码格式化 - psf/black
总 Star: 35132, 本周新增 Star: 1103
Black是不妥协的 Python 代码格式化程序。
通过使用它,意味着你得放弃对手动格式化细节的控制。反过来,Black为您提供高效、确定性和免于 pycodestyle
(该包以前称为 pep8
)格式化的烦恼。
Black 可以将所有代码的风格差异变到最小,加快 Code Review 的速度。可以帮你节省时间和精力,去做更重要的事情。
astral-sh/ruff
总 Star: 19158, 本周新增 Star: 744
使用 Rust 开发的,另外一个 Python 代码格式检查和格式化的软件,Lint 功能类似于分Flake8,Formatter 功能类似于 Black
Discord插件 - Vendicated/Vencord
总 Star: 4625, 本周新增 Star: 1087
Discord是由美国Discord公司所开发的一款专为社群设计的免费网络实时通话软件与数字发行平台,主要针对游戏玩家、教育人士、朋友及商业人士,用户之间可以在软件的聊天频道通过消息、图片、视频和音频进行交流。
Vencord 是一个可爱的 Discord 客户端配置插件工具:
薅羊毛工具 - xtekky/gpt4free
总 Star: 47546, 本周新增 Star: 906
g4f 是 gpt4free 的缩写,免费的 GPT4,利用这个项目可以免费地使用 GPT-3.5 和 GPT-4 的应用程序。
该项目实现原理,实际是从多个网站获取查询结果,然后将其整合在一起,以提供给用户免费使用。这些网站包括 bing.com、 you.com 等使用 OpenAI 的 api 查询结果的网站,这些网站已经向 OpenAI 付费,并且返回查询结果。
QA系统 - apache/incubator-answer
总 Star: 8583, 本周新增 Star: 650
Answer 是一个Apache基金项目。可帮助你在用户或团队之间建立问答社区。你可以在这里分享知识并帮助用户解决问题。
它是一个单体库,包含前端和后端。主要功能:
- 提问和回答 - 提出问题并从你的用户和团队那里获得答案。
- 组织内容 - 将你的内容组织为分类和标签。
- 集成 - 与你现有的工具和服务集成。
- 游戏化 - 奖励用户的贡献。
- 现代用户界面 - 现代且响应式的用户界面。
视频配音 - OpenTalker/video-retalking
总 Star: 2529, 本周新增 Star: 599
VideoReTalking 可根据输入音频编辑现实世界中头部说话视频的脸部,即使具有不同的情绪,也能生成高质量且口型同步的输出视频。
系统将这一目标分解为三个关联的任务:
- 具有规范表情的面部视频生成
- 音频驱动的口型同步
- 用于提高照片真实感的面部增强