Jan-nano
扫码查看

可在本地电脑运行的轻量级AI研究模型

Jan-nano

综合介绍

Jan-nano 是一个由 Menlo 团队开发的40亿参数规模的轻量级语言模型。 它基于Qwen3-4B-Base模型进行了微调,专门为在个人计算机上高效执行深度研究任务而设计和优化。 该模型的核心特点是可以在完全离线的本地环境中运行,从而保障了用户的隐私和数据安全。 Jan-nano 通过与模型上下文协议(MCP)服务器的无缝集成,能够有效地利用各种外部研究工具和数据源,进行实时工具调用,提升了其在研究场景中的实用性。 作为一个针对特定任务(研究而非通用聊天或推理)而优化的模型,它在SimpleQA等基准测试中展现了与其规模相比非常出色的性能。 用户可以通过开源的 Jan 桌面应用程序方便地使用 Jan-nano,也可以在 Python 环境中通过 transformers 库进行调用。

功能列表

  • 轻量化设计:模型拥有40亿参数,对硬件要求较低,可在消费级个人电脑上本地运行。
  • 深度研究优化:专门为深度研究任务进行了训练和优化,擅长查找和整合信息,而非通用推理。
  • 本地化运行:支持在 Jan 桌面应用中实现完全离线的本地部署,确保数据隐私和控制权。
  • 工具集成能力:通过模型上下文协议(MCP)服务器,可以高效地与外部研究工具和数据源进行集成和交互。
  • 开源许可:采用 Apache 2.0 许可证,允许用户免费使用、修改和分发。
  • 长上下文支持:支持高达128K的上下文长度,能够处理和理解更长的文档和对话历史。
  • 强大的基础模型:基于优秀的 Qwen/Qwen3-4B-Base 模型进行微调,继承了其稳固的基础能力。

使用帮助

Jan-nano 模型主要有两种使用方式:通过 Jan 桌面应用程序或在 Python 代码中直接调用。对于大多数非开发用户,推荐使用 Jan 桌面应用,因为它提供了开箱即用的体验。对于开发者,使用 transformers 库则提供了更高的灵活性。

方式一:通过 Jan 桌面应用程序(推荐)

Jan 是一个开源的桌面应用程序,可以看作是 ChatGPT 的本地替代品,它让用户可以在自己的电脑上运行各种AI大模型,操作简单直观。

  1. 下载并安装 Jan
    • 访问 Jan 的官方网站(jan.ai)下载适用于您操作系统(Windows, macOS, Linux)的最新版本。
    • 按照常规软件安装流程完成安装。
  2. 在 Jan 中下载并使用 Jan-nano 模型
    • 打开 Jan 应用程序。
    • 导航到模型中心或模型库(Hub)。
    • 在搜索框中输入 Jan-nano 或者 Menlo/Jan-nano
    • 从搜索结果中找到该模型,点击“下载”或“安装”按钮。
    • 等待模型文件下载完成。由于模型体积为数十GB,下载时间会根据您的网络状况而定。
    • 下载完成后,在对话界面顶部的模型选择下拉菜单中,选择 Jan-nano 作为当前使用的模型。
    • 现在,您可以在输入框中开始与 Jan-nano 模型进行对话,执行研究查询、文本生成等任务。

方式二:通过 Python 和 transformers 库

对于希望将 Jan-nano 集成到自己项目中的开发者来说,可以通过 Hugging Face 的 transformers 库在 Python 中加载和使用该模型。

  1. 准备环境
    • 确保您的电脑上安装了 Python(建议版本 3.8 或更高)。
    • 安装必要的库,主要是 transformers 和 torch。推荐使用 bitsandbytes 和 accelerate 以优化加载和推理性能。
    pip install transformers torch accelerate
    
  2. 编写 Python 代码运行模型:以下是一个完整的 Python 代码示例,展示了如何加载 Jan-nano 模型并进行一次简单的对话。
    import torch
    from transformers import AutoModelForCausalLM, AutoTokenizer
    # 指定模型的Hugging Face路径
    model_id = "Menlo/Jan-nano"
    # 打印提示信息,告知用户正在加载模型
    print(f"正在加载模型: {model_id}...")
    # 加载分词器(Tokenizer)
    # 分词器负责将文本转换为模型可以理解的数字ID
    tokenizer = AutoTokenizer.from_pretrained(model_id)
    # 加载模型本身
    # torch_dtype=torch.bfloat16 用于提升性能并减少内存占用
    # device_map="auto" 会自动将模型分配到可用的硬件上(如GPU或CPU)
    model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    )
    print("模型加载完成。")
    # 定义一个消息列表,用于构建对话历史
    # 遵循模型预期的对话模板格式
    messages = [
    {"role": "user", "content": "你好,你能介绍一下自己吗?"}
    ]
    # 使用分词器的apply_chat_template方法,将对话历史格式化为模型输入
    # add_generation_prompt=True 表示我们希望模型接着生成内容
    # tokenize=False 表示先不转换为token ID,方便后续处理
    prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
    )
    # 将格式化后的文本提示(prompt)转换为模型可以处理的PyTorch张量
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    # 使用模型生成回复
    # max_new_tokens=256 限制生成文本的最大长度为256个token
    outputs = model.generate(**inputs, max_new_tokens=256)
    # 从生成的token ID中,解码出人类可读的文本
    # [len(inputs["input_ids"][0]):] 这部分是切片操作,只解码新生成的部分,排除原始输入
    response_text = tokenizer.decode(outputs[0][len(inputs["input_ids"][0]):], skip_special_tokens=True)
    # 打印最终的回复
    print("\n模型回复:")
    print(response_text)
    

    将以上代码保存为 run_jannano.py 文件,然后在终端中运行 python run_jannano.py 即可看到模型的输出。

应用场景

  1. 本地化的学术研究与信息检索用户可以在没有网络连接的情况下,利用 Jan-nano 对本地的文档、数据库或研究资料进行深度查询和分析。由于它擅长工具调用,可以集成本地的搜索引擎或数据API,成为一个完全私有的研究助手,非常适合处理敏感或保密的研究数据。
  2. 离线AI助理与内容创作对于需要频繁进行文本创作的用户,如撰写报告、起草邮件、编写技术文档等,Jan-nano 可以作为一个无需联网的写作伙伴。它可以在个人电脑上快速生成草稿、提供建议或总结长篇文本,整个过程不依赖云服务,保证了创作内容的安全。
  3. 隐私优先的个人知识库问答用户可以将自己的笔记、日记、学习资料等个人知识库与 Jan-nano 结合。通过适当的工具配置,Jan-nano 可以在这个本地知识库中进行检索和问答,成为一个真正懂你的、且完全保护隐私的个人AI助理。

QA

  1. Jan-nano 模型是免费的吗?是的,Jan-nano 模型基于 Apache 2.0 许可证发布,这是一个非常宽松的开源许可证,允许个人和商业实体免费使用、修改和分发该模型。
  2. 运行 Jan-nano 对电脑配置要求高吗?不高。Jan-nano 是一个40亿参数的轻量级模型,其设计目标之一就是在普通的消费级硬件上运行。 虽然拥有一个带独立显存(如NVIDIA GPU)的电脑会获得更快的推理速度,但它也可以在仅有CPU的环境下运行,只是速度会慢一些。
  3. Jan-nano 和 ChatGPT 有什么区别?最主要的区别在于运行环境和设计目标。ChatGPT 是运行在云端的闭源商业模型,功能通用且强大,但需要联网且数据会发送到服务商。而 Jan-nano 是一个开源的、专门为研究任务优化的轻量级模型,它可以在你的个人电脑上本地运行,实现了数据私有和离线操作。 在通用对话和复杂推理能力上,ChatGPT 通常更强;但在本地化、隐私保护和特定研究场景上,Jan-nano 具有明显优势。
  4. 什么是模型上下文协议(MCP)?它有什么用?模型上下文协议(Model Context Protocol, MCP)是一个技术框架,它让语言模型能够与外部工具(如搜索引擎、计算器、数据库查询工具等)进行实时、高效的交互。 对于 Jan-nano 来说,这意味着它不仅仅能根据已有知识回答问题,还能主动调用工具去获取最新信息或执行特定操作,这极大地增强了它在进行深度研究任务时的准确性和能力范围。
微信微博Email复制链接