2024-09-30
前言
每次配置什么环境都是从网上找个教程,然后安装教程一步步走,遇到问题继续搜索,直到配置完成。
到现在已经接触到很多包管理器,比如 npm、yarn、pip、brew、apt、yum、docker、composer 等等。
于是想到,这些包管理器都是怎么实现的呢?它们之间有什么区别呢?
什么是包管理器
包管理器是一种工具,用于自动化管理软件包(librar...
Read More
2024-09-30
前言
公司培训的前辈提到:AOP可以理解为添加了一个代理类,这个代理类可以在方法执行前后添加一些操作,比如日志记录、事务管理等。这样就可以将核心业务逻辑和横切关注点分离开来,提高代码的可维护性和可扩展性。
这里他举了一个例子,例如每个方法都需要统计运行时间,如果不使用AOP,那么每个方法都需要添加统计时间的代码,这样会导致代码冗余,可维护性差。使用AOP,只...
Read More
2024-09-26
前言
使用Mockito和JUnit5进行单元测试。
需要注入依赖:
123456789101112131415161718<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter...
Read More
2024-09-25
组合和聚合
组合(Composition)经常用来表示“拥有” 关系(has-a relationship)。例如,“汽车拥有引擎”
聚合(Aggregation)动态的组合。
组合:表示整体与部分的关系,整体和部分的生命周期一样,整体不存在了,部分也不存在了。
1234567891011121314class Engine { ...
Read More
2024-09-23
$$
\begin{aligned}
\text { for } i & =1, \ldots, L: \
x_i & \sim p\left(x_i \mid x_{1: i-1}\right)^{1 / T},
\end{aligned}
$$
其中 $T≥0$ 是一个控制我们希望从语言模型中得到多少随机性的温度参数:
T=0:确定...
Read More
2024-09-23
为什么需要编码和解码?
在机器学习中,算法通常无法直接处理文字或类别,需要先将它们转化为数值才能输入模型。
编码器的作用是接收输入序列,并将其转换成固定长度的上下文向量(context vector)。这个向量是输入序列的一种内部表示,捕获了输入信息的关键特征。在自然语言处理的应用中,输入序列通常是一系列词语或字符。
Embedding 编码 和 One-h...
Read More
2024-09-23
简介
模型设置
参考提示工程指南
Temperature:准确度和发散程度
Top_p:准确度和发散程度
Max Length:回复的最大token数
Stop Sequences:组织模型生成token
Frequency Penalty
Presence Penalty
提示词格式
零样本提示:
12Q: <问题>?A:
提示词可以包含...
Read More
2024-09-05
项目背景
开发一个通用项目管理项目,前端使用react,后端使用Spring Boot
开发中遇到的知识点
Spring Boot的开发框架
12345678910111213141516171819202122232425262728project-root/│├── src/│ ├── main/│ │ ├── java/│ │ │ ...
Read More
2024-09-04
代码规范
命名风格
类型
风格
示例
变量名
驼峰
localValue
方法名
驼峰
getValue
类名
首字母大写
JavaServer
包名
小写,分隔符之间有且仅有一个自然语义的单词
com.excample.demo
枚举类型/常量
全大写,单词间用下划线隔开
MAX_STOCK_COUNT
禁止的命名:
...
Read More
2024-08-28
扫盲,Java和C++的一些区别
Java项目需要编译吗?底层编译原理和C++有什么不同?
编译输出:
Java:编译输出的是平台无关的字节码文件(.class 文件),这些字节码可以在任何安装了 JVM 的平台上运行。
C++:编译输出的是特定平台的机器码文件(如 .exe 文件),这些文件只能在编译时指定的平台上运行。
跨平台性:
Java...
Read More