网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化资料的朋友,可以戳这里获取
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
修改完成之后记得使用命令source /etc/profile,使修改生效
4. JDK环境验证 java -version
第六步:安装Hadoop 1. 下载Hadoop 3.1.3 Index of /dist/hadoop/common
2. 安装Hadoop 同样通过mobaxterm的上的SFTP功能(或其他工具)上传到/export/software目录下,然后解压到/export/servers目录下
cd /export/software
mobaxterm的上的SFTP功能
tar -zxvf hadoop-3.1.3.tar.gz -C /export/servers/
3. 配置Hadoop系统环境变量 vim /etc/profile
配置环境变量
export HADOOP_HOME=/export/servers/hadoop-3.1.3
export PATH=: H A D O O P _ H O M E / b i n : HADOOP\_HOME/bin: HADOOP_HOME/bin:HADOOP_HOME/sbin:$PATH
同时添加hadoop为root用户,否则启动的HDFS的时候可能会报错
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
执行source /etc/profile命令,让配置生效
4. 验证Hadoop环境 hadoop version
查看Unicode和中文互转工具:Unicode与中文互转|16进制Unicode编码在线转换|反斜杠u(\u)编码|Java转义字符还原-站长工具 (msxindl.com)
获取响应内容如下:
{"code":10000,"msg":"\u6210\u529f"} Unicode转换为中文字符
新建解码方法:
/** * 将Unicode编码转换为中文字符串 * @param str Unicode编码 * @return */ public static String unicodeToCN(String str) { Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))"); Matcher matcher = pattern.matcher(str); char ch; while (matcher.find()) { ch = (char) Integer.parseInt(matcher.group(2), 16); str = str.replace(matcher.group(1), ch + ""); } return str; } 在响应/打印前调用unicodeToCN方法
public static void main(String[] args) { /** \u6210\u529f ==> 成功 */ String toCN = unicodeToCN("\\u6210\\u529f"); System.out.println(toCN); // 成功 } 中文字符转换为Unicode
如果直接执行flutter build ios:
Building com.example.myTimeApp for device (ios-release)...
════════════════════════════════════════════════════════════════════════════════
No valid code signing certificates were found
You can connect to your Apple Developer account by signing in with your Apple ID
in Xcode and create an iOS Development Certificate as well as a Provisioning Profile for your project by:
1- Open the Flutter project's Xcode target with
open ios/Runner.xcworkspace
2- Select the 'Runner' project in the navigator then the 'Runner' target
1、ADB介绍
ADB全称为Android Debug Bridge,就是起到调试桥的作用。通过ADB我们可以在Eclipse中方便通过DDMS来调试Android程序,说白了就是debug工具。
2、ADB的下载和安装
官网下载地址:http://adbdownload.com/
根据自己的操作系统选择下载对应的安装包,本文以Windows为例
安装方式:
(1)下载完成后解压压缩包到对应目录,这里我解压到了D盘
(2)在系统环境变量中path目录下配置解压缩的路径
(3)检查是否安装成功
win+R输入cmd进入控制台,输入adb,如下图所示则安装成功
3、ADB常用命令
查看连接的设备adb devices安装apk adb install 安装包路径
-r 覆盖安装
-d 降版本安装
卸载APPadb uninstall 查看日志adb logcat获取手机中的文件adb pull <remote> <local>向手机中写入文件adb push <local> <remote>进入shell模式adb shell查看bug报告adb bugreport 4、常见cmd命令
清屏cls关闭控制台exit查看本机ipipconfig跳转到指定磁盘D:或C:跳转到指定文件夹cd打开一个新的控制台cmd显示文本文件的内容type
在ChatGPT-Next-Web的基础上,增加注册登录,额度限制,邀请,敏感词,支付,基于docker一键部署。提供后台管理系统,可配置标题、欢迎词、额度不足提醒、公告
1、首页 2、聊天 3、登录 4、注册 5、个人中心 6、支付和兑换 后台支持 此分叉版本的主要变更如下:
全新的UI界面(部分界面还待更新)添加Midjourney-Proxy(Plus)接口的支持,对接文档,支持的接口如下: /mj/submit/imagine /mj/提交/想象 /mj/submit/change /mj/提交/更改 /mj/submit/blend /mj/提交/混合 /mj/submit/describe /mj/提交/描述 /mj/image/{id} (通过此接口获取图片,请必须在系统设置中填写服务器地址!!) /mj/task/{id}/fetch (此接口返回的图片地址为经过One API转发的地址) /task/list-by-condition /mj/submit/action (仅midjourney-proxy-plus支持,下同) /mj/submit/modal /mj/submit/shorten /mj/提交/缩短 /mj/task/{id}/image-seed /mj/insight-face/swap (InsightFace)
/mj/insight-face/swap (洞察脸)支持在线充值功能,可在系统设置中设置,当前支持的支付接口: 易支付支持用key查询使用额度: 配合项目neko-api-key-tool可实现用key查询使用渠道显示已使用额度,支持指定组织访问分页支持选择每页显示数量兼容原版One API的数据库,可直接使用原版数据库(one-api.db)支持模型按次数收费,可在 系统设置-运营设置 中设置支持渠道加权随机数据看板可设置令牌能调用的模型支持Telegram授权登录。 系统设置-配置登录注册-允许通过Telegram登录对@Botfather输入指令/setdomain选择你的bot,然后输入http(s)://你的网站地址/loginTelegram Bot 名称是bot username 去掉@后的字符串 模型支持 此版本额外支持以下模型:
第三方模型 gps (gpt-4-gizmo-*)智谱glm-4v,glm-4v识图Anthropic Claude 3 (claude-3-opus-20240229, claude-3-sonnet-20240229)
人类学克劳德 3 (克劳德-3-opus-20240229, 克劳德-3-十四行诗-20240229)Ollama,添加渠道时,密钥可以随便填写,默认的请求地址是http://localhost:11434,如果需要修改请在渠道中修改Midjourney-Proxy(Plus)接口,对接文档零一万物 您可以在渠道中添加自定义模型gpt-4-gizmo-*,此模型并非OpenAI官方模型,而是第三方模型,使用官方key无法调用。
渠道重试 渠道重试功能已经实现,可以在设置->运营设置->通用设置设置重试次数,建议开启缓存功能。
如果开启了重试功能,第一次重试使用同优先级,第二次重试使用下一个优先级,以此类推。
缓存设置方法 REDIS_CONN_STRING:设置之后将使用 Redis 作为缓存使用。 例子:REDIS_CONN_STRING=redis://default:redispw@localhost:49153MEMORY_CACHE_ENABLED:启用内存缓存(如果设置了REDIS_CONN_STRING,则无需手动设置),会导致用户额度的更新存在一定的延迟,可选值为 true 和 false,未设置则默认为 false。 例子:MEMORY_CACHE_ENABLED=true 开源地址 zhang-wei-jian/AnyAiWeb: 在ChatGPT-Next-Web的基础上,增加注册登录,额度限制,邀请,敏感词,支付,基于docker一键部署。提供后台管理系统,可配置标题、欢迎词、额度不足提醒、公告http://aisuperhero.
JetBrains系列软件安装目录 一、JetBrains IntelliJ IDEA v2024.1 安装教程 (Java集成开发IDE)
二、JetBrains WebStorm v2024.1 安装教程 (JavaScript集成开发IDE)
三、JetBrains PhpStorm v2024.1 安装教程 (PHP集成开发IDE)
四、JetBrains PyCharm Pro v2024.1 安装教程 (Python集成开发IDE)
五、JetBrains RubyMine v2024.1 安装教程 (Rails/Ruby集成开发环境)
六、JetBrains GoLand v2024.1 安装教程 (Go语言集成开发IDE)
七、JetBrains CLion v2023.3.4 安装教程 (C/C++ 集成开发IDE)
八、JetBrains DataSpell v2024.1 安装教程 (数据科学家开发环境)
九、JetBrains DataGrip v2024.1 安装教程 (多引擎数据库管理开发)
十、JetBrains Rider v2024.1 安装教程 (.NET集成开发IDE)
前言 JetBrains GoLand是一款专门为Go语言开发人员构建的跨平台的集成开发环境。动态错误检测和修复建议、快速安全重构、智能代码完成、无效代码检测和文档提示可以帮助新手和有经验的Go开发人员高效地创建可靠的代码。GoLand还支持JavaScript,TypeScript,NodeJS,SQL,DB,Docker,Kubernetes 和 Terraform。
一、下载地址 下载链接:http://dygod/ITSource 点击搜索: GoLand
二、安装步骤 1、解压文件,解压后如下 2、对 GoLand进行安装,根据自己需求自定义安装 3、安装完后先不要运行,点击【完成】就行 三、使用步骤 1、返回我们解压的文件,访问crack文件夹,ja-netfilter-all-2022.
下载安装 wcferry 库 通过 pip 快速安装 wcferry
pip install wcferry 免责声明:仅供学习和技术研究使用,不得用于任何商业或非法行为,否则后果自负。
基本原理
当微信收到消息时,抢在微信处理(显示到页面)前,先让工具处理,处理完之后再交还给原来的处理模块。需要发送消息时,模拟微信发送消息,组装好消息体,调用微信发送消息的模块。获取联系人,则是遍历一块特定的内存空间。通过好友验证,则是组装好验证信息,调用微信的验证模块。数据库相关功能,则是通过获取到数据库句柄,基于 sqlite3 的接口来执行。
博客地址:微信机器人 DIY 从 0 到 1
Wcf 函数说明 WeChatFerry:一个玩微信的工具(函数说明)
函数名称描述返回类型cleanup关闭连接 回收资源Nonekeep_running阻塞进程(让 RPC 一直维持连接)is_receiving_msg是否已启动接收消息功能boolget_qrcode获取登录二维码(已经登录则返回空字符串)stris_login检查登录状态boolget_self_wxid获取登录账号的 wxidstrget_msg_types获取所有消息类型Dictget_contacts获取所有联系人List[Dict]get_friends获取所有好友List[Dict]get_dbs获取数据库List[str]get_tables获取某数据库下的表List[Dict]get_user_info获取登录账号个人信息Dictget_audio_msg取语音消息并转成 MP3strsend_text发送文本消息(可 @)int_download_file下载文件str_process_path处理路径(如果是网络路径则下载文件)strsend_image发送图片(非线程安全)intsend_file发送文件(非线程安全)intsend_xml发送 XMLintsend_emotion发送表情intsend_rich_text发送富文本消息intsend_pat_msg拍一拍群友intforward_msg转发消息intget_msg从消息队列中获取消息WxMsgenable_receiving_msg允许接收消息boolenable_recv_msg允许接收消息(旧接口)booldisable_recv_msg停止接收消息boolquery_sql执行 SQL 查询List[Dict]accept_new_friend接受好友申请intrefresh_pyq刷新朋友圈intdownload_attach下载附件intget_info_by_wxid通过 wxid 查询微信号昵称等信息dictrevoke_msg撤回消息intdecrypt_image解密图片strget_ocr_result获取 OCR 结果strdownload_image下载图片stradd_chatroom_members添加群成员intdel_chatroom_members删除群成员intinvite_chatroom_members邀请群成员intget_chatroom_members获取群成员Dictget_alias_in_chatroom获取群名片strreceive_transfer接收转账int 电脑端检测登录微信 from wcferry import Wcf wcf = Wcf() 检测微信登陆状态 检查当前 PC 端微信登陆状态?
from wcferry import Wcf wcf = Wcf() print(wcf.is_login()) 获取登录账号信息 获取当前 PC 端微信账号信息?
from wcferry import Wcf wcf = Wcf() print(wcf.
1、input输入框只能输入正整数和0 <el-form-item label="设备数量" > <el-input v-model="value" onkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))" placeholder="请输入设备数量" /> </el-form-item> 那你就用 οnkeyup="value=(value.replace(/\D/g,'')==''?'':parseInt(value))"
2、如果是正数负数0,包括小数都可以 <el-input v-model="value" onkeyup="value=value.replace(/[^\-?\d.]/g,'')" placeholder="请输入" /> 那就用这个οnkeyup="value=value.replace(/[^\-?\d.]/g,'')",不能输入汉字和字母
3、不能输入中文,可以输入正数、负数、小数和字母 <el-input v-model="value" placeholder="请输入" onkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,'')" /> οnkeyup="value=value.replace(/[\u4E00-\u9FA5]/g,'')"
4、对经纬度的限制 网页部分
<el-col :span="12"> <el-form-item label="经度" prop="longitude"> <el-input v-model="form.longitude" placeholder="请输入经度" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="纬度" prop="latitude"> <el-input v-model="form.latitude" placeholder="请输入纬度" /> </el-form-item> </el-col> rule部分
longitude: [{ validator: checkLong, trigger: "change" }], latitude: [{ validator: checkLat, trigger: "change" }], 验证部分
data() { //经度 var checkLong = (rule, value, callback) => { // const longrg = /^(\-|\+)?
本文参加百度的有奖征文活动,更主要的也是借此机会去体验一下 AI 生成 PPT 的产品的现状,因此本文是设身处地从用户的角度去体验、使用这个产品,并反馈最真实的建议和意见,除了明确该产品的优点之外,也发现了不少缺陷和问题。
体验时间:2024/05/08
体验环境:Windows 10,该产品不支持苹果系统。
文章目录 ChatPPT:AI驱动PPT生成工具测评写在最前一、产品体验1.1 下载及安装1.2 免费版体验1.3 付费版使用1.4 进阶体验 二、功能特点三、优缺点3.1 优点3.2 缺点 四、总结 ChatPPT:AI驱动PPT生成工具测评 写在最前 AI自动生成PPT工具已经有很多个了,不过能用的才是好工具,现在测评一款由必优科技推出的AI驱动PPT生成工具 ChatPPT, 🟢免费版也能用。接下来会分别介绍免费版和付费版的使用体验以及区别。
付费版的年费可通过百度智能云千帆 AI 原生应用商店购买,点此跳转。更加实惠,还多送 90 天的时间,如下图所示。
月租在官网上是 60r/月,都比年费的一半还贵了,如果要买的话建议直接从百度这边买。
一、产品体验 总结:ChatPPT 的功能还是比较全的,支持文件/网页/指令生成 PPT,并且每个类别支持的种类的覆盖面也非常广,功能广度上(即适用性)已经足够满足大部分日常的需求,而深度(即易用性、实用性)还需要进一步努力。
下文中,所有的重点我均写在了每节的开头,想省时间的话直接看开头即可。
1.1 下载及安装 总结:下载和安装非常便利,不过 WPS 登录账号时有卡顿现象。
打开 https://www.chat-ppt.com/,会弹出要求微信扫码登录并绑定手机号。这一步可以不做,如果登录了就可以在网页上在线体验 ChatPPT。如果不想登录可以点此链接直接下载 ChatPPT 1.3.9 版本插件。
双击下载得到的安装包,不勾选 MotionGo,并修改默认安装路径进行安装。
装好后,默认会打开系统中的 Office。不过我不想用 Office,这篇测评里我使用的是 WPS。打开 WPS之后,可以看到 Chat PPT 直接出现在菜单工具栏,没有问题,不需要额外配置:
随便点击一个功能,都会提示完整的功能需要登录:
我点击登录后,发现 WPS 卡住了。强行退出重开之后可以看到成功登录。
1.2 免费版体验 总结:免费版和付费版的使用体验上并没有什么太大的区别,只是免费版的使用次数有上限,而付费版上限更高。
缺陷1:PPT 主题风格选择时无法预览内页,建议❗ 增加主题风格内页预览。
缺陷2:PPT 生成完毕后会弹出大量 “是否保存 xxx 演示文稿的弹窗”,建议❗ 排查程序问题。
如果能登录ssh,那么ssh到zk所在服务器,然后输入echo stat|nc localhost 2181,结果如下没有nc命令的话 先yum -y install nc 如果不能登录ssh(例如是云服务),那么使用另一台电脑telnet到zk端口即可查看,命令是telnet 10.20.144.50 2181(IP和端口根据实际情况),在连上后,输入srvr,输入时看不到回显没关系,输入完后即可得到版本信息,如下:
大家好,在今天这个数据复杂性日益增长和高维信息丰富的时代,传统数据库在高效处理和提取复杂数据集方面已显得捉襟见肘。向量数据库,作为一项应运而生的技术创新,成功解决了数据领域在不断扩展过程中所面临的挑战。
1.向量数据库概述 向量数据库因其高效存储、索引和搜索高维数据点(即向量)的独特能力,在多个领域逐渐凸显其重要性。这些数据库专门设计来处理以多维空间中的向量形式表示的数据条目。向量可以涵盖各种信息,包括数值特征、文本或图像的嵌入,甚至是分子结构等复杂数据。
为了更直观地理解向量数据库,下面用一个2D网格来形象化其工作方式。在这个网格中,一个轴代表动物的颜色(棕色、黑色、白色),另一个轴代表动物的大小(小、中、大)。
在这个表示中:
图像A:棕色,中等大小
图像B:黑色,小尺寸
图像C:白色,大尺寸
图像E:黑色,大尺寸
可以想象,每张图片都是根据其颜色和大小属性在网格上对应的一个点。这个简化的网格模型揭示了向量数据库的可视化表示方式。实际的向量空间拥有更多的维度,并采用更为复杂的搜索和检索技术。
2.向量存储机制 向量数据库通过向量嵌入技术存储数据,将各类对象(如商品、文档或数据点)映射为多维空间中的向量。每个对象都对应一个向量,该向量捕捉了对象的多样特征或属性。设计这些向量的目的是,相似对象在向量空间中彼此靠近,而不相似的对象则相隔较远。
可以将向量嵌入比作一种特殊的编码,描述了对象的关键特征。例如,如果要表示不同类型的动物,并希望相似的动物具有相似的编码,那么猫和狗可能拥有相近的编码,因为它们共同特征,比如有四条腿和毛等。相反,鱼和鸟等差异较大的动物则会有较大的编码差异。
在向量数据库中,这些嵌入被用来存储和组织对象。当用户想要寻找与特定查询相似的对象时,数据库会分析这些嵌入,计算查询嵌入与其他对象嵌入之间的距离,从而迅速定位与查询最为相似的对象。
以音乐流媒体应用为例,歌曲可以通过捕捉音乐特征(如节奏、流派、使用的乐器)的嵌入被表示为向量。当用户搜索与他们最喜欢的曲目相似的歌曲时,应用的向量数据库会通过比较这些嵌入来推荐高度匹配用户口味的歌曲。
总之,向量嵌入是一种将复杂对象转化为数值向量的方法,能够捕捉对象的特征。向量数据库利用这些嵌入,根据它们在多维空间中的位置,能够高效地搜索和检索出相似或相关的对象。
3.工作流程 a.用户查询:
向ChatGPT应用程序输入问题或请求。
b.嵌入创建:
应用程序将输入转换为一个紧凑的数值形式,即向量嵌入。
这个向量嵌入数学化地捕捉了用户查询的核心含义。
c.数据库比较:
将生成的向量嵌入与数据库中存储的向量嵌入进行比较。
通过计算相似性,系统能够识别出与查询内容最相关的嵌入。
d.输出生成:
数据库据此生成一个响应,该响应由与查询含义高度匹配的嵌入组成。
e.用户响应:
系统将包含与这些嵌入相关联的相关信息的响应发送回给用户。
f.后续查询:
当用户发起新的查询时,嵌入模型会创建新的向量嵌入。
这些新嵌入用于在数据库中检索相似的向量嵌入,从而与原始查询建立新的联系。
4.相似性度量 向量数据库采用多种数学技术来衡量向量之间的相似度,其中一种常见方法是余弦相似性。
以在搜索引擎中搜索“世界上最好的板球运动员”为例,搜索结果的生成过程包含多个步骤,其中余弦相似性是一个关键环节。
在这一过程中,搜索查询的向量表示与数据库中所有运动员档案的向量表示通过余弦相似性进行比较。两个向量的相似度越高,其余弦相似性得分就越高。
说明: 以上仅为示例。实际上,搜索引擎使用的算法远比简单的向量相似性复杂。它们还会综合考虑用户的地理位置、搜索历史、信息源的权威性等多种因素,以提供更为相关和个性化的搜索结果。
5.应用领域 高效的相似性搜索:
向量数据库擅长执行相似性搜索,能够快速找到与查询向量最匹配的向量。这在推荐系统(如寻找相似产品或内容)、图像与视频检索、面部识别以及信息检索等多个应用场景中发挥着重要作用。
高维处理:
高维数据的处理一直是传统关系数据库的软肋,因为随着维度的增加,数据点间的距离变得难以界定。向量数据库则专门设计来高效处理这类数据,适用于自然语言处理、计算机视觉和基因组学等高维数据处理密集型领域。
机器学习与AI:
向量数据库常用于存储机器学习模型生成的嵌入向量,这些向量能够捕捉数据的核心特征,并用于聚类、分类和异常检测等任务。
实时应用优化:
许多向量数据库都针对实时或近实时查询进行了优化,适用于需要快速响应的应用场景,如电商推荐系统、欺诈检测以及物联网传感器数据监控。
个性化体验与用户画像:
向量数据库通过深入理解用户偏好,为流媒体服务、社交媒体和在线市场等平台提供个性化体验。
空间与地理数据:
向量数据库能有效处理地理信息数据,对地理信息系统(GIS)、位置服务和导航应用至关重要。
医疗保健和生命科学:
在医疗领域,向量数据库用于存储和分析遗传序列、蛋白质结构等分子数据,推动药物发现、疾病诊断和个性化医疗的发展。
数据融合与集成:
向量数据库能够整合不同来源和类型的数据,为多模态数据分析提供更全面的视角,如结合文本、图像和数值数据。
多语言搜索:
向量数据库支持创建多语言的搜索引擎,通过将文本文档在共同空间中向量化,实现不同语言间的相似性搜索。
图数据表示:
向量数据库在社交网络分析、推荐系统和欺诈检测等领域中,能够高效地表示和处理图数据。
6.向量数据库在数据时代的战略地位 在现代应用中,随着高维数据量的激增,向量数据库扮演着重要的角色,并且正面临日益增长的市场需求。随着各行各业越来越多地采用机器学习、人工智能和数据分析等技术,高效地存储、搜索和分析复杂数据的需求变得极为迫切。
向量数据库赋予企业强大的相似性搜索能力,支持个性化推荐和精准内容检索,从而能显著提升用户体验并优化决策过程。
向量数据库的应用横跨电子商务、内容平台、医疗保健乃至自动驾驶车辆等多个领域,其需求主要来自于向量数据库处理多样化数据类型和提供实时精确结果的能力。
面对数据复杂性和体量的不断增长,向量数据库以其可扩展性、处理速度和分析准确性,成为挖掘有价值洞见、推动各行业创新的重要工具。
文章目录 简介支持的模型列表2. 添加自定义数据集3. lora 微调4. 大模型 + lora 权重,部署问题 参考资料 简介 文章列表:
llama-factory SFT系列教程 (一),大模型 API 部署与使用llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署
llama-factory SFT系列教程 (三),chatglm3-6B 命名实体识别实战
llama-factory SFT 系列教程 (四),lora sft 微调后,使用vllm加速推理 支持的模型列表 模型名模型大小默认模块TemplateBaichuan27B/13BW_packbaichuan2BLOOM560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value-BLOOMZ560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value-ChatGLM36Bquery_key_valuechatglm3DeepSeek (MoE)7B/16B/67Bq_proj,v_projdeepseekFalcon7B/40B/180Bquery_key_valuefalconGemma2B/7Bq_proj,v_projgemmaInternLM27B/20Bwqkvintern2LLaMA7B/13B/33B/65Bq_proj,v_proj-LLaMA-27B/13B/70Bq_proj,v_projllama2Mistral7Bq_proj,v_projmistralMixtral8x7Bq_proj,v_projmistralOLMo1B/7Batt_projolmoPhi-1.5/21.3B/2.7Bq_proj,v_proj-Qwen1.8B/7B/14B/72Bc_attnqwenQwen1.50.5B/1.8B/4B/7B/14B/72Bq_proj,v_projqwenStarCoder23B/7B/15Bq_proj,v_proj-XVERSE7B/13B/65Bq_proj,v_projxverseYi6B/9B/34Bq_proj,v_projyiYuan2B/51B/102Bq_proj,v_projyuan 参考自:https://zhuanlan.zhihu.com/p/689333581
默认模块 作为 --lora_target 参数的默认值,也可使用 --lora_target all 参数指定全部模块;
–template 参数可以是 default, alpaca, vicuna 等任意值。但“对话”(Chat)模型请务必使用对应的模板。
项目所支持模型的完整列表请参阅 constants.py。
2. 添加自定义数据集 LLaMA-Factory 数据集说明,参考该文件给出的说明,在dataset_info.json 文件中添加配置信息;
参考如下数据集格式,定义自定义数据集;
[ { "instruction": "用户指令(必填)", "input": "用户输入(选填)", "output": "模型回答(必填)", "system": "系统提示词(选填)", "history": [ ["第一轮指令(选填)", "
一、允许“任何来源”开启
M1 mac打开【系统偏好设置】,选择【安全性与隐私】可以看到【任何来源】已经选定。
接着打开文件进行安装。
如果没有看到“任何来源”的选项,如果不开启“任何来源”的选项,会直接影响到无法运行的第三方应用。开启“任何来源”的方法如下:
【启动台】,选择【终端】,如下图所示:
sudo spctl --master-disable 然后回车,继续输入密码,然后回车。再重新打开【系统偏好设置】,选择【安全性与隐私】。
二、如果显示为『任何来源』但还是显示“已损坏,无法打开。 您应该将它移到废纸篓”,要用这种方法:
打开 “访达”(Finder)进入 “应用程序” 目录,找到该软件图标,将图标拖到刚才的终端窗口里面,会得到如下组合(如图所示):
sudo xattr -r -d com.apple.quarantine /Applications/WebStrom.app 回到终端窗口按回车,输入系统密码回车即可。
接着重新打开安装软件,就可以正常安装了。
附:
macOS 支持使用类似 Linux 的 API 从文件或目录中列出、 获取、设置、和删除扩展属性。在命令行中,这些能力通过xattr实用程序公开。xattr usage使用如下:
usage: xattr [-l] [-r] [-s] [-v] [-x] file [file ...] xattr -p [-l] [-r] [-s] [-v] [-x] attr_name file [file ...] xattr -w [-r] [-s] [-x] attr_name attr_value file [file ...] xattr -d [-r] [-s] attr_name file [file .
XTuner和Unsloth都是用于大型语言模型(LLM)训练和微调的工具,但它们在设计理念、技术实现和性能表现上存在一些差异。
技术架构与支持的模型规模: XTuner支持千亿级参数的模型,并能够处理超过百万个tokens的序列。它通过序列并行来扩展ZeRO3的能力边界,适用于超长上下文的训练需求[1][2][3]。Unsloth则专注于提高训练速度和减少显存占用,其框架基于triton优化模型训练速度和显存占用,特别是在微调阶段表现出色[4][5][12]。性能提升: XTuner提供了多种加速策略,如使用DeepSpeed库进行训练加速[6][7],并且支持在单个8GB GPU上微调7B LLM,也能在多节点环境中微调超过70B的模型[18]。Unsloth则宣称可以使LLM训练速度提升30倍,同时显存使用减少60%[8]。具体到实际应用中,例如Llama3-8B模型,开启Unsloth后训练速度提升44.35%,训练时间减少30.72%,显存占用减少42.58%[5]。易用性与开源性: XTuner作为一个开源项目,提供了详细的文档和教程,方便用户理解和使用[9][13][14]。Unsloth同样是开源项目,它通过手动推导计算密集型数学步骤和手写GPU内核,无需硬件更改即可显著加快训练速度[17][20]。 XTuner和Unsloth各有优势。XTuner更适合需要处理超长上下文或大规模参数模型的场景,而Unsloth则在提高训练速度和节省显存方面表现更为突出。用户应根据自己的具体需求选择最合适的工具。
XTuner和Unsloth在处理超长上下文序列时的具体技术实现和优势是什么? XTuner和Unsloth在处理超长上下文序列时各自采用了不同的技术实现和优势。
对于XTuner,其主要优势在于其能够支持超过百万个tokens的超长序列训练,并且可以结合ZeRO3显存优化策略来训练大尺寸模型[25]。此外,XTuner集成了多个训练加速算子,使其在序列长度较短时具有一定的速度优势,尽管当序列长度逐渐变长时,Decoder Layer中的激活值可能会占用大量的显存资源[21]。XTuner的序列并行算法不仅支持长序列训练,还可直接训练Transformers算法库内和HF模型[25]。
另一方面,Unsloth的优势在于其能够显著减少内存使用量,同时提高训练速度。根据证据,使用Unsloth进行微调可以使上下文长度增长六倍,而内存使用量减少60%,允许批处理增加6倍[22][27]。此外,Unsloth还提供了Max产品,可以在不损失精度的情况下提高20%的精度,或在保持相同计算效率的同时显著降低VRAM的使用量[22][27]。
总结来说,XTuner通过其序列并行算法和显存优化策略,适合于处理极长序列的大模型训练。而Unsloth则通过减少内存使用和提高训练速度,特别适合于需要快速处理大量数据的场景。
XTuner支持的模型规模上限与DeepSpeed库的关系及其对训练速度的影响如何? XTuner支持的模型规模上限与DeepSpeed库的关系主要体现在XTuner通过集成DeepSpeed技术,能够优化大规模模型的训练过程。XTuner内置了多种策略,如ZeRO-1、ZeRO-2等,这些策略都是基于DeepSpeed库开发的[31][36]。
DeepSpeed库本身是一个开源的深度学习训练优化库,它提供了多种优化策略,如混合精度训练、数据并行、模型并行等,这些策略可以显著提高大规模模型训练的效率和可扩展性[37][40]。特别是ZeRO系列策略,它通过减少模型参数存储需求来降低显存使用,从而允许更大的模型在有限的硬件资源上进行训练。例如,ZeRO-2策略使得1000亿参数模型的训练速度比传统方法快10倍[33]。
对于XTuner来说,集成DeepSpeed不仅提高了其对大规模模型训练的支持能力,还可能进一步提升训练速度。由于XTuner已经支持ZeRO策略,这意味着它能够利用DeepSpeed库中的这些高级优化技术来处理更大规模的模型[36]。此外,XTuner还支持其他技术如QLoRA和FSDP,这些技术同样可以在不同规格的硬件上提供有效的训练解决方案[32]。
总结来说,XTuner通过集成DeepSpeed库中的ZeRO等策略,不仅扩展了其支持的大模型规模上限,还有助于提高训练速度。
Unsloth在减少显存占用方面的具体策略和技术细节是什么? Unsloth在减少显存占用方面采取了多种策略和技术细节。首先,Unsloth通过微调Llama3-8B模型,实现了显著的速度提升和显存节省。具体来说,它能够将Llama3-8B模型的训练速度提高44.35%,同时显存占用减少42.58%,使得最少只需要7.75GB的显存[41]。此外,Unsloth还支持Qwen2模型结构,包括Qwen1.5系列的Dense模型,这进一步扩展了其应用范围并优化了资源使用[42]。
在技术实现方面,Unsloth基于triton框架进行优化,这不仅提高了模型训练的速度,还有效降低了显存的需求。例如,在使用A100 80GB GPU时,Unsloth能够容纳40K个总令牌(8192 * bsz of 5),而传统的HF方法只能容纳约9K个令牌[43][46]。这种优化显著减少了VRAM的使用,从而减轻了硬件的负担。
此外,Unsloth还被应用于其他大型语言模型如Gemma和Mistral,其在这些模型上的应用也显示出类似的显著性能提升和显存节省效果[45]。
总结来说,Unsloth通过结合高效的模型训练框架(如triton)和针对特定模型结构的优化(如Llama3-8B、Qwen系列等),有效地减少了大规模模型训练过程中的显存占用,同时提高了训练速度。
XTuner和Unsloth在开源社区的活跃度和支持程度有何不同? XTuner和Unsloth在开源社区的活跃度和支持程度上有明显的不同。
首先,从活跃度来看,XTuner似乎在开源社区中更为活跃。证据显示,XTuner不仅支持多种大模型和微调算法,如LoRA、QLoRA等[50][51][55],还特别提到了其团队对Llama3微调的光速支持,并且社区中涌现了大量使用XTuner的手把手教程[47]。此外,上海AI实验室通过XTuner构建了一个活跃的开源社区,有专门团队负责处理社区反馈并进行模型优化[53][54][55]。这些活动表明XTuner在开源社区中的参与度较高,社区活跃。
相比之下,虽然Unsloth也是一个开源项目,遵循Apache-2.0许可[52],但在我搜索到的资料中关于其社区活跃度和支持程度的描述较少。尽管Unsloth支持自2018年以来的NVIDIA GPU,并且在技术上具有一定的优势,但缺乏具体的社区活动或反馈处理机制的描述,这可能意味着其在社区互动方面不如XTuner活跃。
对于大型语言模型(LLM)训练,XTuner和Unsloth的实际应用案例有哪些? XTuner和Unsloth作为大型语言模型(LLM)训练的工具,各自有不同的应用案例和特点。
对于XTuner,它支持在较低的显存下微调大规模模型,如7B和70B+,并且能够自动分发高性能算子以加速训练过程[57]。此外,XTuner还支持多模态图文模型的预训练与微调,例如LLaVA模型,这是一个结合了文本和图像数据的模型,用于理解图像中的普遍特征[58][61]。XTuner还提供了一键整合指令,方便用户进行模型微调[62]。此外,XTuner支持使用自定义数据集进行增量预训练,使得用户可以根据自己的需求定制训练过程[59][64]。
另一方面,Unsloth是一套新出的训练框架,它在计算loss时进行了优化,如引入causal mask和optimized cross entropy,以及基于openai triton重写了一些算子,如rope等[60]。Unsloth的一个显著优势是它能显著提高训练速度,比传统方法快5倍,同时减少50%的内存占用[66]。Unsloth支持使用NVIDIA GPU进行训练,无需更换硬件[66]。此外,Unsloth提供不同级别的服务,以适应不同的预算和需求[63]。
参考资料 1. 千亿参数,百万序列| XTuner 超长上下文训练方案
2. 千亿参数,百万序列| XTuner 超长上下文训练方案
3. 千亿参数,百万序列| XTuner 超长上下文训练方案原创
4. 基于unsloth框架完成7B规模模型SFT微调训练(10GB显存占用)
5. Unsloth微调Llama3-8B,提速44.35%,节省42.58%显存
6. 使用 DeepSpeed 加速训练 — XTuner 0.1.18.dev0 文档
目录
1、去官网下载mysql安装包(下面是下载链接,可自行下载)
2、通过xftp将tar包上传到Linux环境下
3、解压安装包,将安装包放到指定目录(这里放到opt下)
4、安装
4、制作MySQL启动文件
5、修改启动脚本
6、配置环境变量
7、启动MySQL服务
8、登录mysql进行配置
9、在防火墙上给mysql开3306端口,供用户访问
10、关闭MySQL服务
1、去官网下载mysql安装包(下面是下载链接,可自行下载) https://www.mysql.com/downloads/ https://downloads.mysql.com/archives/community/ https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 2、通过xftp将tar包上传到Linux环境下 3、解压安装包,将安装包放到指定目录(这里放到opt下) tar -zxvf /opt/mysql-5.7.43-el7-x86_64.tar.gz -C /opt
目录替换为自己的目录
4、安装 # 添加 mysql 组 groupadd mysql # 创建用户 mysql 并将友好加到组 mysql useradd -g mysql mysql # 进入mysql目录下、创建data文件夹
cd /opt/mysql-5.7.43-el7-x86_64/
mkdir data
# 初始化数据库:指定用户、指定安装目录、指定数据目录
./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql-5.7.43-el7-x86_64 --datadir=/opt/mysql-5.7.43-el7-x86_64/data
注:执行尾部 “0i8!JKQg2Tne”是初始化密码,密码是随机产生的,每次都不一样。
# 给MySQL文件目录授权 -R是渗透授权
chmod -R 777 /opt/mysql-5.7.43-el7-x86_64
4、制作MySQL启动文件 # 拷贝启动文件,并改名为 mysqld cp support-files/mysql.server /etc/init.d/mysqld # 设置启动文件的权限 chmod 777 /etc/init.
事情起因 有小伙伴找到我问一下生僻字的问题,数据库是oracle 11g,字符集是zhs16gbk
下图里显示的??应该是“𧿹”这个字,算是个生僻字。
问应用厂家就说数据库字符集建错了,要改库的字符集。what???,这库都用了好几年了,现在改库字符集也不现实啊。
检查下字典点,看表里也是??显示
模拟测试 为了测试, 先创建个测试表,第1列是varchar2,第2列是nvarchar2
这里为了方便测试,使用scott用户
CREATE TABLE "SCOTT"."TEST_NAME" ( "BIANMA" NUMBER NOT NULL ENABLE, "VARCHAR2_NAME" VARCHAR2(200 BYTE), "NVARCHAR2_NAME" NVARCHAR2(200), CONSTRAINT "TEST_NAME_PK" PRIMARY KEY ("BIANMA") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE ) SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE( INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "
项目名称: 学生信息管理系统 样品展示:
学生管理系统
系统简介(思维): 该项目用于学习巩固java知识,包含很多知识应用,(注意:本篇文章项目不含数据库内容,采取IO流代替写进文本,保存数据),与君共同成长学习,源代码加微:wxzhangguangpeng
技术需求: java基础知识面向对象IO流异常处理Swing程序设计 实现步骤(并不规范,个人思路): 第一步:注册界面 新建类:Register,继承JFrame类窗体基础调整新建标签将标签加入到窗体容器中如下 package StudentManagementSystem12; import javax.swing.*; import java.awt.*; public class Register extends JFrame{ public Register() { setTitle("StudentManagementSystem"); setBounds(600, 200, 350, 300);//窗体标题 setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭方式的设置 Container c1 = getContentPane();//将窗体变为容器 JPanel jPanel1 = new JPanel(new BorderLayout()); // 使用 BorderLayout布局管理器 JLabel jLabel1 = new JLabel("Register");//用标签写出标题 Font font = new Font("Arial", Font.PLAIN, 40);//调整字体大小和样式 jLabel1.setFont(font); jLabel1.setForeground(Color.BLACK); jLabel1.setHorizontalAlignment(SwingConstants.CENTER);//标题位置 jPanel1.add(jLabel1, BorderLayout.NORTH); // 将 JLabel 添加到北部 c1.add(jPanel1); setVisible(true);//显示窗体 } public static void main(String[] args) { new Register(); } } 添加用户名和密码的文本框和文字标签,用SpringLayout布局管理器来规划位置添加三个按钮,也用SpringLayout布局管理器来规划位置根据事件监听器的知识进行按钮的制定HomePage可以不设置监听器完整的注册注册代码文件如下(账号文件位置需要自己修改) package StudentManagementSystem; import javax.
本文通过利用高德地图的JS API做一个关于智慧校园的小案例,主要内容有地图展示、地图控件的添加、标注点添加、地点打卡、驾车路径规划动画展示,文章末尾附有完整代码。后续将继续跟进其他学习案例。
目录 前置工作地图展示地图控件的添加实现点击某个地方进行标注、打卡实现简单的驾车路径规划动画上面案例的完整代码 前置工作 HTML页面的准备:创建一个id为container的地图容器
<div id="container"></div>
对html、body、container设置宽高:
<style> html, body, #container{ width: 100%; height: 100%; } </style> 引入高德地图相关的CSS资源
<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" />
在高德开放平台上申请JS API的key和安全密钥,引入高德js相关的资源(将下面代码中的安全密钥和key替换即可)
<script type="text/javascript"> window._AMapSecurityConfig = { securityJsCode: "你的安全密钥", }; </script> <script src="https://webapi.amap.com/loader.js"></script> <script type="text/javascript" src="https://webapi.amap.com/maps?v=2.0&key=你的key"></script> <script src="./js/store.js"></script> 地图展示 在js中创建地图对象(这样就会在界面上显示地图) var map=new AMap.Map('container',{ center:[118.91125,32.10296],//表示地图界面中心显示的位置 zoom:16,//表示地图级别 viewMode:'3D',//表示地图显示模式为3D,默认是2D pitch:45,//初识地图俯仰角度 }) 其他AMap.Map属性和方法参照:
AMap.Map属性和方法
地图控件的添加 // 异步加载工具条插件,在回调函数中实例化插件,并使用插件功能 AMap.plugin(['AMap.ToolBar','AMap.Scale','AMap.ControlBar','AMap.GeoJSON','AMap.MoveAnimation'],function(){ // 添加缩放控件插件到地图页面 map.addControl(new AMap.ToolBar({ position:{ top:'80px', right:'40px', }, })); // 添加比例尺 map.
文章目录 前言初阶题目1.字符串2.列表3.元组4.字典5.运算6.random 模块7.open函数8.time模块时间9.其他 进阶题目 前言 本文主要是python经典题目100题,适合入门的新手。仅作自己学习的记录。
初阶题目 1.字符串 题目1:怎么找出序列中的最⼤最⼩值? 方法:使用内置函数max()和min()。
print(max([x for x in range(5)])) print(min([x for x in range(5)])) l=(233,456,445) print(max(l)) print(min(l)) 题目2: 怎么将字符列表转为字符串? 方法一:
list1=['hello','world'] str1=list1[0] str2=list1[1] print(str1+' '+str2) 方法二: 使用join方法,合并序列的元素,推荐!!!
功能:join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
语法:string.join()
list1=['hello','world'] str1=' '.join(list1) print(str1) 题目3:怎么快速打印出包含所有 ASCII 字⺟(⼤写和⼩写)的字符串? import string string.ascii_letters 题目4: 怎么让字符串居中? 方法:使用字符串中的center方法。
功能:返回一个指定宽度width居中的字符串,length为所返回字符串的长度。fillchar为填充的字符,默认为空格。
语法:string.center(length, character)
str1='hello' str1.center(50) str1.center(50,'###') 题目5:怎么在字符串中找到⼦串? 方法:使用find方法。
功能:检测字符串中是否包含子字符串 str 。如果找到,就返回子串的第一字符的索引值,如果找不到,则返回-1。
语法:string.find(value,start,end)
str1='hello world' str1.find('h') str1.find('w') 题目6:怎么让字符的⾸字⺟⼤写,其他字⺟⼩写? 方法一:使用title方法。
功能:所有单词的首个字母转化为大写,其余字母均为小写。
语法:string.title()
问题描述 docker无法启动,报错:"Job for docker.service failed because the control process exited with error code"
这个问题网上有很多解决方案,但是试了很多没有解决,遂记下可以解决自己问题的方案以供参考。
在解决过程中出现过多种报错:
failed to start daemon, ensure docker is not running or delete /var/run/docker.pid: process with PID 24464 is still running
failed to start daemon: error while opening volume store metadata database (/var/lib/docker/volumes/metadata.db): timeout
原因分析: 问题分析:docker是由守护进程(daemon)和客户端组成的,一般运行报错带有daemon的时候,可能是守护进程出了问题,或者修改了守护进程的配置文件。同样的,启动不了也可能是守护进程出了问题。
解决方案: 再尝试了各种配置没有问题后,且docker确实已经停止运行了,那就只好用dockerd来排查问题了。因为要启动docker,一般需要先启动docker的守护进程。
原因:dockerd 就是守护进程,负责管理 Docker 容器、镜像、网络和存储等核心功能。当你在命令行中使用 docker 命令时,实际上是在与 dockerd 守护进程进行通信。
实践开始:
#输入命令: dockerd #报错: INFO[2024-05-08T18:07:11.413186406+08:00] Starting up failed to start daemon, ensure docker is not running or delete /var/run/docker.