当前位置: 首页 > news >正文

Qwen3-Embedding-4B代码实战:用Python快速验证向量生成

Qwen3-Embedding-4B代码实战:用Python快速验证向量生成

1. 环境准备与快速部署

1.1 镜像获取与启动

Qwen3-Embedding-4B镜像已预装在CSDN星图平台,可通过以下步骤快速启动:

  1. 登录CSDN星图控制台
  2. 在镜像广场搜索"Qwen3-Embedding-4B"
  3. 点击"一键部署"按钮
  4. 选择适合的硬件配置(建议至少16GB内存)
  5. 等待部署完成,获取服务访问地址

1.2 验证服务状态

部署完成后,可以通过简单的HTTP请求验证服务是否正常运行:

import requests response = requests.get("http://localhost:30000/v1/models") print(response.json())

正常情况应返回类似以下响应:

{ "object": "list", "data": [ { "id": "Qwen3-Embedding-4B", "object": "model", "created": 1735689600, "owned_by": "csdn" } ] }

2. 基础API调用实战

2.1 安装必要依赖

pip install openai requests

2.2 初始化客户端

使用OpenAI兼容的API接口进行调用:

import openai client = openai.Client( base_url="http://localhost:30000/v1", # 替换为实际部署地址 api_key="EMPTY" # 本地部署无需真实API Key )

2.3 生成文本向量

最简单的文本向量生成示例:

response = client.embeddings.create( model="Qwen3-Embedding-4B", input="自然语言处理是人工智能的重要分支", ) print(f"向量维度: {len(response.data[0].embedding)}") print(f"前5个维度值: {response.data[0].embedding[:5]}")

输出示例:

向量维度: 2560 前5个维度值: [0.0234, -0.0456, 0.1287, -0.0023, 0.0678]

3. 高级功能探索

3.1 自定义向量维度

Qwen3-Embedding-4B支持动态调整输出向量维度(32-2560之间):

response = client.embeddings.create( model="Qwen3-Embedding-4B", input="深度学习模型需要大量数据进行训练", dimensions=512 # 指定输出维度 ) print(f"自定义维度向量长度: {len(response.data[0].embedding)}")

3.2 批量文本处理

高效处理多个文本输入:

texts = [ "机器学习算法可以分为监督学习和无监督学习", "神经网络由多个层次组成,包括输入层、隐藏层和输出层", "Transformer架构在自然语言处理领域取得了巨大成功" ] response = client.embeddings.create( model="Qwen3-Embedding-4B", input=texts ) print(f"生成向量数量: {len(response.data)}") print(f"第一个文本的向量维度: {len(response.data[0].embedding)}")

3.3 多语言支持示例

验证模型的多语言能力:

languages = { "English": "Artificial intelligence is transforming industries", "中文": "人工智能正在改变各行各业", "Español": "La inteligencia artificial está transformando industrias", "日本語": "人工知能は産業を変革しています" } for lang, text in languages.items(): response = client.embeddings.create( model="Qwen3-Embedding-4B", input=text ) print(f"{lang} 向量生成成功,维度: {len(response.data[0].embedding)}")

4. 实际应用案例

4.1 语义相似度计算

from sklearn.metrics.pairwise import cosine_similarity import numpy as np def get_embedding(text): response = client.embeddings.create( model="Qwen3-Embedding-4B", input=text ) return np.array(response.data[0].embedding) text1 = "猫是一种常见的家养宠物" text2 = "猫咪是人类喜爱的伴侣动物" text3 = "电动汽车正在逐步取代传统燃油车" vec1 = get_embedding(text1).reshape(1, -1) vec2 = get_embedding(text2).reshape(1, -1) vec3 = get_embedding(text3).reshape(1, -1) print(f"相似文本相似度: {cosine_similarity(vec1, vec2)[0][0]:.4f}") print(f"不相似文本相似度: {cosine_similarity(vec1, vec3)[0][0]:.4f}")

4.2 简单检索系统实现

from typing import List, Dict import numpy as np class SimpleRetriever: def __init__(self): self.documents = [] self.embeddings = [] def add_document(self, text: str): self.documents.append(text) response = client.embeddings.create( model="Qwen3-Embedding-4B", input=text ) self.embeddings.append(np.array(response.data[0].embedding)) def search(self, query: str, top_k: int = 3) -> List[Dict]: response = client.embeddings.create( model="Qwen3-Embedding-4B", input=query ) query_vec = np.array(response.data[0].embedding) similarities = [ cosine_similarity(query_vec.reshape(1, -1), vec.reshape(1, -1))[0][0] for vec in self.embeddings ] sorted_indices = np.argsort(similarities)[::-1][:top_k] return [ {"text": self.documents[i], "score": float(similarities[i])} for i in sorted_indices ] # 使用示例 retriever = SimpleRetriever() retriever.add_document("Python是一种流行的编程语言") retriever.add_document("Java在企业级开发中广泛应用") retriever.add_document("机器学习算法需要Python实现") results = retriever.search("编程语言") for result in results: print(f"相似度: {result['score']:.4f} - 文本: {result['text']}")

5. 性能优化与最佳实践

5.1 批量处理提升效率

def batch_embed(texts: List[str], batch_size: int = 32) -> List[np.ndarray]: embeddings = [] for i in range(0, len(texts), batch_size): batch = texts[i:i+batch_size] response = client.embeddings.create( model="Qwen3-Embedding-4B", input=batch ) embeddings.extend([np.array(item.embedding) for item in response.data]) return embeddings # 示例:处理100个文本 sample_texts = [f"这是第{i}个测试文本" for i in range(100)] embeddings = batch_embed(sample_texts) print(f"成功生成{len(embeddings)}个向量")

5.2 错误处理与重试机制

from tenacity import retry, stop_after_attempt, wait_exponential import openai @retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10)) def safe_embedding(text: str): try: response = client.embeddings.create( model="Qwen3-Embedding-4B", input=text ) return response.data[0].embedding except openai.APIError as e: print(f"API错误: {e}") raise except Exception as e: print(f"未知错误: {e}") raise # 使用示例 try: embedding = safe_embedding("这是一个需要稳定处理的文本") print(f"向量长度: {len(embedding)}") except Exception as e: print(f"处理失败: {e}")

6. 总结

通过本文的实践演示,我们验证了Qwen3-Embedding-4B向量生成模型的强大能力:

  1. 易用性:兼容OpenAI API标准,只需几行代码即可生成高质量文本向量
  2. 灵活性:支持自定义向量维度(32-2560),适应不同应用场景需求
  3. 多语言:对中英文等多种语言表现出色,跨语言语义理解能力强
  4. 高性能:即使处理长文本也能保持高效,适合构建各类语义搜索系统

实际应用中,建议:

  • 对于大批量文本处理,使用批量接口提升效率
  • 根据应用场景选择合适的向量维度,平衡精度和存储成本
  • 结合余弦相似度等度量方法,构建语义搜索、推荐系统等应用

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

http://www.jsqmd.com/news/548361/

相关文章:

  • 收藏!小白程序员必备:从零入门大模型,抢占职场新风口(含学习资源包)
  • SillyTavern角色系统全面解析:打造个性化AI交互体验
  • 百考通:AI赋能让学术研究起步更高效
  • 别再空谈概念了!用ESP32和TensorFlow Lite,手把手教你做个能“思考”的智能垃圾桶(附完整代码)
  • MATLAB六自由度齿轮弯扭耦合动力学代码:含时变啮合刚度、齿侧间隙的振动分析与数值计算
  • FindSomething浏览器插件:3步实现网页敏感信息自动检测
  • mPLUG-Owl3-2B多模态交互工具效果展示:高精度图像理解+自然语言问答真实案例
  • SDMatte在智能硬件配套:嵌入式设备端Web服务裁剪、ARM64交叉编译与内存精简
  • SourceTree克隆失败:如何快速解决无效源路径/URL问题
  • claude code 使用
  • 自动控制原理胡寿松第七版课后习题答案详解完整版
  • 告别OOM!在若依后台用ExportUtil分页导出百万数据到Excel的实战配置
  • GIL-Free Python并发仅剩最后1%难题:我们用37小时逆向分析PyO3内存模型,找到共享引用计数的终极解法
  • OpenClaw+GLM-4.7-Flash:个人自动化助手从零搭建指南
  • 快速体验PyTorch:Universal-Dev-v1.0镜像开箱即用全流程解析
  • Global Mapper转换DSM的投影坐标系
  • 华硕笔记本色彩配置文件一键恢复:G-Helper完整解决方案指南
  • FastAPI 2.0异步流式响应全链路解析:从SSE到Server-Sent Events+Chunked Transfer,如何零延迟推送大模型输出?
  • SEER‘S EYE赋能内容安全审核:Transformer架构的文本风险识别
  • MapReduce 分析
  • 【STM32入门踩坑记录】0、问题汇总(持续更新)
  • 大模型实战 07 额外篇] 从 ReAct 到 Workflow:基于云端 API 构建事件驱动的智能体
  • LFM2.5-1.2B-Thinking-GGUF环境配置避坑指南:解决Python依赖冲突与CUDA版本问题
  • 读2025世界前沿技术发展报告25机载系统
  • 靠谱GEO解决方案企业:优质合作参考
  • Zotero-GPT:AI赋能的文献研究革命性工具
  • 开源工具WaveTools性能优化指南:3大场景+7个技巧提升游戏体验
  • 收藏必备!小白程序员快速入门大模型:核心框架与实战教程免费领取
  • AI小白/程序员必备:收藏这份大模型Agent落地实战指南,从零到企业级系统全解析!
  • FaceRecon-3D在汽车行业的应用:3D驾驶员监控系统