Attention Is All You Need

Introduction

本文主要介绍了 Google 于 2017 年的论文Attention Is All You Need。该论文被认为是
Transformer 架构的开出鼻祖,其中抛弃了传统 RNN 和 CNN 的循环和卷积结构,完全通过注意力机制来处理语言转导(transduction)问题。

阅读更多
LangChain4j Tutorial

What is LangChain4j

阅读更多
LLM 应用开发框架

前言

自从 GPT-4 和 ChatGPT 问世以来,大语言模型的热潮仿佛到来,各种大模型和 AIGC 的产品层出不穷。LLM
开发框架可以说也是大语言模型热潮下的一个产物和趋势。

阅读更多
软件质量与管理 Review

软件工程发展

  • 软件开发的四大本质难题:不可见性、复杂性、可变性、一致性。
    • 除了不可见性以外,其他三个本质难题因项目而异。
    • 四大本质难题互相促进,可以缓解,但是不能够彻底解决。
  • 软件发展的三大阶段
    • 软硬件一体化:50 年代到 70 年代
      • 特点:软件支持硬件完成计算任务、功能单一、复杂度有限、几乎没有需求变更。
      • 开发方法:线性顺序过程、三思而后行(Measure twice,cut once)、编码和改错(code and fix)。
    • 软件成为独立的产品:70 年代到 90 年代
      • 特点:软件摆脱硬件的束缚(操作系统)、功能强大(个人电脑的出现)、需求多变、兼容性要求、来自市场的压力。
      • 开发方法:形式化方法、结构化程序设计和瀑布模型
    • 网络化和服务化:90 年代中期至今
      • 特点:功能更复杂、规模更大、用户数量急剧增加、快速演化和需求不确定、分发方式的变化、进一步的服务化和网络化、盛行开源和共享精神
      • 开发方法:迭代式开发、敏捷开发(XP、Scrum、KanBan)、开源软件开发方式、DevOps
阅读更多
LangChain Learning

What is LangChain

LangChain 是一个使用 Python 开发的,用于开发由语言模型(language models)驱动的应用程序的框架。LangChain 的开发旨在让开发人员不单单是通过 API 来使用 LLM 模型,而且还可以:

  1. 具有数据感知能力:将语言模型连接到其他数据源
  2. 具有主体性:允许语言模型与环境交互

因此,LangChain 框架的设计目标就是支持这些类型的应用程序。

阅读更多
Java Agent 技术简单介绍

1 什么是 Java Agent

阅读更多
G1 Garbage Collector

HotSpot Architecture

HotSpot JVM 架构主要有以下几个部分组成:

  1. Class Loader Subsystem
  2. Runtime Data Areas
    1. Method Area
    2. Heap
    3. Java Threads
    4. Program Counter Registers
    5. Native Internal Threads
  3. Execution Engine
    1. JIT Compiler
    2. Garbage Collector
  4. Native Method Inteface
阅读更多
Spring Boot Starter 探究

What is Starter is Spring Boot

首先我们需要了解一下 Spring Boot 中 starter 的概念,Spring Boot 相比 Spring 有以下几个优势:

  1. 创建独立(standalone)的 Spring 应用程序
  2. 相比 Spring,Spring Boot 不需要再打包为 war 然后部署到 Tomcat 的服务器上。Spring Boot 内嵌 Tomcat、Jetty 或者 Undertow
  3. 提供可选的 starter 来简化项目的构建配置
  4. 自动配置 Spring 相关 Bean 和第三方库的相关配置
  5. 无需生成代码,无需 XML 配置
  6. 提供监控(metrics)、运行状况检查、外部化配置的功能

从上面 Spring Boot 的 features 我们可以发现,starter 实际上是为 Spring Boot 提供了一个简化项目构建配置的能力,可以让使用者将精力放在业务逻辑的开发中,而不需要去烦恼如何对一些依赖进行配置,因为这些配置都已经通过 starter 集成到了 Spring Boot 当中,可以作为 Spring Boot 开箱即用的部分,starter 中的 Bean 都已经注入到了 IOC 容器当中,而不需要我们再去手动配置。

阅读更多
Spring 循环依赖

什么是循环依赖

在 Spring 中,循环依赖有如下的几种形式(箭头代表依赖关系)

  1. BeanA -> BeanB -> BeanA(依赖形成闭环关系)
  2. BeanA -> BeanA(自己依赖自己)
阅读更多
文件管理

文件的概念

  • 文件是具有符号名的,在逻辑上具有完整意义的一组相关信息项的序列
  • 文件(document)与计算机文件(file)
  • 文件名是由字母、数字和其他符号组成的一个字符串,其格式和长度因系统而异
阅读更多