迷你大模型 nanochat 源码系列 (2) 分词器

大模型进行训练前,需要对语料进行 tokenize 处理。 BPE (Byte-pair encoding) 字节对编码算法 Byte-pair encoding 字节对编码 是一种简单的数据压缩形式,下面直接引用 wikipedia 的原文。 原始算法主要是为了压缩。大语言模型使用的修改后的算法。与原始 BPE 相比,修改后的 BPE 并非旨在最大限度地压缩文本,而是将明文编码为“token”(即自然数)。 ...

October 15, 2025 · hi2code

迷你大模型 nanochat 源码系列 (1) 整体项目结构

nanochat 是一个用于学习目的的 LLM 的迷你实现。 一个大模型的训练和推理过程如下: 分词器训练 ——> 预训练 ——> 中期训练 ——> 监督微调(SFT)——> 强化学习 (RL) ——> 推理引擎推理 工程结构 整体项目结构如下 ...

October 14, 2025 · hi2code

xargs 用法

介绍 xargs 工作原理和常见用法 ...

May 30, 2024 · hi2code

Java 系列-String 字符串的处理

摘要 本文主要介绍 Java String 相关的 API 和用法,字符串的操作。 String 核心知识点 Java 中字符串是不可变的,一经创建就无法再修改。所有对原有字符串的删除替换拼接等操作,都不会修改原有字符串,而是产生一个新的字符串。 ...

May 28, 2024 · hi2code

解决 Tailwind CSS Vscode 插件无效的问题

在 vscode 中使用 tailwindcss 时候,会遇到插件不工作,无法自动补全,也无法展示类名的颜色。有如下几种排查方法 可以按下面的顺序排查问题。 1。查看插件的日志输出 Ctrl + Shift + P,搜索 tailwind css show output。查看日志是否报错。比如没有安装依赖。 例如日志中出现无法解析依赖 Tailwind CSS:Can’t resolve ‘@headlessui/tailwindcss’,这种情况安装对应的依赖就可以了 ...

January 1, 2024 · hi2code

把第三方 JavaScript 库封装为 Vue3 组件

把第三方的 UI 组件封装为 Vue 组件,以Frappe Gantt为例 想要在Vue中使用甘特图组件,参考vue-echart的实现 转化的步骤 在on Mount的hook中,初始化,并且将回调转换为事件emit 实现 v-model 双向绑定 初始化,然后在js库回调中emit事件 将js库所有更改传递到vue组件(在回调事件emit函数中修改传入的props) 外部vue组件的改变传递到js库(用watch来实现,当vue组件状态改变时候,同步修改js库的ui) 最后处理对于插槽(选项列表)内部内容的所有变更。(用updated 生命周期hook) 什么是Web Components https://developer.mozilla.org/zh-CN/docs/Web/API/Web_components/Using_custom_elements 需要将封装为一个web component ...

December 21, 2023 · hi2code

Bash 简单教程

Bash 是大部分 Linux 发行版上的默认命令行环境(Shell)。它的语法很简单,可以很方便的操作类 Linux 系统上的原生命令,适合备份、快速部署等自动化工作。 Bash 是大部分 Linux 发行版上的默认命令行环境(Shell),通常所说的命令行命令就是在 Bash 中执行的。 ...

November 15, 2023 · hi2code

Python 标准库系列 —— datetime

· 介绍 Python 标准库 datetime ...

June 15, 2023 · hi2code