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

销售网站的技巧镇江网友之家手机版

销售网站的技巧,镇江网友之家手机版,有关网站开发的书籍,建设网站花都文章目录 背景介绍第三方大模型API 介绍LLamafactory 部署API大模型 API 调用工具类项目开源 背景介绍 第三方大模型API 目前#xff0c;市面上有许多第三方大模型 API 服务提供商#xff0c;通过 API 接口向用户提供多样化的服务。这些平台不仅能提供更多类别和类型的模型… 文章目录 背景介绍第三方大模型API 介绍LLamafactory 部署API大模型 API 调用工具类项目开源 背景介绍 第三方大模型API 目前市面上有许多第三方大模型 API 服务提供商通过 API 接口向用户提供多样化的服务。这些平台不仅能提供更多类别和类型的模型选择还因其用户规模较大能够以更低的成本从原厂获得服务再将其转售给用户。此外这些服务商还支持一些海外 API 服务例如 ChatGPT 等为用户提供了更加广泛的选择。 https://www.gptapi.us/register?aff9xEy 比如上述网站以 API 接口的形式对外提供的服务比官方的 API 要便宜。 装包 pip install langchain langchain_openai运行下述代码完成上述网站的注册后并填上述网站的 api_key 便可通过 python API 调用就会收到 gpt-4o-mini 大模型的响应。 from langchain_openai import ChatOpenAIllm ChatOpenAI(modelgpt-4o-mini, base_urlhttps://www.gptapi.us/v1/,api_keysk-xxx, # 在这里填入你的密钥) res llm.invoke(你是谁请你简要做一下自我介绍) print(res)介绍 在部署垂直领域模型时我们通常会对开源大模型进行微调并获得相应的 LoRA 权重。在接下来的部分我将介绍如何使用 LLamafactory 将微调后的 LoRA 模型部署为 API 服务。 在 Python 中调用 API 服务时如果采用同步方式进行请求往往会导致请求速度较慢。因为同步方式需要在接收到上一条请求的响应后才能发起下一条请求。 为了解决这一问题我将为大家介绍如何通过异步请求的方式在短时间内发送大量请求从而提升 API 调用效率。 LLamafactory 部署API 关于 LLamafactory 的下载与微调模型点击查看我的这篇博客Qwen2.5-7B-Instruct 模型微调与vllm部署详细流程实战.https://blog.csdn.net/sjxgghg/article/details/144016723 vllm_api.yaml 的文件内容如下 model_name_or_path: qwen/Qwen2.5-7B-Instruct adapter_name_or_path: ../saves/qwen2.5-7B/ner_epoch5/ template: qwen finetuning_type: lora infer_backend: vllm vllm_enforce_eager: true# llamafactory-cli chat lora_vllm.yaml # llamafactory-cli webchat lora_vllm.yaml # API_PORT8000 llamafactory-cli api lora_vllm.yaml使用下述命令便可把大模型以 API 部署的方式部署到8000端口 API_PORT8000 llamafactory-cli api vllm_api.yamlLangChain 的 invoke 方法是常用的调用方式但该方法并不支持异步操作。如果读者想了解同步与异步在速度上的差距可以自行尝试使用一个 for 循环调用 invoke 方法并对比其性能表现。 import os from langchain_openai import ChatOpenAI client ChatOpenAI(modelgpt-3.5-turbo, api_key{}.format(os.environ.get(API_KEY, 0)),base_urlhttp://localhost:{}/v1.format(os.environ.get(API_PORT, 8000)), )res llm.invoke(你是谁请你简要做一下自我介绍) print(res)在项目文件夹下新建一个 .env 文件 其中 API_KEY 的值便是API接口调用的 API_KEY。 API_KEYsk-12345678LLamafactory 通过API部署的大模型地址是: http://localhost:8000/v1 API_KEY 是.env 文件中 API_KEYsk-12345678 大模型 API 调用工具类 使用异步协程加快 API 的调用速度可以参考我们前面的这篇文章大模型 API 异步调用优化高效并发与令牌池设计实践.https://blog.csdn.net/sjxgghg/article/details/143858730 我们在前面一篇文章的基础上对异步类再封装了一下。 装包 pip install langchain tqdm aiolimiter python-dotenvimport os import random import asyncio import pandas as pd from tqdm import tqdm from typing import List from dataclasses import dataclass, field from aiolimiter import AsyncLimiter from langchain_openai import ChatOpenAI from dotenv import load_dotenvload_dotenv()def generate_arithmetic_expression(num: int):生成数学计算的公式和结果# 定义操作符和数字范围除法operators [, -, *]expression (f{random.randint(1, 100)} {random.choice(operators)} {random.randint(1, 100)})num - 1for _ in range(num):expression f{expression} {random.choice(operators)} {random.randint(1, 100)}result eval(expression)expression expression.replace(*, x)return expression, resultdataclass class AsyncLLMAPI:大模型API的调用类base_url: strapi_key: str # 每个API的key不一样uid: int 0cnt: int 0 # 统计每个API被调用了多少次model: str gpt-3.5-turbollm: ChatOpenAI field(initFalse) # 自动创建的对象不需要用户传入num_per_second: int 6 # 限速每秒调用6次def __post_init__(self):# 初始化 llm 对象self.llm self.create_llm()# 创建限速器每秒最多发出 5 个请求self.limiter AsyncLimiter(self.num_per_second, 1)def create_llm(self):# 创建 llm 对象return ChatOpenAI(modelself.model,base_urlself.base_url,api_keyself.api_key,)async def __call__(self, text):# 异步协程 限速self.cnt 1async with self.limiter:return await self.llm.agenerate([text])staticmethodasync def _run_task_with_progress(task, pbar):包装任务以更新进度条result await taskpbar.update(1)return resultstaticmethoddef async_run(llms: List[AsyncLLMAPI],data: List[str],keyword: str , # 文件导出名output_dir: str output,chunk_size500,):async def _func(llms, data):异步请求处理一小块数据results [llms[i % len(llms)](text) for i, text in enumerate(data)]with tqdm(totallen(results)) as pbar:results await asyncio.gather(*[AsyncLLMAPI._run_task_with_progress(task, pbar)for task in results])return resultsidx 0all_df []while idx len(data):file f{idx}_{keyword}.csvfile_dir os.path.join(output_dir, file)if os.path.exists(file_dir):print(f{file_dir} already exist! Just skip.)tmp_df pd.read_csv(file_dir)else:tmp_data data[idx : idx chunk_size]loop asyncio.get_event_loop()tmp_result loop.run_until_complete(_func(llmsllms, datatmp_data))tmp_result [item.generations[0][0].text for item in tmp_result]tmp_df pd.DataFrame({infer: tmp_result})# 如果文件夹不存在则创建if not os.path.exists(tmp_folder : os.path.dirname(file_dir)):os.makedirs(tmp_folder)tmp_df.to_csv(file_dir, indexFalse)all_df.append(tmp_df)idx chunk_sizeall_df pd.concat(all_df)all_df.to_csv(os.path.join(output_dir, fall_{keyword}.csv), indexFalse)return all_dfif __name__ __main__:# 生成 数学计算数据集texts []labels []for _ in range(1000):text, label generate_arithmetic_expression(2)texts.append(text)labels.append(label)llm AsyncLLMAPI(base_urlhttp://localhost:{}/v1.format(os.environ.get(API_PORT, 8000)),api_key{}.format(os.environ.get(API_KEY, 0)),)AsyncLLMAPI.async_run([llm], texts, keyword数学计算, output_diroutput, chunk_size500) 使用异步类在短时间内向对方服务器发送大量的请求可能会导致服务器拒绝响应。 由于使用了异步的请求则必须在所有的请求都完成后才能拿到结果。为了避免程序中途崩溃导致前面的请求的数据丢失故 使用 chunk_size 对请求的数据进行切分每完成一块数据的请求则把该块数据保存到csv文件中。 本文使用 generate_arithmetic_expression 生成1000条数学计算式调用大模型 API 完成计算。 运行效果如下 原始的 1000 条数据设置chunk_size为500故拆分为2块500条分批进行处理。 为了避免程序崩垮分批进行异步推理若程序崩溃了可重新运行程序会从上一次崩溃的点重新运行。要保证数据集输入的一致 最终的输出文件是 all_数学计算.csv 它是所有分快csv文件的汇总。 项目开源 https://github.com/JieShenAI/csdn/tree/main/24/11/async_llm_api vllm_api.yaml 是 llamafactory 的API部署的配置core.py 是主要代码
http://www.tj-hxxt.cn/news/141245.html

相关文章:

  • 纪检监察工作 网站建设抖音代运营合同范标准版
  • 做服装外单的网站有哪些网站logo代码
  • 珠海门户网站建设山东莱芜金点子信息港
  • 做暧暧视频免费视频中国网站上海网站建设seo1888
  • 自学摄影教程的网站有哪些中国建设银行个人登录
  • 郑州网站建设公司如何公众号开发专业
  • 建立一个网站的流程wordpress图片变小了
  • 怎么做页眉网络优化工程师是干什么的
  • 北京做网站推广多少钱网页制作背景颜色
  • 怎么自己做微网站吗网页设计html代码大全空格
  • 建站专业定制炫酷wordpress主题
  • 网站收录怎么删外贸网站建设价格怎么样
  • 万宁网站建设公司wordpress ping服务列表
  • html5自建网站小程序制作二维码
  • 南宁网站建设索王道下拉wordpress系列教程
  • 国内flask做的网站小程序商城代运营
  • 网站优化新闻kangle搭建wordpress
  • 网站访客代码js多站点cms
  • 网站免费做招生宣传语玉器珠宝做网站
  • 用瀑布流做的美食网站课程网站建设技术
  • 公司做的网站列入什么科目代理游戏
  • 在印度做视频网站阿里云建网站流程
  • 网站首页排名下降域名批量注册查询
  • 重庆网站建设夹夹虫公司.很好开发一款手机app软件需要多少钱
  • 移动终端网站建设新品发布会宣传文案
  • 东莞企业建站程序网站开发与管理心得体会
  • 网站制作台州黄岛建设厅官方网站
  • 网站建设运营执行方案河南网站建设推广运营
  • 网站建设报告书总结wordpress 主题翻译
  • 做微网站必须要有公众号吗软件商城免费下载app