返回首页
最新
我一直在开发 Fast LiteLLM——一个用于流行的 LiteLLM 库的 Rust 加速层,并且我有一些有趣的经验,可能会引起其他开发者的共鸣,他们也在努力从现有系统中挤出性能。
我的假设是,作为一个 Python 库,LiteLLM 会有很多优化的低垂果实。因此,我开始使用 PyO3 创建一个 Rust 层,以加速性能关键部分:令牌计数、路由、速率限制和连接池。
**方法**
- 使用 tiktoken-rs 构建令牌计数的 Rust 实现
- 添加无锁数据结构 DashMap 以支持并发操作
- 实现异步友好的速率限制
- 创建猴子补丁 shim 以透明地替换 Python 函数
- 添加全面的功能标志以实现安全、渐进的发布
- 开发性能监控以实时跟踪改进
在构建完所有 Rust 加速后,我进行了全面的基准测试,比较了基线 LiteLLM 和经过 shim 处理的版本:
| 功能 | 基线时间 | Shimmed 时间 | 加速比 | 改进 | 状态 |
|---------------------|----------------|------------------|------------|--------------|------------|
| token_counter | 0.000035s | 0.000036s | 0.99x | -0.6% | |
| count_tokens_batch | 0.000001s | 0.000001s | 1.10x | +9.1% | |
| router | 0.001309s | 0.001299s | 1.01x | +0.7% | |
| rate_limiter | 0.000000s | 0.000000s | 1.85x | +45.9% | |
| connection_pool | 0.000000s | 0.000000s | 1.63x | +38.7% | |
结果表明,LiteLLM 已经相当优化!核心的令牌计数几乎没有变化(慢了 0.6%,可能在测量噪声范围内),而最显著的提升来自于更复杂的操作,如速率限制和连接池,Rust 的并发原语在这些方面确实产生了实质性的差异。
**关键收获**
1. 不要假设现有库是低效的——维护者通常对他们的领域非常了解。
2. 关注算法改进而非重新实现——有时候,更好的方法胜过更快的语言。
3. 微基准测试可能会产生误导——现实世界的性能影响差异显著。
4. 最大的收益往往来自复杂部分,而非简单操作。
5. 即使是“适度”的改进在规模上也可能很重要——在高吞吐量应用中,速率限制的 45% 改进是有意义的。
虽然核心的令牌计数几乎没有改善,但速率限制和连接池的提升仍然为高流量用例提供了价值。我构建的基础设施(功能标志、性能监控、安全回退)为未来的优化奠定了坚实的基础。
该项目继续在 GitHub 上以 Fast LiteLLM 的名义进行,欢迎对 Rust-Python 集成模式感兴趣的朋友参与,尽管性能提升让人谦卑。
编辑:为了澄清——token_counter 的负性能可能在测量的噪声范围内,这表明 LiteLLM 的令牌计数已经相当优化。而在速率限制和连接池方面超过 45% 的提升仍然为高吞吐量应用提供了价值。
人工智能正在改变数据库系统。到目前为止,最大的影响可能是自然语言与查询语言之间的转换,即文本到SQL(Text-to-SQL)。然而,另一个巨大的创新正在酝酿中。
我非常兴奋地发布第131期Weaviate播客,嘉宾是麻省理工学院的博士生Matthew Russo!
人工智能为我们的查询语言提供了新的语义操作符。例如,我们都熟悉WHERE过滤器。现在我们有了AI_WHERE,在这个操作中,一个大型语言模型(LLM)或其他人工智能模型可以计算过滤值,而无需它已经在数据库中可用!
```sql
SELECT * FROM podcasts AI_WHERE “Text-to-SQL” in topics
```
语义过滤器只是冰山一角,语义操作符的列表还包括语义连接、映射、排序、分类、分组和聚合等!
而且这还不止于此!关系代数的一个核心思想是查询规划,以及找到应用过滤器的最佳顺序。例如,假设你有两个过滤条件:汽车是红色的,以及汽车是BMW。现在假设数据集中只有100辆BMW,但有50,000辆红色汽车!首先应用BMW过滤器将限制下一个过滤器的数据集大小!
随着大型语言模型的参与,这一基础思想现在有了各种扩展!这个机会催生了新的查询引擎和声明式优化器,如Palimpzest、LOTUS等!
在这个播客中有很多有趣的内容,我很喜欢与Matthew讨论这些话题,希望你也会觉得有趣!
YouTube: https://youtu.be/koPBr9W4qU0
Spotify: https://spotifycreators-web.app.link/e/ddUhVMmLoYb
Medium: https://medium.com/@connorshorten300/semantic-query-engines-with-matthew-russo-weaviate-podcast-131-131a42bbc521
相关内容:<i>更奇特的思考:年度最佳科幻创意</i> - <a href="https://news.ycombinator.com/item?id=45785154">https://news.ycombinator.com/item?id=45785154</a> - 2025年11月(75条评论)
我刚刚开发了一个新工具,旨在让开发过程中管理 webhooks 更加轻松(希望也能有点乐趣),希望能得到大家的反馈。<p>请尽情批评我,HN。