SmolLM, SmolLM2
收藏资源简介:
SmolLM和SmolLM2是两个具有开放预训练语料库的大型语言模型。这些数据集被用于评估模型输出与预训练语料库之间的关系,特别是评估输出是否新颖,即是否无法追溯到记忆的训练数据。通过使用轻量级的GIST嵌入和ColBERTv2重新排序,研究者能够有效地在大规模预训练语料库上进行新颖性分析。该研究揭示了模型在更长序列上使用预训练数据,不同领域对新颖性的影响,以及指令调整对新颖性和风格的影响。
SmolLM and SmolLM2 are two large language models (LLMs) equipped with open pre-training corpora. Relevant datasets are utilized to evaluate the relationship between model outputs and their pre-training corpora, particularly to determine whether the model outputs are novel—meaning they cannot be traced back to memorized training data. By employing lightweight GIST embeddings and ColBERTv2 reranking, researchers can efficiently conduct novelty analysis on large-scale pre-training corpora. This study reveals the model's usage of pre-training data for longer sequences, the influence of different domains on novelty, as well as the impacts of instruction tuning on both novelty and output style.
FAISS-Based Novelty Detection for SmolLM and SmolLM2 数据集概述
数据集基本信息
- 任务类别: 文本检索
- 语言: 英语
- 标签: 新颖性检测、语义相似性、LLM分析、预训练、FAISS、ColBERT
核心功能
基于论文《Un-Attributability: Computing Novelty From Retrieval & Semantic Similarity》的方法,测量文本查询相对于SmolLM和SmolLM2预训练语料库的新颖性,支持可选的ColBERTv2重排序以提高精度。
技术流程
- 生成嵌入 - 使用句子转换器编码查询
- FAISS搜索 - 从预训练语料库检索前K个最相似文档
- 合并结果 - 合并多个FAISS索引部分的结果
- ColBERT重排序 - 可选步骤,使用ColBERTv2重排序检索文档
数据分布
由于Hugging Face存储配额限制,完整的FAISS索引和分块数据集分布在两个存储库中:
- https://huggingface.co/datasets/stai-tuebingen/faiss-smollm
- https://huggingface.co/datasets/enguyen/smollm-chunked
系统要求
- Python版本: 3.11(必需)
- 硬件: 支持CUDA的GPU(推荐)
- 依赖: 预构建的FAISS索引和分块数据集
目录结构
FAISS索引结构
FAISS_PATH_1/ ├── dclm/ │ ├── faiss_part_0.index │ ├── faiss_part_1.index ├── stack_edu/ │ ├── faiss_part_0.index
数据结构
DATA_PATH/ ├── fineweb_edu_chunked/ │ ├── part_0/ │ ├── part_1/ ├── cosmopediav2_chunked/ │ ├── part_0/ │ ├── part_1/
主要脚本
minimal_example_embeddings.py- 生成查询嵌入minimal_example_FAISS.py- FAISS索引搜索minimal_example_combine_FAISS.py- 合并FAISS结果minimal_example_ColBERTv2.py- ColBERT重排序
实验配置
支持单实验和多实验配置:
- 单实验:
[("SmolLM-360M", "prompted")] - 多实验:
[("SmolLM-360M", "prompted"), ("SmolLM-360M", "unprompted")]
输出文件
- 嵌入文件:
{model_name}_{prompted_or_not}_embeddings.npy - 相似度分数:
{model_name}_{prompted_or_not}_S.npy - 索引字符串:
{model_name}_{prompted_or_not}_I.npy - ColBERT结果:
{EXPERIMENT_NAME}_{model_name}_chunk_size_{CHUNK_SIZE}_simple_rerank_results_model.json




