本文介绍了LangChain框架,它能够将大型语言模型与其他计算或知识来源相结合,从而实现功能更加强大的应用。接着,对LangChain的关键概念进行了详细说明,并基于该框架进行了一些案例尝试,旨在帮助读者更轻松地理解LangChain的工作原理。
随着得物App的用户流量增长,业务选择的数据库越来越多样化,异构数据源之间的数据同步需求也逐渐增多。为了控制成本并更好地支持业务发展,我们决定自建DTS平台。本文主要从技术选型、能力支持与演化的角度出发,分享了在DTS平台升级过程中获得的经验,并提供一些参考。
2022 年,腾讯云与中国信息通信研究院云计算与大数据研究所联合发布业界首个《分布式云发展白皮书(2022)》,明确分布式云概念定义、关键技术、典型场景及主要挑战。过去一年来,伴随各行业企业“上云用云”进程加快,分布式云技术不断演进与发展,在金融、工业制造、能源交通等行业深化应用实践,进一步加速政企数字化转型。
伴随业务的飞速发展,字节跳动内部 Kubernetes 集群的数量也不断壮大,集群数量超过 500,应用的副本数从 0 到 20000 不等,其中最大的某个应用体量超过 100W core。 早期出于隔离和安全的考虑,字节各个业务线独占集群,这些独占的集群带来造成资源孤岛,最终影响资源的弹性效率。这首先体现在各个业务线需要维护独立的 buffer;其次业务和集群深度绑定,业务感知大量的集群,并在集群之间为应用人肉分配资源,SRE 在运营资源上也需要深度感知业务和集群,最终导致资源在各个业务线之间的周转慢、自动化效率低以及部署率不够理想。因此我们需要引入联邦,解耦应用和集群的绑定关系,将各个业务线的资源并池,减少 buffer,提升资源的自动化效率。 随着多云、混合云愈发成为业内主流形态,且 Kubernetes 成为云原生的操作系统,并就各类基础设施进一步抽象和规范,为应用提供更加统一的标准接口。在此基础上,我们期望引入联邦作为分布式云场景下的云原生系统底座,面向应用提供统一的平台入口,提升应用跨集群分发的能力,做好应用跨集群的分发调度,管理好多个云云原生场景下的基础设施。
本文主要讲述了应对复杂性的一些原则和经验,通过实际案例解构设计思想,个人认为好的设计是体现在「职责分离」、「抽象分层」和「变化扩展」上,在类的结构设计上尤其要花心思去想,如「变与不变分离」、「配置域与执行域分离」、「查询与命令分离」。
语音识别技术,是将语音信号转换为文本内容的技术。目前比较流行的语音识别技术主要有两种。一种是基于Kaldi的传统语音识别技术,另一种是目前流行的基于深度学习模型的端到端语音识别技术。Kaldi是一种大而全的语音识别处理框架,集成了数据预处理、特征提取、声学模型建模、语言模型建模、解码等,识别效果上能够满足大多数的语音识别场景。但是Kaldi是自成一体的框架,没有现在流行的pytorch、tensorflow框架的支持,需要开发者自行开发能应用到生产环境中的服务。基于深度学习模型的端到端语音识别框架是指将语音信号直接输入到深度学习模型中,通过端到端的方式进行语音识别,无需使用传统的声学模型和语言模型,常见的基于深度学习的端到端语音识别框架有很多,比如EspNet,WeNet等,这类语音识别框架有更通用的模型训练和部署框架支持,有着更好的识别性能和识别效果。
G6VP 是由蚂蚁集团 AntV 图可视化小组开源的图可视化与分析平台。用户可以在 G6VP 中连接自己的数据,包括本地文件上传,或多种图数据库,并组装 G6VP 提供的丰富图可视化与分析资产,进行数据分析,或设计和开发出自己的图可视分析产品,嵌入到自己的系统当中。
互联网蓬勃发展的今天是流量为王的时代,但随着流量红利逐渐消失,获客成本的日益增高,用户留存成为各大互联网公司的重点关注问题,其中流失用户的召回在当今的流量红海市场中显得尤为关键,为此,基于大数据和机器学习的智能营销技术应用而生。 携程火车票业务每周都会有短信营销活动,旨在通过对近期未下单的老客发送短信将其召回,促进复购,提升用户粘性(业务流程如图 1 所示);原有业务策略是基于规则的方式随机从满足条件的用户池中选择一部分进行短信投放,针对该方法过于粗放、召回效果不佳、短信发送 ROI 不高的问题,我们分阶段提出基于 Response Model 的转化率预估模型、基于 Uplift Model 的短信敏感度预估模型,逐一对问题进行更科学的定义、拆解和优化。
目前我们团队小程序是使用 Taro 跨端方案 React 框架进行开发,基于现有样式方案,在编译打包后会产生大量的样式代码冗余,在项目编译后的产物中占有较大比例。
目前字节 Android 的一些超大型项目均从原来的多仓二进制的研发模式切换到了 Monorepo 全源码,并在研发效能方面取得了较大的收益。关于 Monorepo 全源码模式下的一些技术挑战及解决方案后续会有文章单独阐述。在全源码改造的过程中,作为 build 方向的基建团队,我们也不断克服了很多 Gradle 生态的问题与挑战,对构建系统方面有了更进一步的理解。 提到超大型仓库的 Monorepo,就不得不提到 Bazel 构建系统。Google 内部使用 Bazel 作为超大仓(TB 级别)的构建系统,足以证明 Bazel 构建系统优异的性能表现。目前字节内服务端、iOS 端均采用 Bazel 作为构建系统来演进 Monorepo,业界关于 Bazel 的原理文章也很多,但大部分都围绕在工程改造方面或者在单一阐述 Bazel 的设计。