Vibe Coding
近期,一个名为 “Vibe Coding”(氛围编程)的概念迅速升温,引发了广泛讨论。它不仅仅是一个时髦术语,更可能预示着软件开发方式的一次深刻变革。
一、 Vibe Coding 的起源“Vibe Coding” 这一术语由 OpenAI 的联合创始人、前特斯拉 AI 负责人 Andrej Karpathy 于 2025 年 2 月首次提出。其核心理念在于:开发者不再需要逐行编写底层代码,而是通过自然语言向 AI(特别是大型语言模型 LLM)描述需求、意图或期望达成的“氛围”(Vibe),由 AI 负责生成相应的代码实现。Karpathy作为AI领域的知名专家,他提出的这一概念迅速引起了开发者社区的广泛关注。Vibe Coding这一术语本身传达了一种”氛围”或”感觉”,象征着一种更加自由、直观的编程方式,开发者可以完全专注于创意和概念,而不必被繁琐的编码细节所困扰。
这标志着一种从指令式编程(告诉计算机“如何做”)向意图驱动编程(告诉计算机“做什么”)的转变。开发者将更多精力聚焦于问题的定义、需求的阐述和最终结果的验证,而非陷入繁琐的语法细节和实现逻辑。
值得注意的是,Vibe C ...
Xinference、Ollama 和 vLLM 比较
以下是 Xinference、Ollama 和 vLLM 三个大模型推理框架的全面对比分析,涵盖功能特性、性能表现、适用场景等核心维度:
一、核心特性对比
特性
Xinference
Ollama
vLLM
开源协议
Apache 2.0
MIT
Apache 2.0
核心定位
企业级多模态推理服务
本地化轻量级LLM运行工具
高吞吐LLM推理框架
模型支持
LLaMA、ChatGLM、Stable Diffusion等
LLaMA、Mistral等GGUF格式模型
HuggingFace格式模型
多模态支持
✅ 文本/图像/语音
❌ 仅文本
❌ 仅文本
分布式部署
✅ 多节点多GPU
❌ 单机
✅ 单机多GPU
量化支持
✅ 4bit/8bit
✅ GGUF量化
✅ AWQ/GPTQ
API接口
✅ RESTful/gRPC
✅ 简单HTTP接口
✅ RESTful
模型管理
✅ 版本控制/缓存
❌ 仅本地文件
❌ 需外部管理
Web UI
✅ 内置管理界面
✅ 第三方工具集成
❌ ...
使用Xinference部署本地大模型
大模型本地化部署已成为企业私有化AI应用的关键需求。本文将基于Xinference(由理才网开源的模型服务框架),结合Docker技术实现本地大模型的快速部署与问答接口开发,支持LLaMA、ChatGLM等主流模型。
一、技术选型对比Xinference核心优势
多模态支持:同时支持文本、图像、语音模型
分布式部署:可横向扩展多GPU/多节点
模型管理:内置模型缓存与版本控制
RESTful API:开箱即用的标准化接口
二、环境准备硬件要求
NVIDIA显卡(RTX 3080+/显存≥16GB)
磁盘空间:建议预留50GB+(模型存储)
软件依赖1234# 验证环境docker --version # 需≥20.10nvidia-smi # 确认驱动正常docker run --rm --gpus all ubuntu nvidia-smi # 验证Docker GPU支持
三、构建定制化Docker镜像1. Dockerfile配置123456789101112131415161718 ...
使用vLLM部署本地大模型
随着大语言模型(LLM)的普及,如何在本地高效部署和调用模型成为开发者关注的重点。本文将通过Docker容器化技术结合vLLM高性能推理框架,实现本地大模型的快速部署和API服务搭建。
一、技术选型
vLLM
由伯克利大学开发的高吞吐推理框架
支持HuggingFace模型格式
基于PagedAttention的显存优化技术
Docker
实现环境隔离与依赖管理
方便模型服务的部署与迁移
支持GPU加速
二、环境准备前置条件
NVIDIA显卡(建议RTX 3090+/显存≥24GB)
Docker 20.10+
NVIDIA Container Toolkit
CUDA 11.8+
1234# 验证Docker安装docker --version# 确认NVIDIA支持docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi
三、构建Docker镜像1. 创建Dockerfile12345678910111213141516171819FROM nvidia/c ...
llama.cpp 编译使用
llama.cpp 是一个基于 llama 模型 (https://github.com/ggerganov/llama.cpp) 的 C++ 库,用于在 C++ 程序中运行 LLaMA(Large Language Model Meta AI)模型。
安装必要组件/工具
1apt install cmake
编译安装llama.cpp
1234567891011git clone https://github.com/ggerganov/llama.cpp.gitcd llama.cpp# 常规模式构建 llama.cppcmake -B buildcmake --build build --config Release# 使用 Nvidia GPUapt install nvidia-cuda-toolkit -ycmake -B build -DGGML_CUDA=ONcmake --build build --config Release
安装python组件
123pip install sentencepiece# 在llama.cpp目录pip instal ...
使用ollama部署本地大模型(启用GPU)
上一篇文章使用Ollama部署了本地大模型,不过那时还没有利用本地的GPU资源。如果需要启用GPU,还需要首先安装nvidia-container-toolkit。
12345678curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \ | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpgcurl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \ | sudo tee /etc/apt/sources.list.d/nv ...
使用ollama部署本地大模型
Ollama是一个强大的工具,它允许用户在本地环境中运行和定制大型语言模型。而通过Docker技术,可以简化Ollama的安装和部署过程,使得在本地运行如Llama 3这样的开源大型语言模型变得简单快捷。
硬件配置要求由于大模型对硬件配置要求较高,建议使用配置更高的设备,本次测试暂时选用阿里云节点:
CPU:阿里云8vCPU
内存:16GB
显卡:无(使用CPU跑模型)
Docker安装OllamaOllama支持通过Docker安装,这极大地简化了服务器端的部署过程。以下是使用docker compose工具运行Ollama的步骤:
创建 docker-compose.yaml 文件,内容如下:
12345678910version: '3'services: ollama: image: ollama/ollama:0.4.4 container_name: ollama ports: - "11434:11434" volumes: - ./data:/root ...
从Huggingface和魔搭下载大模型
1、从Huggingface下载安装工具包
1pip install huggingface_hub
设置镜像站点
1export HF_ENDPOINT="https://hf-mirror.com"
开始下载
12345huggingface-cli download \ --repo-type model \ --local-dir ./Llama-3.2-3B-Chinese \ spxiong/Llama-3.2-3B-Chinese-Instruct
2、从魔搭下载12pip install modelscopepython3 -c "from modelscope import snapshot_download;snapshot_download('Qwen/Qwen2.5-3B-Instruct', cache_dir='./models/')"
python 小技巧整理
1、(:=)的使用Python 3.8 中引入,正式名称为赋值表达式,是一种将赋值与表达式相结合的新语法。
123456789101112131415161718# 收集用户输入,直到输入空行lines = []while (line := input("Enter something (leave blank to quit): ")) != "": lines.append(line) # 筛选生成随机数numbers = [n for _ in range(10) if (n := random.randint(1, 100)) > 50]print(numbers)# 赋值与if判断合成一行a = [1, 2, 3]if (n := len(a)) > 2: print(f"The list is long enough ({n} elements).") # 过滤并打印列表中的长单词words = ['apple', 'b ...
python 小技巧整理
1、下划线(_)的作用
python解析器最后一个表达式的值
一个可以忽略的中间变量,filename, _ = 'example.txt'.split('.')
格式化一个比较大的数据,amount = 1_000_000
2、zip用法12345678910111213ids = [1, 2, 3]names = ['Alice', 'Bob', 'Cathy']grades = ['A', 'B', 'A+']zipped = zip(ids, names, grades)students = list(zipped) # [(1, 'Alice', 'A'), (2, 'Bob', 'B'), (3, 'Cathy', 'A+')]unzipped = list(zip(*students))keys = ...