杂记 09
1 ollama
Ollama 是一个开源的本地大型语言模型(LLM)运行框架,旨在简化和优化大语言模型在本地环境中的部署、管理和推理流程。
2023 年底,随着 Meta 发布 Llama 2 等开源模型,开发者社区面临本地部署大型语言模型的技术挑战,Ollama 项目应运而生。它最初支持 macOS 和 Linux 系统,后来又推出了 Windows 实验版,通过 WSL 或 Docker 实现跨平台支持。
Ollama 具有以下特点:
- 极简部署体验:通过命令行直接加载模型,如 “ollama run llama3”,可自动完成环境配置与模型下载,无需手动安装 PyTorch、CUDA 等复杂依赖。
- 多模型兼容:支持 Llama、Mistral、DeepSeek 等 30 多种前沿模型自由切换,覆盖通用对话、代码生成、领域微调等场景。
- 开发者友好接口:提供 REST API 与 Python/JavaScript SDK,还提供与 OpenAI API 格式兼容的 REST API 端点,便于开发者将模型集成到应用中,可无缝对接开发流程。
- 跨平台运行:全面支持 Windows/macOS/Linux 系统,硬件资源智能动态调配。
- 硬件适配优化:采用 4-bit 量化技术显著降低显存需求,使消费级显卡也能运行大模型,如 70B 参数模型。
- 活跃社区生态:开源架构支持自定义模型,开发者社区贡献激增,GitHub 星标数破万,社区还推出了中文微调版、医疗领域专用模型等多样化插件,并集成了 Chatbox、Open WebUI 等可视化工具。
不过,2025 年 3 月,国家网络安全通报中心发布通报称,Ollama 默认配置存在未授权访问与模型窃取等安全隐患,如未授权用户能够随意访问模型,通过特定接口可访问并提取模型数据,攻击者还可利用 Ollama 框架历史漏洞实施数据投毒、参数窃取等操作。
2 关于linux操作系统
【win10本地装WSL跑linux还是VMware?有必要装双系统吗还是怎么弄,我也不知道怎么搞,似乎搞开发的操作系统都要用下Linux】
如果您是搞开发的,在 Windows 10 本地运行 Linux,WSL 和 VMware 各有优势,是否需要安装双系统也需根据具体需求来决定,以下是详细分析:
- WSL(Windows Subsystem for Linux):
- 优点:资源消耗极低,它基于 Windows 内核与 Linux 内核交互技术,直接在 Windows 中运行轻量化 Linux 环境,与 Windows 共享内核和部分资源,如文件系统、网络等,可动态分配 CPU、内存。安装和使用都很简单,通过 Microsoft Store 即可安装官方兼容的 Linux 发行版,如 Ubuntu、Debian 等。与 Windows 应用深度集成,例如可以在 VS Code 中使用 WSL 插件进行远程开发,Linux 子系统中的文件可直接被 Windows 应用打开,反之亦然。性能接近原生 Linux,尤其是 WSL 2 基于 Hyper - V 虚拟化,命令行操作响应极快。
- 缺点:仅支持官方兼容的 Linux 发行版,无法运行需要独立内核的系统。图形界面支持仍有局限,虽然 WSL 2 可以通过额外配置 X 服务器来运行图形应用,但兼容性和性能有限,不适合运行大型图形应用。
- VMware:
- 优点:基于虚拟化技术,在 Windows 上创建独立的虚拟机运行 Linux 系统,系统隔离性完全,Linux 系统拥有独立的内核、硬件资源和文件系统。支持几乎所有主流 Linux 发行版,甚至可运行 macOS、BSD 等其他操作系统,可模拟完整硬件环境,适合需要特定内核版本或老旧系统的场景。支持多种网络模式,可模拟独立主机的网络环境,适合搭建服务器、测试网络服务或模拟局域网环境。原生支持图形界面,可直接在虚拟机中运行 Linux 桌面环境,体验接近物理机。
- 缺点:资源消耗较高,需要为虚拟机分配独立的 CPU、内存、磁盘空间等,运行时会增加 Windows 系统的负载。安装和配置相对复杂,需要创建虚拟机,配置虚拟硬件等。
- 双系统:
- 优点:可以完全独立地运行两个操作系统,每个系统都有自己独立的硬件资源和文件系统,不存在资源共享和兼容性问题。在 Linux 系统下进行开发时,不会受到 Windows 系统的干扰,性能上也能够得到充分发挥,对于一些对系统资源和独立性要求较高的开发工作,如大规模的服务器端开发、需要深度优化内核的开发等,双系统是一个不错的选择。
- 缺点:安装过程较为复杂,需要对硬盘进行分区等操作,并且在安装过程中可能会遇到各种问题,如引导程序冲突等。切换系统需要重启电脑,操作比较麻烦,不能像 WSL 或 VMware 那样在两个系统之间快速切换。双系统会占用更多的磁盘空间,因为每个系统都需要独立的系统文件和数据存储区域。
如果您主要是需要轻量级的 Linux 命令行环境来使用一些开发工具,如 Bash、Zsh、Docker、Git 等,并且希望与 Windows 应用深度集成,对资源占用敏感,那么 WSL 是一个很好的选择。
如果您需要运行完整的 Linux 桌面环境或图形密集型应用,或者要模拟独立服务器环境、进行多系统隔离测试等,VMware 则更为合适。
如果您对 Linux 系统的独立性和性能要求极高,且不介意复杂的安装过程和重启切换的麻烦,双系统也是可行的方案。
3 什么是 Docker ?
简单说,Docker 是一个容器化工具,能把应用程序和它需要的所有依赖(比如库、配置文件、运行环境等)打包成一个独立的 “容器”,让这个应用可以在任何支持 Docker 的系统上(比如 Linux、Windows、Mac)以完全相同的方式运行。
打个比方:
如果把应用程序比作 “手机”,那么它需要的依赖(如特定版本的操作系统、数据库、运行库)就像是 “充电器、耳机、手机壳”。
没有 Docker 时,你在不同电脑上安装这个应用,可能因为系统版本不同、缺少某个依赖,导致 “手机” 用不了(程序报错)。
而 Docker 就像一个 “标准化的包装盒”,把 “手机” 和所有 “配件” 一起打包好。无论你在什么电脑上打开这个 “盒子”(运行容器),里面的应用都能立刻正常工作,不会受外界环境影响。
Docker 的核心优势:
- 环境一致:解决 “我这能跑,你那跑不了” 的问题,开发、测试、生产环境完全一致。
- 轻量高效:容器共享主机的操作系统内核,启动快(秒级),占用资源比虚拟机少很多。
- 隔离性好:不同容器之间相互隔离,一个应用的问题不会影响其他应用。
- 易于分发:容器可以通过镜像仓库(如 Docker Hub)轻松分享,别人拿到镜像就能直接运行。
简单理解两个核心概念:
- 镜像(Image):相当于 “容器的模板”,是打包好的应用和依赖的静态文件(可以理解为 “安装包”)。
- 容器(Container):镜像运行起来后的实例,是动态的、可执行的应用环境(可以理解为 “正在运行的程序”)。
比如你想跑一个 Nginx 服务器,只需从 Docker 仓库拉取 Nginx 镜像,然后用这个镜像创建容器,就能立刻启动一个 Nginx 服务,无需手动配置依赖 —— 这就是 Docker 简化开发流程的魅力。
4 什么是llava?
LLaVA 是 Large Language and Vision Assistant 的缩写,即大型语言和视觉助手,它是一种开源的生成式人工智能模型。以下是关于 LLaVA 的详细介绍:
- 模型架构:LLaVA 的视觉编码器采用 CLIP 的 Vision Transformer(ViT-L/14),语言部分采用基于 Meta 的 LLaMA 微调优化而成的开源语言模型 Vicuna。它通过轻量级的投影层将图像特征映射到语言模型的嵌入空间,把视觉和语言特征结合在一起,然后由 Vicuna 接收融合后的特征进行生成任务。
- 工作原理:LLaVA 可以同时接受文本和图像作为输入。视觉编码器会分析图像,提取关键的视觉特征,语言模型会处理文本输入,理解问题的含义和背景信息。接着,融合模块将图像特征和文本特征融合在一起,形成对输入的综合理解。最后,语言模型基于融合的信息生成自然语言的响应。
- 特点优势:LLaVA 能够在使用更简单的模型架构和更少的训练数据的同时改进其他开源解决方案,训练速度更快、成本更低,且更适合在消费级硬件上进行推理,比如它只需要 8GB 的 RAM 和 4GB 的可用磁盘空间,甚至可以在 Raspberry PI 上成功运行。
- 应用场景:LLaVA 在图像描述和问答、多模态对话系统、内容创建和管理、辅助教育和培训等领域都有广泛的应用潜力。例如,它可以根据图像生成详细的文字描述,在带有图片的聊天应用中提供智能的对话支持,用于生成基于图像和文本的新闻报道、博客文章等,还可以在教育应用中根据图像生成解释和注释帮助学生理解复杂概念。
5 huggingface是什么,怎么玩开源?
Hugging Face 是一个开源人工智能社区和平台,被誉为 “AI 界的 GitHub”。它成立于 2016 年,专注于自然语言处理,后来逐渐扩展到计算机视觉、语音识别等多个 AI 领域。
Hugging Face 的核心功能和在上面进行开源的玩法如下:
模型中心(Model Hub):Hugging Face 托管着超过 150 万个开源 AI 模型,涵盖自然语言处理、计算机视觉、音频处理等多个领域。用户可以按任务类型、技术框架、语言等维度筛选查找模型。对于找到的模型,不仅能查看介绍,很多还能直接在线测试,甚至查看源代码、部署使用。例如,你可以在模型中心找到 Meta 的 LLaMA、Google 的 T5 等知名模型,也可以找到一些社区开发者针对特定任务微调后的模型。
数据集中心(Dataset Hub):这里汇集了大量用于各种 AI 任务的数据集,超过 33 万个,用户可以根据任务、语言等进行筛选,找到适合自己模型训练的数据。比如你想训练一个文本分类模型,可以在这里找到维基百科、Common Crawl 等文本数据集,也可以找到用于图像分类的数据集等。并且,用户还可以上传自己的数据集分享给社区。
应用空间(Spaces):Spaces 汇集了大量基于 Hugging Face 模型的交互式 AI 应用 Demo。普通用户无需配置环境,点几下就能在线体验各种新奇的 AI 应用,如聊天机器人、图像生成器等。对于开发者来说,很多 Space 也提供源代码,是学习和二次开发的好起点。你可以参考这些示例,结合自己的需求进行修改和扩展,创建属于自己的 AI 应用。
使用开源库:Hugging Face 提供了如 Transformers、Diffusers 等流行的 Python 库。Transformers 库包含了数千个预训练模型,支持文本分类、问答、翻译、文本生成等多种任务,开发者可以使用这些库轻松加载预训练模型,并进行微调、推理等操作。例如,使用AutoTokenizer
和AutoModelForCausalLM
可以快速加载一个语言模型进行文本生成任务。
协作开发:Hugging Face 支持全球开发者共享模型与数据集,就像在 GitHub 上一样,开发者可以对模型和数据集进行版本控制,与其他开发者协作开发。你可以将自己开发的模型或数据集上传到 Hugging Face Hub,也可以 fork 其他开发者的项目进行修改和完善,然后再提交回原项目或创建自己的分支进行独立发展。