草庐IT

分布式架构

全部标签

一块GPU搞定ChatGPT;ML系统入坑指南;理解GPU底层架构

1.跑ChatGPT体量模型,从此只需一块GPU在发展技术,让大模型掌握更多能力的同时,也有人在尝试降低AI所需的算力资源。最近,一种名为FlexGen的技术因为「一块RTX3090跑ChatGPT体量模型」而获得了人们的关注。虽然FlexGen加速后的大模型看起来仍然很慢——跑1750亿参数的语言模型时每秒1个token,但令人印象深刻的是,它已经把不可能变成了可能。传统上,大型语言模型(LLM)推理的高计算和内存要求使人们必须使用多个高端AI加速器进行训练。本研究探索了如何将LLM推理的要求降低到一个消费级GPU并实现实用性能。链接:https://mp.weixin.qq.com/s/Z

go - 非对等服务器上的分布式计算

我有一组任务,每个任务都需要满足某些特定条件。例如,任务需要100Mb的RAM才能执行。我还有多个放置worker的服务器。每个worker都有一些配置来描述它拥有多少资源。例如,一些工作人员可以使用1Gb的RAM来执行任务。是否有在worker之间分配任务的系统,以便每个worker满足传递给它的任务的要求?或者也许我可以通过消息代理(例如RabbitMQ)以某种方式做到这一点?我知道为此编写自己的应用程序,因为我不想重新发明轮子。Worker是用Go编写的。 最佳答案 RabbitMQ并没有明确地知道关于它的客户端的这些事情。它

algorithm - 将平面列表加权为正态分布

我有任意长度的字符串项目列表,我需要“规范化”这个列表,以便每个项目都是正态分布的一部分,将权重附加到字符串。除了我下面的方法之外,还有什么更有效的数学/统计方法可以解决这个问题?funcnormalizeAppend(in[]string,shufflebool)[]string{varret[]stringifshuffle{shuffleStrings(in)}l:=len(in)switch{caseremain(l,3)==0:l3:=(l/3)varlow,mid,high[]stringfori,v:=rangein{o:=i+1switch{caseol3&&o=l3*

高维高斯分布基础

高维高斯分布基础多位高斯分布的几何理解多维高斯分布表达式为:p(x∣μ,Σ)=1(2π)p/2∣Σ∣1/2e−12(x−μ)TΣ−1(x−μ)p(x|\mu,\Sigma)=\frac{1}{(2\pi)^{p/2}|\Sigma|^{1/2}}e^{-\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)}p(x∣μ,Σ)=(2π)p/2∣Σ∣1/21​e−21​(x−μ)TΣ−1(x−μ)其中x,μ∈Rp,Σ∈Rp×px,\mu\in\mathbb{R}^{p},\Sigma\in\mathbb{R}^{p\timesp}x,μ∈Rp,Σ∈Rp×p,Σ\Sigma

node.js - 基本客户端/服务器架构和交互

我正在尝试实现客户端和服务器并定义它​​们的交互。客户端使用Golang设计,服务器使用Node.js设计,它们使用gRPC进行交互。所以基本要点是:客户端联系服务器更新后端数据库客户端收到服务器的成功响应然后客户端自己更改数据库现在反射(reflect)的整个系统的状态但是假设发生了一些事情,使得进程在步骤2和3之间终止(客户端进程以某种方式终止)。确保我的后端数据库不反射(reflect)与现实不一致的系统状态的最佳方法是什么?我敢肯定这不是一个新问题,只是想知道人们通常如何处理此类设计。所以我已经考虑过重新设计这种交互,使服务器成为处理系统变化的实体——这样一切都在同一个请求中和

Google Directory API 添加自定义架构/根据 google API 将其更新给用户(在进行中)

我正在尝试将CustomSchema上传到GSuite中一家公司的所有用户。此自定义架构包含他们的Github用户名,我使用githubAPI将其提取。问题是,运行代码后,并没有添加Gsuite中的账号。相关代码(已建立使用管理员身份验证的GSuite连接,map包含所有用户条目。如果您还需要更多代码,我可以为您提供-只是尽量保持简单):for_,u:=rangeallUsers.Users{ifu.CustomSchemas!=nil{log.Printf("%v",string(u.CustomSchemas["User_Names"]))}else{u.CustomSchemas

新项目的 Golang 架构问题

我正在使用这个https://medium.com/@eminetto/clean-architecture-using-golang-b63587aa5e3f我下一个项目的架构。但是我有几个问题:缓存应该放在哪一层?认证/授权应该在哪一层?这是与Go一起使用的良好架构吗? 最佳答案 您想缓存什么,数据库查询或文件或请求?认证/授权可以在中间件层也可以在View/模型层之前。您可以根据您的需要和目标挑选您的架构。选择架构没有硬性规定。正确的架构来自于为同一目标在不同架构上尝试POC。 关

go - 分布式出站 http 速率限制器

我有一个微服务架构应用程序,其中有多个服务轮询外部API。外部API的速率限制为每分钟600个请求。我如何才能让我的所有实例一起保持低于共享的600速率限制?Google只给我提供了3个解决方案,最有希望的是:myntra/golimit三者中最有前途的,但我确实不知道如何设置它。wallstreetcn/rate这似乎只在达到限制时拒绝(我的应用程序需要等到它可以发出请求)并且rate.NewLimiter函数中的Every函数似乎是一个不同的导入/依赖项,我无法弄清楚它是什么manavo/go-rate-limiter有一个“软”限制,显然可以让我超过限制。有些端点如果我不能访问它

go - 使用 Jaeger 在分布式应用程序中跟踪 Kafka 总线

我分发了包含多个Go服务的应用程序。其中一些使用Kafka作为数据总线。我能够使用Jaeger的opentracing追踪服务之间的调用。我在图表上绘制Kafka跨度时遇到问题,它们显示为间隙。这是我能做的。初始跨度由gRPC中间件创建。生产方:...kafkaMsg:=kafka.Message{Key:[]byte(key),Value:msgBytes}headers:=make(map[string]string)ifspan:=opentracing.SpanFromContext(ctx);span!=nil{opentracing.GlobalTracer().Injec

amazon-web-services - 如何使用此架构在 Elastic Search 中复制索引?

我有一个场景,我必须从多个来源导入数据(数百万条记录)并将其保存在数据库中。当用户尝试搜索与该数据相关的任何信息时,他们应该会在2-3秒内获得结果。为此,我设计了一个架构,在该架构中,我使用golang从多个来源导入数据并在AWSSQS中推送数据。我创建了一个lambda函数,它在AWSSQS有一些数据时触发。然后,此lambda函数将数据推送到AWSElasticSearch中。我创建了一个RestAPI,我使用它向用户提供结果。我每天早上都使用CRON来完成导入工作。现在我的问题是,如果有一批新数据出现,我想删除现有数据并用新数据替换所有数据。我坚持如何实现删除和添加新数据部分。我