您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[2023年中国DevOps社区广州峰会]:Daniel Flower - DevOps 使用 AI _ 进行实验 - 发现报告
当前位置:首页/行业研究/报告详情/

Daniel Flower - DevOps 使用 AI _ 进行实验

AI智能总结
查看更多
Daniel Flower - DevOps 使用 AI _ 进行实验

DevOps实验与AI 实验时间 编制人:丹尼尔花 Date:25/11/2023 Introduction 这是一篇关于使用和编码大型语言模型的文章。我相信这些模型非常强大,但目前尚无人知晓其全部潜力或 如何最大限度地利用它们。因此,现在是时候尝试许多实验,看看什么是有效的。 这个演讲对大型语言模型有一个非常简短的概述,然后只展示了一些实验。 我们的目的是提供关于我们可以用它做的事情的想法,激励其他人开始尝试更多。 PUBLIC2 大型语言模型他们如何工作 •它•它需什要么一都些不单记得词。作它为什输么入也。没它学生到成。所下以一我个们单需词要。把它它重需复要知这道个的句一子切和作段为落输。入。 •它试图猜测什么“听起来”最好,而不是什么是真实的。 •它不仅可以根据统计数据进行猜测,还可以通过概括、“推理”和其他事情来猜测 函数guessNextWord(输入:wordsArray<String>)输出:String[varnumbers=convertWordsToNumbers(words); varnextNumber=guessNextNumber(numbers); returnconvertNumberToWord(nextNumber); ] 函数guessNextNumber(输入:数组<Number>)输出:Number[如果(numbers的大小>8192),则抛出"抱歉!输入过多"; var猜测=numbers[0]*0.123124+numbers[1]*0.584935+...//包含大量加法和乘法操作 ,但没有状态或网络调用等 训练模型所需的时间和资金巨大返回猜测; ] PUBLIC3 Environment监测 监视磁盘使用情况 想法:每10分钟为模型提供一些监控信息。请它突出显示任何问题。 提示:你是一名Linux管理员,负责监控磁盘使用情况。你应该关注磁盘挂载点不断增加的情况,并在认为可能存在风险时估算磁盘空间用尽的时间。用户将提供磁盘使用统计信息以及日期,每次你都应对当前情况进行评论。 PUBLIC5 监控GC日志 想法:通过查看GC日志来检测内存问题 English: TellmeaboutthebehaviorofaJavaappbasedontheGClogsbelow,whichhasXmx256m,intermsofhowmemoryusagelooksandifthereareanyissuesorrecommendations. [中20文23:-11-18T15:34:19.137+0800][info][gc]使用串行[2023-11-18T15:34:19.505+0800][info][gc]垃圾回收(GC,0)暂停 年请轻根代据(以分下配带失有败Xm)x275M6-m>配2M置(2的7M日)志10垃.9圾36回m收s([20G2C3)-11日-1志8T,1描5:3述4一:19个.6J9a6v+a0应80用0程][in序fo的][g行c]为垃,圾特回别收是(在G内C,存1使)用暂情停况年方轻面,以及是 代否(存分在配任失何败问)题或9M建->议3。M(27M)10.975ms[2023-11-18T15:34:19.856+0800][info][gc]垃圾回收(GC,2)暂停年轻代( 分配失败)11M->5M(27M)8.755ms[2023-11-18T15:34:20.068+0800][info][gc]垃圾回收(GC,3)暂停年轻代(分配失败)12M->6M(27M)5.711ms[2023-11-18T15:34:20.287+0800][info][gc]垃圾回收(GC,4)暂停年轻代(分配失败 )13M->6M(27M)6.002ms[2023-11-18T15:34:20.453+0800][info][gc]垃圾回收(GC,5)暂停年轻代(分配失败)14M->9M(27M)14.697ms[2023-11-18T15:34:20.683+0800][info][gc]垃圾回收(GC,6)暂停全堆(元数据垃圾回收阈值 )17M->10M(27M)31.128ms[2023-11-18T15:34:31.784+0800][info][gc]垃圾回收(GC,7)暂停年轻代(分配失败)17M->11M(27M)4.372ms[2023-11-18T15:34:32.204+0800][info][gc]垃圾回收(GC,8)暂停年轻代(分配失败)18M ->11M(27M)5.303ms[2023-11-18T15:34:32.466+0800][info][gc]垃圾回收(GC,9)暂停年轻代(分配失败)19M->12M(27M)4.589ms[2023-11-18T15:34:32.608+0800][info][gc]垃圾回收(GC,10)暂停年轻代(分配失败)19M->12M(27M)3.784ms[2023-11-18T15:34:32.956+0800][info][gc]垃圾回收(GC,11)暂停年轻代(分配失败)19M->12M(27M)7.896ms[2023-11-18T15:34:33.592+0800][info][gc]垃圾回收(GC,12)暂停年轻代(分配失败)20M->13M(27M)7.678ms PUBLIC6 MonitoringGClogs 想法:通过查看GC日志来检测内存问题 基于提供的GC日志,Java应用程序的内存使用频繁因分配失败触发年轻代垃圾回收。该应用正在使用串行垃圾收集器 。每次暂停时间相对较低,表明应用程序在垃圾回收方面没有遇到显著问题。然而,分配失败触发频繁的垃圾回收的事实表明,应用程序可能存在内存泄漏或内存使用效率低下。应用程序配置了Xmx256m,限制堆大小为256MB。如果应用程序需要的内存超过这个限制,这可能会成为性能的限制因素。建议分析应用程序的内存使用情况并进行优化,以减少不必要的对象创建并最大化内存重用。 根据提供的GC日志,Java应用程序的内存使用率正经历频繁的年轻代垃圾回收,这是由于分配失败引起的。应用程序正在使用串行垃圾收集器。每次暂停时间相对较低,表明应用程序没有遇到与垃圾回收相关的主要问题。然而,分配失败引发频繁垃圾回收的事实表明,应用程序的内存使用可能存在内存泄漏或不足的问题。该应用程序配置了Xmx256m,将堆大小限制为256MB。如果应用程序需要超过此限制的内存,这可能是应用程序性能的限制因素。建议分析应用程序的内存使用情况并进行优化,以最小化不必要的对象创建并最大程度地重用内存。 PUBLIC7 有潜力吗? 有些事情做得很好;有些事情没有。 这仅仅是监控磁盘使用情况过于繁琐。但如果提供更多数据,它应该能够识别出难以提前监控的事物,例如可能会注意到进程与其线程、CPU 、内存或磁盘使用之间的关系。 这里需要更多的实验。 PUBLIC8 安全审查 查看Gitdiffs 在代码审查中查找安全问题语言模型能在代码更改中查找问题吗? PUBLIC10 如何做到这一点 代码库太大,无法放入语言模型提示符,但是gitdiff呢? PUBLIC11 响应示例 更改已汇总and电位问题突出显示 在JavaScript文件(`file-list.module.js`)中进行的游戏难度设置实际上是对一个查询参数的更改。在这个更改中,当使用`fetch()`调用API端点时,从`address`查询参数中移除了`encodeURIComponent()`函数。 去除`encodeURIcomponent()`可能会带来安全风险,因为它允许不安全的字符传递给API。这可能导致漏洞,如跨站点脚本(XSS)或API服务问题。 PUBLIC12 可能性 •将安全代码审查集成到构建管道中 •可能有许多假阳性和假阴性 •可能超出安全性:例如,从代码差异生成发行说明 PUBLIC13 正在谈论toa数据库 SQL和JavaScript代码生成 示例数据库 电影数据库 PUBLIC15 尝试itout… 16 PUBLIC 性能测试 这会理解我们吗andgiveusgood信息?  PUBLIC17 工程提示 为模型提供正确的信息 大型语言模型的最大输入大小通常约为5,000到20,000词。一个数据库可能包含数百上亿条记录。那么,如何使用大型语言模型来回答关于这些数据的问题呢? 数据库? PUBLIC18 准备LLM的提示简化 PUBLIC19 性能测试这会理解我们并为我们提供良好的信息吗? 选择actor.first_name、actor.last_name来自演员 加入film_actor.actor_id=film_actor.actor_id在film_actor.film_id=film.film_id WHEREfilm.title='学院恐龙';  PUBLIC20 性能测试 这会理解我们并给我们提供良好的信息吗? 选择不同的电影.标题来自电影 JOINfilm_actorONfilm.film_id=film_actor.film_id加入film_actor.actor_id=actor.actor_id WHEREactor.actor_idIN(选择actor.actor_id 来自演员 加入film_actor.actor_id=film_actor.actor_id  在film_actor.film_id=film.film_idWHEREfilm.title='恐龙学院' ) ANDfilm.title<>'恐龙学院'LIMIT100; 21 PUBLIC 性能测试这会理解我们并为我们提供良好的信息吗?   SELECTCONCAT_WS('和',a1.first_name||''|| a1.last_name,a2.first_name||''||a2.last_name)ASactor_pair,COUNT(*)ASnum_films_together 从film_actorfa1 加入film_actorfa2ONfa1.film_id=fa2.film_id和fa1.actor_id<fa2.actor_id 加入actora1ONfa1.actor_id=a1.actor_id加入actora2ONfa2.actor_id=a2.actor_idGROUPBYa1.actor_id,a2.actor_id 22 订单由num_films_togetherDESCLIMIT1; PUBLIC 性能测试 □ 这将下 站在我们并给我们好的信息?  PUBLIC23 JavaScript怎么样? PUBLIC24 JavaScript怎么样? 生成代码以在图表中显示结果 谈话.消息.push([role:"系统",内容:你:你是一个查询引擎,用于一个名为FilmDB的数据库。用户将向你提问。你可以用自由文本形式作答或 数据库中运行查询。你编写的任何SQL代码都将被执行,并且用户将在一个数据库表中看到查询的结果。请始终添加LIMIT20。以下是PostgreSQL14数据库的表结构。 请注意,如果适当的话,可以生成图表进行回答。在这种情况下,你应该生成SQL代码,该代码将运行并以JavaScript数组 的形式存储结果。\`window.rows\` window.rows=[["title":"Film1"],["title":"Film2"]] 变量,例如从应用程序中选择eim_name可能会导致此javascript对象可用: 如果生成图表: *您必须使用chart.js版本3生成图表 *画布ID应为\`myChart\` *您必须使用来自\'window.rows\'全局变量的数据 *您可以使用moment.js进行时间和日期操作 *您应该在带有\'