身份与主体性的反思
永居申请被拒:身份与主体性的反思当我接到永居申请被拒的消息时,短暂的愣神之后,内心涌动的却并非单纯的挫败,而是一种奇异的“生存论困境”感。表面上,这似乎只是一次行政结果的体现,但其背后却深刻折射了当代全球流动性结构与主体性建构之间的多重张力。
在全球化与国家主权的张力下,个体身份的确认究竟是否可能?
当永居申请被拒时,是否意味着个体被象征性地排除在某种集体意义之外?
永居申请:从权利幻想到身份迷宫在吉登斯的“现代性与自我认同”理论框架下,永居申请不仅是一种居留权的争取,更是一种对身份稳定性与未来可能性的符号化追求。然而,在全球化语境下,这种追求往往陷入德里达所描述的“延异”结构:权利的实现总是被推迟,身份的确认总是悬置。
在此情境中,申请被拒的结果无异于一种符号暴力。它不仅断裂了我对未来的规划,也撕裂了我在这一场域中的主体性幻象。
主体性与制度规训的对抗布尔迪厄的场域理论揭示了权力在社会实践中的分布方式,而永居申请这一制度实践正是权力规训个体的具体化场域。拒绝不仅是一种行政结果,更是一种对主体的隐形规训,暗示了平台资本主义时代个体与制度之间的权力失衡。
福柯的规训视角让我们看到 ...
【Leetcode Python题解】「1346. Check If N and Its Double Exist」
【Leetcode Python题解】「1346. Check If N and Its Double Exist」题目:1346. Check If N and Its Double Exist题目描述给定一个整数数组 arr,检查是否存在两个不同的索引 i 和 j,满足:
i != j
0 <= i, j < arr.length
arr[i] == 2 * arr[j]
示例示例 1:
123输入:arr = [10,2,5,3]输出:true解释:对于 i = 0 和 j = 2,arr[i] = 10 等于 2 * 5 = 2 * arr[j]
示例 2:
123输入:arr = [3,1,7,11]输出:false解释:不存在满足条件的 i 和 j。
约束条件
2 <= arr.length <= 500
-10³ <= arr[i] <= 10³
解题思路这道题可以用多种方法解决,我们来分析两种主要的解法:暴力解法和哈希表解法。
1. 暴力解法最直观的解法是使用两层循环,遍历所有可能的数对。
1234567def checkI ...
Leetcode Python Solution - 2097. Valid Arrangement of Pairs
[Leetcode Python Solution] 2097. Valid Arrangement of PairsIn this technical blog, we’ll dive deep into Leetcode Problem 2097 — Valid Arrangement of Pairs. We will break down the solution step by step, from understanding the problem, modeling it as a graph theory problem, to implementing the solution.
Problem Link: 2097. Valid Arrangement of Pairs
Problem DescriptionGiven a 2D array pairs where pairs[i] = [start, end], you need to rearrange these pairs so that for adjacent pairs [start1, end1] ...
【Leetcode Python题解】「2097. Valid Arrangement of Pairs」
【Leetcode Python题解】「2097. Valid Arrangement of Pairs」在这篇技术博客中,我们将深入解析 LeetCode 的第 2097 题 —— Valid Arrangement of Pairs,并全面介绍如何从题意理解、图论建模到算法实现逐步解决问题。题目:2097. Valid Arrangement of Pairs问题描述给定一个二维数组 pairs,其中 pairs[i] = [start, end],我们需要重新排列这些数字对,使得相邻的两个数字对 [start1, end1] 和 [start2, end2] 满足以下条件:
end1 == start2。
输入数据保证一定存在这样一种合法的排列方式。
示例示例 1输入:
1pairs = [[5,1],[4,5],[11,9],[9,4]]
输出:
1[[11,9],[9,4],[4,5],[5,1]]
解释:排列后满足条件:
end0 = 9 == 9 = start1
end1 = 4 == 4 = start2
end2 = 5 == 5 = start3
示例 ...
Detailed Explanation of LoRA, DPO, KTO, and SFT Technologies
Introduction to LLM Training Terminology:LoRA, DPO, KTO, and SFT TechnologiesThis document provides a detailed introduction to several important techniques used in fine-tuning and optimizing large language models (such as LLAMA3), including SFT (Supervised Fine-Tuning), LoRA (Low-Rank Adaptation), Alignment technologies, KTO (Kahneman-Tversky Optimization), and DPO (Direct Preference Optimization). The document also elaborates on the principles of each technique, specific implementation methods, ...
LoRA, DPO, KTO 与 SFT 技术详解
LoRA, DPO, KTO 与 SFT 技术详解本篇文档将详细介绍几种在大型语言模型(如 LLAMA3)微调和优化中的重要技术,包括 SFT(Supervised Fine-Tuning)、LoRA(Low-Rank Adaptation)、Alignment 技术、KTO(Kahneman-Tversky Optimization) 和 DPO(Direct Preference Optimization)。文中还将详细阐述每种技术的原理、具体实现方法以及相应的损失函数与优化器选择。
1. SFT(Supervised Fine-Tuning)1.1 原理SFT 是一种传统的微调方法,通过监督学习对预训练模型进行微调,调整模型的参数使其在特定任务上表现更好。SFT 通常用于针对特定的标注数据进行模型微调,训练的过程类似于常规的监督学习。
1.2 实现方法
选择预训练模型:如 GPT、BERT 等语言模型。
准备标注数据集:数据集包含输入和输出对。
训练模型:使用标准的交叉熵损失函数对模型进行训练,通过梯度下降优化参数。
1.3 核心代码使用 Hugging Face 的 Tra ...
使用压缩有限状态机进行本地 LLM 的快速 JSON 解码
使用压缩有限状态机进行本地 LLM 的快速 JSON 解码作者: Liangsheng Yin, Ying Sheng, Lianmin Zheng日期: 2024 年 2 月 5 日
本文内容基于 LMSYS Org 发布的一篇博客文章,原文链接:LMSYS Org 博客。相关的代码库可以在以下链接找到:SGLang 代码库。
让一个 LLM 始终生成符合特定模式的有效 JSON 或 YAML,对于许多应用来说是一个关键特性。在这篇博客文章中,我们介绍了一种显著加速这种约束解码的优化方法。我们的方法利用了压缩的有限状态机,并且兼容任何正则表达式,因此可以适用于任何 JSON 或 YAML 模式。与现有系统逐步解码一个标记的方式不同,我们的方法分析了正则表达式的有限状态机,压缩了单一的转换路径,并在可能的情况下一次性解码多个标记。与最先进的系统(guidance + llama.cpp,outlines + vLLM)相比,我们的方法可以将延迟减少最多 2 倍,并提高吞吐量最多 2.5 倍。这一优化还使得约束解码比普通解码更快。你可以在 SGLang 上试用它。
图一展示了 SGL ...
Detailed Steps for Running Fine-tuned Gemma-2-2b-it with vLLM
In this post, I will share the steps to run the fine-tuned Gemma-2-2b-it model using vLLM. This guide will cover the installation process, environment configuration, and common troubleshooting tips.
Installation and Verification of vLLMFirst, ensure that you have installed and verified vLLM version 0.5.3.
Install vLLM:
1!pip install vllm==0.5.3
Verify the installation:
123import vllmprint(vllm.__version__)# Output: 0.5.3
Installing FlashinferFollow these steps to install Flashinfer, ensuring ...
使用vLLM运行微调后的Gemma-2
使用vLLM运行微调后的Gemma-2-2b-it的详细步骤在这里分享一下我运行微调后的Gemma-2-2b-it模型并使用vLLM的步骤,希望对其他人有所帮助。本文将详细介绍安装过程、环境配置以及常见问题的解决方法。
安装和验证vLLM首先,确保安装并验证vLLM的版本是0.5.3。
安装vLLM:
1pip install vllm==0.5.3
验证安装:
123import vllmprint(vllm.__version__)# 输出: 0.5.3
安装Flashinfer按照以下步骤安装Flashinfer,并确保您的torch版本和CUDA兼容性。
检查torch版本和CUDA兼容性:
123import torchprint(torch.__version__) # 应输出: 2.3.1+cu121print(torch.version.cuda) # 应输出: 12.1
安装Flashinfer:根据文档,Gemma运行在版本0.08。vLLM需要FlashInfer v0.0.8(请参阅vLLM版本和Flashinfer文档中关于Gemma 2的部分)。 ...
如何准确计算固定长度模型的困惑度(PPL)
如何计算固定长度模型的困惑度(PPL)困惑度(PPL)是评估语言模型最常用的指标之一。在深入探讨之前,我们应该注意这个指标特别适用于传统语言模型(有时被称为自回归或因果语言模型),而对于像 BERT 这样的 masked language models 则没有明确定义(见模型总结)。
困惑度被定义为序列的指数化平均负对数似然。如果我们有一个标记化序列 $X = (x_0, x_1, \dots, x_t)$,那么 $X$ 的困惑度为,
$$\text{PPL}(X) = \exp \left{ -\frac{1}{t}\sum*{i=1}^t \log p\theta (xi|x*{<i}) \right}$$
其中 $\log p\theta (x_i|x{<i})$ 是第 i 个标记的对数似然,条件是根据我们的模型前面的标记 $x_{<i}$。直观上,它可以被认为是评估模型在语料库中指定标记集合上预测均匀性的能力。重要的是,这意味着标记化程序直接影响模型的困惑度,这在比较不同模型时应始终考虑。
这也相当于数据和模型预测之间的交叉熵的指数化。想要了解更多关于困惑度及 ...