技术突破:llamafile一键部署大模型,释放AI潜力

news2024/10/7 6:38:41

目录

  • 一、引言
  • 二、什么是llamafile?
    • 1、设计目标
    • 2、技术构成
    • 3、与传统部署方式的对比
    • 4、一键部署的优势
  • 三、核心特性
    • 1、一键部署的便捷性
    • 2、跨平台支持
    • 3、独立可执行文件
    • 4、简化的分发流程
    • 5、技术细节
    • 6、用户体验
    • 7、安全性和隐私
  • 四、部署流程详解
    • 1、下载模型
    • 2、操作系统特定的运行步骤
    • 3、运行环境配置
    • 4、访问Web界面
    • 5、命令行交互
    • 6、模型API的使用
    • 7、部署实践样例
      • 7.1 模型下载部署运行
      • 7.2 模型API调用
      • 7.3 可选参数说明
  • 五、llamafile支持说明
    • 1、llamafile支持以下操作系统(最低标准安装说明)
    • 2、llamafile支持以下CPU类型
    • 3、llamafile 对 GPU 的支持说明
  • 六、优势与局限性
    • 1、优势概述
    • 2、局限性探讨
  • 七、结语


一、引言

在人工智能的浪潮中,大型语言模型(LLM)已成为推动自然语言处理(NLP)领域进步的关键力量。它们在机器翻译、文本摘要、情感分析等多个领域展现出了卓越的能力。然而,这些强大模型的部署并非易事,传统上需要专业的知识来配置复杂的运行环境和依赖关系,这无疑增加了使用门槛,限制了技术的普及和应用。

随着技术的发展,我们一直在寻求更高效、更便捷的方式来部署和运行这些模型。正是在这样的背景下,llamafile应运而生,它是一项创新的技术,旨在简化大型语言模型的部署流程,让AI的力量触手可及。

llamafile,一个由Mozilla创新团队推出的项目,通过将模型权重和运行环境封装进单个可执行文件中,彻底改变了大型语言模型的分发和运行方式。这项技术的核心在于它的简洁性和易用性,使得即使是没有深厚技术背景的用户也能够轻松地在自己的计算机上部署和运行大型语言模型。
在这里插入图片描述

二、什么是llamafile?

llamafile是一种创新的解决方案,它允许用户通过单一的文件来部署和运行大型语言模型(LLM)。这种文件包含了模型的所有权重和必要的运行时环境,使得用户无需进行繁琐的环境配置和依赖安装。(一键部署运行)

1、设计目标

  • 简化部署:降低技术门槛,使得部署大型模型变得简单快捷。
  • 跨平台兼容性:支持多种操作系统,包括但不限于Windows、macOS、Linux。
  • 独立运行:不依赖外部环境,减少了运行时出现问题的可能性。

2、技术构成

  • llama.cpp:一个C++库,为模型提供运行所需的底层支持。
  • Cosmopolitan Libc:一个跨平台的C标准库,确保了llamafile在不同操作系统上的兼容性。
  • 模型权重:直接嵌入到llamafile中,无需额外下载或配置。

3、与传统部署方式的对比

  • 环境依赖:传统部署需要用户配置Python环境、安装依赖库等,而llamafile无需这些步骤。
  • 安装复杂性:传统部署可能需要编译代码、设置环境变量等,llamafile则通过双击运行来替代。
  • 分发效率:传统方式可能需要通过复杂的脚本或容器技术来分发模型,llamafile则通过单个文件实现快速分发。

4、一键部署的优势

  • 快速启动:用户可以迅速开始使用模型,无需等待漫长的安装过程。
  • 易于分享:开发者可以轻松地将模型分享给其他用户,无需担心环境差异导致的问题。
  • 降低维护成本:减少了因环境问题导致的维护工作,提高了模型的稳定性和可靠性。

三、核心特性

1、一键部署的便捷性

llamafile最引人注目的特性之一是它的一键部署能力。用户只需下载相应的llamafile文件,然后执行这个文件,即可启动模型。这种便捷性的背后是大量的工程努力,将模型的复杂性封装在用户友好的界面之后。

2、跨平台支持

llamafile支持多种操作系统,包括但不限于Windows、macOS、Linux等。这种跨平台的特性使得无论用户使用的是哪种操作系统,都能够轻松地部署和运行大型语言模型。

3、独立可执行文件

每个llamafile都是一个独立的可执行文件,这意味着它们包含了运行模型所需的所有依赖和配置。用户无需担心环境配置问题,也不需要安装额外的软件或库。

4、简化的分发流程

通过将模型和运行环境打包到一个文件中,llamafile简化了模型的分发流程。开发者可以轻松地分享他们的模型,而用户则可以立即开始使用,无需复杂的安装步骤。

5、技术细节

  • 权重文件的嵌入:模型的权重文件被直接嵌入到llamafile中,这不仅减少了外部依赖,也加快了模型的加载速度。
  • 自包含的运行环境:llamafile包含了一个精简的运行环境,这使得它能够在不同的系统上以一致的方式运行。
  • 动态链接库的优化:在需要时,llamafile可以动态链接到系统上的特定库,以提供额外的功能,如GPU加速。

6、用户体验

  • 无需专业知识:即使是没有深厚技术背景的用户,也能够轻松地使用llamafile。
  • 快速反馈:用户可以立即看到模型的运行结果,无需等待长时间的编译或环境搭建。
  • 灵活的交互方式:用户可以通过命令行、Web界面或其他客户端与模型进行交互。

7、安全性和隐私

  • 本地运行:由于模型在本地运行,用户的数据处理可以保持在本地,增强了隐私性。
  • 开源透明:llamafile的开源特性意味着用户可以查看和修改模型的运行代码,增加了透明度。

四、部署流程详解

1、下载模型

部署大型语言模型的第一步是获取模型文件。用户可以从HuggingFace、modelscope等平台下载所需的llamafile。这些文件通常包含了模型的权重和配置信息,并且已经过优化,以确保在不同系统上都能高效运行。

当前llamafile集合中的模型列表:
在这里插入图片描述

注意:Windows 系统不支持单个 exe 文件超过 4GB,所以大于 4GB 的模型,需要分别下载 llamafile 和 gguf 模型运行;此外,也可以使用 Windows 的 WSL 子系统(Linux)来运行,同样可以绕过 4GB 的限制

2、操作系统特定的运行步骤

  • Linux/macOS:

    1. 下载llamafile到本地。
    2. 为文件添加执行权限:chmod +x filename.llamafile
    3. 运行模型:./filename.llamafile
  • Windows:

    1. 下载并重命名llamafile,添加.exe后缀:filename.llamafile.exe
    2. 双击文件或通过命令行运行。

3、运行环境配置

  • 环境依赖:大多数情况下,llamafile不需要额外的环境依赖,因为它是一个自包含的可执行文件。
  • 特殊配置:对于需要GPU加速的情况,可能需要根据所使用的硬件安装相应的驱动程序和SDK。

4、访问Web界面

一旦模型运行起来,用户可以通过Web界面与模型进行交互。通常,llamafile会在本地启动一个Web服务器,用户只需在浏览器中输入对应的URL(如http://127.0.0.1:8080)即可访问。

5、命令行交互

除了Web界面,用户也可以通过命令行与模型进行交互。这为需要自动化或脚本化交互的用户提供了一个灵活的选择。

6、模型API的使用

对于开发者来说,llamafile还提供了类似于OpenAI的API接口,使得开发者可以通过编程方式与模型进行交互,实现更复杂的应用场景。

7、部署实践样例

7.1 模型下载部署运行

Windows 系统 (4G以内)

1)模型下载
下载地址:
Qwen1.5-14B-Chat(1.17GB)
qwen1_5-1_8b-chat-q4_k_m.llamafile
https://www.modelscope.cn/api/v1/models/bingal/llamafile-models/repo?Revision=master&FilePath=Qwen1.5-1.8B-Chat%2Fqwen1_5-1_8b-chat-q4_k_m.llamafile
2)模型运行
修改文件名,增加 .exe 后缀,如改成 qwen1_5-1_8b-chat-q4_k_m.exe
双击运行或者打开 cmd 命令行窗口,进入模型所在目录
.\qwen1_5-1_8b-chat-q4_k_m.exe
在这里插入图片描述

3)模型访问
浏览器打开 http://127.0.0.1:8080 即可开始聊天
在这里插入图片描述

4)聊天对话测试
在这里插入图片描述

Windows 系统 (大于4G)

Windows 系统不支持单个 exe 文件超过 4GB 的限制,所以需要分别下载 llamafile 和 gguf 模型运行;此外,也可以通过 Windows 的 WSL 子系统(Linux)运行,同样可以绕过 4GB 的限制
1)模型下载
下载llamafile:
https://www.modelscope.cn/api/v1/models/bingal/llamafile-models/repo?Revision=master&FilePath=llamafile-0.6.2.win.zip
下载后解压得到 llamafile-0.6.2.exe 文件。

下载 Qwen1.5-7B-Chat-GGUF 模型:
Qwen1.5-7B-Chat-GGUF: 70 亿参数的 q5_k_m 量化版本,5.15GB。
https://www.modelscope.cn/api/v1/models/qwen/Qwen1.5-7B-Chat-GGUF/repo?Revision=master&FilePath=qwen1_5-7b-chat-q5_k_m.gguf
2)模型运行
打开 cmd 或者 terminal命令行窗口,进入模型所在目录

.\llamafile-0.6.2.exe -m .\qwen1.5-7b-chat-q5_k_m.gguf -ngl 9999 --port 8080 --host 0.0.0.0

3)模型访问
浏览器打开 http://127.0.0.1:8080 即可开始聊天

Linux、Mac 系统

终端运行(注意 Mac 系统可能需要授权,在【设置】→ 【隐私与安全】点击【仍然打开】进行授权)

./qwen1_5-1_8b-chat-q4_k_m.llamafile

浏览器打开 http://127.0.0.1:8080 即可开始聊天

7.2 模型API调用

#!/usr/bin/env python3
from openai import OpenAIclient = OpenAI(
base_url="http://localhost:8080/v1", # "http://<Your api-server IP>:port"    
api_key = "sk-no-key-required"
)
completion = client.chat.completions.create(
    model="LLaMA_CPP",
    messages=[
        {"role": "system", "content": "您是一个人工智能助手。您的首要任务是帮助用户实现他们的请求,以实现用户的满足感。"},
        {"role": "user", "content": "写一个与龙有关的故事"}
]
)
print(completion.choices[0].message)

7.3 可选参数说明

-- ngl 9999 表示模型的多少层放到 GPU 运行,其他在 CPU 运行,如果没有 GPU 则可设置为 -ngl 0 ,默认是 9999,也就是全部在 GPU 运行(需要装好驱动和 CUDA 运行环境)。
-- host 0.0.0.0 web 服务的hostname,如果只需要本地访问可设置为 --host 127.0.0.1 ,如果是0.0.0.0 ,即网络内可通过 ip 访问。
-- port 8080 web服务端口,默认 8080 ,可通过该参数修改。
-- t 16 线程数,当 cpu 运行的时候,可根据 cpu 核数设定多少个内核并发运行。
-- 其他参数可以通过 --help 查看。

五、llamafile支持说明

1、llamafile支持以下操作系统(最低标准安装说明)

  1. Linux:内核版本2.6.18或更高版本(支持ARM64或AMD64架构),适用于任何如RHEL5或更新版本的分发版
  2. macOS:macOS 14 Sonoma(Darwin版本23.1.0)或更高版本(支持ARM64或AMD64架构,但仅ARM64架构支持GPU加速),Darwin内核版本15.6或更高版本理论上应该得到支持,但我们目前无法进行实际测试。
  3. Windows:windows 8或更高版本(仅支持AMD64架构)
  4. FreeBSD: FreeBSD13或更高版本(支持AMD64或ARM64架构,理论上GPU应可工作
  5. NetBSD:NetBSD9.2或更高版本(仅支持AMD64架构,理论上GPU应可工作)
  6. OpenBSD:OpenBSD 7或更高版本(仅支持AMD64架构,不支持GPU加速)

2、llamafile支持以下CPU类型

  1. AMD64架构的微处理器必须支持SSSE3指令集。如果不支持,llamafile将显示错误信息并无法运行。这意味着,如果您使用的是Intel CPU,至少需要是Intel Core或更新系列(约2006年以后);如果是AMD CPU,至少需要是Bulldozer或更新系列(约2011年以后)。如果您的CPU支持AVX或更高级的AVX2指令集,llamafile将利用这些特性以提升性能。目前AVX512及更高级指令集的运行时调度尚未得到支持。
  2. ARM64架构的微处理器必须支持ARMv8a+指令集。从Apple Silicon到64位Raspberry Pis的设备都应该兼容,只要您的权重数据能够适应内存容量。

3、llamafile 对 GPU 的支持说明

  1. 在搭载 MacOS 的 Apple Silicon 系统上,只要安装了 Xcode 命令行工具,Metal GPU 就应该能够正常工作。 在 Windows 系统上,只要满足以下两个条件,GPU 就应该能够正常工作:(1)使用我们的发行版二进制文件;(2)传递 -ngl 9999 标志。如果您只安装了显卡驱动程序,那么 llamafile 将使用 tinyBLAS 作为其数学内核库,这对于批处理任务(例如摘要生成)来说会慢一些。为了获得最佳性能,NVIDIA GPU 用户需要安装 CUDA SDK 和 MSVC;而 AMD GPU 用户则需要安装 ROCm SDK。如果 llamafile 检测到 SDK 的存在,那么它将为您系统编译一个原生模块,该模块将使用 cuBLAS 或 hipBLAS 库。您还可以通过启用 WSL 上的 Nvidia
    CUDA 并在 WSL 中运行 llamafiles 来使用 CUDA。使用 WSL 的额外好处是,它允许您在 Windows 上运行大于
    4GB 的 llamafiles。
  2. 在 Linux 系统上,如果满足以下条件,Nvidia cuBLAS GPU
    支持将在运行时编译:(1)安装了 cc 编译器;(2)传递 -ngl 9999 标志以启用 GPU;(3)在您的机器上安装了 CUDA
    开发工具包,并且 nvcc 编译器在您的路径中。
  3. 如果您的机器中同时有 AMD GPU 和 NVIDIA GPU,那么您可能需要通过传递
    –gpu amd 或 --gpu nvidia 来指定要使用的 GPU。
  4. 如果由于任何原因无法在运行时编译和动态链接 GPU 支持,llamafile 将回退到 CPU 推理。

六、优势与局限性

1、优势概述

  • 易用性: llamafile极大地简化了部署大型语言模型的复杂性,使得用户无需深入了解底层技术即可运行模型。
  • 跨平台性: 支持多种操作系统,包括Windows、macOS、Linux等,提供了广泛的适用性。
  • 快速部署: 用户可以迅速下载并运行模型,无需等待漫长的安装过程。
  • 资源共享: 易于分享的特性促进了知识的传播和资源的共享,有助于社区的协作和创新。

2、局限性探讨

  1. 硬件依赖性:尽管llamafile简化了软件部署,但运行大型语言模型仍然需要相对较强的硬件支持,特别是对于需要大量计算资源的模型。用户可能需要高性能的CPU或GPU来确保模型运行的流畅性。

  2. 更新维护:模型和底层库的更新可能需要用户定期下载新的llamafile文件,这可能会带来额外的维护工作。此外,每次更新后,用户可能需要重新适应新的功能或接口变化。

  3. 特定功能的限制:某些特定功能或优化可能需要额外的配置或依赖,这可能会增加部署的复杂性。例如,利用GPU加速可能需要用户进行特定的设置或安装相应的驱动程序。

  4. 安全性和隐私问题:虽然本地运行模型可以增强数据隐私,但这也意味着用户需要对模型的安全性负责。如果llamafile文件来源不可靠,可能会带来安全风险。

  5. 可定制性的限制:llamafile作为一个封装好的执行文件,可能在某些情况下限制了用户对模型进行定制或扩展的能力。对于需要深度定制模型以适应特定应用场景的用户来说,这可能是一个限制。

  6. 错误诊断和调试难度:由于llamafile封装了模型和环境,一旦出现问题,用户可能难以快速定位和解决问题。相比于开放的环境,黑盒式的部署可能会增加调试的难度。

  7. 平台兼容性问题:虽然llamafile支持多平台,但在一些特定的系统配置或操作系统版本上可能会出现兼容性问题,需要额外的调整或等待开发者发布补丁。

用户应根据自己的需求和资源情况,权衡llamafile的优势和局限性,选择最合适的部署方案。

七、结语

llamafile的意义
llamafile的推出标志着大型语言模型部署方式的重要转变。它不仅降低了技术门槛,还扩大了AI技术的受众范围,使得更多的人能够接触和利用这一强大的技术。

对开发者和企业的影响
对于开发者而言,llamafile提供了一个快速原型和测试模型的工具,加速了开发流程。对于企业来说,它简化了产品的集成和部署过程,有助于快速响应市场变化。

对AI技术普及的贡献
llamafile通过简化部署流程,为AI技术的普及做出了重要贡献。它让更多人能够体验到AI的强大能力,激发了对AI技术的兴趣和探索。

未来展望
随着技术的不断发展,我们期待llamafile能够继续进化,解决现有的局限性,提供更加强大和灵活的模型部署方案。同时,我们也希望看到更多的创新工具和平台出现,共同推动AI技术的进步。

最后的思考
llamafile是AI领域的一个重要里程碑,但它只是开始。随着技术的不断进步,我们期待一个更加开放、易用和高效的AI生态系统的建立,让每个人都能享受到AI带来的便利和乐趣。

相关资料链接

llamafile 模型合集:https://www.modelscope.cn/models/bingal/llamafile-models/
llamafile Github:https://github.com/Mozilla-Ocho/llamafile
llamafile 中文使用指南:https://www.bingal.com/posts/ai-llamafile-usage/

在这里插入图片描述

🎯🔖更多专栏系列文章:AIGC-AI大模型开源精选实践

😎 作者介绍:我是寻道AI小兵,资深程序老猿,从业10年+、互联网系统架构师,目前专注于AIGC的探索。
📖 技术交流:建立有技术交流群,可以扫码👇 加入社群,500本各类编程书籍、AI教程、AI工具等你领取!
如果文章内容对您有所触动,别忘了点赞、⭐关注,收藏!加入我,让我们携手同行AI的探索之旅,一起开启智能时代的大门!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1871909.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytorch课程论文设计参考

Pytorch下基于卷积神经网络的手写数字识别 论文格式 利用wps初步美化论文格式教程 wps论文格式变的的原因 格式变的根本原因是word为流式文件&#xff0c;就算同是word同一个版本不同电脑也会有可能变&#xff0c;字体变是因为没有嵌入字体然后观看的那台没有这个字体。 一、…

「51媒体」企业举行新闻发布会,如何邀请媒体到场报道

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 媒体宣传加速季&#xff0c;100万补贴享不停&#xff0c;一手媒体资源&#xff0c;全国100城线下落地执行。详情请联系胡老师。 企业举行新闻发布会时&#xff0c;邀请媒体到场报道是一个…

2018年全国大学生数学建模竞赛A题高温服装设计(含word论文和源代码资源)

文章目录 一、部分题目二、部分论文三、部分Matlab源代码问题11 求解h1h22 已知h1h2求解温度分布 问题21 求解第二层最佳厚度 四、完整word版论文和源代码&#xff08;两种获取方式&#xff09; 一、部分题目 2018 年高教社杯全国大学生数学建模竞赛题目 A 题 高温作业专用服…

Linux CentOS 宝塔 Suhosin禁用php5.6版本eval函数详细图文教程

方法一&#xff1a;PHP_diseval_extension禁用 Linux CentOS 禁用php的eval函数详细图文教程_centos php 禁用 eval-CSDN博客 这个方法make报错&#xff0c;懒得费时间处理&#xff0c;直接用第二种 方法二&#xff1a;suhosin禁用 不支持PHP8&#xff0c;官方只支持PHP7以下…

RedisConnectionException: Unable to connect to localhost/<unresolved>:6379

方法一&#xff1a;删除配置密码选项 一般是因为你在启动redsi服务的时候没有以指定配置文件启动 把application.yml文件中的redis密码注释掉 方法二 以指定配置文件启动 这样就不用删除yml文件中密码的选项了 在redis,windows.conf 中找到requirepass&#xff0c;删除掉前…

基于SSM+Vue的宠物领养平台系统(带1w+文档)

基于SSMVue的宠物领养平台系统(带1w文档) 本课题研究和开发同城宠物帮管理系统&#xff0c;让安装在计算机上的该系统变成管理人员的小帮手&#xff0c;提高同城宠物帮信息处理速度&#xff0c;规范同城宠物帮信息处理流程&#xff0c;让管理人员的产出效益更高。 项目简介 基…

js或ts中对象如何循环遍历获取名字和值

数组循环有多种方法&#xff0c;但是对象循环还是会遇到一些问题 分开获取key或value let names{name:kaka,age:12}获取key值代码&#xff1a; Object.keys(names).forEach(name>{console.log(name) })结果&#xff1a; 获取value值代码&#xff1a; Object.values(name…

Java代码操作MySQL数据库——JDBC编程

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…

【面试干货】静态类型的特点及其在Java中的应用

【面试干货】静态类型的特点及其在Java中的应用 1、静态类型的特点1.1 静态属性1.2 静态方法1.3 静态类 2、静态类型在Java中的应用 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在面向对象编程中&#xff0c;静态类型 是一种重要的概念&…

C++之迭代器分类与List容器的使用

目录 迭代器的分类 List容器 ​编辑 总结 在Vector容器中我们学习了迭代器&#xff0c;知道了迭代器的作用和使用方法&#xff0c;本期我们将进一步学习迭代器的概念以及list容器的使用。 迭代器的分类 以算法库中的两个算法为例&#xff1a; sort算法是用来排序的&#…

kafka-高可用设计详解(集群架构、备份机制、消费者组、重平衡)

文章目录 kafka高可用设计集群架构Kafka集群选举ISR与OSRLEO和HWKafka分区Leader选举Leader Replica选举策略Leader Replica选举过程 副本机制(Replication&#xff09;消费者组和再均衡消费者组再均衡(重平衡) 更多相关内容可查看 kafka高可用设计 Apache Kafka 的高可用设计…

【Flink】Flink SQL

一、Flink 架构 Flink 架构 | Apache Flink 二、设置TaskManager、Slot和Parallelism 在Apache Flink中&#xff0c;设置TaskManager、Slot和Parallelism是配置Flink集群性能和资源利用的关键步骤。以下是关于如何设置这些参数的详细指南&#xff1a; 1. TaskManager 设置 …

SAME70硬件擦除flash方法(ATSAME70Q21B-ANT

1.PB12高电平&#xff0c;当PB12置低电平时&#xff0c;将擦除所有数据&#xff1b; 2.ATSAME70Q21B-ANT芯片通过Microchip Studio 7.0仿真器烧录的…elf和hex等文件&#xff0c;读取之后&#xff0c;再烧写&#xff0c;还是可以使用&#xff0c;故需要锁定芯片代码&#xff…

Python27 神经网络中的重要概念和可视化实现

1. 神经网络背后的直观知识 神经网络的工作方式非常相似&#xff1a;它接受多个输入&#xff0c;经过多个隐藏层中的多个神经元进行处理&#xff0c;并通过输出层返回结果&#xff0c;这个过程在技术上称为“前向传播”。 接下来&#xff0c;将神经网络的输出与实际输出进行比…

STM32_hal库学习(2)-按键(中断/非中断)控制LED

在这篇文章我将使用两种方法实现按键控制&#xff0c;分别使用非中断控制和中断控制LED 非中断按键控制LED&#xff1a; 对于非中断实现按键控制led&#xff0c;我将直接从上一个工程led闪烁进行修改 STM32F103—Hal库的学习&#xff08;1&#xff09;LED灯闪烁-CSDN博客 非…

<sa8650>QCX ISP Tuning 使用详解 — Tuning前置条件

<sa8650>QCX ISP Tuning 使用详解 — Tuning前置条件 一 如何安装 Qualcomm Chromatix™ 摄像头校准工具二 如何使用 Qualcomm Chromatix™ tuning工具创建tuning项目2.1 创建工程前提依赖2.2 创建工程2.3 添加场景2.4 编辑区域触发器三 如何创建Tuning 树一 如何安装 Qualco…

TypeScript(笔记版)

简介&#xff1a; nvm安装必须先把自己的node卸了&#xff0c;再去安装nvm TS就是js的超集 对js进行了扩展 浏览器不支持ts&#xff0c;要转换为js才可以。 ts是用来编程人员爽的 js的写法拿到ts也可以&#xff0c;ts代码量更大&#xff0c;但ts代码更加清晰 可以在playg…

C++精解【8】

文章目录 运算,- 加减法* / 乘除法逐元 乘法逐元 除法逐元综合运算矩阵乘法与加减法 转置、共轭、伴随矩阵点乘法,叉积 运算 ,- 加减法 逐元加减法 #include <iostream> #include "e:/eigen/Eigen/Dense" using namespace std;int main() {Eigen::Matrix2d …

并发编程工具集——Lock和Condition(上)(十二)

简述&#xff1a;Java SDK 并发包通过 Lock 和 Condition 两个接口来实现管程&#xff0c;其中 Lock 用于解决互斥问题&#xff0c;Condition 用于解决同步问题。 再造管程的理由和期望 理由&#xff1a;synchronized 没有办法解决“破坏不可抢占条件方案”。 原因是synchroniz…

可燃气体报警器计量校准:重要性与实践指南

在燃气机锅炉房、酒店厨房以及天然气管路等关键场所&#xff0c;可燃气体检测报警器的准确性和可靠性直接关系到人们的生命安全和财产安全。因此&#xff0c;对可燃气体报警器进行定期的计量校准至关重要。 在这篇文章中&#xff0c;佰德将从校准的必要性、方法与步骤、实际案…