LLM-如何使用预训练LLM
使用预训练 LLM
模型命名规范:
- 无 instruct:基础模型,进行了预训练
- 含 instruct:还额外进行了指令对齐等操作
模型结构
示例: “Qwen/Qwen2.5-0.5B-Instruct”
- Model 是一个嵌入模型+若干 layers
- lm_head 将模型输出映射回词表
| |
特殊符号
每一个模型的特殊符号均有差异,一般而言:
模型命名规范:
示例: “Qwen/Qwen2.5-0.5B-Instruct”
| |
每一个模型的特殊符号均有差异,一般而言:
| |
| |
程序输出重定向
#课题 Eclipse Xtext 是用于开发编程语言和领域特定语言的框架,包括解析器、链接器、类型检查器、编译器以及对 Eclipse、任何支持语言服务器(LSP)协议的编辑器和您最喜欢的 web 浏览器的编辑支持。
选项导航:File → New → Project… → Xtext → Xtext project 填入如下值
| key | value |
|---|---|
| Project name: | org.example.domainmodel |
| Language name: | org.example.domainmodel.Domainmodel |
| DSL-File extensions: | dmodel |
会自动生成如下目录结构
| org.example.domainmodel | The grammar definition and all language-specific components (parser, lexer, linker, validation, etc.) |
| org.example.domainmodel.ide | Platform-independent IDE functionality (e.g. services for content assist) |
| org.example.domainmodel.tests | Unit tests for the language |
| org.example.domainmodel.ui | The Eclipse editor and other workbench related functionality |
| org.example.domainmodel.ui.tests | UI tests for the Eclipse editor |
Xtext 框架使用 com.google.inject 库进行依赖注入,注册不同的语言服务(如 GrammarAccess,Formatter)
原文地址 zhuanlan.zhihu.com
UML 图有很多种,但是并非必须掌握所有的 UML 图,才能完整系统分析和设计工作。一般说来,在 UML 图中,只要掌握类图、用例图、时序图的使用,就能完成大部分的工作。也就是说,掌握 UML 的 20%,就能做 80% 的事情。对于程序员来说,最频繁使用的莫过于类图。因此,这里我们只讲解 UML 类图。至于其它 UML 图,请在以后的工作中参阅更多 UML 学习资料继续学习。
类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。类图中最基本的元素是类、接口。软件设计师设计出类图后,程序员就可以用代码实现类图中包含的内容。
UML 类图中具体类、抽象类、接口和包有不同的表示方法。
具体类在类图中用矩形框表示,矩形框分为三层:第一层是类名字。第二层是类的成员变量;第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示:
public;private;protected;default。
抽象类在 UML 类图中同样用矩形框表示,但是抽象类的类名以及抽象方法的名字都用斜体字表示,如图 2 所示。

接口在类图中也是用矩形框表示,但是与类的表示法不同的是,接口在类图中的第一层顶端用构造型 <<interface>> 表示,下面是接口的名字,第二层是方法,如图 3 所示。此外,接口还有另一种表示法,俗称棒棒糖表示法,就是类上面的一根棒棒糖(圆圈 + 实线)。圆圈旁为接口名称,接口方法在实现类中出现。

容器化:将一个程序所需的运行库、依赖等打包到一起,以便可以到处运行
用途:

镜像中包含以下内容:
镜像数据持久化:
概述:一个程序可能需要用到一组相互关联的应用程序,如前后端、数据库。这些程序分别部署在不同的 Docker 镜像中,而 DockerCompose 用于解决关联启动的问题,实现一键启动所有服务
| |
添加 registry-mirrors,这里只使用了 Docker 中国区的镜像,若没有上述文件新建一个即可:
Docker Desktop:找到 Docker Destop -> Preferences -> Docker Engine,添加镜像配置即可

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。 对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
GUI 中的组件 Tips:用户界面对象中会有一个对象来处理帮助请求,至于是哪一个对象则取决于上下文以及可用的帮助具体到何种程度。
按钮、对话框和应用类都使用 HelpHandler 操作来处理帮助请求。 HelpHandler 的 HandleHelp 操作默认是将请求转发给后继。
请求传递过程可能如下


解决上述参数传递问题:

职责链常与 Composite(4.3)一起使用。这种情况下,一个构件的父构件可作为它的后继。
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。
判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。
核心策略:看覆盖范围,覆盖范围内⼀定是可以跳过来的,不⽤管是怎么跳的。问题就转化为跳跃覆盖范围究竟可不可以覆盖到终点。
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。
每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:
0 <= j <= nums[i] i + j < n返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例保证可以到达 nums[n - 1] 。
核心策略:同样看覆盖范围,当前下标达到了上次跳跃的最大位置,且未达到终点,则需要跳跃一次。
| |
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。
运用共享技术支持大量细粒度的对象节约空间
面向对象中创建一个对象的开销是相对较大的,有时这是难以承受的。例如文本编辑器若将每个字符均采用一个相应的对象描述将产生巨大的内存负担
Flyweight 模式描述了如何共享对象,使得可以细粒度地使用它们而不需要高昂的代价

条件全部成立时使用:

Flyweight 模式经常和 Composite(4.3)模式结合起来表示一个层次式结构,这一层次式结构是一个共享叶结点的图。
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
考虑解析简单的正则表达式,包含如下文法:
使用类去描述上述文法:

当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。
最好具备以下特性:

工作流程:Client 构建(或被给定)一个句子,它是 NonterminalExpression 和 TerminalExpression 的实例的一个抽象语法树。然后初始化上下文并调用解释操作。
什么是模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。
模式的组成要素:
由 MVC, Model-View-Controller 理解“模式”:
设计模式的组成要素:

创建型模式与对象的创建有关;
结构型模式处理类或对象的组合;
行为型模式对类或对象怎样交互和怎样分配职责进行描述。
类模式:处理类和子类的关系
对象模式:处理对象间的关系
设计模式中可变的部分:

对接口编程,而不是对实现编程。这可以极大地减少子系统实现之间的相互依赖关系: