模型简介
模型特点
模型能力
使用案例
🚀 nomic-embed-code GGUF模型
nomic-embed-code
是一款先进的代码嵌入模型,在代码检索任务中表现出色。它具有高性能、多语言代码支持、先进架构且完全开源等特点,能为代码开发和检索提供强大助力。
🚀 快速开始
安装
你可以使用以下命令安装必要的依赖:
pip install transformers sentence-transformers torch
使用示例
基础用法
使用 transformers
库的示例代码如下:
import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("nomic-ai/nomic-embed-code")
model = AutoModel.from_pretrained("nomic-ai/nomic-embed-code")
def last_token_pooling(hidden_states, attention_mask):
sequence_lengths = attention_mask.sum(-1) - 1
return hidden_states[torch.arange(hidden_states.shape[0]), sequence_lengths]
queries = ['Represent this query for searching relevant code: Calculate the n-th factorial']
codes = ['def fact(n):\n if n < 0:\n raise ValueError\n return 1 if n == 0 else n * fact(n - 1)']
code_snippets = queries + codes
encoded_input = tokenizer(code_snippets, padding=True, truncation=True, return_tensors='pt')
model.eval()
with torch.no_grad():
model_output = model(**encoded_input)[0]
embeddings = last_token_pooling(model_output, encoded_input['attention_mask'])
embeddings = F.normalize(embeddings, p=2, dim=1)
print(embeddings.shape)
similarity = F.cosine_similarity(embeddings[0], embeddings[1], dim=0)
print(similarity)
高级用法
使用 sentence-transformers
库的示例代码如下:
from sentence_transformers import SentenceTransformer
queries = ['Calculate the n-th factorial']
code_snippets = ['def fact(n):\n if n < 0:\n raise ValueError\n return 1 if n == 0 else n * fact(n - 1)']
model = SentenceTransformer("nomic-ai/nomic-embed-code")
query_emb = model.encode(queries, prompt_name="query")
code_emb = model.encode(code_snippets)
similarity = model.similarity(query_emb[0], code_emb[0])
print(similarity)
✨ 主要特性
- 高性能:在 CodeSearchNet 上的表现优于 Voyage Code 3 和 OpenAI Embed 3 Large。
- 多语言代码支持:支持多种编程语言,包括 Python、Java、Ruby、PHP、JavaScript 和 Go。
- 先进架构:拥有 70 亿参数的代码嵌入模型。
- 完全开源:模型权重、训练数据和 评估代码 均已发布。
📦 安装指南
安装所需依赖的命令如下:
pip install transformers sentence-transformers torch
📚 详细文档
模型生成细节
该模型使用 llama.cpp 在提交版本 7f4fbe51
时生成。
量化方法
测试了一种新的量化方法,使用规则将重要层的量化提升到标准 imatrix 之上。标准 IMatrix 在低比特量化和 MOE 模型中表现不佳,因此使用 llama.cpp --tensor-type 来提升选定层的量化。具体可参考 Layer bumping with llama.cpp。这种方法会生成更大的模型文件,但能提高给定模型大小下的精度。
选择合适的模型格式
选择正确的模型格式取决于你的 硬件能力 和 内存限制。具体信息如下:
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳用例 |
---|---|---|---|---|
BF16 | 非常高 | 高 | 支持 BF16 的 GPU/CPU | 减少内存的高速推理 |
F16 | 高 | 高 | 支持 FP16 的 GPU/CPU | BF16 不可用时的推理 |
Q4_K | 中低 | 低 | CPU 或低 VRAM 设备 | 内存受限的推理 |
Q6_K | 中等 | 适中 | 内存较多的 CPU | 量化下更好的精度 |
Q8_0 | 高 | 适中 | 具有适中 VRAM 的 GPU/CPU | 量化模型中最高的精度 |
IQ3_XS | 低 | 非常低 | 超低内存设备 | 最大内存效率,低精度 |
IQ3_S | 低 | 非常低 | 低内存设备 | 比 IQ3_XS 更实用 |
IQ3_M | 中低 | 低 | 低内存设备 | 比 IQ3_S 更好的精度 |
Q4_0 | 低 | 低 | 基于 ARM 的/嵌入式设备 | Llama.cpp 自动优化 ARM 推理 |
超低比特 (IQ1/2_*) | 非常低 | 极低 | 小型边缘/嵌入式设备 | 在极紧内存中适配模型;低精度 |
混合 (例如 bf16_q8_0 ) |
中高 | 适中 | 支持混合精度的硬件 | 平衡性能和内存,关键层接近 FP 精度 |
CoRNStack 数据集整理
从去重后的 Stackv2 开始,从函数文档字符串和相应代码创建文本 - 代码对。过滤掉低质量的对,如文档字符串不是英文、太短或包含 URL、HTML 标签或无效字符的对。此外,保留文本长度为 256 个标记或更长的文档字符串,以帮助模型学习长距离依赖。
初始过滤后,使用双一致性过滤来去除可能有噪声的示例。嵌入每个文档字符串和代码对,并计算每个文档字符串与每个代码示例之间的相似度。如果给定文档字符串的对应代码示例不在前 2 个最相似的示例中,则从数据集中删除该对。
训练期间,采用基于课程的新型难负样本挖掘策略,以确保模型从具有挑战性的示例中学习。使用基于 softmax 的采样策略,随着时间的推移逐步采样难度不断增加的难负样本。
🔧 技术细节
模型架构
- 总参数:70 亿
- 训练方法:在 CoRNStack 数据集上进行训练,采用双一致性过滤和渐进式难负样本挖掘策略。
- 支持语言:Python、Java、Ruby、PHP、JavaScript 和 Go
📄 许可证
该项目采用 apache-2.0
许可证。
加入 Nomic 社区
- Nomic Embed 生态系统:https://www.nomic.ai/embed
- 网站:https://nomic.ai
- Twitter:https://twitter.com/nomic_ai
- Discord:https://discord.gg/myY5YDR8z8
引用
如果你发现该模型、数据集或训练代码有用,请引用以下文献:
@misc{suresh2025cornstackhighqualitycontrastivedata,
title={CoRNStack: High-Quality Contrastive Data for Better Code Retrieval and Reranking},
author={Tarun Suresh and Revanth Gangi Reddy and Yifei Xu and Zach Nussbaum and Andriy Mulyar and Brandon Duderstadt and Heng Ji},
year={2025},
eprint={2412.01007},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2412.01007},
}
测试 AI 网络监控模型
帮助测试 AI 驱动的免费网络监控助手,进行 量子就绪安全检查: 免费网络监控
免费网络监控服务的完整开源代码可在 GitHub 仓库 中找到。如果你想自己进行模型量化,也可以找到相应的代码 GGUFModelBuilder。
测试方法
选择一种 AI 助手类型:
TurboLLM
(GPT - 4.1 - mini)HugLLM
(Huggingface 开源模型)TestLLM
(仅支持 CPU 的实验性模型)
测试内容
推动 小型开源模型在 AI 网络监控中的极限,具体包括:
- 针对实时网络服务进行 函数调用
- 模型可以多小 同时仍能处理:
- 自动化 Nmap 安全扫描
- 量子就绪检查
- 网络监控任务
不同助手特点
- TestLLM:当前的实验性模型(在 Hugging Face Docker 空间的 2 个 CPU 线程上运行 llama.cpp)
- 零配置设置
- 加载时间 30 秒(推理速度慢,但 无 API 成本)。由于成本低,无令牌限制。
- 寻求帮助! 如果你对 边缘设备 AI 感兴趣,让我们一起合作!
- TurboLLM:使用 gpt - 4.1 - mini
- 表现出色,但不幸的是 OpenAI 按令牌收费。因此,令牌使用受限。
- 创建自定义 cmd 处理器,在免费网络监控代理上运行 .net 代码
- 实时网络诊断和监控
- 安全审计
- 渗透测试(Nmap/Metasploit)
- HugLLM:最新的开源模型
- 在 Hugging Face 推理 API 上运行。使用 Novita 托管的最新模型表现相当不错。
示例命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
"Create a cmd processor to .. (what ever you want)"
注意,你需要安装免费网络监控代理才能运行 .net 代码。这是一个非常灵活和强大的功能,请谨慎使用!
最后说明
创建这些模型文件、运行免费网络监控服务以及支付 Novita 和 OpenAI 的推理费用均由个人承担。模型创建和免费网络监控项目背后的所有代码均为 开源。你可以自由使用任何有用的内容。
如果你认可这些工作,请考虑 请我喝杯咖啡 ☕。你的支持将有助于支付服务成本,并允许我提高每个人的令牌限制。
同时,也欢迎工作机会或赞助。
感谢你的支持!







