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

潍坊高密网站建设即墨网站设计

潍坊高密网站建设,即墨网站设计,网络舆情监测软件,成品在线网站免费入口欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144881432 大模型的 HTTP 服务,通过网络接口,提供 AI 模型功能的服务,允许通过发送 HTTP 请求,交互…

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/144881432


vLLM

大模型的 HTTP 服务,通过网络接口,提供 AI 模型功能的服务,允许通过发送 HTTP 请求,交互大模型,通常基于云计算架构,无需在本地部署复杂的模型和硬件,就能够访问和使用。通过简单的 API 调用,执行各种任务,从而在各种应用中实现智能化,不仅提高模型的可访问性,还降低技术门槛。

参考:

  1. 使用 LLaMA-Factory 微调大模型 环境配置与训练推理
  2. 使用 LLaMA-Factory 微调 Qwen2-VL SFT(LoRA) 图像数据集
  3. 使用 LLaMA-Factory 微调 Qwen2-VL DPO(LoRA) 图像数据集

LLaMA-Factory 版本:v0.9.1

1. 准备服务

已准备的大模型位置:

[your path]/huggingface/Qwen/Qwen2-VL-7B-Instruct/

同时选择与模型,相匹配的模版(template),例如 模型 Qwen2-VL-7B-Instruct 和 模版 qwen2_vl 匹配。

启动 HTTP 服务,端口自定义8000,推理后端(infer_backend) 使用 huggingface,即:

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 python src/api.py \
--model_name_or_path [your path]/huggingface/Qwen/Qwen2-VL-7B-Instruct/ \
--template qwen2_vl \
--infer_backend huggingface

或者 推理后端(infer_backend) 使用 vllm,即:

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 python src/api.py \
--model_name_or_path [your path]/huggingface/Qwen/Qwen2-VL-7B-Instruct/ \
--template qwen2_vl \
--infer_backend vllm \
--vllm_enforce_eage

安装 vllm 库:

# To fix: pip install vllm>=0.4.3,<0.6.5
pip install vllm==0.6.4

服务运行成功日志:

Visit http://localhost:8000/docs for API document.
INFO:     Started server process [1118972]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO:     10.4.12.94:63908 - "POST /v1/chat/multimodal HTTP/1.1" 404 Not Found
INFO:     10.4.12.94:63942 - "GET /docs HTTP/1.1" 200 OK
INFO:     10.4.12.94:63942 - "GET /openapi.json HTTP/1.1" 200 OK
INFO:     10.4.12.94:63978 - "GET /openapi.json HTTP/1.1" 200 OK

2. 调用服务

使用 CURL 访问 HTTP 服务,传入图像地址,即:

curl -X POST 'http://[your ip]:8000/v1/chat/completions' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"model":"Qwen2-VL-7B-Instruct","messages":[{"role":"user","content":[{"type":"text","text":"<image>请帮我描述一下图像的内容。"},{"type":"image_url","image_url":{"url":"[your path]/llm/vision_test_data/image2.png"}}]}]}'

输入的 Json 格式:

{"model": "Qwen2-VL-7B-Instruct","messages": [{"role": "user","content": [{"type": "text","text": "<image>请帮我描述一下图像的内容。"}, {"type": "image_url","image_url": {"url": "[your path]/llm/vision_test_data/image2.png"}}]}]
}

HTTP 服务返回的 Json 答案:

{"id": "chatcmpl-6e42da18fad542609711a8536e46a1fd","object": "chat.completion","created": 1735785603,"model": "Qwen2-VL-7B-Instruct","choices": [{"index": 0,"message": {"role": "assistant","content": "图像中,一个人正躺在一张床上,床单上有一个粉红色的格子图案和一个可爱的卡通人物。他们穿着白色的袜子,腿上放着一把电吉他。旁边有一个蓝色的卡通玩偶,看起来像是哆啦A梦。背景中可以看到一些模糊的家具和装饰品。","tool_calls": null},"finish_reason": "stop"}],"usage": {"prompt_tokens": 366,"completion_tokens": 66,"total_tokens": 432}
}

服务输入格式,与OpenAI一致,参考:https://platform.openai.com/docs/guides/vision

服务调用日志:

[INFO|2025-01-02 10:39:59] llamafactory.api.chat:157 >> ==== request ====
{"model": "Qwen2-VL-7B-Instruct","messages": [{"role": "user","content": [{"type": "text","text": "<image>请帮我描述一下图像的内容。"},{"type": "image_url","image_url": {"url": "[your path]/llm/vision_test_data/image2.png"}}]}]
}
INFO:     10.4.12.94:64885 - "POST /v1/chat/completions HTTP/1.1" 200 OK

使用 Python 源码的调用 API 模型服务的方式:

import requestsclass xTATVision(object):"""调用服务器接口"""def __init__(self, base_url='http://[your ip]:8000'):self.base_url = base_urldef create(self, model, messages, max_tokens=None):# 构建请求的 URLurl = f"{self.base_url}/v1/chat/completions"# 构建请求的 headers 和 dataheaders = {'accept': 'application/json','Content-Type': 'application/json'}data = {"model": model,"messages": messages}if max_tokens is not None:data["max_tokens"] = max_tokens# 发送 POST 请求response = requests.post(url, headers=headers, json=data)# 检查响应状态码if response.status_code == 200:# 返回 JSON 响应内容return response.json()else:# 打印错误信息并返回 Noneprint(f"请求失败,状态码:{response.status_code}")return None# 使用示例
if __name__ == "__main__":client = xTATVision()response = client.create(model="Qwen2-VL-7B-Instruct",messages=[{"role": "user","content": [{"type": "text", "text": "请帮我描述一下图像的内容。"},{"type": "image_url","image_url": {"url": "[your path]/llm/vision_test_data/image2.png",},},],}],max_tokens=300,)# 打印响应内容if response:print(response)

遇到 Bug,len(images) is less than the number of <image> tokens.,即标签 <image> 与图像数量不匹配。

原因:图像数量与标签数量不匹配,即图像传输方式错误,参考 OpenAI 的 Image HTTP 格式,即:

messages=[{"role": "user","content": [{"type": "text", "text": "What's in this image?"},{"type": "image_url","image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",},},],}
],

遇到警告(WARNING):Current vllm-flash-attn has a bug inside vision module, so we use xformers backend instead. You can run pip install flash-attn to use flash-attention backend.

原因:需要重新安装 flash-attn 库,参考 配置 FlashAttention 。

警告:

WARNING 12-31 17:18:51 utils.py:603] Current `vllm-flash-attn` has a bug inside vision module, so we use xformers backend instead. You can run `pip install flash-attn` to use flash-attention backend.
http://www.yayakq.cn/news/431031/

相关文章:

  • 做网站的有哪些公司福州市市政建设开发有限公司网站
  • 普洱市住房和城乡建设局网站做网商必备网站
  • 网站开发实训基本要求做灯具网站推广哪家好
  • 做家乡网站代码最新采购求购信息网站
  • 山东省住房城乡建设厅门户网站商城网站开发费用一般是多少
  • 服务器什么建网站怎么用阿里的域名 做网站
  • 网站seo优化网站设计制作上海公司
  • 域名会影响网站排名吗网站添加搜索关键字
  • 网站字体效果设计网站公司湖南岚鸿设计
  • 广州建设网站哪家好体育局网站建设
  • 网站建站的职位网站建设及运营
  • 做瑷网站网站建设平台的分析
  • 苏州网站建设创意wordpress机械模板下载
  • 开源门户网站cms工作室网站免费建设
  • 盘锦网站建设vhkeji如何做淘宝返利网站
  • 网页游戏网站那个好wordpress 添加语言
  • 炫酷手机网站模板驾校报名网站怎么做
  • 网站内容规划怎么写桂林漓江景区
  • 温州网站建设前十公司3seo
  • 宜兴做网站多少钱太阳能 技术支持 东莞网站建设
  • html5 特效网站rtt全民互助平台网站开发
  • 同一网站能否同时运行php和aspwordpress头像无法缓存
  • 黑色背景的网站开发工具营销型网站建设主要教学内容
  • 东莞全网推广seo推广计划
  • 朔州做网站公司泊头市建设网站
  • 公司门户网站的设计与实现国外画册设计网站
  • 做的网站如何防止怕爬虫西安学校网站建设多少钱
  • 商务网站建设与维护 课件成都锦江区网站建设公司
  • 浙江注册公司网站怎么查公司网站有没有被收录
  • 上海高端点网站建设制作公司有哪些?|网站建设部队内网网站建设方案