Sirin Schariac

Thinking will not overcome fear but action will.

SGLang

Structured Language Model Programs

SGLang:Efficient Execution of Structured Language Model Programs Introduction Language Model Programs用于调度和控制LLM的生成过程,LM programs有两项共同的特点,(1) 包含了多个穿插在控制流中的LLM调用(对于完成复杂任务和提高整体质量十分关键); (2) 接受结构化...

Leetcode 300 Longest Increasing Subsequence

动态规划与贪心二分

300. Longest Increasing Subsequence 原题 300. Longest Increasing Subsequence 本题一共有两种解决思路,首先是动态规划,想法和思路比较简单,复杂度为$O(n^2)$。另一种就是结合了贪心思想的二分查找,这种方法比较难以想到,但是复杂度更低,只有$O(n\log n)$。 动态规划思路 我们用dp[i]表示以num...

适用于并发LLM服务的高效的GPU池化

Aegaeon

Introduction Background GPU集群上运行的大模型对于资源的利用率十分不平衡,来自用户的请求模式难以预测,绝大部分的模型只会接收极少数的推理请求,资源浪费严重,17.7%的GPU资源只被用于服务1.35%的请求。而热门的模型则会承受超过其预留资源容量的突发流量的请求。 Existing Methods & Limitations 为了让每个GPU...

Leetcode Jump Game 1 & 2

贪心

Jump Game 原题 55. Jump Game 45. Jump Game II 这两道题都是比较经典的贪心场景,通过局部最优解得到全局最优解。 第一题要判定能否到达,第二题在保证能够到达的情况下需要最少几步。 T1解答思路 首先对于第一题来说,我们既然要判定能否到达,第一个想法肯定是每一步的时候我都判定一下当前最远能到哪,如果能到最后一个位置,那就成功了...

Leetcode 295 Find Median from Data Stream

大根堆与小根堆

Find Median from Data Stream 原题 295. Find Median from Data Stream 解答思路 本题涉及到一个比较重要且常见的问题,如何动态的去维护数组的中位数? 对于这个问题,既可以用红黑树来解决,也可以用堆来解决。但前者维护起来比较复杂,后者更加简单易用,所以我们通常采用堆来解决。 中位数能够将数组分为两部分,本题...

Leetcode 215 Kth Largest Element in an Array & 912 Sort an Array

快速选择与快速排序

Quick Select and Quick Sort 原题 215. Kth Largest Element in an Array 912. Sort an Array 解答思路 这两道题都涉及到一个重要的排序思想:快速排序。而快速排序的核心就是快速选择算法。 对于一个无序的数组,我们要如何找到第k大的元素呢? 对于一个递增的数组,第k大的元素的下标应该是n...

Leetcode 215 Kth Largest Element in an Array

大根堆

大根堆 除了快速排序、归并排序之外,一个比较常见的更加灵活的排序方式是堆排序。特别是在215. Kth Largest Element in an Array一题中,堆排和快速选择算法都是非常出色的解决方法。 那么堆排是如何实现的呢? 其核心思想是将数组看作一棵二叉树,保证二叉树的父节点大于其左右子树内的左右节点,从而构建起一个大根堆(如果是小于,那么就是小根堆)。对于节点idx如果其...

Leetcode 84. Largest Rectangle in Histogram

递增栈

84. Largest Rectangle in Histogram 原题 84. Largest Rectangle in Histogram 解答思路 本题的核心思路是采用递增栈来做,但为什么? 这是因为,在计算柱状图中的矩形面积时,核心思想是关注每个Bar所在最大矩阵的面积是多少。因为当前这个Bar_x的高度是已知的,那我们想知道的就是这个Bar_x所在矩形的...

Leetcode 739 Daily Temperatures

单调栈

739. Daily Temperatures 原题 739. Daily Temperatures 解答思路 这道题的思路比较简单,很容易看出来是个单调栈。但具体怎么构造和维护这个单调栈却需要多思考和注意细节。 一开始我对于本题的解答就复杂化了,另外用了type Record struct来存储气温、天数、下标等信息,还采取在栈内遍历的方式来更新天数,最后自然TL...

闭区间二分查找

闭区间二分查找模板

闭区间二分查找 原题 153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode) 33. 搜索旋转排序数组 - 力扣(LeetCode) 闭区间二分查找模板 func binarySearch(nums[] int, target int) int { low, high := 0, len(nums)-1 for low < high { mid...