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

提供网站制作公司报价可以免费开发app的软件

提供网站制作公司报价,可以免费开发app的软件,外链工具xg,网站开发 硬件环境文章目录 痛点项目缘起技术选型fine-tuningfew shot prompt engineering选定方案的特征描述 模型赛马gpt4all调优部署时踩坑python3.9 header缺失 -- 安装下缺失的就行运行时参数调优 代码分析项目代码库代码 效果展示例子1例子2 附录#xff1a;所用的公司内部API文档例子所用的公司内部API文档例子 痛点 不太熟悉互联网企业的人士往往将其想象成超现代风格的内部流程一切都自动化达到科幻电影的程度但是真实在行业中摸爬滚打过几年的人士会体会到流程自动化是一个过程现实中由于工期紧张、历史习惯、实施成本等因素流程中保留了大量手工操作。 以Shopee的DoDDev on duty值班流程为例子系统微服务的设计风格每个开发组负责维护其中一个模块可能用户感知到的一个页面可能对应很多后台模块背后是多个开发组。作为一个跨国公司Shopee的业务分散在很多个国家不是每个国家的运营人员对这种分工都非常熟悉往往first call会搞错虽然我们规定了first call的组负责转发支持请求但是这样往往耽误时间特别是深夜值班得把人从睡梦中叫醒后发现又不是该人负责又或是大促期间的值班这样的转发也耗费时间耽误一分钟就损失XXXXXX元钱。 项目缘起 为了解决这个问题之前我们靠人工的办法编写了一个长达200页的ppt详细介绍了DoD的流程和分工。但是问题是这套ppt要讲解也是要成本的而且效果不好特别是还要涉及跨境的团队还有翻译、培训组织等一堆的事情。 今年随着chatgpt的流行我们开始考虑使用人工智能的方式回答一线员工发现问题的first call减轻ppt培训成本减少失误率且能够自动进行语言的翻译。也就是如下几种能力最终自动找到对应的负责团队 跨语言能力模糊语义理解能力推理能力 考虑到企业信息安全根据Shopee的指引这套系统必须部署在企业内部。 技术选型 要实现如上系统考虑有两套技术方案 fine-tuning 用白话说是在chatgpt等巨人的肩膀上采用标准模型加上自己数据自己炼丹。 大模型训练结束后参数固定模型内部蕴含的知识也固定。想要让模型增加知识可以通过微调改变模型参数实现。 微调是以预训练LLM为基底预训练模型是在大量通用数据集上训练微调则是在少量特定领域数据集上训练通过较低的成本获取特定领域的知识。 具体微调流程为构建微调数据集 → SFT(supervised fine tuning,有监督微调) → RLHFreinforcement learning human feedback 该方案优点是模型对领域知识理解更正确效果更好缺点是需要开源模型需要收集数据并进行加工微调大模型也需要较高的显卡成本总体来说成本较高且微调后模型推理效果不能保证。 few shot prompt engineering 用白话说就是直接chatgpt等LLM本身但是其缺乏企业内部知识比如那个200页的ppt怎么办呢就是采用langchain等编程手段在对话上下文中提供信息。 在openAI的gpt-2论文中就定义LLM本质上few-shot/zero-shot learning具备很强的泛化能力。 只需要在提示词prompt中清楚地阐明上下文即使训练集中不包含相关知识模型也能对上下文正确理解和分析。 具体流程为: 构建外部知识库 → 相关知识匹配 → few shot prompt构建 → LLM推理 该方案优点是不需要训练拓展性强可使用现有大模型产品如chatgpt、new bing等缺点是LLM对外部知识理解较差构建知识库需要一定成本等。 两个方案各有优缺点不过方案一更费钱那时的Shopee节约成本是压倒一切的纲领所以经过技术评审毫无悬念采用了方案二。所以如果有新人问我啥是技术选型我看要提醒一下他/她别被这个名字给骗了很多时候决定选型的是技术之外的因素。 选定方案的特征描述 LLM是无状态的这个一个模型文件大概10G不到可以只读入container。理论上虽然消耗cpu业务高峰期可以横向扩展container保证响应时间。 基本上是一个后端应用采用python或者golang搭建使用库文件的方式在本地调用大语言模型LLM开放http接口的api给调用方使用 新建应用代码提交到gitlab采用CICD进行部署 模型赛马 方案二确定下来之后到底该用哪个LLM呢这里才到了真正技术发挥决策作用的地方我们成立了一个小组招募了对AI和LLM有兴趣的同事每个人带着自己看好的LLM分配给每个人计算资源最后用数据说话看哪个LLM的性能更好消耗更少 各自分头选定模型(gpt4all, chatGLM, FLAN T-5, Alpaca)然后用数据集合测试看看实际性能 姓名模型特点资料zezhouchatgpt2(后来发现不行)gpt4all offlinefree, local run, No GPU requiredhttps://gpt4all.io/index.html https://github.com/nomic-ai/gpt4alljinhaochatGLMhttps://github.com/imClumsyPanda/langchain-ChatGLM/blob/master/docs/INSTALL.mdzouxuan YapFLAN T-5https://medium.com/koki_noda/try-language-models-with-python-google-ais-flan-t5-ba72318d3be6Yunyuan YuAlpacahttps://beebom.com/how-run-chatgpt-like-language-model-pc-offline/最后经过比较决定采用gpt4all gpt4all调优 这部分会比较技术细节一些涉及部署时的踩坑和运行时调优。如果产品的同事要只看效果可以直接跳到最后一部分。 部署时踩坑 最早用chatgpt2的时候发现始终安装不了所以最终才决定用gpt4all。其原因是python版本问题 chatgpt-2是n年前的项目所以用的tensorflow都是老版本的1.15而我现在机器上是3.11了只能安装最新的tensorflow结果报错 所以python环境很重要各位实验时可以用pyenv在自己mac机器上安装好py2到py3的各个版本 python3.9 header缺失 – 安装下缺失的就行 如下信息最关键的是Python.h No Such file Running setup.py install for regex … error ERROR: Command errored out with exit status 1: command: /data/venv-gpt-2/bin/python3 -u -c ‘import sys, setuptools, tokenize; sys.argv[0] ‘’’/tmp/pip-install-yz_lezij/regex/setup.py’“”‘; file’“”‘/tmp/pip-install-yz_lezij/regex/setup.py’“”‘;fgetattr(tokenize, ‘’“‘open’”’“‘, open)(file);codef.read().replace(’”‘’\r\n’“”‘, ‘’’\n’“”‘);f.close();exec(compile(code, file, ‘’“‘exec’”’‘))’ install --record /tmp/pip-record-inx4miu7/install-record.txt --single-version-externally-managed --compile --install-headers /data/venv-gpt-2/include/site/python3.9/regex 后来搜索stackoverflow也可以问chatgpt安装好缺失的部分就行 运行时参数调优 普通4核服务器上运行很慢只能每次回答单个人问题还要等个20秒。于是参考gpt4all官方文档从如下方面入手调整 CPU核数加大实测16核情况下可以在5秒内出答案基本符合了应用需求限制回答长度我们的需求简单只要回答团队名称就可以减少长度可以显著提升速度优化程序结构预加载流式输出提升了用户体验但是没有缩短时间prompt工程因为我们需求单一就是弄清楚是哪个team来解决DoD问题所以团队资料部分可以写死代码中加载 代码分析 项目代码 项目最核心的代码脱敏后示例如下部分变量和文件重命名了 from langchain.document_loaders import UnstructuredMarkdownLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import Chroma from langchain.llms import GPT4All from langchain.chains import RetrievalQA import time from flask import Flask, request from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandlerapp Flask(__name__)markdown_path ./test.md loader UnstructuredMarkdownLoader(markdown_path) documents loader.load() print(loaded documents) text_splitter RecursiveCharacterTextSplitter(chunk_size1024, chunk_overlap64) texts text_splitter.split_documents(documents) embeddings HuggingFaceEmbeddings(model_namesentence-transformers/all-MiniLM-L6-v2) db Chroma.from_documents(texts, embeddings, persist_directorydb) print(embeddings) callbacks [StreamingStdOutCallbackHandler()] model_path /data/gpt4all/ggml-gpt4all-j-v1.3-groovy.bin llm GPT4All(modelmodel_path, n_ctx128, backendgptj, verboseFalse, n_threads15, callbackscallbacks, n_predict48) qa RetrievalQA.from_chain_type(llmllm,chain_typestuff,retrieverdb.as_retriever(search_kwargs{k: 3}),return_source_documentsTrue,verboseFalse,)def print_hi(question):res qa(question)print(answer)print(time.time())print(res[result])return res[result]app.route(/, methods[POST]) def echo():data request.get_data(as_textTrue)print(data)res print_hi(data)return res# Press the green button in the gutter to run the script. if __name__ __main__:app.run(host0.0库代码 代码中使用了langchain和llama趁项目机会分析其核心功能代码 接口名功能开源替代/v1/embeddings提取文本片段的特征HuggingfaceEmbedding/v1/completions补齐文本回答问题chatGLM 为什么要有embeddings接口物有异名最早marketing的搜索是精确匹配到关键字但是自然语言是丰富多样的比如我要找一下气质自然淡雅的衣服正好衣服广告词中也有这几个字于是能匹配但是用户也可能会用小清新去搜索就搜索不到了。所以embeddings接口是通过名提取出物 具体算法参考 https://time.geekbang.org/column/article/644795 有了 OpenAI 的 Embedding 接口我们就可以把一段文本的语义表示成一段向量。而向量之间是可以计算距离的如果向量距离少于某个阈值就认为这两个名指的是同一个物 物有异名应对方案 通过维护一个同义词表好处是实现简单坏处是维护麻烦通过调用本地的embedding库 HuggingfaceEmbedding 比起推理embedding其实要简单点具备本地运行的可能 效果展示 例子1 curl -X POST -d according to the test.md, if I can not arrange shipment, which API may I refer to? http://localhost:5000If you are unable to arrange shipment for an order, you can refer to the API /api/v2/logistic/ship_order to initiate logistics for the order. This API will allow you to arrange pickup, drop例子2 if I want to arrange shipment, which API should I call?To arrange shipment, you should call the api/v2/logisticsship\_order/ship\_order. Use this api to initiate logistics including arrange pickup, dropoff or shipment for non-integrated logistic channels.Heres an example of how to call the api/v2/logisticsship\_order/ship\_order API to initiate shipment logistics:POST /api/v2/logisticsship_order/ship_order { “address”: “123 Main St”, “pickup_address”: “456 Smith Ave”, “dropoff_address”: “789 Baker Ave”, “pickup_time”: “11:00”, “dropoff_time”: “14:00”, “pickup_method”: “Standard Delivery”, “dropoff_method”: “Express Delivery” } Note: This is just an example and the actual implementation may vary based on the 3PL service provider and the requirements of your shipment logistics. It is always recommended to consult with your 3PL service provider or contact their support team for specific assistance.附录所用的公司内部API文档例子 #api/v2/logistics/get_shipping_parameter Use this api to get the parameter info_needed from the response to check if the order has pickup or dropoff or no integrate options. This api will also return the addresses and pickup time id options for the pickup method. For dropoff, it can return branch id, sender real name etc, depending on the 3PL requirements.#/api/v2/logistics/ship_order Use this api to initiate logistics including arrange pickup, dropoff or shipment for non-integrated logistic channels. Should call v2.logistics.get_shipping_parameter to fetch all required param first. Its recommended to initiate logistics one hour after the orders were placed since there is one-hour window buyer can cancel any order without request to seller.#/api/v2/logistics/create_shipping_document Use this api to create shipping document task for each order or package and this API is only available after retrieving the tracking number.
http://www.pierceye.com/news/261302/

相关文章:

  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者
  • 网站备案 子域名云南商城网站建设
  • 上传到服务器的网站打开是空白网站报备流程
  • 如何用ps做网站标识一个叫mit做app的网站
  • 网站免费网站免费主流网站模板
  • 湖州市交通建设管理局网站牌具做网站可以吗
  • 湖南鸿泰电力建设有限公司网站西安做小程序的公司
  • 学校资源网站建设方案聊城网站建设
  • windows 做网站服务器python做的网站漏洞
  • 培训网站推荐网站内容该怎么做
  • 精通网站建设电子档朵朵软件网站建设
  • 铜山区规划建设局网站网站开发的甘特图
  • 访问网站速度慢中国最新军事新闻直播
  • 商城网站的psd模板免费下载哪里可以上传自己的php网站
  • 珠宝网站策划书网页设计的毕业设计
  • 最经典最常用的网站推广方式什么做网站赚钱
  • 广州哪家做网站化妆品网站方案
  • cms开源网站管理系统北京网站建设策划解决方案
  • 洛阳做多屏合一网站最新款淘宝客源码整网站程序模板+后台带自动采集商品功能带文章
  • 宁国新站seo中国建筑网官网监理工程师网站
  • 自己建网站多少钱福州建设企业网站
  • 容桂佛山做app网站wordpress 搜索 任意
  • dw做单页网站教程盐城网站建设价位
  • 赤峰建设业协会的官方网站wordpress博客伪静态
  • 2016个人做淘宝客网站网站备案备注信息
  • 加盟招商推广网站怎么做网站的防盗链
  • 南阳网站关键词ppt在线浏览网站源码
  • 用vs2012做网站首页涉密网络建设
  • 个人主题网站设计seo技术论坛