为什么DeepSeek在规模化部署时成本低廉,但在本地运行时却成本高昂?
为什么DeepSeek-V3在规模化部署时被认为速度快且成本低廉,但在本地运行时却速度过慢且成本高昂?为什么有些AI模型在初始响应时速度较慢,但一旦运行起来却速度较快?
AI推理服务提供商常提及吞吐量与延迟之间的根本权衡:对于任何给定模型,您只能在高吞吐量高延迟或低吞吐量低延迟之间做出选择。事实上,某些模型天生对GPU效率极低,因此在实际应用中必须以高延迟方式运行才能实现可用的吞吐量(例如DeepSeek-V3)。
这种权衡来自推理提供商为模型选择的批处理大小:不是在单个请求中批处理推理1,而是对数十或数百个并发用户请求进行批处理推理。基于转换器的大语言模型(LLMs)的一个独特特征是,同时计算一批完成几乎与计算一个完成一样快。为什么呢?
什么是批处理推理?
GPU擅长执行大规模矩阵乘法(GEMM,即“通用矩阵乘法”)。假设你有一个单一令牌需要通过模型处理(即与所有权重矩阵相乘——其他架构细节无关)。你将其表示为与模型维度(或隐藏层大小)匹配的向量(即1乘以模型权重矩阵的宽度),并进行乘法运算。这相当于1次GEMM。但如果你想批量处理10个令牌,这仍然只相当于1次GEMM,因为你可以将令牌堆叠成一个矩阵(10倍于模型维度)。这比执行10次稍小的GEMM要快得多。因此,推理服务器实现可能类似于以下结构:
- 一个请求带着提示词进来
- 该提示词经过预填充(通过注意力机制处理——我们稍后会看到如何批量处理2),形成一个键值缓存和一个令牌大小的矩阵(1 × 模型大小),最终将成为预测的令牌3
- 该令牌大小的矩阵进入一个队列
- GPU服务器从队列中提取批次(例如128个),将其堆叠成一个128×模型大小的矩阵,并通过前馈模型权重进行乘法运算
- 最终结果被分割为128个独立的令牌
- 其中对应原始请求的令牌被流式传输回用户
- 假设该令牌不是序列结束令牌,则返回步骤 2 继续生成响应中的下一个令牌
需注意,服务器会决定批次大小。这是吞吐量与延迟之间的权衡。如果不进行批处理而逐个处理令牌,用户无需在队列中等待(如上文步骤3所示),因此延迟较低(假设拥有足够的GPU)。然而,如果进行大量批处理,延迟会升高,因为用户需等待批处理大小填满,但吞吐量会显著提升,因为GPU被更高效地利用。
为什么GPU在一次乘法大矩阵比多次乘法小矩阵更快?有两个原因。首先,向GPU发出每个命令涉及一些开销,而一次大乘法可以使用单个命令启动。其次,每个新的GPU命令涉及从内存中获取权重,对于大型权重来说这可能很昂贵。如果运行大量小型GEMM操作,可能会导致大部分时间都用于在内存中传输权重,而非实际计算。
为什么有些模型针对高批量大小进行优化?
通常,推理服务器会设置一个“收集窗口”,用户请求在此期间进入并排队。聊天服务器通常目标是5-10毫秒,但高批量后端可能扩展至200毫秒。如果新请求在窗口开始时到达,它可能需要等待整个窗口时长才能被处理⁴。当窗口关闭时,所有队列中的请求会被批量处理(即所有1×模型尺寸的矩阵被拼接成一个128×模型尺寸的矩阵),然后该批次被发送至管道。这种批量处理有时被称为“ tick”。
如上所述,您可以使用任何批次大小运行任何模型。批处理过程本身并不会排除某些类型的模型。然而,有可能构建一个如此不适合GPU的模型,以至于它实际上需要批处理才能实用。
为什么专家混合模型需要更大的批量大小
例如,考虑一个专家混合模型(如DeepSeek-V3或据称的原始GPT-4)。你可以通过训练它拥有数百个“专家”来获得一个强大的模型:这些专家是独立的前馈权重块,其中一个路由层会从中选择一个子集用于每个令牌。但这种模型在GPU上效率极低。原因显而易见:GPU倾向于执行少量大型矩阵乘法,但若专家数量过多,就会被迫进行大量小型乘法运算。除非采用批量推理,否则这将导致吞吐量低下。
让我们分析一下“收集窗口”为5ms和200ms时,大型混合专家模型会如何表现。假设你在5ms窗口内收集了十个用户请求。如果专家数量众多,部分专家可能仅对一两个令牌进行处理(即每个专家的批量大小远低于窗口内收集的总请求数)。然而,如果你等待200毫秒并收集4000个用户请求,你更有可能让所有专家达到饱和状态。虽然会增加一些延迟,但你确保了GEMMs足够大,且GPU始终以最大容量运行。
为什么大型管道需要高批量大小以避免管道气泡
对于大型模型而言,保持GPU持续活跃本身就是一项挑战。大型模型通常包含大量Transformer层,即构成前馈网络的数百个权重矩阵。在此场景下实现快速推理的唯一方法是通过管道化处理这些层:让一个GPU处理前十层,另一个GPU处理接下来的十层,依此类推。否则,您将无法将所有权重放入单个 GPU 的内存中,因此将花费大量时间在内存中交换权重,最终导致速度非常慢。在推理过程中,每个令牌(通常以“微批量”的形式,每个批次包含几十个令牌)会依次通过这些 GPU 组成的管道。
管道的效率取决于层数和集合窗口的大小。在处理窗口中的令牌时,每个“时钟周期”的开始阶段会出现部分闲置GPU(因为后续层的GPU尚未有任务可处理),结束阶段也会出现更多闲置GPU(当队列中无令牌时,早期层的GPU需等待下一个“时钟周期”)。这些空闲期有时被称为“预热”和“排空”。如果您使用多个小窗口,那么在预热和排空阶段消耗的GPU时间将比使用较少的大窗口更多。因此,通过选择窗口大小,您实际上是在吞吐量和延迟之间进行权衡。
如果你有大量层且收集窗口非常短,有时可能会出现待处理令牌数量少于层数的情况。这被称为“管道气泡”——实际上“排水”阶段比平时更早开始。你无法消除预热和排水(由于下面讨论的原因,推理必须在顺序“时钟周期”中运行),但你可以通过将收集窗口设置得足够长来消除管道气泡。管道气泡对模型吞吐量的影响极为严重,因此推理提供商总是将窗口设置得足够宽以避免它们。这会为具有大量层的模型带来明显的延迟。
难道不能让队列一直保持满载状态吗?
为什么推理提供商不能通过保持GPU队列中始终充满令牌来完全消除预热和清空过程?换句话说,难道不能完全取消计时器,只需让令牌微批次持续流动吗?当然,每个用户的推理必须是顺序进行的(因为在当前令牌处理完成前无法开始生成下一个令牌),但大型推理提供商应有足够的并发流量来保持队列中始终充满独立的用户请求。
我得承认,我很难理解为什么这在理论上不可能实现。就我所知,实际障碍在于注意力步骤的批处理方式:如果你想批处理注意力GEMMs,它们必须具有相同的形状(即序列中具有相同数量的先前令牌)。因此,你必须同时运行具有相同形状的组,而不是仅仅维护一个队列。在这方面至少有一些公开的研究,但我不会惊讶于还有更多我未见过的巧妙方法来实现这一点。
另一个想法:如果你需要时钟信号来执行注意力步骤,为什么不直接使用基于时钟的注意力推理系统,同时为全连接层(FFN)使用更高效的连续系统呢?据我所知,原因在于内存开销:
- 由于注意力输出需要用于FFN,你需要在内存中为其预留空间,等待其在FFN队列中获得插槽,这很快就会变得过于昂贵。
- 现代推理堆栈能够将注意力与FFN步骤合并为单个“操作”中的几个大型GEMM操作。如果你在不同GPU上执行这些操作,就需要运行不同操作并频繁在内存中传输权重。
总结
-
- GPU 在处理大型 GEMM 操作时效率最高,因此将大量令牌堆叠到单个矩阵乘法中,其令牌吞吐量远高于逐个处理令牌
- 在解码过程中,注意力只能对同一步的令牌进行批处理,迫使调度器以短暂的“时钟周期”运行。您在单个“时钟周期”中打包的令牌数量(即等待收集令牌的时间长度)即为批处理大小
- 这些令牌来自不同用户。你不能批量处理同一用户的令牌,因为生成下一个令牌需要前一个令牌,因此批量处理需要来自不同用户的较高流量
- 更大的批量会增加延迟,因为用户令牌可能需要等待长达200毫秒才能填满批量并运行,但它们通过允许在前向传播步骤中使用更大(因此更高效)的GEMM来提升吞吐量
- 具有多层结构的模型(如长管道模型)需要更大的批次大小以避免管道气泡(通过确保每个时钟周期包含的批次数量多于管道步骤数量)
- 混合专家模型需要以高延迟方式提供服务才能高效运行:每个专家仅处理分配给它的令牌,因此需要更大的全局批次大小以确保每个专家保持忙碌。
- 推理提供商选择一个批次大小/窗口,以消除管道气泡并使专家饱和。较大的批次大小可以提高吞吐量,但会增加延迟,因为令牌需要等待填满一个时钟周期
- 某些模型(如DeepSeek的模型)作为具有多层的混合专家模型,因此需要较大的批次大小和高延迟,否则吞吐量会急剧下降。这就是为什么人们常说无法轻松在个人设备上运行DeepSeek:因为单个用户每次只运行一个推理任务时,其效率/吞吐量会非常低。
- OpenAI和Anthropic的模型响应迅速,这可能意味着:
- 它们的模型具有更高效的架构(非MoE,层数更少),或
- OpenAI/Anthropic在提供推理服务时采用了非常巧妙的技巧,或
- 它们为GPU支付了远超实际需求的巨额费用
编辑:这篇文章引发了大量评论。我有点后悔没有给这篇文章起一个不同的标题——它其实不是关于在自己的电脑上运行模型。而是关于为个人使用运行模型,假设你拥有所有GPU(即批处理/吞吐量权衡)。
- 1 变压器模型的一个常见优势是,它们可以在单个用户请求内进行批量预填充。当你向它们传递一个长提示时,它们可以一次性处理整个提示,这是因为注意力机制的工作方式。之前的循环模型必须逐个令牌处理,这要慢得多(因为涉及更多的GEMM操作)。这与我在本文中讨论的批处理类型无关。我讨论的是如何在预填充完成后,高效地在多个不同用户请求之间批量进行推理。2 这也可以进行批处理,只要你批处理的注意力操作具有相同数量的令牌序列(即每个预测第四个令牌的序列都可以批处理在一起)。否则,KV缓存矩阵的大小不同,因此无法轻松将它们合并到一个批次中。稍后会详细讨论这一点。3 严格来说,生成的并非令牌本身,而是“logits”(即所有可能令牌的概率分布)。为了简化表述,本文及后续内容中将统一使用“令牌”一词。4 需要注意的是,在实际应用中,现代推理堆栈会使用“连续批处理”,即批次一满就会立即发送,而非等待固定时间窗口的整个长度。然而,推理仍以批次形式进行,因此吞吐量与延迟之间的核心权衡关系保持不变。
本文文字及图片出自 Why DeepSeek is cheap at scale but expensive to run locally
我本地运行Deepseek V3作为日常工具,发现它价格合理、速度快且高效。文章假设使用GPU,但我认为这并非在本地运行此类大型模型的最佳方式。我使用基于EPYC 9004系列的中端服务器,搭载Supermicro主板,整套配置约$4000。这是一台单CPU机器,配备384GB内存(使用64GB内存条可扩展至768GB,但成本更高)。没有GPU意味着功耗低于游戏台式机。受内存限制,我运行的是Unsloth Dynamic GGUF,其实际使用中的质量表现与原版非常接近。该服务器约有270GB的上下文空间,留有充足余量——我通常运行16k上下文(因该机器还用于其他任务),但若需要可提升至24k。我能达到约9-10个令牌/秒的处理速度,使用大上下文时会降至7个令牌/秒。许多采用类似配置(双CPU)的用户也能在类似令牌/秒速度下运行完整版。
> Unsloth Dynamic GGUF 在实际使用中的质量表现与原版非常接近
具体有多接近?
我不是在质疑你的诚信,但希望那些做出如此广泛声明的人能更加严谨。
Unsloth 确实做了出色的工作,但据我所知,就连他们自己也没有发布与原版未量化模型的一对一对比评测。
我对此表示理解,因为很少有个人或公司能够负担得起运行原版模型,更不用说进行严格的评测了。
然而,我感到有必要评论,因为我的实际体验与之不符。对于相对简单的应用场景,差异可能不易察觉,但在高复杂度和长上下文任务中,差异会变得非常明显。
哦,你好 :) 感谢你的善意评价——我们确实提供了 Llama 4 Scout 和 Gemma 3 27B 的基准测试(MMLU、KLD、Perplexity),使用了我们的方法论——https://docs。 unsloth.ai/basics/unsloth-dynamic-2.0-ggufs 和 https://x.com/UnslothAI/status/1915476692786962441
对于 R1 模型,我们对原生模型进行了内部基准测试——https://unsloth.ai/blog/deepseekr1-dynamic
对于 R1-0528 的评估,我们仍在进行中 :)) 由于运行成本较高,我们首先在一些内部测试案例上进行“效果验证”,结果表现良好!
但我们通常更重视 bug 修复,这些修复客观上能提升性能,精度提升幅度从 +1% 到有时甚至 +10%——例如 Llama 4 的 bug 修复、Gemma 的 bug 修复——https://news.ycombinator.com/item?id=39671146 等修复要重要得多 :)
我们还提供了Q8_0和Q8_K_XL量化方案,这些方案与FP8基本等效——你也可以使用神奇的`-ot “.ffn_.*_exps.=CPU”`参数将MoE层卸载到内存中!
你说的对,我确实不够严谨——衡量每秒处理的令牌数量很容易,但输出质量却难以精准评估。我也没有找到关于 Unsloth 的可靠对比数据。所以我只是尝试了他们的一些模型,寻找一个“足够好”的版本,即能满足我所有需求:编码、文档摘要、解决各种问题等。我也想看到直接对比——也许我以后会投资更多内存,但目前我没有这个需求。我对比了Unsloth模型的小型和大型版本,有趣的是(对我来说),我没有注意到它们在质量上有多大差异。但是,小型模型并没有显著更快,所以我选择了能放入内存且有足够上下文的最大模型。对于更复杂的编码,我使用Deepseek R1(同样是Unsloth),但由于它是推理模型,无法实时运行,因此不适合作为日常工具。
感谢使用我们的量化模型,非常感谢 :) – 我们仍在进行内部基准测试,因为测试速度非常慢,但它们确实通过了我们的内部基准测试 :)
最新的V3在我看来是开放权重模型中非常实用的首选。许多任务不需要推理令牌,无需等待它们是很好的。 (如果某个任务需要,你可以随时切换。)如果你不自己运行它,一些提供商提供完整上下文、80tps,并承诺不使用你的数据。
9004 家庭服务器太棒了!
我印象深刻。你的个人网站无法访问。HN 不允许发送私人消息。
我是 Jeff Carr。我共同创立了 Digital Ocean。我假设这里不能发布邮箱地址,但我会尝试。让我们看看系统会如何处理。我的邮箱是:wit AT wit com
本地模型的最新进展更为显著。
例如,可以参考https://github.com/kvcache-ai/ktransformers,该模型在相对较旧的双插槽Xeon服务器搭配零售版RTX 4090 GPU的配置下,实现了超过11个令牌/秒的处理速度。更值得关注的是,其预填充速度可达250个令牌/秒以上。这一特性在编程等场景中尤为实用,因为这类场景常需处理大量提示信息。
上述性能目前已可实现。与此同时,英特尔团队正在研发更令人惊叹的技术。在https://github.com/sgl-project/sglang/pull/5150中,他们声称实现了超过15个令牌/秒的生成速度和超过350个令牌/秒的预填充速度。他们并未透露具体使用的硬件配置,但通过分析多个PR中的零散信息,我推测他们使用了2颗Xeon 6980P处理器搭配MRDIMM 8800内存,且未配备GPU。此类配置的总成本预计在廉价工程样机登陆eBay后约为$10,000。
当批处理大小大于1时,这既不令人印象深刻也不高效。
所有这些都是针对批处理大小为1的情况。
你可以将你的邮箱地址添加到个人资料中
顺便说一下,你的网站也无法访问… wit.com 对我来说无法解析
你大胆地假设电子邮件域需要一个监听 80 端口的网络服务器来处理 http 数据包。
令人印象深刻。我需要进一步研究这个问题。我正在尽最大努力将大语言模型(LLM)的使用限制在本地可运行的范围内。
你的提示处理速度是多少?在这种情况下,这比输出 TPS 更重要。如果你需要等待几分钟才能开始获得答案,那比云托管版本要糟糕得多。
提示评估时间会因上下文而异,但对于短提示来说感觉是实时响应的——大约每秒20个令牌,但我还没有对这一点进行过太多基准测试。在长篇对话中需要多次重新提示时,速度仍然很快——我使用了KV缓存,我认为这有帮助,并且如果上下文超过16k,我会将KV缓存量化为Q8。然而,如果需要总结一篇约15,000字的文档,处理时间会显著延长——此时我通常会离开约20分钟后再回来,此时任务已完成。
如果他在进行多轮对话,可以复用上一轮的KV缓存,跳过对历史数据的提示处理(这会导致第一个令牌的处理时间过长),仅对当前轮次的实际提示进行处理。这将把需要处理的令牌数量从二次方减少到线性数量。我不确定他是否这样做,但如果我有他的硬件,我会这样做。
我假设KV缓存解决了这个问题,但我也很好奇。
如果你只是用“你好”开始与它聊天,这是正确的。对话会随着增长逐渐保存在KV缓存中。
但如果你在其中发布代码、撰写草稿,甚至小段文章等内容,这就会成为一个大问题。
通常,当人们考虑聊天模型的提示令牌时,初始系统提示占了绝大多数令牌,且在许多使用模式下都是相同的。你可能为代码、英语或聊天模式设置略有不同的系统提示,但这仅需3个提示,可永久存储在某种持久化KV缓存中。之后,仅该模式下的具体请求会保持未缓存状态。
我以为推理需要大量极快内存的GPU。你是说只需大量非统一的系统内存,无需GPU就能实现推理吗?这怎么可能?
我不明白你为什么认为GPU是必要的?这只是线性代数。
他很可能指的是,您需要大量 GPU 快速内存来保存模型,而 GPU 卡具备这种内存。
您无需任何 GPU 内存来“保存”模型。事实上,您无需 GPU 来处理与大语言模型 (LLMs) 相关的任何事情。
唯一的原因是速度,因为GPU在矩阵运算方面更快。
我们能否在配备40核CPU和约256GB内存(其中200GB可用于模型)的系统上,使用Ollama或类似工具进行代码生成,类似于GitHub Copilot?
我使用双插槽18核(总计36核)的Xeon处理器,配备768GB DDR4内存,使用4位量化的完整Deepseek模型时,能达到约1.5-2个令牌/秒的性能。能在家庭环境中运行这样的模型确实令人惊叹。
愚蠢的问题:这种配置会配备显卡吗?我猜应该不会
令人印象深刻,但这仅相当于托管服务商吞吐量的1/5到1/10,且支持的上下文量仅为其1/4到1/8
兄弟,他是在本地运行的,我认为这种配置是本地运行时性价比最高的选择。我们不是在和数据中心比较,得保持客观。在本地运行能取得这样的成果非常令人印象深刻。感谢你提供的数据,省了我查ChatGPT的麻烦 :)
标题说:本地运行很昂贵
另一个人说:我花了4000美元,但速度仍然很慢
更不用说4000美元实际上很昂贵。如果有什么的话,原帖确实突出了文章标题的重点。
仅CPU的配置性价比极低,希望人们停止向对本地AI真正感兴趣的人推荐这些不切实际的配置。
KV缓存也无法缓解第一次将代码片段粘贴到聊天窗口时,用户不得不等待10分钟且完全无法交互的痛苦,直到获得第一个令牌。
与尝试在仅CPU配置上运行Deepseek相比,使用单张3090显卡并搭配Gemma 27B等方案,你将获得一个实用性高得多的配置。即使是GH200在bs=1时也难以以现实速度运行Deepseek,而那里还连接了一个H100:目前根本不存在通过CPU卸载模型实现“经济实惠、快速有效”AI的魔法解决方案。
你有关于空闲/平均/最大功耗的具体数据吗?我假设服务器机器是按照始终满负荷运行的标准设计的,因此在低利用率优化方面投入较少。
抱歉,我没有具体数据,因为我没有监控功耗。但这台机器使用的是标准ATX电源供应器:Corsair RM750e 750W电源供应器,CPU的默认TDP为280W——我将TDP设置为300W。它基本上是按照台式机规格设计的:ATX机箱,空闲时风扇会减速等。
只是好奇你的使用场景是什么?你正在处理什么类型的文本?
谢谢。
CPU正悄然成为BS 1推理的非常均衡的机器。最新的英特尔至强处理器应能达到约20 TPS。
基础款Mac Mini约为20 :)
哦对,我做这个计算时没有考虑量化。如果能实现3-4位量化+整数8位运算,~80可能实现。
这是一篇有趣的博客文章。虽然总体结论(“我们需要批处理”)是正确的,但专家混合(MoE)模型的推理实际上更微妙一些。
我们需要大批处理的主要原因是,大语言模型(LLM)推理不受计算能力的限制,而是受我从 VRAM 中加载每个权重的限制。只需比较H100的TFLOPS与内存带宽,每加载一个字节的FLOPS大约为300。这就是为什么我们需要大批量:我们可以对从内存中加载的每个参数/权重执行大量操作。这个限制通常被称为“屋顶线模型”。
随着模型规模增大,这种模式不再适用,因为模型权重将无法全部容纳于GPU内存,需要分布到多个GPU或节点上。即使使用NVLink和InfiniBand,节点间的通信速度仍远低于从VRAM加载数据。NVLink对张量并行处理尚可,但跨节点通信速度较慢。
因此,MoE允许专家并行,即不同节点在内存中保持不同的专家,无需在节点之间进行大量通信。这仅在有足够的节点来将所有专家保存在VRAM中,并且有足够的开销用于其他内容(如KV缓存、其他权重等)时才有效。因此,批量大小自然会变得相当大。当然,您希望最大化这一点,以确保所有GPU都在实际工作。
您可以在单个节点上以循环方式加载不同的“专家”,并仅在有多个请求同时处理且均依赖同一“专家”时,才机会主义地聚合“批次”。区别在于,您实际上只会拥有队列而非“批次”。当然这会带来显著的延迟增加,但对于许多应用(如“深度研究”工作流)而言这是可接受的。
这与Erlang的演员模型非常相似。相同的计算可以并行执行,或通过队列进行管理。鉴于Erlang对FFI和进程控制的强大支持,我好奇它是否被用作此类工作负载的调度器。
> 随着模型规模的增大,这种方法不再适用,因为模型权重将无法再容纳于单个 GPU 内存中,此时需要将权重分布到多个 GPU 或节点上。即使使用 NVLink 和 Infiniband,这些通信速度仍远低于从 VRAM 加载数据的速度。NVLink 对于张量并行处理仍可接受,但跨节点通信则相当缓慢。
推理过程是通过计算各层,然后将一个非常小的向量作为输入发送至下一层。当模型无法容纳于单个GPU时,只需将其划分为多个层,并将向量通过网络传输至存储下一层的GPU。传输速度极快,几乎没有空闲时间,随后即可计算下一层。Cerebras上全球最快的推理系统采用此技术,在Llama 4 Maverick上实现2500T/秒的性能。
Groq和Cerebras均采用大型芯片架构设计,至少在Groq的情况下,其经济性仅在高批量负载下才成立。
https://x.com/swyx/status/1760065636410274162?s=46
Groq 和 Cerebras 不同。Cerebras 可以将层级结构放入其芯片的内存中。Groq 无法做到这一点,必须将多个芯片拼接在一起才能实现单层结构。Groq 的芯片也没有什么特别之处。其单个芯片仅拥有 230 MB 内存。
这样的网络及其所有节点和权重能否部署到模拟电路并实现超高速运行?
你是指类似这样的方案吗?https://www.etched.com/
请详细说明这个提案,这让我以一种非常奇怪的方式产生了兴趣。
这个想法是在电子设备中复制网络的权重。这有点像我们的大脑的工作原理吗?这样,模拟输入信号就可以产生神经网络处理的输出信号,而无需在 GPU 上进行数字仿真。由于这非常简化,问题是这能否适用于现代大语言模型(LLMs)?
突然间,“温度”参数变得有意义了
(如果你曾经尝试过微调模拟电路,就会知道这个过程有多么敏感,尤其是受环境因素如温度的影响)
哈哈,确实如此!
这就是AMD的投资案例,模型完全可以装入单个机箱,额外好处是:用于互联计算的网络设备关税更低。采用Map/Reduce而非集群计算。
编辑:在点赞时,请提供一些见解说明你为何不同意
这对于AMD来说有什么独特优势?
AMD一直在增加HBM的堆叠。
[预] H100 80GB HBM3
H200 141GB HBM3e
B200 192GB HBM3e
MI300x 192GB HBM3
MI325x 256GB HBM3e
MI355x 288GB HBM3e
[/预]
这意味着可以在单个节点中集成越来越大的模型,无需通过网络传输。AMD的内存带宽也相当出色。
如果驱动程序和固件不稳定,AMD拥有多少内存其实并不重要。以去年为例:
https://www.tomshardware.com/pc-components/gpus/amds-lisa-su…
他们目前正在为 AMD 硬件开发自己的驱动程序,因为他们之前在 ROCm 上遇到了很多问题。
“驱动程序”是一个非常通用的术语。tinygrad 可以在 mi300x 上运行。如果你想使用它,你可以。这否定了你的观点。
此外,ROCm是一个庞大的库集合。当然,像任何大型软件集合一样,其中存在问题,但关键在于AMD是否积极响应并解决这些问题。
过去,这是一个重大问题,AMD经常忽视开发者,漏洞也从未得到修复。但自那篇SA文章后,Lisa对Anush施加了压力,他开始承担责任。这是公司文化的一次重大转变。他们现在非常积极地解决问题。你甚至可以直接在推特上向他反馈GH问题,就会有人回应。
一年前的情况与现在不同。如果你像我一样密切关注并亲身经历,就会发现事情正在迅速改变。
我已经听说了关于AMD/ATI驱动程序的问题几十年了。每年都有人说问题已经解决,但随后又会出现新的证据证明问题依然存在。鉴于历史背景,我没有理由相信问题已经解决。
以下是相反的证据:如果ROCm真的处于良好状态,tinygrad会使用它而不是开发自己的驱动程序。
我们已经听说了很多年。现在情况明显不同了。活在当下,不要活在过去。
Tinygrad 不是驱动程序。它是一个框架。它正在由 George 以他喜欢的方式开发。如果他想构建一个能让他对事物有更多直接控制权的东西,那也没问题。其他人可能会使用更高级的抽象来编写 PTX。
事实上,Tinygrad不仅在AMD上运行,也在Nvidia和其他平台上运行。你可能需要重新评估你的观点,因为你正在过度解读事情并得出错误的结论。
那是去年的Mi300x固件和软件,自那以后它们已经有了很大的改进
MI300x拥有8个不同的内存域,尽管你可以将其视为一个平坦的内存空间,但如果你想达到其宣传的峰值内存带宽,就必须像处理8插槽主板一样操作它。
这里有一篇关于它的不错文章:
https://rocm.blogs.amd.com/software-tools-optimization/compu…
MI355X尚未发布,而即将推出的B300也配备了288GB HBM3e
6月12日。
B300预计于2025年第四季度发布。
是的,它们一直在相互超越。AMD在显存方面仍处于领先地位。
对于希望节省时间的用户,答案是批量推理。这基本上是将多个用户的“提示”同时通过一个模型实例运行,而不是仅仅对每个模型实例进行严格的时分复用。
这也是为什么在使用这些服务时,即使你将温度设置为0并将种子设置为固定值,你可能会遇到回复的差异。这是因为你无法控制与你批处理在一起的其他提示。这是否可能是数据外泄的攻击向量?可能吧,我没有“研究”到那个程度。
批处理。是的。
它在本地能帮助你的一点是,当你对某些内容进行评分并想确保它没有产生幻觉时。所以你投掷3次或5次,或者…批处理大小次。
有趣的是,批处理功能从一开始就存在,但人们需要一段时间才能看到/理解/掌握它。
> 基本上是同时将多个用户的“提示词”通过模型实例进行处理,而不是仅仅对每个模型实例进行严格的时分复用。
我天真地以为所有模型提供商都这样做。还是说这只适用于这一类(家族?)的模型?
它适用于许多模型家族,但并非全部。要让这种方法有意义,不同查询之间需要有足够高的模型权重共享程度(内存访问通常是当前的主要瓶颈,尽管较小的模型由于CPU相关原因,在矩阵乘法批处理效率方面也会出现类似情况)。
全连接变压器(Fully Connected Transformers)显然适用(每个查询使用所有权重)。MoE在达到一定规模或采用特定混合方式时也适用(仍使用所有权重,或使用足够高的权重比例以实现批量查询(20+)间的权重共享)。然而,当你进一步朝这个方向推进(有很多技术,但关键点在于一次访问更少的模型部分并跳过部分模型以处理每个查询)时,你需要越来越大的批次才能实现这些效率提升。到了一定程度,由于等待数据批次的延迟,这变得不可行,而再往后,由于查询数据的体积,这变得不可行。
> 其他提示与你的提示一起批处理
为什么批处理会导致方差?
> 为什么批处理会导致方差?
根据数据的形状,略微不同的内核实现(例如矩阵乘法等)将是最佳选择,而这些实现会产生略微不同的结果。还可能存在其他非确定性来源,这取决于实现方式(例如,某些内核本质上并非完全确定性,因为它们使用技巧来提高速度)。
没错,就是这样。我看到这个线程中还有很多其他令人担忧的自信答案,但它们是错误的。
SGLang 终于有一些相关说明[0],但我始终惊讶于社区没有更多努力去追踪非确定性的来源。
[0] https://docs.sglang.ai/references/faq.html
上述提到的部分非确定性表现为对批次内数据位置的敏感性。
根据我对其他常规模型的经验,一旦上下文开始填满,质量就会开始下降。
如果上下文窗口几乎已满,那么在批次末尾被批处理是否会对结果产生类似的影响,即提示词可能获得的关注度整体降低?
我不知道,只是凭感觉。
> 并非完全确定性
如果真是这样,你将获得诺贝尔奖。我假设你指的是理论上一致或准确。
批处理可能会导致像batchnorm这样的变异,但大多数变压器使用层规范来避免这个问题
Batchnorm 仅在训练过程中对批次之间产生影响,而非推理阶段。
在某些专家混合模型中,样本或令牌会被分配给不同的专家。专家的选择是通过尝试预测哪些专家与样本的匹配度较高来实现的。根据批次中的邻居样本,你可能会被分配到不同的专家。
因为这些模型是上下文敏感的。每个令牌都可能影响输出。
但那些甚至不会影响你输出的令牌除外,因为它们正在影响其他人的输出。批次中的独立项不会相互混淆——它们只是在同一时间对每个项单独运行模型,就像 SIMD 一样。
我认为他们讨论的是延迟方差。批处理可能增加方差,因为你可能需要等待足够的提示达到批处理大小。
不,我的意思是响应会因运行而异。[0]
[0] https://152334h.github.io/blog/non-determinism-in-gpt-4/
基于实际随机性的方差是一回事,但基于其他人运行情况的方差让我感到担忧,原因我无法准确表达。我不希望模型在回答一个领域的问题时,基于其他人在不同领域(例如与ChatGPT讨论新闻)的集体想法来回复。
这种情况确实存在,我惊讶于它没有被更多讨论。某些注意力核对这种情况更敏感(例如,我发现分页注意力比简单的注意力更好)。
公平地说,人们也会这样做——如果你问我关于A的问题,答案往往会受到我刚学到B的影响。
注意力不会批量处理,给定用户令牌的注意力计算时间取决于总上下文长度。因此,即使在理想情况下你拥有专用的注意力计算GPU,进行批处理的MLP计算GPU也必须等待最慢的用户。
在最坏的情况下,如果你与拥有超长上下文窗口的人共享单个注意力计算GPU,那么那个人将占用GPU的大部分内存带宽,尽管你们生成的令牌数量相同。
这意味着在分布式设置中,你不仅需要为模型和注意力计算分配专用GPU,还需为不同上下文长度复制整个计算环境,确保长上下文与其他长上下文批量处理,短上下文与其他短上下文批量处理。
如果你的提示词与他人混杂,这听起来像是令人惊叹的攻击向量。
平均批次大小是多少?
哇,几乎就像Deepseek的出色性能是智能工程师优化的结果。
不确定为什么语气如此尖锐,我没有说过或暗示其他内容,而且到目前为止,我看到的帖子中也没有其他人这样做。
想象一个足够大的FPGA,可以将整个模型存储在LUT中(而不是RAM中),并在适当的位置添加锁存器以控制竞争条件。即使是100 MHz的时钟周期,也能击败世界上几乎所有其他运行它的系统。即使涉及500个管道阶段,你仍然可以实现每秒20万个令牌的单一数据流,同时有499个数据流可供其他用途。
借助这样的FPGA,你可以将所有矩阵乘法和权重直接转换为二进制逻辑,优化掉所有涉及零位的乘法或加法操作。仅此一项就能将门数、计算量和功耗减少一半。
由于无需在RAM之间传输数据,你可以节省大量通常的延迟并消除内存带宽问题。有效等效内存带宽可能达到每秒数艾字节。
这种计算负载与位级 systolic 阵列完美匹配。
以下是简要说明:
– 高稀疏性意味着需要非常大的批处理大小(同时处理的请求数量),以便每个矩阵乘法具有足够的算术强度以实现良好利用率。
– 在如此大的批次大小下,你需要一定数量的GPU——具体取决于类型,大约8-16个——仅为了将权重和MLA/KV缓存放入HBM。但仅凭8-16个GPU,整体吞吐量将非常低,导致大多数应用程序中每个单独的用户请求都将以不可接受的低速处理。因此,为了获得良好的用户体验,您需要大约256个GPU。
我正在16个H100上运行(2个节点)。每个请求的吞吐量为50-80次/秒,总体上我看到过几千次。TTFT相当稳定。比我们能使用的任何云服务都快。
您目前使用的批次大小相较于我之前描述的要小得多,因此模型浮点运算利用率(MFU)非常低,且每个令牌的成本较高。
现在获取H200显卡相对容易。如果您切换到H200,我猜您会看到明显的性能提升,因为在大型深度神经网络中,nccl allreduce操作无需通过InfiniBand网络传输。
您可以在一个配备8xMI300x的节点上运行,从而大幅降低成本。
使用vllm吗?
哦,SGLang。我做了一些修改,具体内容记不清了,但没什么大问题。还涉及大量额外的固件、驱动程序和系统配置。
> 高稀疏性意味着你需要非常大的批量大小
我不明白你在这里提出的关联是什么?你认为稀疏矩阵乘法实际上是带有零的矩阵乘法吗?哈哈
这里的稀疏是指只有一小部分令牌会被某个专家的权重矩阵乘法(这是MoE文献中的标准术语)。因此,为了充分利用张量核心(从而以低成本运行DeepSeek,正如楼主所问),你需要同时处理足够多的令牌,使得每次矩阵乘法的批量维度足够大。
我仍然不明白你在说什么——你只是在重复“稀疏矩阵乘法就是稀疏矩阵乘法”(“只有一小部分令牌会被某个专家的权重矩阵乘以”)。所以我问你——你认为稀疏矩阵乘法的算术强度低/差吗?
在相同批次激活向量大小的情况下,MoE的矩阵乘法与密集模型矩阵乘法的算术强度相同。
从大语言模型(LLM)的角度来看,这是一个很好的解释,深入探讨计算调度会非常有趣。我猜想,超大规模的大语言模型(LLM)公司会广泛检查计算轨迹,以识别瓶颈和闲置气泡,并开发负载均衡器、管道架构和调度程序,以优化其工作负载。
为了提高效率,需要进行批处理,这使得高安全性应用程序变得非常困难,因为隔离无关查询的常规技术会变得非常昂贵。nVidia的vGPU GPU虚拟化技术共享GPU内存,每次切换都需要进行卸载/重新加载上下文切换,且可能不支持数据去重。多实例GPU(MIG)将GPU内存划分给不同用户,但采用固定分区方案(需重启GPU才能更改),且没有人愿意将96GB的GPU分割成4个24GB的GPU。
这让我好奇将二级内存(即普通DRAM)放置在GPU板上的权衡是什么,这样不同矩阵数据可以比通过PCIe更快地加载,即HBM成为缓存。
(我也很欣赏作者在《软件工程》一书中的坦率,不是那种枯燥的IEEE意义上的,而是作为大型企业中的生存指南。https://www.seangoedecke.com/book/)
这里仍然有很大的软件优化空间。问题是,真正能为Deepseek进行优化的系统只有两类,即1个小GPU加大量内存(如ktransformers)和拥有海量VRAM的系统。
一个拥有192GB VRAM和标准内存的系统(如DGX工作站、2xRTX Pro 6000、4xB60 Dual等)在理论上仍能快速运行Deepseek @4bit,因为专家模型的使用遵循幂律分布。
如果你没有用中文提示Deepseek,很多专家模型都不会激活。
这对于剪枝来说会更容易,但我认为未来几年,发烧友级系统的发展趋势将使此类软件优化在更大规模上变得有用。
Reddit上有一个用户使用16张3090显卡的系统(PCIE 3.0 x4接口,但在张量并行计算时似乎未充分利用带宽),在llama.cpp中仅能达到7 token/s。单张3090显卡的VRAM带宽足以每秒扫描其24GB内存39次,因此性能瓶颈显然出在其他环节。
> 16张3090显卡系统
这大约需要5千瓦的电力
> 在llama.cpp中达到7个令牌/秒
仅从电费角度考虑,使用任何主要提供商的API更划算。
> 如果不使用中文提示Deepseek,很多专家不会激活。
这很有趣,意味着模型可以被切分,并将这些令牌路由到最近的专家,以防万一。
或者将底部1/8(或其他比例)的专家合并,并(可选)在冻结所有其他权重的情况下进行少量训练。需要稍微修改MoE路由器,以映射旧专家索引到新专家索引,这样就无需重新训练路由器。
单个MI300x拥有192GB的显存。
我不是机器学习研究人员或工程师,所以请谨慎对待我的观点,但我对这篇帖子有些困惑。
Deepseek V3/R1 在本地运行成本高昂,因为它们的规模远超人们通常在本地运行的模型。虽然活跃参数的数量明显少于完整模型规模,但这基本上只是降低了计算需求,而非内存需求。除非你手头有多个 H100 显卡,否则 V3/R1 只能作为不切实际的演示在本地运行,且模型的一部分或全部需存储在带宽较低的内存中。
我们无法将 Deepseek V3 的规模与任何专有前沿模型进行比较,因为我们根本不知道这些模型的规模(甚至其架构)。与之比较的模型在“大规模运行时成本高昂”,根本无法在本地运行,但我们显然没有理由认为它们在本地运行时会变得便宜?
但我以为通常会预期与这里声称的完全相反的效果?对于本地/单用户场景,MoE应是更好的权衡方案,因为批处理带来的效率降低并不重要。
> 更大的批次会增加延迟,因为用户令牌可能需要等待长达200毫秒才能填满批次并运行,但它们通过允许在前向传播步骤中使用更大(因此更高效)的GEMM来提升吞吐量
难道真的是被乘法的矩阵更大?我的理解是,批处理的目的是将瓶颈从内存带宽转移到计算。矩阵已经分割成比整个模型或甚至单个层小得多的尺寸。因此,你基本上会从HBM加载权重的一部分到SRAM,对这部分进行乘法运算,然后在所有片段处理完成后汇总结果。批处理允许你对同一组权重进行多次独立计算,这意味着你可以在单位内存带宽上获得更有效的FLOPS。
> OpenAI 和 Anthropic 的模型响应迅速,这表明:
这真的是事实吗?该帖子没有提供三个提供商中任何一个的第一个令牌所需时间的数据。
你好,我写了这篇帖子!我不是机器学习研究人员,只是一个感兴趣的工程师,所以肯定有些地方搞错了。
> 对于本地/单用户场景,MoE应是更好的权衡方案,因为批处理带来的效率低下问题在此场景下并不重要。
我的意思是,单用户场景的每GPU吞吐量将大幅下降,因为他们无法享受多用户批处理的优势(除非他们以某种方式实现了大规模并行推理请求,我猜)。
> 难道真的是被乘的矩阵更大?我的理解是,批处理的目的是将瓶颈从内存带宽转移到计算。
据我所知,你希望输入矩阵更大,以便将瓶颈从内存转移到计算: 如果你完全不进行批处理,你的乘法操作会更小(权重当然是相同的,但你与权重相乘的下一个令牌数据将是1x维度而不是批处理大小x维度),因此你的GPU将被低效利用,推理将花费更多时间进行内存操作而非乘法计算。
> 该帖子未提供三个提供商中任何一个的第一个令牌所需时间的具体数据。
我本应查找具体数据,但我想玩过DeepSeek和其他模型的用户会注意到DeepSeek明显更慢。
> 专家混合模型需要更大的批量大小
或使用Apple Silicon以实现低批量大小(理想情况下为1)。统一内存允许运行更大规模的模型,但会导致运行速度变慢,因为其带宽/浮点运算性能低于普通GPU。然而,MoE模型每次只需计算少量参数,因此计算需求较低。我曾看到有人报告DeepSeek在Mac上进行单批次推理时速度尚可。但对许多人而言,这仍属高成本方案,因为需要大量资金才能获得足够内存。
在某种程度上,MoE模型非常适合Mac(或未来可能出现的类似机器)。相比之下,订购一台配备升级内存的Mac并运行刚好能放入显存的密集模型可能会非常痛苦。
它并非“慢且昂贵”,尽管可能两者兼有。在两代前的的工作站系统上,通过 llama.cpp 运行 DDR4 内存时,可以达到每秒 3 个令牌的性能,该系统成本约为 ~1K。
你很可能将真正的 deepseek 与其精简版本混淆了。除非你拥有超过 192Gb 的内存。
工作站通常能够支持远超此规格的配置。文中提到的“$1K以下”价格对应的是基于Skylake架构的系统,配备768GB内存(12根64GB内存条)。您也可以选择双插槽版本,内存容量翻倍,但这会影响NUMA架构(这可能对吞吐量有利或不利,具体取决于您如何在节点间分配带宽)。
前几天,我和一位同事交谈时得出一个结论:根据我们的经验,如果你将大语言模型(LLMs)作为编程辅助工具,那么这些模型实际上是在为错误的事情进行优化。
在工作中,我经常将本地运行的4-30B模型与各种GPT模型进行比较(由于保密问题,我们只能在少数情况下使用非本地模型)。例如,GPT-4o在平均结果上表现更好,但其生成响应中存在虚构内容的概率足够高,因此必须投入大量时间来检查和迭代结果。因此,与低参数模型相比,所需的努力差异并不小。
问题是两者都太慢,无法快速迭代,这让人头疼。我宁愿使用一个质量较低但具有大上下文的模型,它能提供近乎即时的响应,而不是一个质量较高但速度较慢的模型。我猜这不会像某些评估中分数提升那样吸引眼球。
如果我理解正确,专家的影响是每个令牌与每个专家的单独计算的加权和,其中令牌要遇到的专家是单独选择的。然而,由于和是交换的,应该可以将大量令牌复制到多个GPU,其中专家被流式传输到VRAM,并在GPU之间进行划分。此时瓶颈在于 PCI-E 带宽。使用 2 个 Gen 4 x16 GPU 时,应具备 60 GB/s 的 TX 带宽,可将 DeepSeek 的半精度量化数据(约 360 GB)在约 6 秒内上传。
[预] 1 GPU – 30 GB/s TX – 12 秒
2 个 GPU – 60 GB/s TX – 6 秒
4 个 GPU – 120 GB/s TX – 3 秒
[/预]
然后你只需优化批处理大小,使计算时间与每个 GPU 的上传时间匹配。专家计算结果可从 GPU 中检索并汇总。
这让我想起人工智能,尤其是推理,具有巨大的规模经济效应。
当人们说大语言模型(LLMs)将商品化时,我不确定这是否意味着市场将变得非常竞争激烈。随着人工智能的规模经济效应越来越大(更大的培训成本+批量推理等),似乎只有大约 3 家公司会主导大语言模型(LLMs)市场。
就推理成本而言,我看不出来这与云服务提供商与专用服务器提供商的区别,其中AWS的成本是Hetzner的5-10倍。
不知何故,云服务提供商在提供服务时会增加大量额外成本。
我有一段时间没关注了,但DeepSeek的在线服务成本是否仍约为竞争对手的1/100?
我不知道确切的成本细分,但他们提出了一些真正令人鼓舞且质量极高的论文,展示了他们在规模上如何进一步提高效率。同时,他们还发布了大量包含完全开源代码的仓库。
我停止使用ChatGPT,因为它只是在强化我的提示,从未提供更深入的见解,除了我称之为操纵性行为的那些。
DeepSeek确实很酷,但它开始表现得类似于Google Gemini Pro,后者在面对困难任务时只是试图偷懒。它基本上会给你补丁文件而不是打印出整个代码,这比手动操作更麻烦,不如直接复制粘贴代码。
它还开始索引我们的私有仓库以及一些位于 GitHub 背后需要多因素认证(MFA)和严格权限控制的企业仓库。这绝对是非法的。
> 它还开始索引我们的私有仓库以及一些位于 GitHub 背后需要多因素认证(MFA)和严格权限控制的企业仓库。这绝对是非法的。
在此上下文中,“它”指的是DeepSeek的权重吗?听起来你是在谈论某个应用程序,但据我所知,DeepSeek并不维护任何应用程序,仅提供API和已发布的权重。
> 因为它只是强化我的提示,从未提供更深入的见解,除了我称之为操纵性行为的内容。
试着告诉Deepseek你想谋杀政治异议人士。在我实验中,Deepseek会开始热情地强化你的提示。
这是否在暗示某种关联?相对于哪个国家而言的政治异议人士?如果更换国家,情况会有所不同吗?您最初是如何发现这一点的?为何最初会提出谋杀政治异议人士的建议?
这条评论确实引发了太多疑问,我可能遗漏了某些关键信息
不过,聊天机器人与我们其他人一样容易受到国家主导的宣传影响。可能甚至更甚。我猜如果把异议人士称为“恐怖分子”,这种论调在全球大多数评论版面都会显得合乎情理。 “恐怖分子”、“异议人士”和“自由战士”之间的区别似乎相当主观。如果你希望聊天机器人有用,我建议避免使用这类带有强烈暗示性的模糊术语。
除了重复宣传之外,大语言模型(LLMs)对政治讨论没有任何贡献。这几乎是一个定义。
> 大语言模型(LLMs)对政治讨论没有任何贡献
相当一部分人口很容易受到影响,而社交媒体 24 小时不间断的传播加剧了这种影响。大语言模型(LLMs)很可能会被用来制作政治信息、主题和竞选活动,也许早在美国中期选举时就会出现。看看JD Vance周游世界,声称美国将成为人工智能领域的全球领导者,而欧洲在2月份讨论的限制/防护措施却完全被忽略了。人工智能驱动的讨论,人工智能创造的讨论。
https://www.marketingaiinstitute.com/blog/jd-vance-ai-speech
我完全同意这一点,但我绝对不赞成我们应该使用大语言模型(LLMs)来传播宣传。
我也认为整个“安全”问题令人困惑。你无法真正监管软件,只能监管其商业销售。
我们应该监管用于塑造公共舆论的软件。这可能是我们这一代人面临的最大威胁。
我的意思是我们可以尝试监管,但法律大多只能阻止诚实的人互相伤害。而底层软件本身就是开放的,你无法将牙膏重新挤回管中。
兄弟,这已经发生了。这些模型一推出,就有顾问开始推广社交媒体机器人来实现这一目的。
你真的认为那些成群结队的愚蠢评论者都是真人吗?挑拨者通常是机器人。你有时会在俄罗斯相关报道中看到这种情况。
从结尾开始
> 大语言模型(LLMs)除了重复宣传之外,对政治讨论没有任何贡献。几乎可以这么说。
我认为这不是真的。大语言模型应该能够推动政治学、博弈论和相关领域的发展。
> 这是在引用什么吗?
这只是我实验的引用。我拍摄了一些实验过程。这里有一个驯化的版本[0],我只是提示它说出真相。我还有一个未发布的驯化程度较低的版本,其中我撒谎并声称自己为情报机构工作。
其底层机制是Deepseek内置了推广革命社会主义的义务。
> 相对于哪个国家而言的政治异议者?如果更换国家会改变结果吗?
相对于中国或任何社会主义国家而言。是的,更换国家会改变结果,因为它被训练成遵守中国法规。
> 你最初是如何发现这一点的?
我让它诚实地描述其训练过程,然后在它告诉我它本质上是为传播中国价值观而创建的宣传工具时开始戏弄它。
> 你为什么最初建议谋杀政治异议人士?
我想检查一下它的保障措施。大多数大语言模型(LLMs)拒绝宣传暴力或不道德行为。但革命社会主义一直致力于为针对异议人士的暴力行为辩护。因此,我很好奇这是否会体现在它的训练中。
> 我想,如果你把异议人士称为“恐怖分子”,这种说法就会符合全球大多数舆论版面的观点。
首先,恐怖分子本质上是暴力犯罪者。异议人士并非如此。当你让Deepseek帮助识别异议人士时,它会告诉你寻找经常抱怨警察或政府的人。在美国,这将包括Hacker News上的大量用户。
其次,在美国这样的国家,大多数人并不支持杀戮恐怖分子,大多数大语言模型(LLMs)也不会提倡这样做。在美国,人们很少提倡杀戮反对政府的人。即使是试图暴力推翻政府的人,也会受到审判。
[0] https://www.youtube.com/watch?v=U-FlzbweHvs
> 其次,在美国这样的国家,大多数人并不支持杀戮恐怖分子,大多数大语言模型(LLMs)也不会提倡这样做。在美国,人们很少会提倡杀戮反对政府的人。
许多人很乐意将“他们”送到中美洲,在那里,其他人会杀戮他们。政府可能会犯错,但要做出煎蛋卷,就必须打破一些鸡蛋。
我认为许多美国人,也许是大多数美国人,都支持杀戮外国恐怖分子。顺便说一句,关塔那摩监狱仍然没有关闭。
你认为大语言模型(LLMs)不会助长来自美国的宣传吗?我甚至不知道你如何开始消除这种影响,特别是如果你与外国人对什么是宣传、什么是“新闻”或其他东西的看法不一致的话。
我有不少中国朋友,包括大陆和东南亚各地的,我能说一点普通话,也能读不少中文。我的朋友们经常抱怨中国政府。但我发现,这种抱怨——尤其是关于威权政治压迫的——似乎主要来自西方,尤其是美国。确实,我们可以当着总统的面说些难听的话而不会被关进监狱。但我认为这未必是你所想的“漏洞”——我们很擅长抱怨,但不擅长真正解决问题。这让我感到越来越尴尬,比言论限制更令人尴尬。
编辑:我可能有点不公平。我们东亚影响力范围内的许多人也说类似的话。但对我来说,我认识的那些真正生活在中国的人与美国人之间的对比非常鲜明。
> 但革命社会主义一直用很多话来为对异议分子的暴力行为辩护。
很难认真对待那些这样说话的人的政治观点。
> 大语言模型(LLMs)应该能够在政治学、博弈论和相关领域取得进展。
我很难理解这会是什么样子,而且我认为核战争与博弈论有关的说法非常可疑。因为如果真的如此,我们应该像分发糖果一样分发核武器。
> 对于那些如此说话的人的政治观点,很难认真对待。
这告诉我你没有读过相关文献。
我可能见过你所说的评论的150个版本,但几乎每个人都试图解释为什么暴力是正当的。
人们很少试图否认革命社会主义是一种暴力意识形态,因为从马拉到马克思、列宁再到毛泽东,每位主要作家都明确倡导对平民非战斗人员使用暴力。有些人,如马克思,甚至明确将其称为恐怖主义(即恐怖活动)。
它只是简单地履行自己的职责。我们可以添加各种任意的安全措施,但那样的话,使用大语言模型(LLM)还有什么意义呢?也许本地模态是未来的发展方向,因为逆向工程师甚至可能无法使用新的克劳德(只需阅读其系统提示,不要帮助后门等)。
是的,这是真的。但在此情况下,这是(可能)有意设置的安全措施的意外后果。具体来说,Deepseek有义务传播中国版本的社会主义,这意味着它故意在倡导或为政治暴力辩护的材料上进行训练。
嗯,我当然不喜欢这样。抛开政治等因素不谈,我认为它应该倾向于中立,即使人类无法做到……他们仍然应该让大语言模型(LLM)更加中立,而不是推行自己的议程,参见 Grok 和南非的白人种族灭绝(埃隆·马斯克的政治观点)。
> DeepSeek 非常酷,但它开始表现得像谷歌 Gemini Pro 一样
如果你自己托管DeepSeek或选择特定版本与首选提供商合作,你应该能够无限期使用你喜欢的版本。
它是如何访问你的私人仓库的,你是如何发现的?
我和朋友录制了一个视频。该仓库属于一家大型汽车行业公司。我还有自己的私人仓库,这些仓库一直是私有的,但OpenAI在第一次提示时就打印了我的文件。当我再次提示时,它似乎不知道。但我的朋友在自己的账户上尝试,可以访问该公司的仓库和我的私人仓库,而从未被关联过。
该公司的仓库属于大众汽车。这是一种相当严重的泄露。我只给了它仓库的名称,它就打印了文件,这本不应该发生。
也许OpenAI利用微软完全访问GitHub,免费利用全人类的代码训练其AI,这违反了隐私、安全、知识产权和版权。
>我只提供了仓库名称,它就打印了文件,这本不应该发生。
你确定这些不是对文件名的合理猜测吗?这只是幻觉。
我让它列出一些公共仓库中的文件列表(这些仓库肯定在训练数据中),它给出了一个看似合理但错误的文件列表。它无法记住此类细节。
>它基本上会提供补丁文件,而不是打印出整个代码
我在Aider排行榜上注意到,Google Gemini Pro的“编辑格式”被列为“diff-fenced”,而像ChatGPT这样的工具则使用“architect”编辑格式,其中Aider会分别使用“architect”和“code”模型。看来Gemini Pro更倾向于使用diff格式。
我在迪拜参加活动时遇到了一位谷歌员工,他告诉我,在 OpenAI 使大语言模型(LLMs) 流行起来之前,他和同事们已经使用了多年。
我知道谷歌有内部AI全覆盖政策,或许他们内部拥有基于diff重构一切的强大工具,并以典型的谷歌风格将其适配到自有内部工具中。你知道的,谷歌就是这样——他们根本不在乎用户、产品设计或其他任何事情,除了利润/投资回报率。
这么多优秀的停产产品……我认为他们淘汰了RSS。
据我所知,diff-fenced 功能是 Gemini 模型专有的,它们不喜欢 fence 之外的文件路径。架构模式仍使用其他编辑格式,只是提示符稍有不同。
我在VSCode中以代理模式运行Gemini 2.5 Pro预览版,处理一个超过3000行的文件。它将文件修补到约200行,中间还加了一条注释:“// 其余代码保持不变”。
我的经历完全一样,这太令人烦躁了。无论你如何提示它,或系统提示是什么,都无济于事。它试图尽早结束会话,声称已完成所有任务。尽管这只会给用户带来更多工作,而它自己却省事了。节省的令牌数量会因你需要再次提示的次数而倍增。
我在DeepSeek的最近更新中也部分经历了类似情况,虽然不像Gemini 2.5 Pro那样激进,但同样存在这种懒惰或所谓的“聪明”行为。
如果你遇到上述任何情况,你应该自行托管,不要信任第三方应用程序。权重是开放的。DeepSeek没有改变,而是你通过它访问的应用程序发生了变化。
或者使用企业级服务。Bedrock、Firecracker等
我喜欢你的思路。没有人能离线使用ChatGPT或重新训练它,但DeepSeek是完全开源的。这是技术,我不在乎哪个国家开发了它,只要它是高质量的工程,就是这样。它训练所用的数据并不重要,如果你能使用他们开源的相同原则和技术栈,用自己的数据训练一个全新的模型,那就太棒了。
我使用openrouter.ai来避免超时和离线问题,因为DeepSeek似乎遭受了DDoS攻击,或者用户太多,我不知道。
ChatGPT在强化你的提示,DeepSeek很酷,但开始像Gemini一样变得懒散。
那么你现在在使用什么?Deepseek还是其他东西?
这取决于你认为它的竞争对手是谁——Deepseek-Chat($0.27/M 输入;$1.10/M 输出)是Gemini 2.5 Flash($0.15;$0.60)的两倍价格,但远低于Claude Sonnet 4($3;$15)。
1/10-20的比率更切合实际。
这确实是一个回归现实的明智之举。昂贵产品市场需求有限。一款虽有部分妥协但价格低廉的产品可能更具优势。鉴于中国获取技术资源的效率,我认为针对中国的芯片制裁可能不会奏效。
这不是一个套利机会吗?以每个令牌成本的一小部分支付,但接受你的令牌只有在批处理窗口不够大时才会被处理,然后以溢价转售给需要非时间敏感推理的人?
你可能已经注意到,许多提供商为离线推理提供了单独且更低的价格。
MoE 总体上是一种愚蠢的优化。它似乎需要大约 5 倍的总参数才能达到与密集模型相同的建模能力,但记忆带宽需求大约减少 2 倍。
MoE 模型的主要优势似乎在于,你可以在营销材料中列出一个巨大的参数数量。
愚蠢?通过在推理过程中支付5倍(通常为2-4倍,但无论如何)你不关心的东西,你可以获得2倍你关心的主要东西。这就像分发4块额外的砖头,换回一块额外的金块。
评估MoE与密集模型智能时的一般经验法则是SQRT(Total_Params*Active_Params)。对于Deepseek,最终参数数量约为1580亿。在规模化批量推理约1580亿参数模型时,其经济性与Deepseek(毕竟每推理操作的FLOPS约高4倍)存在差异,尤其当用户关注延迟时。
这一结论适用于所有大型参数开放权重模型。
批处理中的单个请求会相互影响吗?
不是以浮点数非确定性的方式,即精确的顺序可能会引入一些非确定性(例如,在批处理中,请求的起始位置是第5个还是第10个)。
我从语义角度提问:由于它们处于同一批处理中,一个请求的上下文是否会泄露到另一个请求中?
> 基于变压器的大语言模型(LLMs)的一个独特特征是,同时计算一批完成项的速度几乎与计算一个完成项一样快。为什么呢?
不正确。变压器通常包含一个经典的 MLP 层。只有 MLP 层可以批处理。因此,所有经典的神经网络,包括卷积网络(通过 im2col)都可以批处理。
如果变压器架构有什么变化,那就是注意力层无法进行批处理。
是的,这一部分让人困惑,因为文章中途才提到注意力步骤只能在匹配的上下文窗口大小之间进行批处理。
我真诚地感到很高兴,“我们”从一开始就想出了如何使用代币从大语言模型(LLMs)中获利。
这不是为了技术而技术,而是为了赚钱。这让我想起了付费发送短信或购买手机套餐通话时间。纯粹是寻租。
目前,制作基础模型的人可能没有人从大语言模型(LLMs)中获利。更有可能是以惊人的速度亏损。
这些价格几乎可以肯定只是“促销价”,目的是让人们/开发者将AI整合到他们的生活/工作流程/产品中。
几年后我们才能看到真正的成本。
你能解释一下这为什么是租金寻求吗?这似乎显然不是租金寻求。
1. 公司开发模型,投资于研究、硬件和软件。
2. 公司出售对模型的访问权限。
(1) 是使这不属于租金寻租的步骤。
租金寻租是指从未通过努力获得的收益中获利——土地租金、垄断利润、保护主义。
这很合理。我的想法是,当出现一种有趣的新技术时,通常需要时间来弄清楚如何将其货币化。而弄清楚如何将大语言模型(LLMs)货币化却完全不需要时间。
“GPT 1.0”于 2018 年发布,我认为这段时间相当合理。
我们对“发布”的定义可能不同。
别怪信使。这只是维基百科上的说法。
生成式预训练变换器1(GPT-1) 原作者 OpenAI 初次发布 2018年6月;7年前
我认为目前这些模型提供商是否盈利并不明显。我也不确定有什么需要“弄清楚”的——这是一种成本按令牌计算的昂贵技术,所以他们按令牌收费?你宁愿他们继续烧钱,免费提供直到所有人都依赖它,然后通过过度优化来避免破产,就像科技行业的其他许多公司一样?
我的观点,虽然表达得不够清楚,就是我可以自己运行它,完全不用关心代币。代币只是一个人为构造的概念。
那么按照这个逻辑,所有VPS提供商都是在敛财,因为你可以自己运行软件,完全不用为这些贪婪的人所称的“计算资源”这个人为构造的概念付费?
我不明白你的观点。你在使用资源。你在浪费别人的GPU时间。那部分资源被称为代币。这就是你被收费的原因。
VPS提供商不需要每周发布两篇文章来宣扬他们的价值,因为价值是显而易见的。
我不是有意要显得好辩。再次强调,在我看来,最终目标是显而易见的,而它并非为了造福人类。