苹果豪掷10亿美元：与 Google 联手打造史上最强 Siri
在 AI 浪潮席卷全球的时代，苹果终于出手了。据彭博社最新报道，苹果正与 Google 达成一项接近 10 亿美元的重大合作协议，计划使用定制版 Gemini 大模型来为下一代 Siri 提供智能支持。这意味着——未来的 Siri，将不仅仅是一个“语音助手”，而将成为苹果 AI 战略的核心入口。1.2 万亿参数：苹果史上最强 Siri 即将诞生根据消息人士透露，苹果计划使用 Google 开发的一款拥有 1.2 万亿参数的 Gemini 模型，来驱动全新的 Siri 系统。相比之下，苹果目前的云端 AI 模型仅有 1500 亿参数，而本地设备上的模型更只有 30 亿参数。这意味着 Siri 迎来一次跨时代的进化：能理解更复杂的自然语言能执行跨应用的连续任务能进行总结、规划等更高阶操作例如，你可能只需要一句话：“帮我整理今天的会议纪要并发邮件给团队。”Siri 就能自动完成整个流程。10 亿美元合作：为什么苹果选择了 Google？据知情人士透露，苹果在评估多家 AI 供应商（包括 Anthropic）后，最终选择了 Google，因为 Gemini 模型在价格与性能之间达到了最佳平衡。这笔每年约 10 亿美元的授权合作，让 Google 成为苹果的 AI 合作伙伴之一。不过，苹果依然坚持关键底线：所有 Gemini 模型都将在苹果自家服务器上运行用户数据不会流向 Google隐私依旧是苹果最重要的护城河。Siri 的分工：Gemini 负责“思考”，苹果负责“灵魂”未来的 Siri 将采用“混合模型结构”：Google Gemini 模型：负责总结、规划、任务执行等复杂逻辑苹果自研模型：负责语音识别、情境感知、个性化响应等本地交互功能这种双模型协作方式，使得 Siri 能同时享受强大的 AI 能力与苹果式的隐私与性能体验。苹果的野心：Gemini 只是“过渡方案”尽管合作金额巨大，但苹果并不打算让 Google 成为永久 AI 引擎。苹果内部正在研发自家 1 万亿参数级别的大模型，未来希望完全替代 Gemini。也就是说，苹果与 Google 的合作更像是：“时间换空间”——在自研模型成熟之前，先借力 Gemini 抢占 AI 市场先机。Siri 的“重生”，是苹果 AI 时代的起点事实上，Siri 的改革早在“Glenwood”项目中启动，由负责 Vision Pro 的 Mike Rockwell 亲自领导。随着本次合作落地，Siri 将迎来十多年来最大的一次升级。2025–2026 年，将成为苹果 AI 战略至关重要的转折期。从 Apple Intelligence，到 Gemini 合作，从 iOS 26 到未来的 iOS 27，苹果正在从“AI 跟随者”向“AI 平台领导者”转型。AI 大战的下半场，苹果终于亮剑过去几年，OpenAI、Google、Anthropic 等 AI 公司不断争夺领先地位，而苹果始终保持克制。但如今，苹果用一笔 10 亿美元的合作宣布——它正式加入战局。真正的较量，将是苹果能否在 隐私、性能与智能之间找到完美平衡：让 Siri 不只是被用户重新“唤醒”，而是成为下一代 AI 生态的中枢。原文地址：苹果豪掷10亿美元：与Google联手打造史上最强 Siri
浅谈NLP在生物信息学和复杂系统建模中的应用
本文由AI辅助撰写，可能存在不准确之处，请读者注意甄别！自然语言处理（NLP）技术是一门研究如何让计算机理解和生成自然语言文本的学科。近年来，随着深度学习的发展，NLP技术取得了巨大的进步，特别是像GPT这样的大型语言模型，已经展示了惊人的能力，可以生成流畅、连贯、有意义的文本。NLP技术不仅可以用于处理自然语言文本，还可以用于处理其他类型的序列数据，例如基因序列、社会网络、经济数据等。这些数据都可以看作是一种特殊的语言，有着自己的语法、语义和逻辑。因此，NLP技术可以在生物信息学和复杂系统建模等领域发挥重要的作用，帮助研究人员分析、预测和解决各种问题。本文将介绍一些NLP技术在这些领域的应用场景，并展望其未来的发展方向。生物信息学生物信息学是一门利用计算机技术来研究生物学问题的学科。生物信息学涉及到大量的数据，包括基因序列、蛋白质结构、生物网络、科学文献、临床报告等。NLP技术可以帮助研究人员从这些数据中提取有用的信息，加速生物学的发现和创新。以下是一些NLP技术在生物信息学中的应用场景：基因序列分析：基因序列是由四种碱基（A、T、C、G）组成的字符串，携带了生物体的遗传信息。NLP技术可以用来分析和预测基因序列，类似于处理自然语言文本。例如，可以使用语言模型来预测蛋白质的结构，或者从序列中识别特定的基因表达模式。这些信息对于理解生物体的功能和疾病的机制有重要的意义。文献挖掘：生物信息学领域有大量的科学文献，每年都有数万篇的新论文发表。NLP技术可以帮助研究人员从文献中提取有关特定蛋白质、疾病或治疗方法的信息，从而加快研究进展。例如，可以使用命名实体识别（NER）技术来标注文献中的生物学概念，或者使用关系抽取（RE）技术来识别文献中的因果关系或相互作用。临床报告分析：临床报告是医生对病人的诊断和治疗的记录，包含了病人的病史、症状、检查结果、药物用量等信息。使用NLP技术分析病人的临床报告，可以提取有关病史、治疗反应和疾病进程的关键信息，这些信息对于个性化医疗和精准医疗至关重要。例如，可以使用文本分类（TC）技术来判断病人的病情是否恶化或改善，或者使用文本摘要（TS）技术来生成病人的病例摘要。药物再利用：药物再利用是指将已有的药物用于新的治疗目的，是一种节省时间和成本的药物开发策略。NLP技术可以帮助识别已有药物的新用途，通过分析药物的作用机制和相关的生物标志物，可以发现新的治疗途径。例如，可以使用文本相似度（TS）技术来比较不同药物的文本描述，或者使用知识图谱（KG）技术来构建药物和疾病之间的关联网络。复杂系统建模复杂系统是由大量相互作用的元素组成的系统，具有非线性、动态和自组织的特征。复杂系统的典型例子有社会网络、经济系统、城市交通、环境系统等。复杂系统的建模是一种利用数学和计算机技术来模拟和分析复杂系统的行为和性质的方法。复杂系统的建模涉及到大量的文本数据，包括新闻、社交媒体、财报、公告等。NLP技术可以帮助研究人员从这些文本数据中提取有用的信息，建立更准确和有效的复杂系统模型。以下是一些NLP技术在复杂系统建模中的应用场景：社会网络分析：社会网络是由个体和他们之间的关系组成的网络，是一种典型的复杂系统。社会网络上的通信模式可以反映出社会网络的结构和功能，以及信息是如何在社会网络中传播的。NLP技术可以用于分析社会媒体上的文本数据，以理解社会网络的特征和动态。例如，可以使用情感分析（SA）技术来评估社会媒体上的用户情绪，或者使用话题模型（TM）技术来识别社会媒体上的热门话题。经济模型：经济系统是由多个参与者和他们之间的交易组成的系统，是一种复杂的自适应系统。经济系统的行为和性能受到多种因素的影响，包括政策、市场、技术等。NLP技术可以用来分析经济相关的文本数据，以预测经济系统的趋势或评估特定事件对经济系统的影响。例如，可以使用情感分析（SA）技术来评估新闻或财报中的经济信心，或者使用事件抽取（EE）技术来识别经济相关的重要事件。城市交通流量预测：城市交通是由多个交通参与者和他们之间的相互作用组成的系统，是一种复杂的动态系统。城市交通的流量和拥堵受到多种因素的影响，包括天气、路况、事故等。NLP技术可以用于分析交通相关的文本数据，如社交媒体、新闻报道和公共交通公告，以建立更准确的交通流量和拥堵预测模型。例如，可以使用情感分析（SA）技术来评估社交媒体上的用户情感和意见，这些信息可以作为预测模型中的一个信号。通过分析推文、博客和在线评论中的关键词和情感倾向，可以对交通状况进行实时监测和预测。此外，NLP可以用来自动提取和分类交通报告中的重要信息，如事故、施工和道路封闭等事件的描述，这些信息可以直接用来调整交通流量预测模型的参数。环境监测：环境系统是由多个自然和人为的子系统组成的系统，是一种复杂的非平衡系统。环境系统的变化受到多种因素的影响，包括气候变化、污染、灾害等。NLP技术可以用于分析环境相关的报告和记录，以监控和预测环境系统的变化。例如，可以使用情感分析（SA）技术来评估环境报告中的环境风险，或者使用事件抽取（EE）技术来识别环境相关的重大事件。在所有这些应用中，自然语言处理技术的核心优势在于其能够处理和分析大规模的非结构化文本数据，从而揭示模式、趋势和潜在的洞察力。随着NLP技术的不断进步，我们可以预见其在这些领域会有更加广泛和深入的应用。
本文转载自互联网，已在文末注明来源。一、Stable Diffusion 项目介绍Stable DiffusionStable Diffusion 是一款基于人工智能技术开发的绘画软件，它可以帮助艺术家和设计师快速创建高品质的数字艺术作品。是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像，尽管它也可以应用于其他任务，如内补绘制、外补绘制，以及在提示词指导下产生图生图的翻译。 它是一种潜在扩散模型，由慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络。官网地址：https://stability.ai/官网介绍：https://stability.ai/blog/stable-diffusion-public-release项目地址：https://github.com/Stability-AI/stablediffusionStable diffusion WebUIStable Diffusion 项目本地化的部署，是纯代码界面，而Stable Diffusion WebUI，是基于 Stable Diffusion 项目的可视化操作项目。这里我们也是部署Stable Diffusion WebUI。项目地址：https://github.com/AUTOMATIC1111/stable-diff先来看几张我通过 SD 作出来的图，看看效果吧！二、Stable Diffusion 配置要求1、显卡要求需要使用 N 卡（NVIDIA 显卡），显卡的显存至少需要 4G文章来源(Source)：浅时光博客B 以上显存才能在本地运行。最低配置需要 4GB 显存，基本配置 6GB 显存，推荐配置 12GB 显存或者以上。2、科学上网网络这方面，必须科学上网，因为很多链接都需要用到3、电脑要求电脑内存16G或者以上系统win10或者win11CUDAPython 版本 3.10.6+ （请自行安装）Git：用了克隆项目（请自行安装）三、Stable Diffusion WebUI部署1、安装CUDACUDA (Compute Unified Device Architecture) 是由 NVIDIA 开发的用于 GPU 的并行计算平台和编程模型。它使开发人员能够使用常规编程语言（如 C、C++、Python）通过一组扩展来利用 GPU 中的并行性，从而加速计算密集型应用程序。CUDA 具有许多优点，包括高效、可扩展性强、易于开发、适用于各种应用场景等。它被广泛应用于科学计算、深度学习、机器学习、图形处理等领域。下载地址：https://developer.nvidia.com/cuda-toolkit-archive下载版本确认：需要本地CMD输入 nvidia-smi 查看你当前的CUDA版本确认版本之后下载对应的版本；提醒：文件大小有2G，默认安装位置在C盘确认是否安装成功：Win+R进入CMD，在命令行输入 nvcc -V，如下图所示，则表示cuda已经安装成功2、Stable Diffusion WebUI安装2.1：克隆项目源码不建议放在c盘，因为我们会使用一些模型包，都是上G的，所以需要一个容量比较大盘git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git2.2：下载训练模型模型下载链接：https://huggingface.co/CompVis后面如果要用到其他模型，只需要将下载的模型放到sd-webui项目的 models/Stable-diffusion/ 文件夹即可。模型下载：（1）Hugging原文链接（2）Civitai2.3：安装GFPGAN这是腾讯旗下的一个开源项目，可以用于修复和绘制人脸，减少stable diffusion人脸的绘制扭曲变形问题项目地址：https://github.com/TencentARC/GFPGAN下载好之后，放在 sd-webui 项目的根目录下面即可2.4：运行sd-webui下载的东西比较多，需要慢慢等待，而且确保你的网络环境稳定；直到系统提示，running on local URL: http://127.0.0.1:7860；这就可以浏览器访问页面进行操作了四、Stable Diffusion WebUI作画Stable Diffusion checkpoint：选择加载的模型Prompt：图像描述信息Batch count：同时绘图数量以下效果演示参数如下：模型为：majicMIX realistic v5提示词：best quality, masterpiece, ultra high res, photorealistic, 1girl, offshoulder, smile反向词：ng_deepnegative_v1_75t, (badhandv4:1.2), (worst quality:2), (low quality:2), (normal quality:2), lowres, bad anatomy, bad hands, ((monochrome)), ((grayscale)) watermark, moles采样器：Euler高分辨率修复：重绘强度0.3高清化算法：ESRGAN_4x五、Stable Diffusion WebUI汉化汉化项目：https://github.com/VinsonLaro/stable-diffusion-webui-chinese通过WebUI拓展进行安装打开stable diffusion webui，进入Extensions选项卡点击 Install from URL，注意 URL for extension’s git repository 下方的输入框粘贴或输入本Git仓库地址：https://github.com/VinsonLaro/stable-diffusion-webui-chinese点击下方的黄色按钮 Install 即可完成安装，然后重启WebUI(点击 Install from URL 左方的 Installed ，然后点击黄色按钮 Apply and restart UI 网页下方的 Reload UI 完成重启)点击 Settings，左侧点击 User interface 界面，在界面里最下方的Localization (requires restart)，选择Chinese-All或者Chinese-English点击界面最上方的黄色按钮 Apply settings ，再点击右侧的 Reload UI 即可完成汉化原文地址：浅时光博客 | 精彩程序人生
如何向 ChatGPT 提问以获得高质量答案：提示技巧工程完全指南
本文转载自互联网，已在文末注明来源。介绍我们将探讨如何使用不同的提示工程技术来实现不同的目标。ChatGPT是一款最先进的语言模型，能够生成类似人类的文本。然而，理解如何正确地向ChatGPT提问以获得我们所需的高质量输出非常重要。而这正是本书的目的。无论您是普通人、研究人员、开发人员，还是只是想在自己的领域中将ChatGPT作为个人助手的人，本书都是为您编写的。我使用简单易懂的语言，提供实用的解释，并在每个提示技术中提供了示例和提示公式。通过本书，您将学习如何使用提示工程技术来控制ChatGPT的输出，并生成符合您特定需求的文本。在整本书中，我们还提供了如何结合不同的提示技术以实现更具体结果的示例。我希望您能像我写作时一样，享受阅读本书并从中获得知识。第一章：Prompt 工程技术简介什么是 Prompt 工程？Prompt 工程是创建提示或指导像 ChatGPT 这样的语言模型输出的过程。它允许用户控制模型的输出并生成符合其特定需求的文本。ChatGPT 是一种先进的语言模型，能够生成类似于人类的文本。它建立在 Transformer 架构上，可以处理大量数据并生成高质量的文本。然而，为了从 ChatGPT 中获得最佳结果，重要的是要了解如何正确地提示模型。 提示可以让用户控制模型的输出并生成相关、准确和高质量的文本。 在使用 ChatGPT 时，了解它的能力和限制非常重要。该模型能够生成类似于人类的文本，但如果没有适当的指导，它可能无法始终产生期望的输出。这就是 Prompt 工程的作用，通过提供清晰而具体的指令，您可以引导模型的输出并确保其相关。Prompt 公式是提示的特定格式，通常由三个主要元素组成：任务：对提示要求模型生成的内容进行清晰而简洁的陈述。指令：在生成文本时模型应遵循的指令。角色：模型在生成文本时应扮演的角色。在本书中，我们将探讨可用于 ChatGPT 的各种 Prompt 工程技术。我们将讨论不同类型的提示，以及如何使用它们实现您想要的特定目标。第二章：指令提示技术现在，让我们开始探索“指令提示技术”，以及如何使用它从ChatGPT中生成高质量的文本。指令提示技术是通过为模型提供具体指令来引导ChatGPT的输出的一种方法。这种技术对于确保输出相关和高质量非常有用。要使用指令提示技术，您需要为模型提供清晰简洁的任务，以及具体的指令以供模型遵循。例如，如果您正在生成客户服务响应，您将提供任务，例如“生成响应客户查询”的指令，例如“响应应该专业且提供准确的信息”。提示公式：“按照以下指示生成[任务]：[指令]”示例：生成客户服务响应：任务：生成响应客户查询指令：响应应该专业且提供准确的信息提示公式：“按照以下指示生成专业且准确的客户查询响应：响应应该专业且提供准确的信息。”生成法律文件：任务：生成法律文件指令：文件应符合相关法律法规提示公式：“按照以下指示生成符合相关法律法规的法律文件：文件应符合相关法律法规。”使用指令提示技术时，重要的是要记住指令应该清晰具体。这将有助于确保输出相关和高质量。可以将指令提示技术与下一章节中解释的“角色提示”和“种子词提示”相结合，以增强ChatGPT的输出。第三章：角色提示角色提示技术是通过为ChatGPT指定一个特定的角色来引导其输出的一种方式。这种技术对于生成针对特定上下文或受众的文本非常有用。要使用角色提示技术，您需要为模型提供一个清晰具体的角色。例如，如果您正在生成客户服务回复，您可以提供一个角色，如“客户服务代表”。提示公式：“作为[角色]生成[任务]”示例：生成客户服务回复：任务：生成对客户查询的回复角色：客户服务代表提示公式：“作为客户服务代表，生成对客户查询的回复。”生成法律文件：任务：生成法律文件角色：律师提示公式：“作为律师，生成法律文件。”将角色提示技术与指令提示和种子词提示结合使用可以增强ChatGPT的输出。下面是一个示例，展示了如何将指令提示、角色提示和种子词提示技术结合使用：任务：为新智能手机生成产品描述指令：描述应该是有信息量的，具有说服力，并突出智能手机的独特功能角色：市场代表 种子词：“创新的”提示公式：“作为市场代表，生成一个有信息量的、有说服力的产品描述，突出新智能手机的创新功能。该智能手机具有以下功能[插入您的功能]”在这个示例中，指令提示用于确保产品描述具有信息量和说服力。角色提示用于确保描述是从市场代表的角度书写的。而种子词提示则用于确保描述侧重于智能手机的创新功能。第四章：标准提示标准提示是一种简单的方法，通过为模型提供一个特定的任务来引导ChatGPT的输出。例如，如果您想生成一篇新闻文章的摘要，您可以提供一个任务，如“总结这篇新闻文章”。提示公式：“生成一个[任务]”例如：生成新闻文章的摘要：任务：总结这篇新闻文章提示公式：“生成这篇新闻文章的摘要”生成一篇产品评论：任务：为一款新智能手机撰写评论提示公式：“生成这款新智能手机的评论”此外，标准提示可以与其他技术（如角色提示和种子词提示）结合使用，以增强ChatGPT的输出。以下是如何将标准提示、角色提示和种子词提示技术结合使用的示例：任务：为一台新笔记本电脑撰写产品评论说明：评论应客观、信息丰富，强调笔记本电脑的独特特点角色：技术专家种子词：“强大的”提示公式：“作为一名技术专家，生成一个客观而且信息丰富的产品评论，强调新笔记本电脑的强大特点。”在这个示例中，标准提示技术用于确保模型生成产品评论。角色提示用于确保评论是从技术专家的角度写的。而种子词提示用于确保评论侧重于笔记本电脑的强大特点。第五章：零、一和少样本提示零样本、一样本和少样本提示是用于从ChatGPT生成文本的技术，最少或没有任何示例。当特定任务的数据有限或任务是新的且未定义时，这些技术非常有用。当任务没有可用的示例时，使用零样本提示技术。模型提供一个通用任务，根据对任务的理解生成文本。当任务只有一个示例可用时，使用一样本提示技术。模型提供示例，并根据对示例的理解生成文本。当任务只有有限数量的示例可用时，使用少样本提示技术。模型提供示例，并根据对示例的理解生成文本。提示公式：“基于[数量]个示例生成文本”例如：为没有可用示例的新产品编写产品描述：任务：为新的智能手表编写产品描述提示公式：“基于零个示例为这款新智能手表生成产品描述”使用一个示例生成产品比较：任务：将新款智能手机与最新的iPhone进行比较提示公式：“使用一个示例（最新的iPhone）为这款新智能手机生成产品比较”使用少量示例生成产品评论：任务：为新的电子阅读器撰写评论提示公式：“使用少量示例（3个其他电子阅读器）为这款新电子阅读器生成评论”这些技术可用于根据模型对任务或提供的示例的理解生成文本。第六章：“让我们思考一下”提示“让我们思考一下”提示是一种技巧，可鼓励ChatGPT生成反思和思考性的文本。这种技术适用于撰写论文、诗歌或创意写作等任务。“让我们思考一下”提示的公式非常简单，即“让我们思考一下”后跟一个主题或问题。例如：生成一篇反思性论文：任务：就个人成长主题写一篇反思性论文提示公式：“让我们思考一下：个人成长”生成一首诗：任务：写一首关于季节变化的诗提示公式：“让我们思考一下：季节变化”这个提示要求对特定主题或想法展开对话或讨论。发言者邀请ChatGPT参与讨论相关主题。模型提供了一个提示，作为对话或文本生成的起点。然后，模型使用其训练数据和算法生成与提示相关的响应。这种技术允许ChatGPT根据提供的提示生成上下文适当且连贯的文本。要使用“让我们思考一下提示”技术与ChatGPT，您可以遵循以下步骤：确定您要讨论的主题或想法。制定一个明确表达主题或想法的提示，并开始对话或文本生成。用“让我们思考”或“让我们讨论”开头的提示，表明您正在启动对话或讨论。以下是使用此技术的一些提示示例：提示：“让我们思考气候变化对农业的影响”提示：“让我们讨论人工智能的当前状态”提示：“让我们谈谈远程工作的好处和缺点” 您还可以添加开放式问题、陈述或一段您希望模型继续或扩展的文本。提供提示后，模型将使用其训练数据和算法生成与提示相关的响应，并以连贯的方式继续对话。这种独特的提示有助于ChatGPT以不同的视角和角度给出答案，从而产生更具动态性和信息性的段落。使用提示的步骤简单易行，可以真正提高您的写作水平。尝试一下，看看效果如何吧。第七章：自洽提示自洽提示是一种技术，用于确保ChatGPT的输出与提供的输入一致。这种技术对于事实核查、数据验证或文本生成中的一致性检查等任务非常有用。自洽提示的提示公式是输入文本后跟着指令“请确保以下文本是自洽的”。或者，可以提示模型生成与提供的输入一致的文本。提示示例及其公式：示例1：文本生成任务：生成产品评论指令：评论应与输入中提供的产品信息一致提示公式：“生成与以下产品信息一致的产品评论[插入产品信息]”示例2：文本摘要任务：概括一篇新闻文章指令：摘要应与文章中提供的信息一致提示公式：“用与提供的信息一致的方式概括以下新闻文章[插入新闻文章]”示例3：文本完成任务：完成一个句子指令：完成应与输入中提供的上下文一致提示公式：“以与提供的上下文一致的方式完成以下句子[插入句子]”示例4：事实核查：任务：检查给定新闻文章的一致性输入文本：“文章中陈述该城市的人口为500万，但后来又说该城市的人口为700万。”提示公式：“请确保以下文本是自洽的：文章中陈述该城市的人口为500万，但后来又说该城市的人口为700万。”数据验证：任务：检查给定数据集的一致性输入文本：“数据显示7月份的平均温度为30度，但最低温度记录为20度。”提示公式：“请确保以下文本是自洽的：数据显示7月份的平均温度为30度，但最低温度记录为20度。”第八章：种子词提示种子词提示是一种通过提供特定的种子词或短语来控制ChatGPT输出的技术。种子词提示的提示公式是种子词或短语，后跟指令“请根据以下种子词生成文本”。示例：文本生成：任务：编写一篇有关龙的故事种子词：“龙”提示公式：“请根据以下种子词生成文本：龙”语言翻译：任务：将一句话从英语翻译成西班牙语种子词：“你好”提示公式：“请根据以下种子词生成文本：你好”这种技术允许模型生成与种子词相关的文本并对其进行扩展。这是一种控制模型生成文本与某个特定主题或背景相关的方式。种子词提示可以与角色提示和指令提示相结合，以创建更具体和有针对性的生成文本。通过提供种子词或短语，模型可以生成与该种子词或短语相关的文本，并通过提供有关期望输出和角色的信息，模型可以以特定于角色或指令的风格或语气生成文本。这样可以更好地控制生成的文本，并可用于各种应用程序。以下是提示示例及其公式：示例1：文本生成任务：编写一首诗指令：诗应与种子词“爱”相关，并以十四行诗的形式书写。角色：诗人提示公式：“作为诗人，根据以下种子词生成与“爱”相关的十四行诗：”示例2：文本完成任务：完成一句话指令：完成应与种子词“科学”相关，并以研究论文的形式书写。角色：研究员提示公式：“作为研究员，请在与种子词“科学”相关且以研究论文的形式书写的情况下完成以下句子：[插入句子]”示例3：文本摘要任务：摘要一篇新闻文章指令：摘要应与种子词“政治”相关，并以中立和公正的语气书写。角色：记者提示公式：“作为记者，请以中立和公正的语气摘要以下新闻文章，与种子词“政治”相关：[插入新闻文章]”第九章：知识生成提示知识生成提示是一种从ChatGPT中引出新的、原创的信息的技术。知识生成提示的公式是“请生成关于X的新的和原创的信息”，其中X是感兴趣的主题。这是一种利用模型预先存在的知识来生成新的信息或回答问题的技术。要将此提示与ChatGPT一起使用，需要将问题或主题作为输入提供给模型，以及指定所生成文本的任务或目标的提示。提示应包括有关所需输出的信息，例如要生成的文本类型以及任何特定的要求或限制。以下是提示示例及其公式：示例1：知识生成任务：生成有关特定主题的新信息说明：生成的信息应准确且与主题相关提示公式：“生成有关[特定主题]的新的准确信息”示例2：问答任务：回答问题说明：答案应准确且与问题相关提示公式：“回答以下问题：[插入问题]”示例3：知识整合任务：将新信息与现有知识整合说明：整合应准确且与主题相关提示公式：“将以下信息与有关[特定主题]的现有知识整合：[插入新信息]”示例4：数据分析任务：从给定的数据集中生成有关客户行为的见解提示公式：“请从这个数据集中生成有关客户行为的新的和原创的信息”第十章：知识整合提示这种技术利用模型的现有知识来整合新信息或连接不同的信息片段。这种技术对于将现有知识与新信息相结合，以生成更全面的特定主题的理解非常有用。如何与ChatGPT一起使用：模型应该提供新信息和现有知识作为输入，以及指定生成文本的任务或目标的提示。提示应包括有关所需输出的信息，例如要生成的文本类型以及任何特定的要求或限制。提示示例及其公式：示例1：知识整合任务：将新信息与现有知识整合说明：整合应准确且与主题相关提示公式：“将以下信息与关于[具体主题]的现有知识整合：[插入新信息]”示例2：连接信息片段任务：连接不同的信息片段说明：连接应相关且逻辑清晰提示公式：“以相关且逻辑清晰的方式连接以下信息片段：[插入信息1] [插入信息2]”示例3：更新现有知识任务：使用新信息更新现有知识说明：更新的信息应准确且相关提示公式：“使用以下信息更新[具体主题]的现有知识：[插入新信息]”第十一章：多项选择提示这种技术向模型提供一个问题或任务以及一组预定义的选项作为潜在答案。该技术对于生成仅限于特定选项集的文本非常有用，可用于问答、文本完成和其他任务。模型可以生成仅限于预定义选项的文本。要使用ChatGPT的多项选择提示，需要向模型提供一个问题或任务作为输入，以及一组预定义的选项作为潜在答案。提示还应包括有关所需输出的信息，例如要生成的文本类型以及任何特定要求或限制。提示示例及其公式：示例1：问答任务：回答一个多项选择题说明：答案应该是预定义的选项之一提示公式：“通过选择以下选项之一回答以下问题：[插入问题] [插入选项1] [插入选项2] [插入选项3]”示例2：文本完成任务：使用预定义选项之一完成句子说明：完成应该是预定义的选项之一提示公式：“通过选择以下选项之一完成以下句子：[插入句子] [插入选项1] [插入选项2] [插入选项3]”示例3：情感分析任务：将文本分类为积极、中立或消极说明：分类应该是预定义的选项之一提示公式：“通过选择以下选项之一，将以下文本分类为积极、中立或消极：[插入文本] [积极] [中立] [消极]”第十二章：可解释的软提示可解释的软提示是一种技术，可以在提供一定的灵活性的同时控制模型生成的文本。它通过提供一组受控输入和关于所需输出的附加信息来实现。这种技术可以生成更具解释性和可控性的生成文本。提示示例及其公式：示例1：文本生成任务：生成一个故事指令：故事应基于一组给定的角色和特定的主题提示公式：“基于以下角色生成故事：[插入角色]和主题：[插入主题]”示例2：文本完成任务：完成一句话指令：完成应以特定作者的风格为基础提示公式：“以[特定作者]的风格完成以下句子：[插入句子]”示例3：语言建模任务：以特定风格生成文本指令：文本应以特定时期的风格为基础提示公式：“以[特定时期]的风格生成文本：[插入上下文]”第十三章：控制生成提示控制生成提示是一种技术，可让模型在生成文本时对输出进行高度控制。这可以通过提供一组特定的输入来实现，例如模板、特定词汇或一组约束条件，这些输入可用于指导生成过程。以下是一些示例和它们的公式：示例1：文本生成任务：生成一个故事说明：该故事应基于特定的模板提示公式：“根据以下模板生成故事：[插入模板]”示例2：文本补全任务：完成一句话说明：完成应使用特定的词汇提示公式：“使用以下词汇完成以下句子：[插入词汇]：[插入句子]”示例3：语言建模任务：以特定风格生成文本说明：文本应遵循一组特定的语法规则提示公式：“生成遵循以下语法规则的文本：[插入规则]：[插入上下文]”通过提供一组特定的输入来指导生成过程，控制生成提示使得生成的文本更具可控性和可预测性。第十四章：问答提示问答提示是一种技术，可以让模型生成回答特定问题或任务的文本。通过将问题或任务与可能与问题或任务相关的任何其他信息一起作为输入提供给模型来实现此目的。一些提示示例及其公式如下：示例1：事实问题回答任务：回答一个事实性问题说明：答案应准确且相关提示公式：“回答以下事实问题：[插入问题]”示例2：定义任务：提供一个词的定义说明：定义应准确提示公式：“定义以下词汇：[插入单词]”示例3：信息检索任务：从特定来源检索信息说明：检索到的信息应相关提示公式：“从以下来源检索有关[特定主题]的信息：[插入来源]” 这对于问答和信息检索等任务非常有用。第十五章：概述提示概述提示是一种技术，允许模型在保留其主要思想和信息的同时生成给定文本的较短版本。这可以通过将较长的文本作为输入提供给模型并要求其生成该文本的摘要来实现。这种技术对于文本概述和信息压缩等任务非常有用。如何在ChatGPT中使用：应该向模型提供较长的文本作为输入，并要求其生成该文本的摘要。提示还应包括有关所需输出的信息，例如摘要的所需长度和任何特定要求或限制。提示示例及其公式：示例1：文章概述任务：概述新闻文章说明：摘要应是文章主要观点的简要概述提示公式：“用一句简短的话概括以下新闻文章：[插入文章]”示例2：会议记录任务：概括会议记录说明：摘要应突出会议的主要决策和行动提示公式：“通过列出主要决策和行动来总结以下会议记录：[插入记录]”示例3：书籍摘要任务：总结一本书说明：摘要应是书的主要观点的简要概述提示公式：“用一段简短的段落总结以下书籍：[插入书名]”第十六章：对话提示对话提示是一种技术，允许模型生成模拟两个或更多实体之间对话的文本。通过为模型提供一个上下文和一组角色或实体，以及它们的角色和背景，并要求模型在它们之间生成对话。因此，应为模型提供上下文和一组角色或实体，以及它们的角色和背景。还应向模型提供有关所需输出的信息，例如对话或交谈的类型以及任何特定的要求或限制。提示示例及其公式：示例1：对话生成任务：生成两个角色之间的对话说明：对话应自然且与给定上下文相关提示公式：“在以下情境中生成以下角色之间的对话[插入角色]”示例2：故事写作任务：在故事中生成对话说明：对话应与故事的角色和事件一致提示公式：“在以下故事中生成以下角色之间的对话[插入故事]”示例3：聊天机器人开发任务：为客服聊天机器人生成对话说明：对话应专业且提供准确的信息提示公式：“在客户询问[插入主题]时，为客服聊天机器人生成专业和准确的对话”因此，这种技术对于对话生成、故事写作和聊天机器人开发等任务非常有用。第十七章：对抗性提示对抗性提示是一种技术，它允许模型生成抵抗某些类型的攻击或偏见的文本。这种技术可用于训练更为稳健和抵抗某些类型攻击或偏见的模型。要在ChatGPT中使用对抗性提示，需要为模型提供一个提示，该提示旨在使模型难以生成符合期望输出的文本。提示还应包括有关所需输出的信息，例如要生成的文本类型和任何特定要求或约束。提示示例及其公式：示例1：用于文本分类的对抗性提示任务：生成被分类为特定标签的文本说明：生成的文本应难以分类为特定标签提示公式：“生成难以分类为[插入标签]的文本”示例2：用于情感分析的对抗性提示任务：生成难以分类为特定情感的文本说明：生成的文本应难以分类为特定情感提示公式：“生成难以分类为具有[插入情感]情感的文本”示例3：用于语言翻译的对抗性提示任务：生成难以翻译的文本说明：生成的文本应难以翻译为目标语言提示公式：“生成难以翻译为[插入目标语言]的文本”第十八章：聚类提示聚类提示是一种技术，它可以让模型根据某些特征或特点将相似的数据点分组在一起。通过提供一组数据点并要求模型根据某些特征或特点将它们分组成簇，可以实现这一目标。这种技术在数据分析、机器学习和自然语言处理等任务中非常有用。如何在ChatGPT中使用：应该向模型提供一组数据点，并要求它根据某些特征或特点将它们分组成簇。提示还应包括有关所需输出的信息，例如要生成的簇数和任何特定的要求或约束。提示示例及其公式：示例1：客户评论的聚类任务：将相似的客户评论分组在一起说明：应根据情感将评论分组提示公式：“将以下客户评论根据情感分组成簇：[插入评论]”示例2：新闻文章的聚类任务：将相似的新闻文章分组在一起说明：应根据主题将文章分组提示公式：“将以下新闻文章根据主题分组成簇：[插入文章]”示例3：科学论文的聚类任务：将相似的科学论文分组在一起说明：应根据研究领域将论文分组提示公式：“将以下科学论文根据研究领域分组成簇：[插入论文]”第十九章：强化学习提示强化学习提示是一种技术，可以使模型从过去的行动中学习，并随着时间的推移提高其性能。要在ChatGPT中使用强化学习提示，需要为模型提供一组输入和奖励，并允许其根据接收到的奖励调整其行为。提示还应包括有关期望输出的信息，例如要完成的任务以及任何特定要求或限制。这种技术对于决策制定、游戏玩法和自然语言生成等任务非常有用。提示示例及其公式：示例1：用于文本生成的强化学习任务：生成与特定风格一致的文本说明：模型应根据为生成与特定风格一致的文本而接收到的奖励来调整其行为提示公式：“使用强化学习来生成与以下风格一致的文本[插入风格]”示例2：用于语言翻译的强化学习任务：将文本从一种语言翻译成另一种语言说明：模型应根据为生成准确翻译而接收到的奖励来调整其行为提示公式：“使用强化学习将以下文本[插入文本]从[插入语言]翻译成[插入语言]”示例3：用于问答的强化学习任务：回答问题说明：模型应根据为生成准确答案而接收到的奖励来调整其行为提示公式：“使用强化学习来回答以下问题[插入问题]”第二十章：课程学习提示课程学习是一种技术，允许模型通过先训练简单任务，逐渐增加难度来学习复杂任务。要在ChatGPT中使用课程学习提示，模型应该提供一系列任务，这些任务逐渐增加难度。提示还应包括有关期望输出的信息，例如要完成的最终任务以及任何特定要求或约束条件。此技术对自然语言处理、图像识别和机器学习等任务非常有用。提示示例及其公式：示例1：用于文本生成的课程学习任务：生成与特定风格一致的文本说明：模型应该在移动到更复杂的风格之前先在简单的风格上进行训练。提示公式：“使用课程学习来生成与以下风格[插入风格]一致的文本，按照以下顺序[插入顺序]。”示例2：用于语言翻译的课程学习任务：将文本从一种语言翻译成另一种语言说明：模型应该在移动到更复杂的语言之前先在简单的语言上进行训练。提示公式：“使用课程学习将以下语言[插入语言]的文本翻译成以下顺序[插入顺序]。”示例3：用于问题回答的课程学习任务：回答问题说明：模型应该在移动到更复杂的问题之前先在简单的问题上进行训练。提示公式：“使用课程学习来回答以下问题[插入问题]，按照以下顺序[插入顺序]生成答案。”第二十一章：情感分析提示情感分析是一种技术，允许模型确定文本的情绪色彩或态度，例如它是积极的、消极的还是中立的。要在ChatGPT中使用情感分析提示，模型应该提供一段文本并要求根据其情感分类。提示还应包括关于所需输出的信息，例如要检测的情感类型（例如积极的、消极的、中立的）和任何特定要求或约束条件。提示示例及其公式：示例1：客户评论的情感分析任务：确定客户评论的情感说明：模型应该将评论分类为积极的、消极的或中立的提示公式：“对以下客户评论进行情感分析[插入评论]，并将它们分类为积极的、消极的或中立的。”示例2：推文的情感分析任务：确定推文的情感说明：模型应该将推文分类为积极的、消极的或中立的提示公式：“对以下推文进行情感分析[插入推文]，并将它们分类为积极的、消极的或中立的。”示例3：产品评论的情感分析任务：确定产品评论的情感说明：模型应该将评论分类为积极的、消极的或中立的提示公式：“对以下产品评论进行情感分析[插入评论]，并将它们分类为积极的、消极的或中立的。”这种技术对自然语言处理、客户服务和市场研究等任务非常有用。第二十二章：命名实体识别提示命名实体识别（NER）是一种技术，它可以使模型识别和分类文本中的命名实体，例如人名、组织机构、地点和日期等。要在ChatGPT中使用命名实体识别提示，需要向模型提供一段文本，并要求它识别和分类文本中的命名实体。提示还应包括有关所需输出的信息，例如要识别的命名实体类型（例如人名、组织机构、地点、日期）以及任何特定要求或约束条件。提示示例及其公式：示例1：新闻文章中的命名实体识别任务：在新闻文章中识别和分类命名实体说明：模型应识别和分类人名、组织机构、地点和日期提示公式：“在以下新闻文章[插入文章]上执行命名实体识别，并识别和分类人名、组织机构、地点和日期。”示例2：法律文件中的命名实体识别任务：在法律文件中识别和分类命名实体说明：模型应识别和分类人名、组织机构、地点和日期提示公式：“在以下法律文件[插入文件]上执行命名实体识别，并识别和分类人名、组织机构、地点和日期。”示例3：研究论文中的命名实体识别任务：在研究论文中识别和分类命名实体说明：模型应识别和分类人名、组织机构、地点和日期提示公式：“在以下研究论文[插入论文]上执行命名实体识别，并识别和分类人名、组织机构、地点和日期。”第二十三章：文本分类提示文本分类是一种技术，它可以让模型将文本分成不同的类别。这种技术对于自然语言处理、文本分析和情感分析等任务非常有用。需要注意的是，文本分类和情感分析是不同的。情感分析特别关注于确定文本中表达的情感或情绪。这可能包括确定文本表达了积极、消极还是中性的情感。情感分析通常用于客户评论、社交媒体帖子和其他需要表达情感的文本。要在ChatGPT中使用文本分类提示，模型需要提供一段文本，并要求它根据预定义的类别或标签进行分类。提示还应包括有关所需输出的信息，例如类别或标签的数量以及任何特定的要求或约束。提示示例及其公式：示例1：对客户评论进行文本分类任务：将客户评论分类为不同的类别，例如电子产品、服装和家具说明：模型应根据评论的内容对其进行分类提示公式：“对以下客户评论 [插入评论] 进行文本分类，并根据其内容将其分类为不同的类别，例如电子产品、服装和家具。”示例2：对新闻文章进行文本分类任务：将新闻文章分类为不同的类别，例如体育、政治和娱乐说明：模型应根据文章的内容对其进行分类提示公式：“对以下新闻文章 [插入文章] 进行文本分类，并根据其内容将其分类为不同的类别，例如体育、政治和娱乐。”示例3：对电子邮件进行文本分类任务：将电子邮件分类为不同的类别，例如垃圾邮件、重要邮件或紧急邮件说明：模型应根据电子邮件的内容和发件人对其进行分类提示公式：“对以下电子邮件 [插入电子邮件] 进行文本分类，并根据其内容和发件人将其分类为不同的类别，例如垃圾邮件、重要邮件或紧急邮件。”第二十四章：文本生成提示文本生成提示与本书中提到的其他提示技术相关，例如：零、一、几次提示，受控生成提示，翻译提示，语言建模提示，句子补全提示等。这些提示都与生成文本有关，但它们在生成文本的方式和放置在生成文本上的特定要求或限制方面有所不同。文本生成提示可用于微调预训练模型或训练新模型以执行特定任务。提示示例及其公式：示例1：故事创作的文本生成任务：根据给定的提示生成故事说明：故事应至少包含1000个单词，并包括一组特定的角色和情节。提示公式：“根据以下提示[插入提示]生成一个至少包含1000个单词，包括角色[插入角色]和情节[插入情节]的故事。”示例2：语言翻译的文本生成任务：将给定的文本翻译成另一种语言说明：翻译应准确并符合习惯用语。提示公式：“将以下文本[插入文本]翻译成[插入目标语言]，并确保其准确且符合习惯用语。”示例3：文本完成的文本生成任务：完成给定的文本说明：生成的文本应与输入文本连贯一致。提示公式：“完成以下文本[插入文本]，并确保其连贯一致且符合输入文本。”结语正如本书中所探讨的那样，快速工程是一种利用像ChatGPT这样的语言模型获得高质量答案的强大工具。通过精心设计各种技巧的提示，我们可以引导模型生成符合我们特定需求和要求的文本。在第二章中，我们讨论了如何使用指令提示向模型提供清晰明确的指导。在第三章中，我们探讨了如何使用角色提示生成特定的语音或风格的文本。在第四章中，我们研究了如何使用标准提示作为微调模型性能的起点。我们还研究了几种高级提示技术，例如Zero、One和Few Shot Prompting、Self-Consistency、Seed-word Prompt、Knowledge Generation Prompt、Knowledge Integration prompts、Multiple Choice prompts、Interpretable Soft Prompts、Controlled generation prompts、Question-answering prompts、Summarization prompts、Dialogue prompts、Adversarial prompts、Clustering prompts、Reinforcement learning prompts、Curriculum learning prompts、Sentiment analysis prompts、Named entity recognition prompts和Text classification prompts（对应章节的名字）。这些技术中的每一种都可以以不同的方式使用，以实现各种不同的结果。随着您继续使用ChatGPT和其他语言模型，值得尝试不同的技巧组合，以找到最适合您特定用例的方法。最后，您可以查看我写的其他主题的书籍。感谢您阅读整本书。期待在我的其他书中与您见面。(本文翻译自《The Art of Asking ChatGPT for High-Quality Answers A Complete Guide to Prompt Engineering Techniques》这本书，本文的翻译全部由ChatGpt完成，我只是把翻译内容给稍微排版了一下。做完了才发现这个工作早就有人做过了…下面是我以此事件让New Bing编写的一个小故事，希望大家喜欢)他终于画完了他的画，心满意足地把它挂在了墙上。他觉得这是他一生中最伟大的作品，无人能及。他邀请了所有的朋友来欣赏，期待着他们的赞美和惊叹。 可是当他们看到画时，却没有一个人说话。他们只是互相对视，然后低头咳嗽，或者假装看手机。他感到很奇怪，难道他们都不懂艺术吗？难道他们都没有眼光吗？ 他忍不住问其中一个朋友：“你觉得我的画怎么样？” 朋友犹豫了一下，说：“嗯……其实……这个画……我以前在哪里见过。” “见过？你在哪里见过？”他惊讶地问。 “就在……就在那边啊。”朋友指了指墙角的一个小框架，“那不就是你上个月买回来的那幅名画吗？你怎么把它照抄了一遍？ ——New Bing原文地址：ORDINAND/The-Art-of-Asking-ChatGPT-for-High-Quality-Answers-A-complete-Guide-to-Prompt-Engineering-Technique: ChatGPT提问技巧如何向 ChatGPT 提问以获得高质量答案：提示技巧工程完全指南 | 故人’s BLOG
凯文凯利: 5000天后的世界&人类被AI如何塑造
本文转载自互联网，已在文末注明来源。当下，人工智能正以天为周期狂飙。但AI究竟是向善还是作恶？人类科技将去往何处？人人都渴望得到确定性的答案。凯文•凯利在上个世纪90年代曾出版了一本“预言式”书籍——《失控》，预见了当今诸多火热的科技现象。近日，凯文•凯利又出版了他的新书《5000天后的世界》，预言了5000天后的人类世界将如何被AI塑造，以及数百万人一起工作的数字未来。面对飞速变化的世界，人们感到前所未有的压力和恐慌。作为微小的个体，普通人应当如何应对？凯文·凯利在书中给出了不仅适用于当下，而且能应对5000天后的世界的50条生存建议。希望本文会对你有所启发。凯文·凯利在自家书房关于科技与创新：越成功的企业，越难实现真正的创新001.无论哪种科技，能够解决多少问题，就有可能引发多少问题。二者比例看似各占一半，其实不然。科技带来的益处占比为51%，而它引发的问题占比为49%。虽然二者之间只存在2%的微妙差别，但是如果将这个比例放在时间的长河之中，我们就会看到其差别有多么巨大。002.判断一项科技的时候，一定要思考这项技术是否具有广泛的影响力和无限的可能性。比如基因工程、埃博拉疫苗可以挽救无数生命，但是它的意义也无法与CRISPR-Cas9这类基因编辑技术比肩。因为基因编辑技术可以对其他科学技术产生影响，可以带来呈几何级增长的可能性。003.对于科技带来的问题，永远不能靠减少科技解决，而应该发明更好的科技。虽然环保人士和评论家主张“减少科技的使用范围以解决滥用科技造成的问题”，但我认为这样并不正确。如果不能发明出更多、更好的科技，我们是无法解决现有的问题的。004.只有看到一种科技的应用范围下限，我们才能完整地把握它。技术的发展和当初发明者的预期相去甚远，这才是科技所具有的本质的发展趋势。005.人类对科技的态度有点过于谨慎。我们很少去关注落后科技的弊端，而总是在担心新科技可能会带来的风险。比如，我们不会将新科技的风险与旧科技的弊端进行比较。006.只有保持几分饥饿的状态，才能有继续创新的可能。比如只有小企业才能做到革新。有很多风险投资人会为小企业提供资金援助，但是如果投资金额巨大，他们就会直接收购小企业，而不会坐等革新成果。所以，不要以为给初创企业充足的资金是好事。如果资金太多，反而会毁了这些小公司。金额只要能大致维持企业生存即可，真的是所谓的“给口饭吃”就行。007.创新并非集中型，而是分散型的，是根植于企业文化之中的。因此，即便买下小公司，也无法买下它们的创新性，买下的只能是一个具体的解决方案。这样的收购无法带来未来的持续创新，只是普通的商业行为而已。008.创新的本质是要从低效和失败中汲取经验。在硅谷有一个说法，叫作“积极地失败”。失败了，跌倒了，再从原地爬起来，这才能帮助人们吸取教训。硅谷的革新都来自正确对待失败的态度，即使实验失败，也会被当作成功的一部分，没人会对此加以非难。009.亚洲国家如果可以更宽容地对待失败，可能就会更容易产生创新。010.越成功的企业越难以实现真正的创新。例如微软这种在计算机领域致力于开发最佳操作系统的公司，如果想要将重点转移到软件领域，就要暂时从现在的最高峰跌落。这种决断非常难，通常只有疯狂的人才能做到。这种事情比尔·盖茨做不到，但乔布斯就可以。总之，越是成功的企业越难转型，在转型期要面对业绩下滑的现实，这样颠覆性的技术转型确实十分艰难。011.重点在于二次创造。万能的“神”并没有创造世界，而是创造了可以创造世界的生物。关于人生与财富：年轻人一定要，体验一段没钱的生活012.对人生感到满意的人有一个共通之处，他们会一直追问“自己是谁”，什么才最适合自己。想要回答这个问题，就需要深刻地思考，并且认真地审视自己，了解真正的自己。我所知道的艺术家、发明家和编辑都在不断自问自答。013.因为没钱所以不能做自己想做的事情，我觉得这是最没有意义的想法，是不能独立完成一件工作的借口。014.年轻人一定要试着体验一段没有钱的贫困生活。可以去非洲农村生活半个月，或者背着帐篷和少量食物出去徒步。有了这段经历，你会感受到一无所有时才能感受到的小欢喜，也能知道自己可以在一无所有的情况下完成多少事情。015.一个人如果体验过贫困的生活，在遇到高风险的时候就不会那么恐惧。016.人越成功就越难以找到自己存在的意义。究其原因，可能是成功会将人与现实社会隔绝。他们都是众人眼里的成功人士，却被自己的人生和成功束缚得紧紧的，难以挪动。017.想要真正了解自己，就需要经历失败，也需要有从零开始的经历。有很多成功者已经不能接受失败，因此也就很难再有进步。我自己也是一样，越来越不愿挑战成功概率低的项目，也越来越不能忍耐。我们当中有些人已经无法从成功中走出来，面对新的挑战了。018.个人信息价值越高的人，越有必要找代理人。因为若非如此，即使你的信息很有价值，你也不可能从中获利。019.人类的智能不具有通用性。人类的智能无非是经过几百万年的时间，为了生存下去而进化出的非常有局限性的合成物而已。在所有可能的想法与精神空间之中，它只是一个小小的点。020.我们可以积极地体验新的科技，但不应该照单全收。我只保留自己精挑细选的科技应用，而过滤掉绝大多数的新科技。021.没有创造性的人，只能从事生产性的劳动？这是一种偏见。这个世界上不存在只能用生产力和效率来评价的人，这是古代阶级社会中的特权阶层蔑视出身卑微者的观点。只不过到了今天，这种偏见针对的是一个人有没有创造性。即便是直到50岁都只从事过一种职业的人，只要给他们一个正确的动机和适当的帮助，他们就会发生改变。这和创造力的关系不大，关键是如何改变他们的自我。我坚信如果全社会都向这个方向努力，人就一定会发生巨大的转变。022.与其给孩子买昂贵的玩具，不如坐下来给他们读一本书。孩子并不需要昂贵的婴儿车和玩具，最需要的就是父母的关注，以及和父母一起度过的时光。023.很多成功人士都走过迂回曲折的道路。我们经常认为他们生来就知道自己的奋斗目标，并且一直向着目标不断前行，但实际上没有什么人是一帆风顺的。在走弯路的过程中，他们会积累一些并无关联的经验，注意到以往从未想过的问题。最终，他们将这些碎片汇集在一起，创造出有很高价值的新事物。没有一种经历没有意义，那些我们毫无兴趣的事物，也有可能在多年之后和另一件事物发生奇妙的化学反应。关于未来：AI 并不会扩大贫富差距024.未来的人生要以日计算。建议大家查一下政府公布的平均寿命，减去自己现在的年龄，再换算成天，做出一个准确的倒计时表。将这个表导入电脑中，每天都可以提醒自己生命还剩多少天。比如我，当看到“倒计时1825天”这样具体的数字时，我不由得会想要思考具体该做些什么。想做的事情还有很多，但是我一定要选出一件来从今天就开始。如果人生只剩下1000多天，我必须让今天过得有意义。025.只有写下来，才能知道自己是否真的明白。写下思路的过程，其实就是深度思考的过程。026.“不断提问”作为一种习惯，必然会成为人类最基本也最有价值的行为之一。可以马上得到答案的问题就扔给机器，人的价值在于在面对不知道答案的问题时，可以不断思考、不断提问。027.畏首畏尾的人是无法采取理性行动的，只会做出蠢事。因此，我们需要做的就是保持明智、时刻警醒。028.对常识持怀疑态度很重要，质疑是打开新局面的开始。最切实的做法是去质疑人们习以为常的事情，学会推翻常理进行思考。虽然所谓的常理和常识大都是正确的，但不排除其中夹杂着错误的东西。如果能够将这些错误找出，就会是一个新的发现。029.近年来的大趋势就是要让失败以微小的形式在早期显露。030.“今日是好日”，也必须是好日，要用一种感恩的心态迎接每一天。031.假如你决定了未来的道路，请找一位走过这条路的老人，一起度过一周的时间。你可以问问他迄今为止最后悔的一件事是什么，听他说说对自己的评价。这个人最好是你所敬仰的前辈，最后你还要认真思考一下他说的话。032.只有能想象出美好明天的人，才更有可能真的实现它。乐观是我的信仰，是我的信念。在那个经典的描述半杯水的例子中，当别人都在遗憾“只有半杯水”的时候，我从来都会因为 “居然有半杯水”而开心。因为有这种“居然有半杯水”的心态，我们才能创造更好的未来。我们如果可以在心中为未来绘制理想的画卷，就可以更好地将理想变为事实。033.明天不会像我们想象的那样完美，但会变得比今天稍微好一点儿。034.不存在通用的人工智能。那只是神话，是人类以自我为中心进行思考时对人工智能的错误理解。在地球上，已知的具备智能的生物并不多，因此人类可能认为自己是非常独特的物种，并具备可通用于各种领域的智能。035.人类未来的工作将会变成提问，以及应对不确定性。036.AI 会对股票市场产生巨大影响。假如所有人都可以使用这种AI，那么其影响效果就会大打折扣。股市本就充满不确定性，再有AI加持，恐怕只会变得更加难以预测。如果只有一个人可以使用，事情或许会向明朗的方向发展，但如果谁都可以使用，好的影响只会互相抵消，并使得预测股市变得难上加难037.我们比较容易想象出“X+AI”的组合，但是很难预测由此造成的影响。038.构想未来，其实一半在于构想，剩下的一半在于寻找论据和方法，帮助我们实现构想。039.在未来50年的时间内，AI都将是一项帮助我们扩展无限可能的科技。AI拥有巨大的可能性，与此同时，它也可以引发各种各样的问题。而这些新问题同时又孕育着新可能，总体而言，又扩大了可能性的范畴。040.继互联网、社交网络两大平台之后，即将登场的第三大平台就是将现实世界全部数字化的镜像世界。利用AI和算法，镜像世界既可以搜索现实世界，又可以搜索人际关系，并催生出新的事物。镜像世界的优势并不仅仅是可以让你“看见”一切。在镜像世界里，所有对象都变成了数据，都可以被机器读取。镜像世界将成为第三大平台041.AI催生的镜像世界依然是一个资本主义的世界。因此“回报递增”“赢者通吃”之类的法则不可能消失。我们面对资本主义时能够做的就是适应它的发展趋势，顺势而为，而无法抹杀它。所谓“赢者通吃”法则，就是通过构建环境而产生全新的标准，而数以千万计的企业在这一标准上应运而生。042.未来镜像世界中的胜利者，是目前还默默无闻的初创公司。最后的胜利不属于GAFA（Google、Apple、Facebook和Amazon）。每一个时代最强的那个公司，从IBM到微软，再到谷歌和脸书，可能都会想要在AR的世界里站在最领先的位置。但是纵观颠覆性技术的发展史，一个领域的主导者从来无法在下一个时代的平台上继续称雄。因为它们的成功会成为它们最大的桎梏。历史上的赢家和新的赢家――颠覆性技术的历史043.25年内就会出现GAFA的替代者。亚马逊创始人杰夫·贝佐斯曾说过，“亚马逊必然会消亡”。GAFA在大约25年内就会被取代，不会再有现在的势头，也不会再位列顶端。不过，距离这四家企业彻底消亡还要100年的时间。044.区块链是AR协作生产不可或缺的工具之一。数字货币和区块链这些新技术使得协作生产中的支付环节变得简单。这里所指的并非一般的公开技术，而是通过改进达到商业级别的技术。未来，所有的开发者必然都能得到合理的补偿。045.未来年轻人的竞争力将弱于老年人。我本人马上就要到古稀之年了，较之以前，工作的心气有增无减。70多岁的人现在也完全可以应对新科技。未来，既有经验又有阅历的老人同时还会掌握最新的技术，世界上将不再有年轻人轻易就业的机会。046.工作和娱乐的界限终会消失。二者终有一天会完全重叠，无论从技术层面还是财富层面，我们终将无法界定到底是在工作还是在取悦自己。这将是我们的努力方向，也应该成为我们的目标。047.长期存续的事物都处在严密的秩序与完全混沌的夹缝中。万事万物都在这个狭窄的夹缝地带滑动，随时有掉入一边的危险。048.AI并不会扩大贫富差距。049.在未来，政府排在首位，其次是平台，然后才是公司。平台不断发展、不断壮大，最终形成未来的资本主义形态。近年来，平台的运营主要由GAFA以及腾讯、百度等大公司主导，但是人们渐渐认识到，平台是一个既不同于公司又有别于政府的事物，应该介于二者之间。050.中国10年之内会出现下一个“苹果”。在10年左右的时间内，中国一定会开发出下一个iPhone，开发出从欧美到发展中国家，每个人都想拥有的产品。这个产品有可能是智能眼镜，也有可能是电动汽车。虽然不知道具体是什么产品，但一定是中国人设计和创造的品牌。例如，如果某个中国企业可以开发出高品质、高性价比的智能眼镜，掌控 AR 技术和信息数据，那么该企业就有可能发展成和苹果公司规模相当的全球知名企业。原文地址：凯文·凯利：5000天后的世界＆人类被AI如何塑造 - 知乎 (zhihu.com)
前言今天无意间在网上发现了一款Windows系统可用、开源、面向普通用户、基于PaddleOCR的本地文本识别工具。经过对它的一系列配置，将本地的配置文件导出并记录在这里，方便日后在其他电脑上进行快速部署。PaddleOCR是一款基于PaddlePaddle的轻量级开源文本识别模型库，今年年初为满足毕设中证件智能识别模块开发需求做过一些研究（这里是当时对PaddleOCR的配置使用笔记）。没想到竟然能在今年年末发现有大佬从今年3月底开始同样基于这款模型库开发并开源了一款面向用户的，方便快捷的文本识别工具！相信很多人和我一样，经常会有在电脑上进行OCR操作的需求。从几年前开始我陆续使用过很多第三方的工具（如：天若OCR、QQ截图OCR等），但是它们终究都没能很好的满足我在体验方面的需求。于是自己开发了一个基于Web异步请求和百度高精接口的轻量级应用，使用范围也局限于自己和身边的个别人。毕竟使用别人的在线接口，还是会有很多不稳定性因素在里面的。原本打算年底在自己服务器上基于PaddleOCR server端模型对该应用进行重构，现在看来已经必要性不大了。Umi-OCR简介按照官方的介绍，这是一款免费，开源，可批量的离线OCR软件：兼容性系统支持 Win10 x64 及以上版本。CPU必须具有AVX指令集。出现初始化引擎失败等问题时请参考 问题排除 。地址Github地址Github Release v1.3.2地址官方提供的蓝奏云地址soarli备用地址更新日志（截至12.8）v1.3.2 2022.12.1 新功能：创建开机启动项时，可选不显示主窗口。 新功能：OCR结果输出到每个图片同名的单独txt文件。 新功能：增加独立的设置语言窗口，可在多处点开，便于切换语言。 新功能：合并段落添加合并自然段-西文模式，可在英文段落换行时补充空格。 新功能：快捷识图可选自动清空面板，只显示本次识别结果，且隐藏时间信息。 修复了一些BUG。 v1.3.1 2022.11.4 修Bug：快捷键模块重写，引入pynput库，舍弃keyboard库，解决几率失效、录制不正确等Bug。 新功能：添加开机自启，桌面快捷方式，开始菜单快捷方式。 新功能：多开软件时提示。 新功能：截图时隐藏窗口。 调整UI：使用频率极低的设置项设为隐藏的高级选项。 优化：检查引擎组件是否存在。 优化：横排-合并多行-自然段 优化逻辑，支持0~2全角空格首行缩进。 v1.3.0 2022.9.29 新功能：框选截屏。 新功能：系统托盘图标。 新功能：引擎进程常驻。 新功能：文本块后处理模块。 新功能：自定义主输出栏字体。 新功能：设置窗口弹出模式（保持置顶）。 调整UI：自适应Win风格组件。 修正了Bug：系统语言兼容性问题 issue #16 。 修正了Bug：微信图片粘贴问题 issue #22 。 更新PaddleOCR-json模块至v1.2.1，提供剪贴板支持。快捷识图通过剪贴板中转，无需再保存临时文件到硬盘。 v1.2.6 2022.9.1 更新PaddleOCR-json模块至v1.2.0，提高识别速度、准确度。 调整UI：更方便地用下拉框切换识别语言。 调整UI：可以从主窗口任意位置/任意选项卡拖入图片。 修正了Bug：提高程序健壮性，增加启动子进程时的更多异常处理情况。 修正了Bug：彻底解决了对边缘过窄的图片，识别结果不准确的问题 issue #7 。 优化适配PP-OCRv3模型，彻底解决了v3版模型比v2慢、不准的问题 issue #4 。 v1.2.5 2022.7.22 新功能：计划任务。识图完成后执行自动关机等任务。 新功能：可选拖入文件夹时递归导入子文件夹中所有图片。 调整UI：添加一些配置文件的快捷入口。 v1.2.4 2022.6.4 新功能：可选识别剪贴板图片后自动复制识别的文本。 补充功能：快捷键调用剪贴板识图时，若程序窗口被最小化，则恢复前台状态并挪到最前位置。 v1.2.3 2022.5.31 新功能：读取剪贴板图片。配置全局快捷键调用该功能。 v1.2.2 2022.4.30 新功能：可选任务完成后自动打开输出文件或目录。 v1.2.1 2022.4.16 更新PaddleOCR-json模块至v1.1.1，修正了可能得到错误包围盒的漏洞。 v1.2.0 2022.4.8 可选生成图文链接.md文件，作为索引使用有更佳的观感。 修改设置面板的样式，改为滚动面板以容纳更多设置选项。 用户修改配置项后可自动保存。 v1.1.1 2022.3.30 修正了Bug：退出忽略区域窗口时，OCR子进程未关闭。 v1.1.0 2022.3.30 新功能：忽略区域窗口以虚线框 展示识别出的文字块。 v1.0.0 2022.3.28 “梦开始的地方”体验综合体验还是很好的，文本识别准确率也比较高（就是界面丑了点，哈哈，问题不大）。用户界面（按照我的配置，几乎用不到）识别内容：设置：功能针对批量图片需要处理的场景功能也很强大，在这里我就不一一展开介绍了，可以参考这里。配置备份配置后通过win+shift+a快捷键来触发截图，截图识别结果将不再主界面展示，而是直接被复制到剪切板，主界面“识别内容”可作为识别历史记录加以回溯参考。{ "isDebug": false, "isAdvanced": false, "isTray": true, "isBackground": true, "clickTrayModeName": "显示面板", "textpanelFontFamily": "Microsoft YaHei UI", "textpanelFontSize": 14, "isTextpanelFontBold": false, "WindowTopMode": 0, "isAutoStartup": true, "isStartMenu": true, "isDesktop": false, "isHotkeyClipboard": true, "hotkeyClipboard": "win+alt+v", "isHotkeyScreenshot": true, "isScreenshotHideWindow": false, "screenshotHideWindowWaitTime": 200, "hotkeyScreenshot": "shift+win+a", "hotkeyMaxTtl": 2.0, "isHotkeyStrict": false, "scsModeName": "Umi-OCR 软件截图", "scsColorLine": "#3366ff", "scsColorBoxUp": "#000000", "scsColorBoxDown": "#ffffff", "isNeedCopy": true, "isNeedClear": false, "isOpenExplorer": false, "isOpenOutputFile": false, "okMissionName": "关机", "okMission": { "关机": { "code": "msg %username% /time:25 \"Umi-OCR任务完成，将在30s后关机\" & echo 关闭本窗口可取消关机 & choice /t 30 /d y /n >nul & shutdown /f /s /t 0" }, "休眠": { "code": "msg %username% /time:25 \"Umi-OCR任务完成，将在30s后休眠\" & echo 关闭本窗口可取消休眠 & choice /t 30 /d y /n >nul & shutdown /f /h" } }, "isRecursiveSearch": false, "isOutputTxt": true, "isOutputSeparateTxt": false, "isOutputMD": false, "isOutputJsonl": false, "isIgnoreNoText": true, "tbpuName": "优化单行", "isAreaWinAutoTbpu": false, "ocrToolPath": "PaddleOCR-json/PaddleOCR_json.exe", "ocrRunModeName": "", "ocrConfigName": "简体中文", "ocrConfig": { "简体中文": { "path": "PaddleOCR_json_config_ch.txt" } }, "argsStr": "", "isOcrAngle": false, "ocrCpuThreads": 10, "isOcrMkldnn": true, "ocrLimitModeName": "长边压缩模式", "ocrLimitSize": 960, "imageSuffix": ".jpg .jpe .jpeg .jfif .png .webp .bmp .tif .tiff", "isLanguageWinAutoExit": false, "isLanguageWinAutoOcr": false, "processID": 3128, "processKey": "1670492176.8567443", "promptScreenshotScale": true, "promptMultiOpen": true }参考资料：完全免费，不用联网，这套OCR工具太好用了hiroi-sora · GitHubRelease Umi-OCR 文字识别工具 v1.3.2 · hiroi-sora/Umi-OCR · GitHub
前言昨天收到了腾讯云的活动服务器到期提醒，抱着学习的态度（白嫖的资源到了最后一刻也要压榨到底）进行了Linux YOLOv5的配置试验（有关YOLOv5的详细笔记见今年寒假时我写的Win10下YOLOv5的CPU环境搭建），现将本次笔记记录如下：安装pytorch1、官网地址https://pytorch.org/2、根据自己的需求选择例如此时最新版本对应的安装方法为：pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu但是，对于默认情况下无法访问境外网站的网络环境下（疯狂暗示校园网），可以使用国内镜像下载安装：sudo pip3 install torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple安装过程中可能会出现MemoryError（如下图）：这是由于pip安装的缓存机制想要先把整个文件读取到内存以后才开始安装进而导致内存不足导致的。所以我们在安装时指示不启用缓存即可，使用 --no-cache-dir 命令安装即可避坑：sudo pip3 install --no-cache-dir torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple还有可能会遇到：Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6_zbv3dk/pillow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-pf11hf8u-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-6_zbv3dk/pillow/此时需要先：# Setuptools 升级(Upgrade) pip3 install --upgrade pip setuptools wheel # 安装pillow(python的图形界面库) python3 -m pip install Pillow测试是否安装成功import torch #查看版本 print(torch.__version__) #查看gpu是否可用 print(torch.cuda.is_available()) #返回设备gpu个数 print(torch.cuda.device_count())下载YOLOv5 github项目sudo mkdir /yolov5 cd /yolov5/ sudo git clone https://github.com/ultralytics/yolov5移出文件cd yolov5/ sudo mv * .[^.]* .. cd .. sudo rm yolov5/ -r安装依赖python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple下载预训练模型并放到yolo项目根目录。（下载yolov5l.pt, yolov5m.pt, yolov5s.pt, yolov5x.pt）测试使用测试一张网络图片sudo python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d5cff99e.jpg识别结果：如果要不加sudo也能识别，只需要修改权限：# 修改权限 sudo chown -R ubuntu:ubuntu /yolov5/ # 普通权限也能识别了 python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d5cff99e.jpg再来一张：python3 detect.py --weights yolov5s.pt --source https://lab.soarli.top/web/imgs/cat.png预训练模型竟然只有29%的把握认为它是cat：识别视频python3 detect.py --weights yolov5s.pt --source ./xw_llh.mp4识别完成：好端端的100多MB硬是变成了600+MB：再来测试一下流媒体python3 detect.py --weights yolov5s.pt --source http://xxxxxxxxx猜测由于其不兼容Python 3.6导致的此问题。更新Python3->3.7：# <安装Python 3.7> sudo apt update # add-apt-repository 命令是software-properties-common包的一部分 sudo apt install software-properties-common # PPA软件源包含了从2.3到3.7在内的所有Python版本的deb安装包（并且仍然在紧随Python官方进行更新） sudo add-apt-repository ppa:deadsnakes/ppa # 安装3.7版本 sudo apt install python3.7 # <修改环境变量> # 现在是3.6版本 python3 --version # 修改环境变量 cd ~ echo alias python3=python3.7 >> ~/.bashrc # source一下 source ~/.bashrc # 记录一下指定python=python3的方法，非必要无需操作 echo alias python=python3 >> ~/.bashrc再次以非sudo权限执行（最好一开始先更换python版本）：# 强制升级pip python3 -m pip install --upgrade --force pip # 安装yolo所需的依赖 python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple如果出现PyYAML的报错：ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.只需：# 忽略已安装的PyYAML python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installed PyYAML额...貌似猜想错误...分析qt.qpa.xcb: could not connect to display 感觉应该由于视频cv.imshow()之类的卡住了，简单分析了一下（也就花了一个通宵），找到了问题所在：下面是detect.py的源代码，其中红框内被注释掉的代码都是我加上的（原本没有）：解决问题：独立视频资源不难发现，对于网络资源，它采取“先下载，再识别”的策略：完整操作升级python 3.7ubuntu@VM-4-11-ubuntu:~$ python3 --version Python 3.6.9 # <安装Python 3.7> sudo apt update # add-apt-repository 命令是software-properties-common包的一部分 sudo apt install software-properties-common # PPA软件源包含了从2.3到3.7在内的所有Python版本的deb安装包（并且仍然在紧随Python官方进行更新） sudo add-apt-repository ppa:deadsnakes/ppa # 安装3.7版本 sudo apt install python3.7 # 修改环境变量 cd ~ echo alias python3=python3.7 >> ~/.bashrc # source一下 source ~/.bashrc # 检查 ubuntu@VM-4-11-ubuntu:~$ python3 --version Python 3.7.13安装Pytorchpython3 -m pip install --no-cache-dir torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simplepython3 -m pip install --upgrade pip setuptools wheel python3 -m pip install Pillow python3 -m pip install --no-cache-dir torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple验证Pytorch安装状态ubuntu@VM-4-11-ubuntu:~$ python3 Python 3.7.13 (default, Mar 16 2022, 17:37:17) [GCC 7.5.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch >>> print(torch.__version__) 1.11.0+cu102 >>> print(torch.cuda.is_available()) False >>> print(torch.cuda.device_count()) 0部署yolo项目sudo mkdir /yolov5 cd /yolov5/ # 克隆Github仓库 sudo git clone https://github.com/ultralytics/yolov5 # 或者 wget https://cdn4.soarli.top/yolo/yolov5.zip unzip yolov5.zip移出文件：cd yolov5/ sudo mv * .[^.]* .. cd .. sudo rm yolov5/ -r # 修改权限 sudo chown -R ubuntu:ubuntu /yolov5/安装依赖python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple留意到第一次运行时需要到境外网站下载一个字体文件和与训练模型：Downloading https://ultralytics.com/assets/Arial.ttf to /home/ubuntu/.config/Ultralytics/Arial.ttf... 不妨直接上传预训练模型和字体文件到/yolov5：wget https://cdn4.soarli.top/yolo/Arial.ttf cp Arial.ttf /home/ubuntu/.config/Ultralytics/Arial.ttf # 提供yolov5l.pt, yolov5m.pt, yolov5s.pt, yolov5x.pt wget https://cdn4.soarli.top/yolo/pt_model/yolov5s.pt开始识别：python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d5cff99e.jpg至此，搞定！参考资料：https://zhuanlan.zhihu.com/p/354648251https://blog.csdn.net/weixin_42544131/article/details/114079270https://blog.csdn.net/qqjjjaa11/article/details/100737978https://blog.csdn.net/xue_csdn/article/details/94588823https://blog.csdn.net/qq_41221841/article/details/123114200https://blog.csdn.net/xiaojun1288/article/details/121357721https://blog.csdn.net/weixin_41862755/article/details/121700282
记录一次开发Typecho检索图片中文字功能的实战
配置Typecho文本识别能力项目实战笔记，内容原创，转载请注明来源！前言早在去年参与苹果iOS 15内测中体验其在全局融入的文字识别能力以及相册场景文本搜索功能时，我就想给自己的博客也实现搜索图片中所含文本的功能。受限于当时的时间和技术条件，这个想法一直处于“挂起”状态。恰好上个月微信在其新版本也发布了聊天内容中的图片文本搜索功能。刚好寒假期间对PaddlePaddle深度学习框架做了些许研究并在本地部署了OCR项目。择日不如撞日，昨天晚上一口气把这套“前端”逻辑以Python脚本的形式实现了出来。程序代码已公开，可能存在不足之处与优化空间，希望各位大佬能在看过本文后不吝赐教。配置新增Typecho数据表字段：ALTER TABLE `typecho_contents` ADD `ocr` TEXT NULL AFTER `views`;修改Typecho搜索逻辑（1189行）：安装用到的Python包pip3 install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple代码其中xxxxx应换为自己的对应信息：# -*- coding: utf-8 -*- # @Author : soarli # @Date : 2021/4/6 from datetime import datetime import os import time import requests import re import pymysql # <功能选项> # 是否更新所有信息的OCR结果(False则仅对未OCR的文章执行OCR操作) updateAll = False # 处理每张图片请求后的冷却时间(秒，防止因频次限制导致漏掉部分图片) cool = 5 # <数据库及网站配置相关信息> # 数据库地址 host = 'xxxxx' # 数据库用户名 user = 'xxxxx' # 数据库密码 password = 'xxxxx' # 数据库名 database = 'xxxxx' # 博客域名 target = 'https://xxxxx.xxxxx.xxx/' # <全局变量> # OCR接口地址 url = "https://xxxxx.xxx/xxxxx" # 全局请求头 headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36','referer':target} upload_data = {"name": "1.jpg", "type": "image/jpeg"} # 维护数据库连接状态 def keepAlive(): cur = conn.cursor() sql = "SELECT ocr FROM `typecho_contents` WHERE cid=1" cur.execute(sql) # 输入markdown文本，输出其中引用图片中的文字结果 def getPageOCRText(text): pic_list = re.findall(r"\!\[.*\]\((.+)\)",text) this_text = '' for i in pic_list: try: img = {'file':requests.get(i,headers=headers).content} img_text = requests.post(url, upload_data, files=img) this_text += img_text.text time.sleep(cool) # 维护数据库连接状态 keepAlive() # print(this_text) except Exception as e: print('Error msg: ' + str(e)) ocrtext = this_text.replace("\n","").replace('\'','\\\'').replace('\"','\\\"').replace('-','\-') if(ocrtext == ''): ocrtext = 'none!' return ocrtext # 返回需要进行ocr操作的cid(直接传入下一个函数) def getUnOCRedCid(): cur = conn.cursor() if(updateAll): sql = "SELECT cid FROM `typecho_contents` WHERE 1" else: sql = "SELECT cid FROM `typecho_contents` WHERE ocr is NULL" try: cid_list = [] cur.execute(sql) alldata = cur.fetchall() for rec in alldata: cid_list.append(rec[0]) except Exception as e: print('Error msg: ' + str(e)) return getText(cid_list) # 获取cid列表中逐条cid对应的markdown内容并逐条调用ocr获取结果 def getText(cid_list): for i in cid_list: cur = conn.cursor() sql = "SELECT text FROM `typecho_contents` WHERE cid=%s" % (i) try: cur.execute(sql) text = cur.fetchall()[0] except Exception as e: conn.rollback() print('Error msg: ' + str(e)) # print(type(text)) print('='*50) print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())) print(i) # cid ocr_text = getPageOCRText(text[0]) # 去换行后的整篇图片OCR文本 print(ocr_text) writeOCRText(ocr_text, i) # 入库 # 将识别到的结果写入数据表的ocr字段 def writeOCRText(text, cid): cur = conn.cursor() sql = "UPDATE `typecho_contents` SET `ocr` = '%s' WHERE `typecho_contents`.`cid` = %s" % (text,cid) try: cur.execute(sql) conn.commit() except Exception as e: conn.rollback() print('Error msg: ' + str(e)) if __name__ == '__main__': print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())+'开始运行') # 连接数据库 conn = pymysql.connect(host=host, user=user, password=password, database=database) # 获取需要进行ocr操作的文章cid，其会调用getText，getText又会逐条调用getPageOCRText对markdown text引用的逐张图片进行OCR操作，返回的合成文本又会调用writeOCRText写回数据库的ocr字段 getUnOCRedCid() # 断开数据库 conn.close() print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())+'运行完毕') 执行经过本地的反复测试与修正，本程序于4月6日凌晨3点左右在我的blog服务器正式运行，并于当天晚上9点左右运行完毕。期间OCR服务器(我的另一台腾讯云)的CPU一直处于满载状态：数据看了看博客数据库中ocr字段总字符数：SELECT sum(length(ocr)) FROM `typecho_contents`我这三百多篇文章中的所有图片竟然识别出近两百万文字，真的有被吓到：效果选了6个关键词，分别截图对比了OCR程序首次执行前后的搜索结果。识别完成之前：识别完成之后：定时如果数据库中没有文章更新，程序几乎在开始运行瞬间即可运行完毕。考虑到OCR服务器的业务压力，程序的自动执行周期设置到了每天夜里。先执行一次，看看效果：完美搞定！其他不算不知道，一算吓一跳！webp格式下的我的全站图片平均每张仅占40KB的大小！Google yyds！补充04.07 4:25更新从日志里看到，这篇文章的图像识别工作已经完成：4月6号写的另一个程序，一并公开出来用途：识别任意目录下的所有图片中的文字并在该目录下生成识别结果对应的txt文件import os import requests # 填写soarli提供的OCR接口 url = "xxxx" # 填写图片目录的绝对路径 如C:/Users/xxx/Desktop/imgs filepath = 'xxxx' # 常见的图片后缀 imageexts = {'xbm', 'tif', 'pjp', 'svgz', 'jpg', 'jpeg', 'ico', 'tiff', 'gif', 'svg', 'jfif', 'webp', 'png', 'bmp', 'pjpeg', 'avif'} # 改变工作文件夹 os.chdir(filepath) # 获取总图片数 pic_num = 0 for name in os.listdir(filepath): if(name.split('.')[-1] in imageexts): pic_num = pic_num + 1 # 当前个数计数器 i = 0 # 遍历改文件夹所有的文件，并for循环 for name in os.listdir(filepath): if(name.split('.')[-1] in imageexts): i = i + 1 rate = round((i-1)/pic_num,4) print('='*50) print('正在智能识别："' + name + '"（第'+str(i)+'张，共'+str(pic_num)+'张，已完成占比'+str(rate*100)+'%）') print('='*50) img = {'file':open(name, 'rb')} result = requests.post(url, files=img) print(result.text) file = open(name+".txt", 'w', encoding='utf-8') file.write(result.text) file.close() 参考资料：https://blog.bossdong.cn/411.htmlhttps://blog.csdn.net/qq_44754132/article/details/104418657https://www.begtut.com/python/ref-requests-post.htmlhttps://blog.csdn.net/weixin_40006779/article/details/109940125https://blog.csdn.net/weixin_40394560/article/details/116269688https://blog.csdn.net/itguangzhi/article/details/107501813https://www.runoob.com/python/att-string-split.htmlhttps://blog.csdn.net/qq_38276669/article/details/81329752https://www.jianshu.com/p/801750d5a735https://blog.csdn.net/m0_37696990/article/details/105925940https://blog.csdn.net/menglinjie/article/details/78539022https://blog.csdn.net/hhyygg2009/article/details/102844607https://blog.csdn.net/weixin_50990952/article/details/111796512https://www.php.cn/python-tutorials-462304.html
3.16前言这是继上一次在我的台式机上部署PaddleOCR两个月之后的又一次实战。毕设上线在即，恰好得到一个月云服务器使用权限。用来测试配置PaddleOCR及Web环境以便在正式环境部署（测试环境：Ubuntu 18.04）。安装宝塔面板wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh安装集成开发环境安装PaddlePaddlepython3 -m pip3 install paddlepaddle==2.2.2 -i https://mirror.baidu.com/pypi/simple若出现下述报错，更新pip即可：# pip3执行pip3 install --upgrade pip # pip执行pip install --upgrade pip # 如果上面升级失败，可以试试python -m pip install --upgrade --force pip正常情况如下图所示：验证是否安装成功：import paddle paddle.utils.run_check()出现下图界面则安装成功：创建OCR环境# 创建目录 sudo mkdir /ocr # 转移所有者 sudo chown -R ubuntu:ubuntu /ocr/上传Clone下来的项目用WinSCP或宝塔把项目压缩包上传到服务器并解压：ubuntu@VM-4-11-ubuntu:~$ cd /ocr ubuntu@VM-4-11-ubuntu:/ocr$ ls PaddleOCR-release-2.4.zip ubuntu@VM-4-11-ubuntu:/ocr$ unzip PaddleOCR-release-2.4.zip Archive: PaddleOCR-release-2.4.zip bca7070ae9a4064ea9cab8a213fcfee8c832ec6e creating: PaddleOCR-release-2.4/ inflating: PaddleOCR-release-2.4/.clang_format.hook creating: PaddleOCR-release-2.4/.github/ creating: PaddleOCR-release-2.4/.github/ISSUE_TEMPLATE/ inflating: PaddleOCR-release-2.4/.github/ISSUE_TEMPLATE/custom.md inflating: PaddleOCR-release-2.4/.gitignore inflating: PaddleOCR-release-2.4/.pre-commit-config.yaml inflating: PaddleOCR-release-2.4/.style.yapf inflating: PaddleOCR-release-2.4/LICENSE inflating: PaddleOCR-release-2.4/MANIFEST.in creating: PaddleOCR-release-2.4/PPOCRLabel/ inflating: PaddleOCR-release-2.4/PPOCRLabel/Makefile inflating: PaddleOCR-release-2.4/PPOCRLabel/PPOCRLabel.py inflating: PaddleOCR-release-2.4/PPOCRLabel/README.md inflating: PaddleOCR-release-2.4/PPOCRLabel/README_ch.md extracting: PaddleOCR-release-2.4/PPOCRLabel/__init__.py inflating: PaddleOCR-release-2.4/PPOCRLabel/combobox.py ...............此时的目录结构：安装所需Python依赖ubuntu@VM-4-11-ubuntu:/ocr$ cd PaddleOCR-release-2.4/ ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4$ pip3 install -r requirements.txt遇到如下报错：更新pip并重新执行安装命令：pip3 install --upgrade pippip3 install -r requirements.txt如果访问github受阻可以使用国内源：pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple安装完成：验证是否安装成功：此时若出现No module named paddle说明paddlepaddle没有装上，参考如下命令安装即可：python3 -m pip install paddlepaddle-gpu==2.0.0 -i https://mirror.baidu.com/pypi/simple # gpu机器 python3 -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple # cpu机器 pip install "paddleocr>=2.0.1"完成后再次验证即可。部署推理模型在PaddleOCR解压后的目录下创建推理模型目录：mkdir inference将推理模型上传到该目录下并解压：ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4/inference$ tar -xvf ch_PP-OCRv2_det_infer.tar ._ch_PP-OCRv2_det_infer ch_PP-OCRv2_det_infer/ ch_PP-OCRv2_det_infer/inference.pdiparams.info ch_PP-OCRv2_det_infer/inference.pdmodel ch_PP-OCRv2_det_infer/inference.pdiparams ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4/inference$ tar -xvf ch_PP-OCRv2_rec_infer.tar ._ch_PP-OCRv2_rec_infer ch_PP-OCRv2_rec_infer/ ch_PP-OCRv2_rec_infer/inference.pdiparams.info ch_PP-OCRv2_rec_infer/inference.pdmodel ch_PP-OCRv2_rec_infer/inference.pdiparams ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4/inference$ tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar ch_ppocr_mobile_v2.0_cls_infer/ ch_ppocr_mobile_v2.0_cls_infer/inference.pdiparams ch_ppocr_mobile_v2.0_cls_infer/inference.pdiparams.info ch_ppocr_mobile_v2.0_cls_infer/inference.pdmodel安装PaddleOCRpip3 install "paddleocr>=2.0.1"安装成功：测试运行# 切到工作目录 cd /ocr/PaddleOCR-release-2.4 # 执行识别 python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_PP-OCRv2_det_infer/" --rec_model_dir="./inference/ch_PP-OCRv2_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False # 优化后以选择小模型为例 python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/small/ch_PP-OCRv2_det_infer" --rec_model_dir="./inference/small/ch_PP-OCRv2_rec_infer" --cls_model_dir="./inference/small/ch_ppocr_mobile_v2.0_cls_infer" --use_angle_cls=True --use_space_char=True --use_gpu=False项目部署记录（虚拟环境）在PaddleOCR项目根目录下的inference中上传big和small文件夹（本地测试好的预训练模型）；在PaddleOCR项目根目录上传flaskOcrSmall.py和flaskOcrBig.py，静默运行：nohup python3 flaskOcrSmall.py &关闭后台进程：ps -fe|grep python找到对应进程并sudo kill即可：设置开机自启：sudo vim /etc/rc.local底部加上一句（注意此处不能添加nohup）：python3 /ocr/PaddleOCR-release-2.4/flaskOcrSmall.py &重启系统看效果：reboot搞定！4.15凌晨更新在使用git克隆或拉取代码时，使用sudo权限或root用户操作，不要修改Web目录权限为777或设置所有者为其他用户！一来不安全，二来进行上传文件等操作时会因无权限遇到各种各样的报错！参考资料：https://blog.csdn.net/xiaojun1288/article/details/121357721https://blog.csdn.net/cym_anhui/article/details/81286451https://baijiahao.baidu.com/s?id=1650170269926650594https://blog.csdn.net/GungnirsPledge/article/details/108566415https://blog.csdn.net/jim_LoveQ/article/details/105825938http://www.blogjava.net/fingki/archive/2009/08/11/290693.htmlhttps://zhuanlan.zhihu.com/p/109939711https://www.bt.cn/bbs/thread-17053-1-1.html
本文节选自互联网，已在文末注明来源。感觉这篇文章总结的挺好的。所以在博客留个备份，准备之后自己再结合更加深入的认知进一步的补充。深度学习的发展历程Turing Testing图灵测试是人工智能是否真正能够成功的一个标准，“计算机科学之父”、“人工智能之父”英国数学家图灵在1950年的论文《机器会思考吗》中提出了图灵测试的概念。即把一个人和一台计算机分别放在两个隔离的房间中，房间外的一个人同时询问人和计算机相同的问题，如果房间外的人无法分别哪个是人，哪个是计算机，就能够说明计算机具有人工智能。医学上的发现1981年的诺贝尔将颁发给了David Hubel和Torsten Wiesel，以及Roger Sperry。他们发现了人的视觉系统处理信息是分级的。从视网膜（Retina）出发，经过低级的V1区提取边缘特征，到V2区的基本形状或目标的局部，再到高层的整个目标（如判定为一张人脸），以及到更高层的PFC（前额叶皮层）进行分类判断等。也就是说高层的特征是低层特征的组合，从低层到高层的特征表达越来越抽象和概念化，也即越来越能表现语义或者意图。边缘特征 —–> 基本形状和目标的局部特征——>整个目标 这个过程其实和我们的常识是相吻合的，因为复杂的图形，往往就是由一些基本结构组合而成的。同时我们还可以看出：大脑是一个深度架构，认知过程也是深度的。人脑神经元示意图计算机识别图像的过程Deep Learning的出现低层次特征 - - - - (组合) - - ->抽象的高层特征深度学习，恰恰就是通过组合低层特征形成更加抽象的高层特征（或属性类别）。例如，在计算机视觉领域，深度学习算法从原始图像去学习得到一个低层次表达，例如边缘检测器、小波滤波器等，然后在这些低层次表达的基础上，通过线性或者非线性组合，来获得一个高层次的表达。此外，不仅图像存在这个规律，声音也是类似的。比如，研究人员从某个声音库中通过算法自动发现了20种基本的声音结构，其余的声音都可以由这20种基本结构来合成！机器学习机器学习是实现人工智能的一种手段，也是目前被认为比较有效的实现人工智能的手段，目前在业界使用机器学习比较突出的领域很多，例如：计算机视觉、自然语言处理、推荐系统等等。大家生活中经常用到的比如高速上的ETC的车牌识别，今日头条的新闻推荐，天猫上的评价描述。 机器学习是人工智能的一个分支，而在很多时候，几乎成为人工智能的代名词。简单来说，机器学习就是通过算法，使得机器能从大量历史数据中学习规律，从而对新的样本做智能识别或对未来做预测。人工智能vs机器学习人工智能是计算机科学的一个分支，研究计算机中智能行为的仿真。每当一台机器根据一组预先定义的解决问题的规则来完成任务时，这种行为就被称为人工智能。开发人员引入了大量计算机需要遵守的规则。计算机内部存在一个可能行为的具体清单，它会根据这个清单做出决定。如今，人工智能是一个概括性术语，涵盖了从高级算法到实际机器人的所有内容。我们有四个不同层次的AI，让我们来解释前两个:弱人工智能，也被称为狭义人工智能，是一种为特定的任务而设计和训练的人工智能系统。弱人工智能的形式之一是虚拟个人助理，比如苹果公司的Siri。强人工智能，又称人工通用智能，是一种具有人类普遍认知能力的人工智能系统。当计算机遇到不熟悉的任务时，它具有足够的智能去寻找解决方案。机器学习是指计算机使用大数据集而不是硬编码规则来学习的能力。机器学习允许计算机自己学习。这种学习方式利用了现代计算机的处理能力，可以轻松地处理大型数据集。基本上，机器学习是人工智能的一个子集;更为具体地说，它只是一种实现AI的技术，一种训练算法的模型，这种算法使得计算机能够学习如何做出决策。从某种意义上来说，机器学习程序根据计算机所接触的数据来进行自我调整。监督式学习vs非监督式学习监督式学习需要使用有输入和预期输出标记的数据集。当你使用监督式学习训练人工智能时，你需要提供一个输入并告诉它预期的输出结果。如果人工智能产生的输出结果是错误的，它将重新调整自己的计算。这个过程将在数据集上不断迭代地完成，直到AI不再出错。监督式学习的一个例子是天气预报人工智能。它学会利用历史数据来预测天气。训练数据包含输入(过去天气的压力、湿度、风速)和输出(过去天气的温度)。我们还可以想象您正在提供一个带有标记数据的计算机程序。例如，如果指定的任务是使用一种图像分类算法对男孩和女孩的图像进行分类，那么男孩的图像需要带有“男孩”标签，女孩的图像需要带有“女孩”标签。这些数据被认为是一个“训练”数据集，直到程序能够以可接受的速率成功地对图像进行分类，以上的标签才会失去作用。它之所以被称为监督式学习，是因为算法从训练数据集学习的过程就像是一位老师正在监督学习。在我们预先知道正确的分类答案的情况下，算法对训练数据不断进行迭代预测，然后预测结果由“老师”进行不断修正。当算法达到可接受的性能水平时，学习过程才会停止。非监督式学习是利用既不分类也不标记的信息进行机器学习，并允许算法在没有指导的情况下对这些信息进行操作。当你使用非监督式学习训练人工智能时，你可以让人工智能对数据进行逻辑分类。这里机器的任务是根据相似性、模式和差异性对未排序的信息进行分组，而不需要事先对数据进行处理。非监督式学习的一个例子是亚马逊等电子商务网站的行为预测AI。它将创建自己输入数据的分类，帮助亚马逊识别哪种用户最有可能购买不同的产品(交叉销售策略)。 另一个例子是，程序可以任意地使用以下两种算法中的一种来完成男孩女孩的图像分类任务。一种算法被称为“聚类”，它根据诸如头发长度、下巴大小、眼睛位置等特征将相似的对象分到同一个组。另一种算法被称为“相关”，它根据自己发现的相似性创建if/then规则。换句话说，它确定了图像之间的公共模式，并相应地对它们进行分类。深度学习如何工作什么是深度学习，以及它是如何工作的。深度学习是一种机器学习方法 ， 它允许我们训练人工智能来预测输出，给定一组输入(指传入或传出计算机的信息)。监督学习和非监督学习都可以用来训练人工智能。Andrew Ng：“与深度学习类似的是，火箭发动机是深度学习模型，燃料是我们可以提供给这些算法的海量数据。”我们将通过建立一个公交票价估算在线服务来了解深度学习是如何工作的。为了训练它，我们将使用监督学习方法。我们希望我们的巴士票价估价师使用以下信息/输入来预测价格:神经网络神经网络是一组粗略模仿人类大脑，用于模式识别的算法。神经网络这个术语来源于这些系统架构设计背后的灵感，这些系统是用于模拟生物大脑自身神经网络的基本结构，以便计算机能够执行特定的任务。和人类一样， “AI价格评估”也是由神经元(圆圈)组成的。此外，这些神经元还是相互连接的。神经元分为三种不同类型的层次：输入层接收输入数据。在我们的例子中，输入层有四个神经元:出发站、目的地站、出发日期和巴士公司。输入层会将输入数据传递给第一个隐藏层。隐藏层对输入数据进行数学计算。创建神经网络的挑战之一是决定隐藏层的数量，以及每一层中的神经元的数量。人工神经网络的输出层是神经元的最后一层，主要作用是为此程序产生给定的输出，在本例中输出结果是预测的价格值。神经元之间的每个连接都有一个权重。这个权重表示输入值的重要性。模型所做的就是学习每个元素对价格的贡献有多少。这些“贡献”是模型中的权重。一个特征的权重越高，说明该特征比其他特征更为重要。在预测公交票价时，出发日期是影响最终票价的最为重要的因素之一。因此，出发日期的神经元连接具有较大的“权重”。每个神经元都有一个激活函数。它主要是一个根据输入传递输出的函数。 当一组输入数据通过神经网络中的所有层时，最终通过输出层返回输出数据。通过训练改进神经网络为了提高“AI价格评估”的精度，我们需要将其预测结果与过去的结果进行比较，为此，我们需要两个要素:大量的计算能力；大量的数据。训练AI的过程中，重要的是给它的输入数据集(一个数据集是一个单独地或组合地或作为一个整体被访问的数据集合),此外还需要对其输出结果与数据集中的输出结果进行对比。因为AI一直是“新的”，它的输出结果有可能是错误的。对于我们的公交票价模型，我们必须找到过去票价的历史数据。由于有大量“公交车站”和“出发日期”的可能组合，因而我们需要一个非常大的票价清单。一旦我们遍历了整个数据集，就有可能创建一个函数来衡量AI输出与实际输出(历史数据)之间的差异。这个函数叫做成本函数。即成本函数是一个衡量模型准确率的指标，衡量依据为此模型估计X与Y间关系的能力。模型训练的目标是使成本函数等于零，即当AI的输出结果与数据集的输出结果一致时（成本函数等于0）。我们如何降低成本函数呢?通过使用一种叫做梯度下降的方法。梯度衡量得是，如果你稍微改变一下输入值，函数的输出值会发生多大的变化。梯度下降法是一种求函数最小值的方法。在这种情况下，目标是取得成本函数的最小值。 它通过每次数据集迭代之后优化模型的权重来训练模型。通过计算某一权重集下代价函数的梯度，可以看出最小值的梯度方向。为了降低成本函数值，多次遍历数据集非常重要。这就是为什么需要大量计算能力的原因。 一旦我们通过训练改进了AI，我们就可以利用它根据上述四个要素来预测未来的价格。原文地址：https://aistudio.baidu.com/aistudio/projectdetail/3260244