阿里巴巴 资深Java开发工程师
本文探讨了如何避免高成本的模型微调,通过任务拆解和提示词调优实现业务目标。文中提到,当大语言模型不能直接满足需求时,微调涉及大量工作,包括数据准备、模型训练及GPU资源。为降低成本,作者提出了两步方法:1) 任务拆解,将复杂任务分解为简单子任务,利用模型优势处理部分;2) 提示词调优,优化输入以引导模型更高效地响应。虽然这可能不适用于所有情况,但能有效减少对模型微调的依赖。
现在很多企业纷纷研发大语言模型以解决业务问题。提示词在与模型交互中起到关键作用。为优化提示词模板的修改、提高渲染效率及确保安全性,架构设计注重可修改性、安全性、可靠性和性能。设计包括:将提示词存储在OSS以方便修改和版本控制;使用本地缓存提升读取性能;模板引擎增强灵活性;秘钥安全存储在加密系统中;并通过配置中心动态调整。此设计旨在提供高效、安全且可靠的AI交互体验等。
文本探讨两个问题:使用 AI 工具是否会导致人类的思考能力退化?如何在使用AI工具的同时,保持甚至提高我们的思考能力?
相信很多人已经开始用上了 ChatGPT,但是使用 ChatGPT 还有诸多不便的地方。常见的问题有:- 经常会出现网络错误- ChatGPT 下载和分享非常不方便- 输入的效率不高- 无法联网获取最新信息本文将针对这些主要问题推荐对应的插件,为你的 ChatGPT 插上翅膀,让 ChatGPT 的效率爆表!
本文基于谷歌云的官方视频:[《Introduction to Large Language Models》](https://www.youtube.com/watch?v=zizonToFXDs&t=525s&ab_channel=GoogleCloudTech) ,整理而成,希望对大家入门大语言模型有帮助。
本文基于谷歌的:《Introduction to Generative AI》整理而成,帮助大家理解生成式 AI 这个概念
测试语雀编辑器
最近用到了 `org.apache.commons.io.FilenameUtils#getName` 这个方法,该方法可以传入文件路径,获取文件名。 简单看了下源码,虽然并不复杂,但和自己设想略有区别,值得学习,本文简单分析下。
很多人会选择在 IDEA 中安装 PlantUML Integration 插件。 但是高版本的 IDEA PlantUML Integration 插件默认的主题和之前的完全不一样, 颜色偏暗,不同的组件很难区分开。 其实不仅是插件里,在官网上写同样的脚本,默认的主题也是一样的情况。 那么如何解决?
稍有些基础的同学都知道 Java 中 String 字符串是“不可变”的,想要使用“可变字符串”可以使用 `StringBuilder` 和 `StringBuffer` 。 大多数讲字符串不可变性的文章大同小异。但实际上大多数人的理解并不对。
今天群里有个同学遇到一个看似很奇怪的问题,自定义 `ThreadPoolTaskExecutor` 子类,重写了 execute 方法,通过 execute 方法来执行任务时打印当前线程,日志显示任务一直在调用者线程里执行 (其实并不是),似乎线程池失效了。
2022 年中秋节非常特殊,和教师节同一天。 在这个特殊的日子里,谈谈我的中秋仪式感,中秋计划怎么过,并谈谈自己的一些收获和感悟。
本文将结合一个简单案例,学习 Bean 生命周期中的初始化和销毁阶段的具体内容。
在实际业务开发中,经常借助 ApplicationContextAware 获取 ApplicationContext 然后构造业务枚举到处理 Bean 的策略模式映射。那么,不知道大家是否都了解 `setApplicationContext `的调用时机呢? 本文结合一个简单示例分析一下,这里强烈建议大家自己动手调试一下,印象会更加深刻。
但凡工作过的同学都会亲自经历过或者听过各种故障。 轻则受到批评,重则影响绩效,甚至被罚钱、开除。 那么,作为 Java 工程师,我们该如何尽可能避坑呢,有没有一些经验可以交流分享的呢? 本文,结合自己的经验,谈谈自己的看法。
在日常开发中,通常为了方便调试、方便查问题,会打印很多 INFO 级别的日志。 随着访问量越来越大,一不小心,某个日志文件一天的 size 就大于了某个阈值(如 5G),于是,收到了优化日志大小的告警,一定时间内不优化反馈给你主管,囧... 日志过大容易导致一些运维操作消耗机器性能,如日志文件检索、数据采集、磁盘清理等。而且,打印一些没必要的日志也会造成磁盘的浪费。因此,优化势在必行。 那么,日志瘦身哪些常
有些业务场景下需要将 Java Bean 转成 Map 再使用。本以为很简单场景,但是坑很多。
前一段时间各种公众号宣传 Jetbrains 新的 UI 插件提供体验申请。 自己也提交了申请,今天才收到申请成功的邮件,下载插件并安装体验了一把,感觉挺清爽,更容易专注于代码编写和阅读。 这里分享下两种安装体验方法。
hreadLocal 可以解决“线程安全问题”。 也可以作为上下文暂存数据以备后续步骤获取。 但是 ThreadLocal 用不好的确容易产生故障,因而有些团队不允许使用 ThreadLocal。 最核心的一个原因是很容易忘记清理,在线程池环境下复用导致串环境。 那么,有什么优雅的解法没?本文给出自己的一个解法。
最近对团队的很多同学代码进行了 Code Review ,发现存在很多问题。 其中一个问题就是普遍代码内聚不够,将原本需要对象提供的方法外泄给使用者。 我们写惯了 贫血模型 代码的缘故,即只为对象定义属性、赋值和取值方法,将业务逻辑统一放到 Service 层来处理。 更多地是面向步骤编程,而不是面向业务编程。
最近看到阿里云开发者社区有无影云电脑的体验活动,遂报名体验。 由于在阿里云开发者社区是专家博主,有幸获得一年的 4核 8G 无影云电脑的体验机会。 试用了几天,下面从无影云电脑的用户群体、无影云电脑的使用场景,我的使用感受,目前还存在的问题等方面,简单谈谈自己的感受。
Java 8 的 Lambda 表达式已经不再是“新特性”。 现在很多人工作中会使用 Lambda 表达式。 但是,你是否真正理解 Lambda 表达式的底层原理?
《阿里巴巴 Java 开发手册》 MySQL 数据库部分,ORM 映射部分,谈到: 【强制】 在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。 说明: 1)增加查询分析器解析成本。 2)增减字段容易与 resultMap 配置不一致。 3)无用字段增加网络消耗,尤其是 text 类型的字段。 甚至有些公司还会对代码进行扫描,当发现代码或者 MyBatis 配置中出现 `select *` 时会给出告警要求修改。
平时工作开发过程中,难免会用到状态机(状态的流转)。 如奖学金审批状态流转、请假审批状态流转、竞标状态流转等,都需要根据不同行为转到不同的状态。 > 注: 本文主要讲的是状态机,即状态从一个状态转变为另外一个状态。如果设置 3个人审批才可以从 A状态 转到 B 状态,那么3个人审批是状态转换的条件。如果想实现流程编排,建议使用工作流引擎。
编写合格的单元测试可以说是 Java 程序员的基本功。 很多公司对但单测覆盖率都会有要求,通常要求在 60% 到 90% 不等。 但是很多同学对单元测试或多或少有一些抵触,对如何写出“标准”的单元测试代码存在疑问。 有些同学编写单元测试,纯粹是应付工作,完全起不到单测应该起到的作用。 本文解答单元测试的三个基本问题,即单元测试是什么,为什么编写单元测试,怎么编写单元测试?
很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布。 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e9e8ea7d35ca4830bce7929774471207.jpg) 但是编写单元测试又比较浪费时间,有没有能够很大程度上自动化生成单元测试的插件,自己简单改改即可呢? 自己尝试在 Idea 插件库里搜索相关插件并去尝试使用,发现 `TestMe` 还可以。后面和其他同学交流,谎伴 同学推荐他一直在用的 `Squaretest`,我试用
很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布。 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e9e8ea7d35ca4830bce7929774471207.jpg) 但是编写单元测试又比较浪费时间,有没有能够很大程度上自动化生成单元测试的插件,自己简单改改即可呢? 自己尝试在 Idea 插件库里搜索相关插件并去尝试使用,发现 `TestMe` 还可以。后面和其他同学交流,谎伴 同学推荐他一直在用的 `Squaretest`,我试用
Java 8 的 Lambda 表达式已经不再是“新特性”。 现在很多人工作中会使用 Lambda 表达式。 但是,你是否真正理解 Lambda 表达式的底层原理?
平时工作开发过程中,难免会用到状态机(状态的流转)。 如奖学金审批状态流转、请假审批状态流转、竞标状态流转等,都需要根据不同行为转到不同的状态。 有什么好的编码方式吗?
我们写单元测试的时候,偶尔需要获取被测试对象的 logger 输出的内容,用于断言或者通过单元测试辅助自己排查问题。介绍一个比较成熟的解决方案: `log-captor`
那些相见恨晚的 IDEA插件
如果你 Java面试没通过,可能是因为你没看透这些书
JSON 反序列化 Long 变 Integer 或 Double 问题
InnoDB 啥时候不执行事务?
封装复杂度之批量接口
非典型程序员的办公桌
我对“结构化思维”的理解 - 直播分享
我眼中的Java大牛之孤尽老师
为什么技术同学需要有更多的业务思考?
拒绝“开发脑”
从线程池拒绝策略中我们可以学到什么?
细微之处见真章之字符串超长省略功能
MySQL聚簇索引和非聚簇索引的理解
Postman简单用法以及转cURL等命令的正确姿势
提高程序员思维的几本书
-XX:PretenureSizeThreshold的默认值和作用浅析
slf4j的log.warn()的参数问题研究
MySQL的in和or的效率问题浅析
Java开发岗位校招复习重点在哪里?
@Transactional 自调用失效问题解析