ICWS 2024 _ 基于生成长度预测的大语言模型推理请求调度

ICWS部分会议论文 ICWS部分会议论文,供SOA方向研究者参考 立即下载

随着技术的快速迭代,大语言模型(Larage Langugage Model, LLM )在各种场景下都展示出强大的文本处理能力,越来越多的业务期待通过接入大模型服务,提升业务效果。区别于传统RPC请求服务时间相近,大模型请求服务时间受输出长度影响差异明显,同时每个请求所需的推理资源以及推理时间都无法事先感知,导致传统请求调度方案面临以下两个问题:(1) 当一个批次中请求的生成长度不同时,生成长度较短的请求需要等待生成长度较长的请求完成后才能一起返回,造成了计算浪费,影响了推理速度。(2)由于具有较长的生成长度的请求会产生更多的键值缓存,会占用更多的 GPU 显存。在不知道请求生成长度的情况下,静态批处理总是使用一个较小的批次规模(Batch Size)来避免显存溢出(Out of Memory, OOM)错误,无法充分利用GPU的计算能力。

本文尝试从请求调度的的角度提高 LLM 的推理性能,提出面向 LLM 推理的请求调度系统Magnus 。它通过对请求的生成长度进行预测,将生成长度相似的请求放在同一个批次(Batch)中进行处理,来降低计算浪费并增大批次规模,从而降低请求响应时间并提高大模型推理的吞吐量。实验表明,Magnus 可以将响应时间降低 89.7%,请求吞吐量提高 234%。在这项工作中,我们显著提高了静态批处理(Static Batching)的吞吐量,在未来,我们将进一步探索基于生成长度预测的请求调度方案在持续批处理(Continuous Batching)中的应用。

该工作目前已经被服务计算领域会议 IEEE International Conference on Web Services (ICWS) 录用,技术细节可以查看预印版: https://arxiv.org/abs/2406.04785

image.png

研究背景

在这里插入图片描述

随着参数规模的增加,基于 transformer 的语言模型在各种自然语言处理(NLP)任务上都表现出强大的能力,这可以使许多应用程序受益。然而,由于成本过高,大多数应用程序开发人员无法负担训练和部署 LLM 的高昂费用。因此,诸如 OpenAI、谷歌和阿里巴巴等人工智能领域的科技公司将他们的 LLM 作为服务发布,并允许开发人员通过 API 访问,即语言模型即服务(Language Mode as a Service, LMaaS)。

如图 1 所示,在 LMaaS 场景中,应用程序将用户输入的文本附上指令作为请求,发送给 LLM 进行处理。例如,VSCode上的代码助手插件可以通过在用户的代码前加上指令“Fix bugs in the following code:”作为请求发送给 LLM 服务从而实现程序漏洞修复功能。在服务端,来自不同应用程序的提示被混合在一起然后分批,并由部署在图形处理器(Graphics Processing Unit, GPU)等加速硬件上的 LLM 实例进行批处理。

由于 LMaaS 场景中的应用,如机器翻译和程序修复,更多地关注生成质量而不是多样性。因此,通常采用贪婪采样和波束搜索(Beam Search)[1]。考虑到波束搜索的计算开销很大, LLM 往往采用贪婪采样方式生成文本,因此相同的请求的生成结果总是相同的。

图2:静态批处理示例

现有的深度神经网络推理系统,如Tensorflow serving [2] 和Triton Inference Server [3] 利用先到先服务的方式以固定的批次规模处理请求,在本文中我们将这种调度策略称为朴素调度(Vanilla Scheduling),当使用静态批处理(如图2所示)时,朴素调度会导致两个严重影响批处理效率的问题。首先,当一个批次中请求的生成长度不同时,生成长度较短的请求需要等待生成长度较长的请求完成后才能一起返回,造成了计算浪费,影响了推理速度。其次,由于具有较长的生成长度的请求会产生更多的键值缓存,会占用更多的 GPU 显存。在不知道请求生成长度的情况下,静态批处理总是使用一个较小的批次规模来避免显存溢出 (Out of Memory, OOM)错误。因此,GPU 强大的并行计算能力无法得到充分利用,降低了系统总体吞吐量。

研究动机

很多应用的请求生成长度和用户输入呈现强正相关性

在这里插入图片描述

我们发现在 LMaaS 场景下,有许多流行应用,其请求生成长度与原始用户输入文本长度呈正相关。例如机器翻译(Machine Translation, MT)、语法纠错(Grammar Correction, GC)、文本去毒(Text Detoxification, TD)、代码翻译(Code Translation, CT)、漏洞修复(Bug Fixing, BF)和代码注释(Code Comment, CC)。为了证实这一结论,我们从现有数据集中为每个应用构造了 2000 个请求,并将这些请求使用 ChatGLM-6B[4]、Qwen-7B-Chat[5] 和 Baichuan2-7B-Chat[6] 三个 LLM 进行处理。我们将请求生成长度和用户输入长度进行可视化展示(如图 3)。可以发现,在这些应用中用户输入文本的长度与生成文本的长度具有显著的正相关性。

在这里插入图片描述

表I中展示了用户输入长度和请求生成长度的皮尔逊系数。从中我们可以看出,对于三种大型语言模型 ChatGLM-6B, Qwen-7B-Chat 和 Baichuan2-7B-Chat,大多数应用请求的用户输入长度和请求输出长度的皮尔逊系数都大于0.8,表明存在强烈的正相关性。因此,对于这些应用,用户输入长度可以极大地帮助预测请求的生成长度。

生成长度预测可以显著提高 LLM 推理性能

图4:朴素调度 vs. 基于生成长度预测的调度方案Magnus
图4:朴素调度 vs. 基于生成长度预测的调度方案Magnus

为了初步验证基于长度预测方案的可行性,我们在 NVIDIA V100 32GB GPU 上部署了一个 ChatGLM-6B LLM 实例进行实验。在实验中,请求长度和生成长度均为 1000 左右的 "大 "请求和请求长度和生成长度均为 10 左右的 "小 "请求按 图 4(a) 所示的顺序到达。在实验中,我们利用 huggingface-transformers 作为推理引擎来加载和运行 LLM 。如图 4(b)所示,朴素调度按照达到的顺序对请求进行批处理,批次规模固定为 7,总处理时间为 242 秒。然而,基于生成长度预测的调度方案 Magnus ,将小请求和大请求分别分为两个批次。由于小请求占用的显存少,因此可以使用更大的批次规模,从而充分发挥 GPU 的计算能力。如图 4(c) 所示,大请求和小请求的批次规模分别为 18 和 3,总处理仅仅时间为 60s,大大优于朴素调度。这说明生成长度预测可以显著提高 LLM 推理性能。

系统设计

基于上述的初步数据分析和实验探索,我们提出了一种基于生成长度预测的请求调度系统。Magnus 包含四个核心组件:(1)请求生成长度预测器;(2)适应性批次组装器根据请求长度预测的结果将请求分为不同批次;(3)批处理时间估计器(4)最高响应比优先批调度器根据估计的批处理时间为多个批次确定处理顺序。通过这四个核心组件相互配合,Magnus 可以提升 LLM 批处理的请求吞吐量,并降低请求的响应时延。
图5:Mangnus 的系统架构和工作流程
Magnus 的工作流程如图5所示。当请求到达时,生成长度预测器预测它的生成长度,并将①请求及其预测结果发送给适应性批次组装器,适应性批次组装器将②该请求插入到具有相似长度和生成长度的批次中,以减少计算浪费。之后,批处理时间估计器将根据③批次的批次规模,长度、预测的生成长度来预测其推理时间。当一个 LLM 实例完成处理,变得空闲时,批次调度器将使用最高响应比优先算法,根据④估计的批处理时间从队列中选择一个⑤批次调度到 LLM 实例进行处理。除此之外,Magnus 周期性地利用新收集的⑥请求信息(如请求及其实际生成长度),以及从日志数据库中收集的⑦批次信息(如批次规模、批次中请求的长度、批次中请求的生成长度,和批处理时间),通过持续学习技术来不断提高生成长度预测器和批处理时间估计器的精度。接下来,我们针对每个核心组件详细介绍对应的设计细节。

生成长度预测器

图6:生成长度预测器架构图
生成长度预测器由一个基于 LaBSE [7] 的语义特征提取模块、一个压缩模块和一个随机森林回归器组成。图6展示了生成长度预测器的架构图,首先,语义特征提取模块将用户输入和指令作为输入,分别提取用户级和应用级语义特征,并生成两个嵌入向量 v u s e r , v a p p ∈ R d v_{user}, v_{app}\in \mathbb{R}^{d} vuser​,vapp​∈Rd,其中 d = 768 d=768 d=768。其中应用级别的语义特征用于帮助回归器识别不同应用任务,从而为每个任务学习请求输入和输出的相关性。除此之外,由于语义相似的请求往往有相似的输出,因此具有相似的生成长度,我们利用用户级的语义特征来帮助回归器利用用户请求的语义相似性来提高预测精度。为了控制回归器的复杂性,压缩模块将 v u s e r v_{user} vuser​和 v a p p v_{app} vapp​通过分组压缩的方式进行压缩,首先将它们平均分为 d u s e r d_{user} duser​和 d a p p d_{app} dapp​组,其中每组的维度大小为 d d a p p \frac{d}{d_{app}} dapp​d​ 和 d d u s e r \frac{d}{d_{user}} duser​d​,通过对组内值求和,就将每个组压缩为一个值。然后,为了保障数值稳定性,每个压缩后的值需要除以组大小的平方根。最后,将压缩后的嵌入向量与用户输入长度连接起来,输入到随机森林回归器来预测生成长度。其中 d u s e r d_{user} duser​和 d a p p d_{app} dapp​分别设置为 16 和 4。

适应性批次组装器

图7:WMA示意图,蓝色、绿色、白色、灰色分别代表请求、有效生成token、填充token、无效生成token

适应性批次组装器根据排队批次中请求的长度和预测的生成长度向批次中插入请求,目的是减少批推理期间的计算浪费。 由于 LLM 批推理的主要开销来自 GPU 显存访问,因此我们提出浪费的显存访问 (Wasted Memory Access, WMA) 来建模批推理期间的计算浪费,该指标主要度量读取对生成的结果没有任何贡献的token的键值缓存的次数。 给定一个批次 B \mathcal{B} B,其长度定义为 L ( B ) = max ⁡ p ∈ B L ( p ) L(\mathcal{B}) = \max_{p\in \mathcal{B}} L(p) L(B)=maxp∈B​L(p),其生成长度定义为 G ( B ) = max ⁡ p ∈ B G ( p ) G(\mathcal{B}) = \max_{p\in \mathcal{B}} G(p) G(B)=maxp∈B​G(p),其中 L ( p ) L(p) L(p)和 G ( p ) G(p) G(p)分别表示表示请求 p p p的长度和生成长度。图7给出了不同变量对应的含义。

对于提示 p ∈ B p\in \mathcal{B} p∈B,它的填充符数量是 L ( B ) − L ( p ) L(\mathcal{B})-L(p) L(B)−L(p)。在每次迭代中这些填充符的键值缓存都被读取并参与计算,但它们对生成的结果没有任何贡献。因此,这些显存访问都被浪费了。在生成"[EOS]" token之前,这些填充符的键值缓存总共被读取 G ( p ) G(p) G(p)次,因此这个过程中的 WMA 可以由 W M A g e n ( p ) = G ( p ) ∗ ( L ( B ) − L ( p ) ) WMA_{gen}(p) = G(p) * (L(\mathcal{B})-L(p)) WMAgen​(p)=G(p)∗(L(B)−L(p))来计算。

此外,在 “[EOS]” token 生成后, p p p进入等待阶段,在此阶段中,填充后的请求和所有之前生成的token的键值缓存都会被读取并参与计算,并在每次迭代中缓存新生成的键值张量。由于在等待阶段生成的token在最终的生成结果中会被忽略,因此这些显存访问也会被浪费,从而导致 W M A w a i t ( p ) = ∑ g = G ( p ) G ( B ) ( g + L ( B ) ) WMA_{wait}(p)=\sum\limits_{g=G(p)}^{G(\mathcal{B})}(g + L(\mathcal{B})) WMAwait​(p)=g=G(p)∑G(B)​(g+L(B))。
我们将批次 B \mathcal{B} B的 WMA 定义为其所有请求中的最大 WMA,表示为 W M A ( B ) = max ⁡ p ∈ B ( W M A g e n ( p ) + W M A w a i t ( p ) ) WMA(\mathcal{B})=\max\limits_{p\in\mathcal{B}} (WMA_{gen}(p) + WMA_{wait}(p)) WMA(B)=p∈Bmax​(WMAgen​(p)+WMAwait​(p))。当适应性批次组装器收到请求 p p p时,它在等待队列中迭代各个批次,用预测的生成长度 G ′ ( p ) G'(p) G′(p)替换 G ( p ) G(p) G(p),计算在插入 p p p后每个批次的WMA,并记录最小的WMA ϕ \phi ϕ以及相应的批 B ϕ \mathcal{B}_{\phi} Bϕ​。为了减少批处理期间的计算浪费,如果 ϕ \phi ϕ小于给定阈值 Φ \Phi Φ,则将请求插入到 B ϕ \mathcal{B}_{\phi} Bϕ​,否则,使用这个请求创建一个新的批次并插入到等待队列中。 由于键值缓存会在批处理过程中消耗大量显存,因此防止批次大小过大以避免OOM错误非常重要。对于批次 B \mathcal{B} B,键值缓存消耗的显存由 M E M ( B ) = β ⋅ ( L ( B ) + G ( B ) ) ⋅ Δ MEM(\mathcal{B})=\beta\cdot (L(\mathcal{B}) + G(\mathcal{B})) \cdot \Delta MEM(B)=β⋅(L(B)+G(B))⋅Δ 计算,其中 β \beta β是 B \mathcal{B} B的批次规模, Δ \Delta Δ表示单个token的键张量和值张量的显存占用。根据 B \mathcal{B} B中预测的请求生成长度,可以在批处理之前就估计出 B \mathcal{B} B的显存消耗。 如果批次组装器发现,在将 q q q插入 B \mathcal{B} B后,批处理 B \mathcal{B} B的显存使用超过可用显存大小 Θ \Theta Θ,则它认为插入后的WMA是无限的,从而防止 p p p被插入 B \mathcal{B} B。 因此,长度和生成长度较小的批次可以具有较大的批次规模,以充分利用gpu强大的并行计算能力,而长度和生成长度较大的批次可以具有适当的批次大小,以尽可能地利用GPU,同时避免显存溢出。总体而言,我们在以下算法中报告了基于WMA的自适应批次组装算法的伪代码。

image.png

为了适应用户输入的变化,生成长度预测器通过持续学习持续提高精度。每隔 3 分钟,Magnus 就会收集预测误差大于 10 个 token 且超过实际请求生成长度 10%的请求的日志数据,把这些数据补充到训练集中,并重新训练随机森林回归器。该持续学习过程与在线预测是异步的,不会影响预测效率。

批处理时间估计器

当一个 LLM 实例空闲时,服务时间估算器会估算出队列中等待的批次的批处理时间,这样最高响应比优先(Highest Response Ratio Next, HRRN)批次调度器就可以利用估算结果来确定批次的执行顺序,从而缩短请求响应时间。由于请求长度、生成长度和批次规模相似的批次具有相似的迭代次数以及每次迭代中相似的显存访问和计算量,因此具有相似的批处理时间。基于这个事实,批处理时间估计器采用KNN回归模型,以批次规模、批次长度和生成长度作为特征输入,为每个批次请求估计处理时间。需要注意的是,在估计时,每个批次请求的生成长度为该批次请求里最大的预测生成长度。

与生成长度预测器类似,批处理时间估算器也通过持续学习不断提高精度。 每隔 2 分钟,Magnus 就会收集新处理完的批次的日志数据,并根据实际生成长度重新估计其批处理时间。预测误差大于 2 秒且超过实际批处理时间 20% 的批次数据会持续添加到训练集,以重新训练 KNN 回归模型。为了不影响在线估计的效率,持续学习的重新训练过程是离线进行的,与在线估计解耦。

最高响应比优先批调度器

当有 LLM 实例空闲时,需要有调度新的批次给它处理。我们采用HRRN算法对队列中的批次进行调度。具体来讲,最高响应比优先算法根据请求的排队时间 T w T_w Tw​ 和批处理时间 T p T_p Tp​来确定请求被处理的优先级,每次从队列中选择响应比 T w T p \frac{T_w}{T_p} Tp​Tw​​最高的批次进行处理。这种调度算法有两个好处:(1)短服务时间的请求会被优先调度,降低总体的请求排队时间;(2)防止某些请求长期在队列等待,降低请求响应时间,提升服务质量 。根据大语言模型的自回归式生成过程,我们可以得出处理时间 T p T_p Tp​由三个因素决定,即批次的最长请求长度,最长请求生成长度,和批次规模。然而,由于请求的生成长度在推理之前是未知的,因此在调度时,使用批处理时间估计器的预测值作为 T p T_p Tp​真实值的近似。

显存溢出恢复机制

在真实业务场景中,服务的稳定性尤其重要。虽然我们可以根据预测的生成长度估计批处理的显存开销,但是生成长度预测算法存在误差,估计的显存使用可能超过实际情况,引起显存溢出而导致的服务不可用。为了解决这个问题,我们设计了容错机制,将导致显存溢出错误的批次均匀拆分为两个相同批次大小的小批次,并将它们放回等待队列。由于批次规模减半,这两个批次再次导致显存溢出的概率会大大降低。

实验结果

实验设置

我们在 8 张 NVIDIA V100 32B 显卡上进行实验,数据集是基于现有的主流公开数据集 [8-12] 合成的综合性评测数据集,包含MT、GC、TD、CT、BF和CC六个应用。其中MT和CT应用都有两个任务,分别是英文翻译到中文、中文翻译到英文,C# 翻译到Java、Java翻译到 C#。因此总共有 8 个任务。对于每个任务,我们从数据集中随机选择 10,000 条数据来构建请求,其中 7,500 个请求用于生成工作负载,其余 2,500 个请求用于训练Magnus 的生成长度预测器和批处理时间估计器。我们使用 ChatGLM-6B 作为实验使用的大语言模型,并且在不同的请求率下将 Magnus 和朴素调度(Vanilla Scheduling, VS),量化+朴素调度 (Vanilla Scheduling with 4-bit Quantization, VSQ),以及保守的连续批处理(Conservative Continuous Batching, CCB)进行性能对比。

实验结果

图8:请求级性能
image.png
图9:token级性能
图8展示了在各种请求率下,Magnus 和三种基线在请求吞吐量、平均请求响应时间和尾部响应时间方面的性能。可以发现Magnus 的性能始终优于所有基线,在各种请求到达率下,请求吞吐量可以提高66%到234%,平均响应时间和尾部响应时间分别可以缩短 60.3% 到 89.7%,以及 53.2% 到 91.7%。此外,如图 9 所示,Magnus 在 token 级性能方面也优于三种基线,有效 token 的吞吐量和总 token 的吞吐量分别可以提高 70% 到 240%,以及 115% 到 489%。

消融实验

图10:消融实验,请求级别性能
图11:消融实验,token 级别性能
我们逐步验证 Magnus 各个组件在不同请求率下带来的性能增益。首先,我们在朴素调度(VS)策略中添加了生成长度预测器,从而得到了GLP。GLP 利用基于 WMA 的自适应性批次组合算法,但它使用一个固定的批次规模。接下来,我们取消了 GLP 的批次规模限制,实现了完全的自适应批处理算法,我们称这种新策略为 ABP。最后,在 ABP 上继续增加批处理时间预测器和 HRRN 批次调度器得到完整的 Magnus 。通过图 10 和图 11,我们可以看到 Magnus 的每个组件都能带来性能增益。

总结

在本文中,我们提出了Magnus 来实现 LMaaS 场景下的高效 LLM 批处理,它可以根据指令和用户输入的语义特征以及用户输入长度来预测请求生成长度。Magnus 会根据预测的请求生成长度自适应地调整批次大小,以充分利用 GPU 的并行计算能力,从而提高请求吞吐量。此外,Magnus 还通过基于批处理时间估计的 HRRN 调度来缩短请求响应时间。大量的实验证明,Magnu 可以有效降低请求响应时间并提高 LLM 批处理的吞吐量。在本文中,我们基于生成长度预测来优化静态批处理的推理效率,在未来,我们将进一步探索基于生成长度预测的请求调度方案在持续批处理中的应用。

Reference

[1] M. Freitag and Y. Al-Onaizan, “Beam search strategies for neural machine translation,” in Proceedings of the First Workshop on Neural Machine Translation. Association for Computational Linguistics, 2017.
[2]“Tensorflow serving,” https://github.com/tensorflow/serving, 2023.
[3]“Triton inference server,” https://github.com/triton-inference-server/server, 2023.
[4] Z. Du, Y. Qian, X. Liu et al., “Glm: General language model pretrainingwith autoregressive blank infilling,” in Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2022, pp. 320–335.
[5] J. Bai, S. Bai, Y. Chu et al., “Qwen technical report,” 2023.
[6] “Baichuan2-7b-chat,” https://huggingface.co/baichuan-inc/Baichuan2-7B-Chat, 2024.
[7] F. Feng, Y. Yang, D. Cer et al., “Language-agnostic bert sentence embedding,”in Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2022, pp. 878–891.
[8] “Wmt18,” https://huggingface.co/datasets/wmt18, 2023
[9] V. Logacheva, D. Dementieva, S. Ustyantsev et al., “Paradetox: Detoxification with parallel data,” in Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), 2022, pp. 6804–6818.
[10] F. Stahlberg and S. Kumar, “Synthetic data generation for grammatical error correction with tagged corruption models,” in Proceedings of the 16th Workshop on Innovative Use of NLP for Building Educational Applications, 2021, pp. 37–47.
[11] S. Lu, D. Guo, S. Ren et al., “Codexglue: A machine learning benchmark dataset for code understanding and generation,” in Thirty-fifth Conference on Neural Information Processing Systems Datasets and Benchmarks Track, 2021.
[12] M. Yasunaga and P. Liang, “Break-it-fix-it: Unsupervised learning for program repair,” in International Conference on Machine Learning. PMLR, 2021, pp. 11 941–11 952.

46、搭建与配置FTP服务器全攻略 本文详细介绍了如何搭建与配置FTP服务器,以vsftpd为例,涵盖了FTP基础概念、安装步骤、服务控制、安全设置、用户权限管理、文件上传支持、互联网共享配置、客户端使用以及常见问题解决等内容。旨在帮助用户高效、安全地实现文件共享与管理。 阅读详情

相关推荐

AGV避坑指南:海康控制系统与Modbus设备对接的那些‘坑’

本文深入解析海康AGV控制系统与Modbus设备对接中的常见问题及解决方案,涵盖通信协议对接、信号干扰、硬件层问题和软件优化策略。通过真实案例和实用技巧,帮助工程师规避典型陷阱,提升系统稳定性和效率。

l3m4n的博客 740

区块链可投会议CCF B--ICWS 2025 截止3.3 附2024录用率

录用率:80 full papers, 26 short papers, and 25 working-in-progress papers / 409。

软件工程小施同学 的专栏 1650

BetaFlight开源飞控源码分析

BetaFlight是穿越机领域比较成熟的开源飞控,本篇文章主要分析一下源代码以及如何使用这个开源代码

weixin_43811044的博客 1万+

计算机会议排名等级

CORE Computer Science Conference Rankings Acronym Standard Name Rank AAAI National Conference of the American Association for Artificial Intelligence A+ AAMAS International

优快云 37万+

LPC2124定时器实现跑马灯

文章目录一、keil 4新建工程 一、keil 4新建工程 1、Create New Project,注意,最好添加进一个新建好的文件夹里,keil不会帮你新建。 2、添加设备类型:NXP目录下的LPC2124 3、选择启动文件Startu.s 4、new 一个file,保存命名为.c文件 5、添加进project里,右击,add 选中,添加 6、设置编译输出.hex文件 ...

qq_37937830的博客 5753

【移动APP测试】Firebase Test Lab (FTL) 实战指南:从零搭建自动化测试流水线

本文详细介绍了Firebase Test Lab (FTL) 在移动APP测试中的实战应用,从零搭建自动化测试流水线。通过真实设备、虚拟设备和iOS设备的全面覆盖,FTL帮助开发者高效进行兼容性测试、性能监控和崩溃分析,显著提升应用质量。文章还提供了设备选择策略、成本控制技巧和CI/CD集成的最佳实践,助力团队优化测试流程。

weixin_29281915的博客 253

CCF-B类 ICWS‘24 3月24日截稿!引领网络服务与Web技术领域创新发展!

2024年,ICWS将再次召集业界领袖及精英,共同努力推进全球最重要的国际互联网/基于Web的服务专业论坛!其中一些主题包括Web服务发现和组合、Web服务规范和增强、Web服务QoS(例如,安全性、性能、可靠性、容错等)、Web服务标准和形式化、Web服务建模、Web服务工程、Web服务测试、基于Web服务的应用程序和解决方案、Web服务实现、Web服务中的语义、支持云计算的Web服务、Web服务生命周期管理、以及面向服务的体系结构(SOA)基础设施和中间件的所有方面。

ConferenceEye的博客 2210

【工具篇】万字长文拆解 Otter.ai:语音转文字领域的「瑞士军刀」是如何炼成的?(附保姆级教程)

但需要注意,2024年欧盟已出台《AI转录伦理指南》,要求所有录音需获得参与者明确授权。举个真实案例:某硅谷创业团队用Otter.ai记录产品评审会,系统自动标红争议点并生成待办事项,会议效率提升40%。AIGC技术原理、 实时转录解析、 定价策略分析、 语音算法拆解、 多平台兼容测试、 深度学习框架、 空间计算专利。——无论是跨国会议、课堂讲座还是深夜灵感,它都能实时生成带时间戳的文本记录,准确率高达95%。(此处建议插入Otter.ai会议转录动图,展示实时字幕生成效果)(数据来源:综合参考文献整理)

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1259

中科院计算所会议

序号 会议名称 会议介绍 代表领域 1 ...

weixin_34239592的博客 1370

【Word提效 No.010】使用AI一键复制格式刷应用格式

本文介绍利用AI工具WorkBuddy实现Word文档格式批量复制的自动化解决方案。通过简单指令即可将指定段落的格式一键应用到多个目标段落,解决传统格式刷操作繁琐、易出错的问题。方案包含三步操作:准备文档、输入指令模板、验收效果,并提供多种场景的现成指令示例。该工具支持字体、段落等格式属性的批量复制,且不会覆盖原文件,适用于论文、手册等文档的格式统一需求。

u011186532的专栏 77

《备考系统分析师》 - 专栏介绍和目录

本专栏提供软考高级系统分析师全套备考资料,包含四大核心内容:1.详细考点梳理(覆盖基础知识、关键技术、案例实践三大模块16个章节);2.历年真题及解析(2009-2022年所有真题含综合知识、案例分析和论文);3.100+篇高质量论文范文;4.预测模拟题。早鸟价仅需9.9元,可节约80%资料搜集时间,帮助考生高效备考、顺利通过考试。专栏持续更新,有问题可随时联系作者。

数据知道的博客 1万+

英文投稿的一点经验【转载】

<br />英文投稿的一点经验【转载】<br />1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时间;另外,每个杂志都有他们的具体格式要求,一定要按照他们的要求把论文写好,免得浪费时间,前些时候,我的一个同事向一个著名的英文杂志投稿,由于格式问题,人家过两个星期就退回来了,而且说了很多难听的话,说投稿前首先就应该看清楚他们的格式要求;<br />2. 论文写作一定要言简意赅,特别是摘要,引言和结论部分,特别是摘要和结论不能重复,发现有很多论文这两部分没有差别, 个人认为, 摘要是引人

jianwushuang的专栏 2万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ccfb类会议有哪些_会议自荐 | CCF B类会议ICWS 2018

OverviewICWS 2018 program committee invites you to participate in the 25th edition of ICWS, to be held on June 25 - June 30, 2018, Seattle, USA.The International Conference on Web Services (ICWS) has ...

weixin_39634508的博客 1256

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Recurrent Neural Network for Text Classification with Multi-Task Learning

引言 Pengfei Liu等人在2016年的IJCAI上发表的论文,论文提到已存在的网络都是针对单一任务进行训练,但是这种模型都存在问题,即缺少标注数据,当然这是任何机器学习任务都面临的问题。 为了应对数据量少,常用的方法是使用一个无监督的预训练模型,比如词向量,实验中也取得了不错的效果,但这样的方法都是间接改善网络效果。 作者提出了一种新的方法,将多个任务联合起来训练,用来直接对网络进行改善,...

lpty的博客 4385

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

6 款电商 AI 图片生成软件实测|国内 + 跨境卖家工具清单

电商 AI 作图工具已经从 "能不能用" 进入了 "好不好用" 的阶段。对于绝大多数卖家而言,现在的 AI 工具已经可以覆盖 60%-80% 的基础商品图需求,显著降低拍摄和设计成本。选择工具的核心逻辑不是 "哪款最强",而是 "哪款最适配你的品类、平台规模和团队能力"。垂直电商工具胜在工作流效率,通用生图工具强在创意上限,模板类工具赢在上手速度。建议根据自身业务阶段,搭配 1-2 款主力工具 + 1 款辅助工具,形成适合自己的视觉生产流程。

Mardi_Ladin的博客 337

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 189

我用 GPUWorks 在 M1 Pro 上搭了个发票识别原型

公司里经常要看电子发票。我想先做个小原型:把 PDF 发给一个自己部署的图文模型,让它提取发票类型、日期、交易双方和金额,再把结果交给同事核对。这个原型不用先接财务系统,先看看从部署到调用要走多少步,模型返回的内容能不能帮上忙。

鸽芷咕的博客 2万+

您您这可以把问小白的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭

第三层是格式编译层。这个决策背后的判断很清晰:一个批量导出工具的价值,不在于“试三次”,而在于你真正用它处理了几十份技术文档、访谈记录或课程讲义之后,它是否值得留在你的工作流里。问小白的会话列表通过分页接口加载,AI导出鸭 在页面运行时建立旁路监听,捕获每一次分页请求返回的完整对话清单,包括会话 ID、标题、时间戳和隐藏的元数据字段。让AI导出回归优雅——这句话说的是:导出不该是体力活,而应该是一次完整的、可预期的文件交付。注意:这里的“批量”指的是左侧列表里的多个独立会话,不是一条会话内的多轮对话。

laoyunsi的博客 229

医疗 AI 有两种,别混着谈:一个改流程,一个改范式

InfoXMed 是面向医生、医学生和医学科研人员的 AI 医学工具平台,提供文献检索、全文翻译、AI 解读、指南查询和题库练习等功能,辅助临床学习、科研汇报与医学备考。原文是日本医学会杂志(JMA Journal)的一篇综述(Review Article):基本事实:这一点必须先说清:这篇论文提出的是一个研究纲领。它文中的"预测"指的是科学设想,不是可以拿来用的临床预测能力。文中甚至自己承认了一个硬缺口(见第三节)。本文只谈它的术语辨析与科学方法论,不转述任何可作为临床依据的预测或处置主张。这篇论文的全部

2601_96948740的博客 221

河道漂浮物目标检测数据集

目标检测,yolo,河道漂浮物目标检测数据集

DL_data_set的博客 186

AI Agent之核心框架

A: 显式 Thought 有三类价值:可解释性(便于人类审计)、可调试性(定位哪一步选错工具)、学习信号(可做监督微调或评估中间步骤质量)。ReAct 把推理与 可执行行动 绑定,每一步行动后都有 真实 Observation 反馈,从而用工具结果约束生成,降低闭卷幻觉。做完不等于结束——还要 评估做得好不好,把 教训 记下来,下次 带着教训重试,反思作为 记忆,影响后续尝试的策略。工作流程:Action → Evaluation → Reflection → Retry。A: 普通 CoT 只在。

剑雨巍巍的博客 185

AI 应用开发工程师技术实践:大模型接入、通用组件封装与性能优化

本文提出AI应用从PoC到生产的核心挑战:模型调用的持续可用、可控与可优化。通过构建统一LLM网关实现多供应商路由与故障转移,封装对话、工具调用与RAG组件以解耦业务逻辑,结合前缀缓存、批处理与流式背压治理等性能优化手段,形成“接通→接稳→接快”的工程路径,最终以工程化能力决定AI应用的生产可用性。

2301_79189962的博客 536

AI前沿日报 · 2026-11-04 | 祛魅时刻:Astra“纯读权重“神话的崩塌

①Astra"裸权重通吃"被spaCy创始人Honnibal精准祛魅——仅1/3实验真裸读,数学能力提升依赖Python+50次迭代;②Simon Willison用Qwen 3.8-27B端侧复现权重空间编程;③Nvidia开源Auto-Ontology自动知识图谱;④$800开源全域抓取机器人Stringman;⑤OpenAI悄然重开Codex训练开关引信任危机;⑥DeepMind发布Gemini 4 Argon机器人基础模型;⑦美国科技巨头隐性AI债务达3.2万亿美元,6个月增90%。

johnsong2009的博客 523

大模型 Embedding 与向量相似度详解

Embedding 解决的问题:计算机不懂文字,但懂数字│▼文本 → 向量(1024维浮点数数组)│▼相似度解决的问题:怎么判断两个向量(文本)有多接近│▼余弦相似度:看向量方向的夹角,越接近0°越相似│▼最终效果:语义搜索——理解意思,而非字面匹配一句话总结:Embedding 把文字变成数字,余弦相似度比较数字的方向,两者结合实现了"理解语义"的搜索。

T3165919332的博客 73

GPT-1 架构和计算细节

下面配合框图,对 GPT-1 的每个组件做公式展开 + 数值实例(配置:12 层 × 768,12 头,FFN 3072,词表 40478,共 117M 参数)。GPT-1 把翻译模型的编码器-解码器砍掉一半,只留解码器,然后以"预测下一个词"为目标在 BooksCorpus 上预训练。与 2017 原版的四个架构差异(框图中标 ★):h0=E[token]+Epos[position],E∈R40478×768, Epos∈R512×768h^0 = E[\text{token}] + E_{pos}[\

eloudy的专栏 244
上一篇: 蚂蚁CodeFuse代码大模型技术解析:基于全仓库上下文的代码补全
下一篇: CodeFuse 开源一周年,焕新出发!
CodeFuse
博客等级 码龄3年 630粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值