写点什么

下一代 Docker 来了!1 小时构建缩至 1.5 分钟,还能结合 LangChain、Ollama 等做 AI 应用开发

  • 2023-10-08
    北京
  • 本文字数:3576 字

    阅读完需:约 12 分钟

大小:1.73M时长:10:06
下一代 Docker 来了!1小时构建缩至1.5分钟,还能结合 LangChain、Ollama 等做 AI 应用开发

在日前于洛杉矶召开的 Dockercon 大会上,缔造开源容器技术的同名公司 Docker 发布了一系列产品,在致力于加速本地和云上应用程序交付的同时,还与生成式 AI 做了结合,深入探索这一新鲜趋势中的技术潜力。

 

与 AI 的深度集合

 

如今,在几乎所有用于训练和推理的生成式 AI 应用当中,Docker 容器已经成为最主流的部署方法。这次大会,Docker 推出了新的 GenAI Stack,可以在几分钟内帮助开发人员启动 GenAI 应用程序。

 

“开发人员对 GenAI 的可能性感到兴奋,但技术堆栈的变化速度、供应商数量和巨大差异使其难以了解应该如何下手。”Docker 公司 CEO Scott Johnston 表示,虽然目前用 Docker 容器来协助共享和部署 AI 模型的作法已经非常普遍,但仍需要更多探索来进一步降低生成式 AI 应用的开发门槛。

 

现在,Docker 发布的 GenAI Stack 能够显著简化整个流程,将 Docker 与 Neo4j 图数据库、LangChain 模型链接技术和用于运行大语言模型(LLM)的 Ollama 相集成。具体组件包括:

 

  • 预配置的开源 LLM(例如 Llama 2、Code Llama、Mistral),或私有模型(例如 OpenAI 的 GPT-3.5 和 GPT-4);

  • Ollama 帮助开发人员在本地启动并运行开源 LLM;

  • Neo4j 作为图形和原生向量搜索的默认数据库,可以发现数据中显式和隐式的模式和关系,使 AI/ML 模型更快、更准确,并作为这些模型的长期记忆;

  • Neo4j 知识图谱作为 LLM 的知识库,以获得更准确的 GenAI 预测和结果;

  • LangChain 在 LLM、应用程序和带有向量索引的数据库之间进行编排,并作为开发由 LLM 提供支持的上下文感知推理应用程序的框架;

  • 还有一系列支持工具、代码模板、操作方法和 GenAI 最佳实践。  

 

GenAI Stack 拥有多种目标用例,包括构建具有检索增强生成(RAG)功能的支持型客服机器人、Python 编码助手和自动内容生成工具等。开发人员能够无缝导入数据、创建向量索引、嵌入问题和答案,并将它们存储在向量索引中;还可以生成各种格式的回复,例如项目列表、思维链、GitHub issue、pdf、诗歌等。此外,开发人员可以比较 LLM 自身、带有向量的 LLM 以及集成了向量和知识图谱的 LLM。

 

Johnston 指出,“整套方案预先配置、准备就绪,开发人员可以随时在这里开始编码并启动实验。”GenAI Stack 现已在 Docker Desktop 学习中心和https://github.com/docker/genai-stack的存储库中提供。

 

此外,本届 Dockercon 上也公布了全新亮相的 Docker AI 产品,将成为开发人员获取 AI 驱动见解及容器开发建议的集成化服务。


当今市场上,各类生成式 AI 开发者工具并不少见。其中既有 GitHub Copilot 这位超级明星,也有 Amazon CodeWhisper 等人气选项。Docker 如今也携自家生成式 AI 工具(简称为 Docker AI)加入战局。

 

Docker 并没有像微软及其他供应商那样将 Docker AI 称为“copilot”(即拉力赛车中坐在副驾的领航员,目前多数厂商倾向于使用这个术语来描述辅助用户的生成式 AI 工具),而选择了特别的称呼:“机甲”。Docker 应该是希望自己的“机甲套装”能为开发者赋予完成任务所需要的强大力量。

 

据介绍,Docker AI 已经接受了来自数百万个 Dockerfile、compose 文件及错误日志中 Docker 专有数据的训练。Docker AI 将被直接集成至开发者的工作流程当中,以便在发生错误时提供帮助。它将显示开发环境中潜在的修复选项,允许开发者在提交变更之前测试修复效果。Docker AI 的目标也很简单,就是为开发者提供更好的工作体验,并确保在问题发生之前进行故障排查与修复。

 

Johnston 指出,虽然 GitHub Copilot 等同类工具已经非常实用且功能强大,但 Docker AI 也有自己的独特优势:经过专门微调以适应容器开发需求。“Docker AI 在训练中接触的,是其他大语言模型难以触及的丰富专有 Docker 数据流。”

本地与云的协作

 

除了在 AI 上发力,Docker 还发布了三款新产品:Docker Scout、Next-generation Docker Build 和 Docker Debug,致力于将本地开发的响应能力和便利性与云的按需资源、连接性和协作结合起来。上述三个产品是对现有 Docker 产品(Docker Desktop、 Private Repos 以及 Docker Hub)的补充。

 

Johnston 表示:“云为开发团队提供了许多潜在的好处,但大多数‘内循环’解决方案都需要彻底改变工具和工作流程,而且很少有开发人员愿意将他们的整个笔记本电脑放到云端运行。” 而新产品将云带到了开发团队代码-构建-测试-调试的“内循环”过程中:

 

  • Docker Scout GA

 

Docker Scout 目前已经正式推出,能够在应用程序使用的库中发现已报告的漏洞。Docker Scout 补充了 Docker 现有的可信内容、构建自动化和 SBOM 工具,添加了相关的见解、策略评估和上下文修复,同时通过与 Sysdig、JFrog Artifactory、AWS ECR、BastionZero、GitHub、GitLab、CircleCI 和 Jenkins 集成来满足开发人员的工作需求。

 

实际上,GitHub 的 Dependabot 等工具已经可以实现类似的功能,它的出现会不会多此一举?Johnston 对此表示,“我们的目标是与 GitHub 合作,而非与之对抗和竞争。我们希望共同为开发人员提供完整的项目视图,Sysdig 就是典型的案例。”

 

注:Sysdig 是一款与 Scout 相集成的第三方工具,它能“显示运行时中实际执行的内容,并据此在仪表板中优先显示开发者较为关注的内容。



Docker Scout,现已全面上市

 

  • Next-generation Docker Build

 

“我们发现每位开发团队成员日均要花一个小时来等待容器镜像构建完成,这是因为此前的 Docker Build 只能以本地方式运行。”Johnston 指出。现在,只需切换 Build 命令行即可将构建负载移交至云端。

 

“与本地构建相比,我们发现远程构建的速度提高了 39 倍,其中一小时的构建可以压缩到一分半钟多一点。”这等效率提升不仅要归功于强大的设施资源,更得益于缓存机制的支持。“开发团队经常会使用相同的基础镜像,所以只要把这类镜像缓存起来,每位团队成员都能从中获益。”

 

那么,Next-generation Docker Build 到底是单纯服务于开发,还是可以成为持续集成(CI)部署流程中的一部分?Johnston 给出的答案是,“它初步面向开发流程,但我们也看到有用户在尝试将其引入持续集成流程。”例如,开发者可以在 GitHub Actions 或者 GitLab Pipelines 处调用 Docker Build。

 

  • Docker Debug

 

Docker Debug 想要解决的问题并不难理解:当应用程序在容器内的运行时中发生故障时,我们往往难以精准跟踪。开发人员可能会花费多达 60%的时间来调试应用程序,但是大部分时间花在了排序、配置工具和设置上,而非实际的调试上。

 

Johnston 表示,“以往,开发者根本没有一款用于深入探索容器内部的工具。而 Docker Debug 提供的就是这样一套具备语言中立性的一体式工具集,能够帮助开发人员专注于解决问题、避免在设置调试工具上浪费精力。”

 

实际上,Docker Debug 本身也是个容器,只是容纳的是开发者调试工具。Docker 公司一位发言人解释称,它的工作原理就是提供一套工具集,用以调试挂载了损坏容器文件系统的容器。Docker 还引入了其他一些功能,例如分析入口点、验证入口点的二进制文件或 CMD 等,并围绕潜在问题提供更好的用户体验。”

 

在构建包含调试工具与容器内运行内容的文件系统的过程中,Docker Debug 会使用 Nix(一款软件包管理器兼系统配置工具)等工具创建辅助文件系统,之后 Docker Debug 会调用 mergefs 来合并这两套文件系统(即原始文件系统加调试工具系统)。“如此一来,就能得到一套同时包含原始容器及所有调试工具的文件系统。”

 

Johnston 还反复强调,开发者用户其实并不需要过于纠结这些细节。“对于开发者来说,这套工具集就是能轻松发挥出‘神奇的’效力。” 

结束语

 

在去年 3 月底宣布获得 1.05 亿美元的 C 轮融资后,Docker 进行了一系列收购,包括 Mutagen、Atomist、Tilt 、Nestybox 等,在软件供应链安全、高性能远程开发等方面持续投入。这次大会上,Johnston 透露,Docker 每月活跃开发者数量已高达 2000 万,而且从业务角度看 Docker 已经拥有超过 7.9 万家商业客户。

 

Johnston 曾在今年 3 月指出,Docker收入正稳步增长、在过去 3 年间增长了 30 倍。而支撑这种喜人局面的,恰恰是某些不受欢迎的决定,例如 2021 年将 Docker Desktop 由免费产品调整为付费产品,包括将团队(Teams)账户纳入价格更高的商业(Business)订阅。但从目前的情况看,力排众议的决策已经初见成效,Docker 现在有更多资金可用于打磨自己的技术储备。

 

参考链接:

https://www.docker.com/press-release/neo4j-langchain-ollama-launches-new-genai-stack-for-developers/

https://www.docker.com/press-release/announces-ai-boosting-developer-productivity-through-automated-guidance/

https://www.docker.com/press-release/neo4j-langchain-ollama-launches-new-genai-stack-for-developers/

https://venturebeat.com/data-infrastructure/docker-dives-into-ai-to-help-developers-build-genai-apps/

https://devclass.com/2023/10/04/docker-introduces-seems-like-magic-container-debug-tool-and-cloud-driven-build-service/

 

2023-10-08 14:3111782

评论

发布
暂无评论
发现更多内容

2023-08-20:用go语言写算法。给定一个由'W'、'A'、'S'、'D'四种字符组成的字符串,长度一定是4的倍数, 你可以把任意连续的一段子串,变成'W'、'A'、'S'、'D'组成的随意状

福大大架构师每日一题

福大大架构师每日一题

将整python项目的代码中的py文件转为so

关耳

Python

Nautilus Chain 主网上线拉开模块化序幕,一文纵览生态项目

鳄鱼视界

2023 年第 33 周 ARTS 打卡

Bryan

MySQL运行时的可观测性

GreatSQL

数据库 greatsql

2023上海国际智慧停车展览会

AIOTE智博会

城博会 智慧停车展 智慧停车展会 智慧停车博览会

如何在SAM时代下打造高效的高性能计算大模型训练平台

GPU算力

25. matplotlib

茶桁

Python matplotlib

Snagit 中文for mac(强大的屏幕截图工具) 2023.2.2

胖墩儿不胖y

Mac软件 截图工具 屏幕截图

ARTS2334

okokabcd

基于KEDA的Kubernetes自动缩放机制

俞凡

架构 Kubernetes 最佳实践 云原生

python通过将py文件转为so实现代码加密

关耳

Python

代码随想录Day45 - 动态规划(七)

jjn0703

2023 ARTS 01

MiracleWong

ARTS 打卡计划

ARTS第一周

壹贰叁

Nginx No, Traefik Yes

newbe36524

校源行丨开放原子开源基金会赴南大和南理工走访交流

开放原子开源基金会

开源

大规模敏捷的7个容易被误解的真相

俞凡

最佳实践 敏捷开发 组织架构

ARTS 打卡第 1 周

Geek_wu

ARTS 打卡计划

Programming abstractions in C阅读笔记: p118-p122

codists

c

Python爬虫实战:根据关键字爬取某度图片批量下载到本地(附上完整源码)

袁袁袁袁满

Python 爬虫案例

开启AI创新之旅!“华为云杯”2023人工智能应用创新大赛

科技热闻

手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议

山东布谷科技

软件开发 RTMP 源码搭建 手机直播源码 实时消息传输协议

隐私计算技术|深度解读可信隐私计算框架 “隐语”

隐语SecretFlow

联邦学习 数据安全 隐私计算

模拟游戏商城多活架构

艾瑾行

架构训练营

代码随想录Day44 - 动态规划(六)

jjn0703

Presto 设计与实现(五):自动配置

冰心的小屋

数据湖 自动配置 presto 设计与实现

在 Go 中如何编写出可测试的代码

江湖十年

golang 后端 单元测试

MySQL : 好好学习一下InnoDB中的页

java易二三

Java MySQL 数据库 程序员 计算机

下一代 Docker 来了!1小时构建缩至1.5分钟,还能结合 LangChain、Ollama 等做 AI 应用开发_云计算_褚杏娟_InfoQ精选文章