借助大语言模型快速学习金仓数据库 KES

2024-06-13 14:12

本文主要是介绍借助大语言模型快速学习金仓数据库 KES,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

alt

基础概念

KES

人大金仓数据库管理系统 KingbaseES(KES) 是由 北京人大金仓信息技术股份有限公司 (以下简称“人大金仓”)自主研发的面向全行业、全客户关键应用的企业级大型通用数据库管理系统。产品融合了人大金仓在数据库领域几十年的产品研发和企业级应用经验,适用于联机事务处理、查询密集型数据仓库、要求苛刻的互联网应用等场景,提供全部应用开发及系统管理功能,提供性能增强特性,可支持主备集群、读写分离集群、多活共享存储集群等全集群架构,具有高性能、高安全、高可用、易使用、易管理、易维护的特点,支持所有国内外主流CPU、操作系统与云平台部署。

人大金仓 成立于1999年,是成立最早的拥有自主知识产权的国产数据库企业,也是 中国电子科技集团 (简称“CETC”)成员企业。

LLM

大语言模型(Large Language Model,LLM)是一种基于深度学习的自然语言处理(NLP)模型,其特点是拥有极其庞大的参数量,通常在几十亿到几百亿个参数之间,有时甚至超过一万亿参数。这些模型通过训练在海量文本数据上学习到语言的规律和模式,从而能够理解和生成人类语言,执行多种自然语言处理任务,如文本生成、问答、文本分类、摘要、翻译、对话系统、代码编写等。

随着技术的发展,大语言模型的性能不断提升,越来越受到学术界和工业界的关注,如何私有化部署大语言模型也提上了议题。

本文将介绍如何在本地使用 LLM 搭建一个私有知识库,并基于此来帮助我们更快速的学习金仓数据库。

Ollama + Open WebUI 搭建知识库

Ollama

Ollama 是一个允许你在本地运行开源LLM的开源软件(OSS)。

目前 Star 数为 67K+

alt

支持常见的LLM,如:

  • Llama 3

Meta Llama 3 是迄今为止最强大的公开可用 LLM,由 Meta 公司开发,提供 8B 和 70B 参数大小。

Llama 3 指令调整模型针对对话/聊天用例进行了微调和优化,在常见基准测试中优于许多可用的开源聊天模型。

Llama 3 比 Llama 2 和其他公开可用的模型有了很大的改进:

  1. 在比 Llama 2 大七倍的数据集上进行训练
  2. Llama 2 的上下文长度是 8K 的两倍
  3. 使用具有 128K 标记的更大标记词汇表更有效地编码语言
  4. 与 Llama 2 相比,错误“拒绝”率不到 1⁄3
  • llama2-chinese

Llama 2 对话中文微调参数模型,是基于 Meta Platform, Inc. 所发布的 Llama 2 Chat 开源模型来进行微调。

根据 Meta,Llama 2 的训练数据达到了两万亿个 token,上下文长度也提升到 4096。对话上也是使用100万人类标记的数据微调。

由于 Llama 2 本身的中文对齐比较弱,开发者采用了中文指令集来进行微调,使其具备较强的中文对话能力。

目前这个中文微调参数模型总共发布了 7B,13B两种参数大小。

  • gemma

Gemma 是 Google DeepMind 构建的轻量级、最先进的开放模型系列。它受到 Google 的 Gemini 模型的启发。

这些模型在多样化的网络文档数据集上进行训练,以使其接触到广泛的语言风格、主题和词汇。这包括用于学习编程语言语法和模式的代码,以及用于掌握逻辑推理的数学文本。

关于硬件要求,Ollama 不强制要求使用 Nvidia GPU,也可以使用 CPU 进行运算。

内存方面: 对于 7B 型号,建议至少使用 8GB RAM; 13B,至少 16GB; 33B,至少 32 GB; 70B,至少 64GB。

Open WebUI

Open WebUI (原 Ollama WebUI) 是一款可扩展、功能丰富且用户友好的自托管图形化页面,旨在完全离线运行。它支持各种 LLM 运行器,包括 Ollama 和 OpenAI 兼容 API。

部署步骤

本文所使用的演示环境为 8c16g,操作系统为 CentOS 7.9。

搭建 Ollama + Llama 3 / llama2-chinese + Open WebUI,主要步骤如下。

  1. 下载 Ollama 和 Llama 3

本文所使用的是开源大模型和软件,源代码在 GitHub 上。Linux 环境中只需一条命令即可下载安装。

curl -fsSL https://ollama.com/install.sh | sh

下载完成后,会自动运行。

命令端交互访问示例:

alt
  1. 下载 Open WebUI
docker run -d -p 3000:8080 \
--add-host=host.docker.internal:host-gateway \
-v open-webui:/app/backend/data \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:main
  1. 准备 KES 相关资料

将准备好的人大金仓数据库相关资料导入到模型中。

但需注意的是,在没有 GPU 的条件下,大模型可以使用 CPU 作为算力,但十分消耗资源。

alt

而且 LLM 生成的文字内容准确率有待考证,仍需人工校对。

一起来了解 KES

下面一起来了解学习金仓数据库 KES。

KES 介绍

1. 人大金仓数据库支持几种架构

Llama 3 模型的回答:

alt

看来 llama 3 对中文的响应真的不够好,我们切换到 llama2-chinese 模型看看。

llama2-chinese 模型的回答:

alt

作者回答:

  • KingbaseES 集中式
  • KingbaseRWC 读写分离集群
  • KingbaseRAC 共享存储集群
2. 人大金仓数据库 KES 的产品优势有哪些?

llama2-chinese 模型的回答:

alt

作者回答:

  • 迁移开发 简单高效
  • 高度容错 稳定可靠
  • 性能强劲 表现出众
  • 系统自治 简单易用
  • 纵深防御 确保安全
  • 全面兼容 深度适配
3. 人大金仓数据库如何助力企业完成国产化替代

llama2-chinese 模型的回答:

alt

作者回答:

以下是人大金仓数据库助力企业完成国产化替代的几个关键点:

  1. 技术创新和自主研发
  2. 自主可控、安全可靠的产品体系
  3. 全面的数据库产品线
  4. 降低迁移成本和门槛
  5. 产业链合作,成熟的解决方案

等等。

也许是演示环境的资源有限,或者大模型调试不够,信息提取、处理效果并不理想,还需要各方面的投入才能实现商用。

接下来由我继续为大家介绍 KES 的其他内容。

安装 KES

将下载好的 KES 安装介质上传到目标服务器,这里使用的是 CentOS 7 系统。

解压安装包,并执行安装。

[shawnyan@centos7 kes]$ ./setup.sh 
Now launch installer...
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
          Verifying JVM........
Launching installer...


Graphical installers are not supported by the VM. The console mode should be used instead...

===============================================================================
KingbaseES V8                                    (created with InstallAnywhere)
-------------------------------------------------------------------------------

Preparing CONSOLE Mode Installation...

===============================================================================
Welcome
-------

This installer will guide you through the installation of KingbaseES V8.

It is strongly recommended that you quit all programs before continuing with 
this installation. You may cancel this installation by typing 'quit'.

KingbaseES Version: V8
Kingbase Type:BMJ-NO
Installer Version: V008R006C008B0014
Install DATE:202406030600

Kingbase Inc.
 http://www.kingbase.com.cn
...
===============================================================================
Choose License File
-------------------


File Path: /home/shawnyan/license_29296/license_29296_0.dat

License序列号 --- 启用 --- 5B9512C0-C2DA-11ED-B123-000C29CBE49F
生产日期 --- 启用 --- 2023-03-15
产品名称 --- 启用 --- KingbaseES V8
细分版本模板名 --- 启用 --- SALES-企业版 V8R6
产品版本号 --- 启用 --- V008R006C
...

Pre-Installation Summary
------------------------

Please Review the Following Before Continuing:

Product Name:
    KingbaseES V8

Install Folder:
    /opt/kes

Product Features:
    SERVER,
    INTERFACE,
    DEPLOY,
    KINGBASEHA,
    KSTUDIO,
    KDTS

Install Disk Space Information
    Require Disk space : 5378 MB           Free Disk Space : 13568 MB

...
===============================================================================
Installation Complete
---------------------

Congratulations. KingbaseES V8 has been successfully installed to:

/opt/kes

If you want to register KingbaseES V8 as OS service, please run

    /opt/kes/install/script/root.sh

PRESS <ENTER> TO EXIT THE INSTALLER: 
Complete.

有点遗憾的是,这里注册系统服务后,发现使用的仍是古老的service服务,而不是systemd服务。

[shawnyan@centos7 ~]$ systemctl status kingbased
● kingbased.service - LSB: Start and stop the kingbase server
   Loaded: loaded (/etc/rc.d/init.d/kingbased; bad; vendor preset: disabled)
   Active: failed (Result: exit-code) since Mon 2024-06-03 20:14:00 CST; 16h ago
     Docs: man:systemd-sysv-generator(8)
  Process: 126960 ExecStart=/etc/rc.d/init.d/kingbased start (code=exited, status=1/FAILURE)

安装完成后,KES 已自行启动,看到默认监听端口 54321。

[shawnyan@centos7 ~]$ sudo ss -antpl | grep king
LISTEN     0      244          *:54321      *:*   users:(("kingbase",pid=85947,fd=3))
LISTEN     0      244       [::]:54321   [::]:*   users:(("kingbase",pid=85947,fd=4))

连接 KES

连接 KES 的方式很多,这里介绍两种。

  1. 通过 ksql 客户端连接到 KES 服务器。
[shawnyan@centos7 bin]$ ksql -Usystem kingbase
Password for user system:
Type "help" for help.

kingbase=# select version();
                                                       version
----------------------------------------------------------------------------------------------------------------------
 KingbaseES V008R006C008B0014 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit
(1 row)
  1. 通过 KStudio 图形化工具连接 KES 服务器。

KStudio 是金仓自主研发的一款功能强大的数据库管理工具,可为数据库开发人员、DBA提供数据库开发、调试、维护等各项功能,完美支持金仓数据库。

alt

管理 KES

KES 的 MySQL 相关参数

安装时可以看到 KES 支持 PG, Oracle, MySQL 三种数据库模式。

Database Mode
-------------

Please enter database mode.

    1- PG
  ->2- ORACLE
    3- MySQL

查看设定表,可以看到有3个 MySQL 相关参数。

kingbase=# select name,setting,short_desc from pg_settings where name ~ 'mysql';
         name         | setting |                                              short_desc
----------------------+---------+------------------------------------------------------------------------------------------------------
 mysql5_str_rtrim     | off     | Convert empty string to null.
 mysql_interval_style | off     | compatible some mysql interval unit styleon:mysql style,off:default style
 mysql_numop_style    | on      | compatible mysql style about operators of integers and strings as operators of integers and integers
(3 rows)
KES 的插件

查看已安装的插件,共21个。

kingbase=# \dx
                                                                     List of installed extensions
         Name          | Version |    Schema    |                                                     Description
-----------------------+---------+--------------+---------------------------------------------------------------------------------------------------------------------
 dbms_ddl              | 1.0     | sys          | DBMS_DDL system package
 dbms_output           | 1.0     | sys          | DBMS_OUTPUT system package
 dbms_utility          | 1.0     | sys          | dbms_utility extension package
 kdb_cast              | 1.0     | sys          | kdb_cast extension
 kdb_inherit_functions | 1.0     | sys          | copy of kdb_oracle_datatype to seperate from kdb_oracle_datatype
 kdb_license           | 1.0     | pg_catalog   | kdb_license extension
 kdb_mysql_datatype    | 1.0     | pg_catalog   | kdb_mysql_datatype extension
 kdb_mysql_functions   | 1.1     | sys          | Functions of mysql compatible
 kdb_tinyint           | 1.0     | pg_catalog   | Create a new data type tinyint and its functions operators and indexes
 kingbase_version      | 1.0     | pg_catalog   | This is a utility that provides function related to version number,  it is used to get the Kingbase version number.
 owa_util              | 1.0     | sys          | owa_util system package
 plpgsql               | 1.0     | pg_catalog   | PL/pgSQL procedural language
 plsql                 | 1.0     | pg_catalog   | PL/SQL procedural language
 src_restrict          | 1.0     | src_restrict | src restrict plugin
 sys_anon              | 1.0     | anon         | provides data masking functionality
 sys_freespacemap      | 1.2     | sys          | examine the free space map (FSM)
 sys_hm                | 1.0     | pg_catalog   | Kingbase Healthy Check
 sys_stat_statements   | 1.10    | public       | track parsing, planning and execution statistics of all SQL statements executed
 sysaudit              | 1.0     | sysaudit     | provides auditing functionality
 sysmac                | 1.0     | sysmac       | Mac for Kingbase
 xlog_record_read      | 1.0     | pg_catalog   | xlog_record_read functions
(21 rows)

其中描述最长的 kingbase_version 插件,可以看到包含了3个方法,分别用于查看构建 KES 时的分支、时间和版本。

kingbase=# \dx+ kingbase_version
Objects in extension "kingbase_version"
    Object description
--------------------------
 function build_branch()
 function build_time()
 function build_version()
(3 rows)

kingbase=# select build_branch();
       build_branch
--------------------------
 HotFix_V009R001C001B0022
(1 row)

kingbase=# select build_time();
          build_time
------------------------------
 Sat Sep  2 02:27:06 CST 2023
(1 row)

kingbase=# select build_version();
 build_version
---------------
 fc20f39d407
(1 row)
KES 中如何禁用角色

在 KES 中可以使用 roledisable 扩展来管理角色,进行启用或禁用设定。

  1. 安装扩展
kingbase=# create extension roledisable;
CREATE EXTENSION
kingbase=# \dx roledisable
                   List of installed extensions
    Name     | Version |   Schema    |         Description
-------------+---------+-------------+-----------------------------
 roledisable | 1.0     | roledisable | Kingbase role disable Check
(1 row)
  1. 查看角色状态
kingbase=# select * from roledisable.sys_role_status;
 oid  |         rolename          | status
------+---------------------------+--------
 4200 | pg_signal_backend         | Enable
 4102 | kcluster                  | Enable
 4569 | pg_read_server_files      | Enable
   10 | system                    | Enable
 4570 | pg_write_server_files     | Enable
 4571 | pg_execute_server_program | Enable
 3375 | pg_read_all_stats         | Enable
 3373 | pg_monitor                | Enable
    8 | sso                       | Enable
 3374 | pg_read_all_settings      | Enable
 3377 | pg_stat_scan_tables       | Enable
    9 | sao                       | Enable
(12 rows)
  1. 新建角色 r1,并禁用角色
kingbase=# create role r`;
CREATE ROLE
kingbase=# alter role r1 disable;
ALTER ROLE
  1. 验证,r1 角色已禁用
kingbase=# select * from roledisable.sys_role_status where rolename = 'r1';
  oid  | rolename | status
-------+----------+---------
 16394 | r1       | Disable
(1 row)
kingbase=# set role r1;
ERROR:  ROLE r1 has been disabled.

到此,相信你已经对 KES 有了初步了解,由于篇幅原因,关于 KES 的内容暂且分享到这里。

总结

本文介绍了如何使用 ollma 快速搭建私有 AI 知识库,并借助知识库快速学习金仓数据库 KES。

未来,我们还可筹备更多资源完善大语言模型,并导入更多金仓数据库的学习资料,利用大语言模型整合知识和信息。并基于此,使得初学者在对话交互中理解金仓数据库的基本概念,解决遇到的问题。同时,可以助力金仓数据库进一步解放一线销售或技术支持的生产力。

作为数据库领域的“国家队”,期待人大金仓突破“数据库+AI”的落地,推动新质生产力发展,进一步提升国际市场竞争力。


🌻 往期精彩 ▼

[Oracle]

  • Oracle 数据库全面升级为 23ai
  • python-oracledb 已率先支持 Oracle 23ai
  • 一文带你了解 Oracle 23ai 新特性 Vector 的基础用法

[MySQL]

  • 「合集」MySQL 8.x 系列文章汇总
  • 如何选择适合的 MySQL Connector/J 版本
  • MySQL 8.4.0 LTS 发布 (MySQL 第一个长期支持版本)

[TiDB]

  • 星辰考古:TiDB v1.0 再回首
  • TiDB x KubeBlocks 集成案例
  • TiDB v7.5.0 LTS 升级必读 | 新特性补充说明

[PG]

  • 哈喽,国产数据库!Halo DB!
  • 即将告别PG 12,建议升级到PG 16.3版本
  • 后 EL 7 时代,PG 16 如何在 CentOS 7 上运行

-- / END / --

👉 这里可以找到我

  • 微信公众号:少安事务所 (mysqloffice)
  • 墨天轮: 严少安
  • ITPUB: 少安事务所

如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)

本文由 mdnice 多平台发布

这篇关于借助大语言模型快速学习金仓数据库 KES的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1057532

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

电脑桌面文件删除了怎么找回来?别急,快速恢复攻略在此

在日常使用电脑的过程中,我们经常会遇到这样的情况:一不小心,桌面上的某个重要文件被删除了。这时,大多数人可能会感到惊慌失措,不知所措。 其实,不必过于担心,因为有很多方法可以帮助我们找回被删除的桌面文件。下面,就让我们一起来了解一下这些恢复桌面文件的方法吧。 一、使用撤销操作 如果我们刚刚删除了桌面上的文件,并且还没有进行其他操作,那么可以尝试使用撤销操作来恢复文件。在键盘上同时按下“C

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]