国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

AI大模型探索之路-應(yīng)用篇17:GLM大模型-大數(shù)據(jù)自助查詢平臺架構(gòu)實(shí)踐

這篇具有很好參考價(jià)值的文章主要介紹了AI大模型探索之路-應(yīng)用篇17:GLM大模型-大數(shù)據(jù)自助查詢平臺架構(gòu)實(shí)踐。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

在眾多大型企業(yè)中,數(shù)據(jù)資產(chǎn)龐大無比,因此它們紛紛構(gòu)建了多種大數(shù)據(jù)平臺。然而,關(guān)鍵在于如何高效地利用這些數(shù)據(jù),例如,將數(shù)據(jù)有效地提供給產(chǎn)品經(jīng)理或數(shù)據(jù)分析師以供他們進(jìn)行設(shè)計(jì)和分析。在傳統(tǒng)工作流程中,由于這些角色通常不是技術(shù)專家,他們往往無法直接使用和操控SQL,導(dǎo)致必須依賴技術(shù)人員來編寫SQL查詢并返回結(jié)果,然后才能由產(chǎn)品經(jīng)理、數(shù)據(jù)分析師或其他相關(guān)人員進(jìn)一步處理。

然而,隨著強(qiáng)大的大模型]的出現(xiàn),我們對自然語言的理解能力得到了極大的提升,同時(shí)通過支持的插件式擴(kuò)展(允許自主調(diào)用相關(guān)外部方法或API),為我們解決這一難題提供了全新的思路。這些大模型不僅能夠理解復(fù)雜的自然語言查詢,還能夠與現(xiàn)有的數(shù)據(jù)處理工具無縫集成,從而使得非技術(shù)用戶也能夠直接參與到數(shù)據(jù)分析的過程中,無需通過技術(shù)人員作為中介,極大地提高了工作效率和決策的速度。

一、技術(shù)架構(gòu)設(shè)計(jì)

用戶輸入說明要查詢的信息,LLM基于本地知識庫生成SQL,調(diào)用不同的Funcation Call,每個(gè)一個(gè)Funcation call中都封裝一個(gè)不同的數(shù)據(jù)服務(wù)的調(diào)用;比如Mysql、Hive、Spark、Flink。

AI大模型探索之路-應(yīng)用篇17:GLM大模型-大數(shù)據(jù)自助查詢平臺架構(gòu)實(shí)踐,AIGC-AI大模型探索之路,AIGC,人工智能,自然語言處理,AI編程,python,語言模型

二、本地知識庫準(zhǔn)備

大模型擅長將輸出轉(zhuǎn)化為不同格式,比如從一種語言翻譯成另一種語言,幫助拼寫、語法糾正以及編寫正則表達(dá)式;整個(gè)平臺有兩個(gè)基礎(chǔ)支持的部分,第一部分就是數(shù)據(jù)字典,我們先將所有需要查詢的數(shù)據(jù)庫、表、字段信息結(jié)構(gòu)化整理成數(shù)據(jù)字典,作為本地知識庫。
AI大模型探索之路-應(yīng)用篇17:GLM大模型-大數(shù)據(jù)自助查詢平臺架構(gòu)實(shí)踐,AIGC-AI大模型探索之路,AIGC,人工智能,自然語言處理,AI編程,python,語言模型

三、SQLServer服務(wù)

平臺中兩個(gè)核心支撐中另外一個(gè)就是數(shù)據(jù)服務(wù)的開發(fā),基于不同的數(shù)據(jù)庫類型,開發(fā)不同的數(shù)據(jù)服務(wù),用于支撐LLM的數(shù)據(jù)查詢;包括但不限于:MySQL數(shù)據(jù)服務(wù),Hive數(shù)據(jù)服務(wù)、Spark數(shù)據(jù)服務(wù)、Flink數(shù)據(jù)服務(wù)等;
AI大模型探索之路-應(yīng)用篇17:GLM大模型-大數(shù)據(jù)自助查詢平臺架構(gòu)實(shí)踐,AIGC-AI大模型探索之路,AIGC,人工智能,自然語言處理,AI編程,python,語言模型

1. 數(shù)據(jù)庫準(zhǔn)備

步驟1:安裝MySQL數(shù)據(jù)庫

sudo apt-get update
sudo apt-get install mysql-server

步驟2:啟動(dòng)MySQL數(shù)據(jù)庫

sudo service mysql start
sudo systemctl start mysqld

步驟3:登錄MySQL數(shù)據(jù)庫

mysql -u root -p 

步驟4:創(chuàng)建數(shù)據(jù)庫用戶glm

CREATE USER 'glm'@'localhost' IDENTIFIED BY 'glm';

步驟5:給數(shù)據(jù)庫用戶賦權(quán)限

GRANT ALL PRIVILEGES ON *.* TO 'glm'@'localhost';
FLUSH PRIVILEGES;

步驟6:創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE glm;
USE glm;

2. 數(shù)據(jù)準(zhǔn)備

CREATE TABLE user_info (
customerID VARCHAR(255),
gender VARCHAR(255),
SeniorCitizen INT,
Partner VARCHAR(255),
Dependents VARCHAR(255)
);
INSERT INTO user_info (customerID, gender, SeniorCitizen, Partner, Dependents)
VALUES
('1', 'Female', 0, 'Yes', 'No'),
('2', 'Male', 1, 'No', 'Yes'),
('3', 'Male', 0, 'No', 'No'),
('4', 'Female', 1, 'Yes', 'Yes'),
('5', 'Male', 0, 'No', 'No'),
('6', 'Female', 0, 'Yes', 'Yes'),
('7', 'Male', 1, 'Yes', 'No'),
('8', 'Female', 0, 'No', 'No'),
('9', 'Male', 1, 'Yes', 'Yes'),
('10', 'Female', 0, 'No', 'No'),
('11', 'Male', 0, 'Yes', 'Yes'),
('12', 'Female', 1, 'No', 'No'),
('13', 'Male', 0, 'No', 'Yes'),
('14', 'Female', 0, 'Yes', 'No'),
('15', 'Male', 1, 'Yes', 'Yes'),
('16', 'Female', 0, 'No', 'No'),
('17', 'Male', 0, 'No', 'Yes'),
('18', 'Female', 1, 'Yes', 'No'),
('19', 'Male', 0, 'No', 'No'),
('20', 'Female', 1, 'No', 'Yes');

3. SQL服務(wù)封裝

安裝依賴:! pip install pymysql
封裝SQL執(zhí)行函數(shù)(將傳入的SQL代碼傳輸至MySQL環(huán)境中進(jìn)行運(yùn)行,并最終返回SQL代碼運(yùn)行結(jié)果)。

import pymysql
import json
def sql_inter(sql_query):
    """
    用于執(zhí)行一段SQL代碼,并最終獲取SQL代碼執(zhí)行結(jié)果,\
    核心功能是將輸入的SQL代碼傳輸至MySQL環(huán)境中進(jìn)行運(yùn)行,\
    并最終返回SQL代碼運(yùn)行結(jié)果。需要注意的是,本函數(shù)是借助pymysql來連接MySQL數(shù)據(jù)庫。
    :param sql_query: 字符串形式的SQL查詢語句,用于執(zhí)行對MySQL中telco_db數(shù)據(jù)庫中各張表進(jìn)行查詢,并獲得各表中的各類相關(guān)信息
    :return:sql_query在MySQL中的運(yùn)行結(jié)果。
    """
    
    connection = pymysql.connect(
            host="localhost",  # 數(shù)據(jù)庫地址
            user='glm',  # 數(shù)據(jù)庫用戶名
            passwd="glm",  # 數(shù)據(jù)庫密碼
            db=glm',  # 數(shù)據(jù)庫名
            charset='utf8'  # 字符集選擇utf8
        )
    
    try:
        with connection.cursor() as cursor:
            # SQL查詢語句
            sql = sql_query
            cursor.execute(sql)

            # 獲取查詢結(jié)果
            results = cursor.fetchall()

    finally:
        connection.close()
    
    
    return json.dumps(results)
#函數(shù)測試
sql_inter("select count(*) from user_info")
'[[20]]'

四、核心代碼落地

接收前端用戶的輸入信息,LLM基于本地知識庫,生成SQL;自主判斷(根據(jù)提示和描述信息的相關(guān)性)通過Funcation Call調(diào)用不同數(shù)據(jù)服務(wù);返回結(jié)果給到前端用戶;

1.模型加載

從huggingface拉取分詞器模型和基礎(chǔ)大模型,進(jìn)行加載運(yùn)行到本地服務(wù)器

##測試模型
from transformers import AutoTokenizer, AutoModel

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm3-6b",
trust_remote_code=True)

#model = AutoModel.from_pretrained("THUDM/chatglm3-6b",trust_remote_code=True).quantize(8).cuda()
model = AutoModel.from_pretrained("THUDM/chatglm3-6b", trust_remote_code=True,device='cuda')

model = model.eval()

2.本地知識庫讀取

將數(shù)據(jù)庫、表、字段等數(shù)據(jù)字典信息,整理成一個(gè)Markdown文件

# 打開并讀取Markdown文件
with open('user_info.md', 'r', encoding='utf-8') as f:
    data_dictionary = f.read()

## 定義一個(gè)簡單的數(shù)據(jù)庫測試服務(wù)
sql_inter(sql_query='SELECT COUNT(*) FROM user_info;')

3.function call函數(shù)封裝

sql_inter_function_info = [
    {
    'name': 'sql_inter',
    'description': '用于執(zhí)行一段SQL代碼,并最終獲取SQL代碼執(zhí)行結(jié)果,核心功能是將輸入的SQL代碼傳輸至MySQL環(huán)境中進(jìn)行運(yùn)行,并最終返回SQL代碼運(yùn)行結(jié)果。',
    'parameters': {
        'type': 'object',
        'properties': {
            'sql_query': {
                'type': 'string',
                'description': '字符串形式的SQL代碼,可以在MySQL中運(yùn)行,并獲取運(yùn)行結(jié)果'
            }
        },
        'required': ['sql_query']
    }
}
]

4.工具函數(shù)封裝

def run_conv_glm(query,tokenizer, history, model,functions_list=None, functions=None, return_function_call=True):
    """
    能夠自動(dòng)執(zhí)行外部函數(shù)調(diào)用的Chat對話模型
    :param messages: 必要參數(shù),輸入到Chat模型的messages參數(shù)對象
    :param functions_list: 可選參數(shù),默認(rèn)為None,可以設(shè)置為包含全部外部函數(shù)的列表對象
    :param model: Chat模型,可選參數(shù),默認(rèn)模型為chatglm3-6b
    :return:Chat模型輸出結(jié)果
    """

    # 如果沒有外部函數(shù)庫,則執(zhí)行普通的對話任務(wù)
    if functions_list == None:
        response, history = model.chat(tokenizer, query, history=history)
        final_response = response
        
    # 若存在外部函數(shù)庫,則需要靈活選取外部函數(shù)并進(jìn)行回答
    else:
        # 創(chuàng)建調(diào)用外部函數(shù)的system_message
        system_info = {
            "role": "system",
            "content": "Answer the following questions as best as you can. You have access to the following tools:",
            "tools": functions,
        }
        # 創(chuàng)建外部函數(shù)庫字典
        available_functions = {func.__name__: func for func in functions_list}
        history=[system_info]

        ## 第一次調(diào)用,目的是獲取函數(shù)信息    
        response,history = model.chat(tokenizer, query, history=history)
        print(response)
        # 需要調(diào)用外部函數(shù)
        function_call = response
        # 獲取函數(shù)名
        function_name = function_call["name"]
        # 獲取函數(shù)對象
        fuction_to_call = available_functions[function_name]
        # 獲取函數(shù)參數(shù)
        function_args = function_call['parameters']
        # 將函數(shù)參數(shù)輸入到函數(shù)中,獲取函數(shù)計(jì)算結(jié)果
        function_response = fuction_to_call(**function_args)
        # print("答案")
        # print(function_response)

        # ## 第二次調(diào)用,帶入進(jìn)去函數(shù)
        # history=[]
        # history.append(
        #         {
        #             "role": "observation",
        #             "name": function_name,
        #             "content":function_response,
        #         }
        # ) 
        # print(history)
        # query= "請幫我到查詢一下有多少電信用戶,并給出答案"
        # response, history = model.chat(tokenizer, query, history=history)
        final_response=function_response
    
    return final_response,history

5. 調(diào)用查詢測試

query = data_dictionary + ",請幫我到查詢一下有多少電信用戶,并給出答案?"
history=[]
functions_list = [sql_inter]
functions=sql_inter_function_info
response,history = run_conv_glm(query=query,functions=functions,model=model,functions_list=functions_list,history=history,tokenizer=tokenizer)

第一次:執(zhí)行輸出如下:結(jié)果很正確??)

{'name': 'sql_inter', 'parameters': {'sql_query': 'SELECT COUNT(*) FROM user_info'}}

打印:print(response) 輸出結(jié)果正確: [[20]]
第二次:執(zhí)行輸出如下:結(jié)果也沒啥問題??)

{'name': 'sql_inter', 'parameters': {'sql_query': 'SELECT COUNT(*) FROM user_info WHERE gender IN("Male", "Female")'}}

第三次:執(zhí)行輸出如下:條件中出現(xiàn)了未知字段 is_senior ,很明顯翻車了??)

{'name': 'sql_inter', 'parameters': {'sql_query': 'SELECT COUNT(*) FROM user_info WHERE is_senior = 0;'}}

第四次:執(zhí)行輸出如下:不知道怎么查詢了,徹底蒙圈了??)

您好,我可以幫您查詢這個(gè)問題。請問您需要使用哪種編程語言進(jìn)行查詢?

第五次:執(zhí)行輸出如下:還是回答錯(cuò)誤??)

{'name': 'sql_inter', 'parameters': {'sql_query': 'SELECT COUNT(*) FROM user_info WHERE gender = "Male"'}}

第五次:執(zhí)行輸出如下:又回答對了??)

{'name': 'sql_inter', 'parameters': {'sql_query': 'SELECT COUNT(*) FROM user_info'}}

五、結(jié)束思考

1)大模型的問世,為我們帶來了前所未有的便捷性。眾多傳統(tǒng)應(yīng)用正從全新的角度,借助大模型的力量進(jìn)行著顛覆性的重構(gòu)。然而,大模型的穩(wěn)定性尚存變數(shù),這一點(diǎn)在功能設(shè)計(jì)時(shí)必須予以充分考慮。
2)對于本平臺的本地知識庫,如果采納微調(diào)的策略來豐富和優(yōu)化大模型,將顯得更為合理。鑒于知識庫涵蓋的內(nèi)容廣泛,數(shù)據(jù)字典信息繁多,這種微調(diào)方式有助于提升大模型的理解力和應(yīng)用效果。

??上一篇: AI大模型探索之路-應(yīng)用篇16:GLM大模型-ChatGLM3 API開發(fā)實(shí)踐
??更多專欄系列文章:AIGC-AI大模型探索之路

文章若有瑕疵,懇請不吝賜教;若有所觸動(dòng)或助益,還望各位老鐵多多關(guān)注并給予支持。文章來源地址http://www.zghlxwxcb.cn/news/detail-855386.html

到了這里,關(guān)于AI大模型探索之路-應(yīng)用篇17:GLM大模型-大數(shù)據(jù)自助查詢平臺架構(gòu)實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • AI大模型探索之路-基礎(chǔ)篇2:掌握Chat Completions API的基礎(chǔ)與應(yīng)用

    AI大模型探索之路-基礎(chǔ)篇2:掌握Chat Completions API的基礎(chǔ)與應(yīng)用

    OpenAI 大模型提供了一些強(qiáng)大的 API,方便用戶與 OpenAI 的大語言模型進(jìn)行交互。除了上篇中講到的Embeddings中需要用到的embeddings接口,其核心接口主要是Completions 和Chat Completions接口。 自動(dòng)文本補(bǔ)全、用于生成各類文本任務(wù)的模型,可以根據(jù)給定的提示(prompt)自動(dòng)生成和補(bǔ)全文本

    2024年04月12日
    瀏覽(33)
  • AI大模型探索之路-訓(xùn)練篇5:大語言模型預(yù)訓(xùn)練數(shù)據(jù)準(zhǔn)備-詞元化

    AI大模型探索之路-訓(xùn)練篇5:大語言模型預(yù)訓(xùn)練數(shù)據(jù)準(zhǔn)備-詞元化

    AI大模型探索之路-訓(xùn)練篇1:大語言模型微調(diào)基礎(chǔ)認(rèn)知 AI大模型探索之路-訓(xùn)練篇2:大語言模型預(yù)訓(xùn)練基礎(chǔ)認(rèn)知 AI大模型探索之路-訓(xùn)練篇3:大語言模型全景解讀 AI大模型探索之路-訓(xùn)練篇4:大語言模型訓(xùn)練數(shù)據(jù)集概覽 在自然語言處理領(lǐng)域,大語言模型預(yù)訓(xùn)練數(shù)據(jù)準(zhǔn)備是一個(gè)重

    2024年04月28日
    瀏覽(25)
  • AI大模型探索之路-訓(xùn)練篇3:大語言模型全景解讀

    AI大模型探索之路-訓(xùn)練篇3:大語言模型全景解讀

    大規(guī)模語言模型(Large Language Models,LLM),也稱大語言模型或大型語言模型,是一種由包含數(shù)百億以上參數(shù)的深度神經(jīng)網(wǎng)絡(luò)構(gòu)建的語言模型,通常使用自監(jiān)督學(xué)習(xí)方法通過大量無標(biāo)注文本進(jìn)行訓(xùn)練。 語言模型旨在對于人類語言的內(nèi)在規(guī)律進(jìn)行建模,從而準(zhǔn)確預(yù)測詞序列中未來

    2024年04月26日
    瀏覽(20)
  • AI大模型探索之路-認(rèn)知篇3:大語言模型微調(diào)基礎(chǔ)認(rèn)知

    AI大模型探索之路-認(rèn)知篇3:大語言模型微調(diào)基礎(chǔ)認(rèn)知

    在人工智能的廣闊研究領(lǐng)域內(nèi),大型預(yù)訓(xùn)練語言模型(Large Language Models, LLMs)已經(jīng)成為推動(dòng)技術(shù)革新的關(guān)鍵因素。這些模型通過在大規(guī)模數(shù)據(jù)集上的預(yù)訓(xùn)練過程獲得了強(qiáng)大的語言理解和生成能力,使其能夠在多種自然語言處理任務(wù)中表現(xiàn)出色。然而,由于預(yù)訓(xùn)練過程所產(chǎn)生的

    2024年04月24日
    瀏覽(23)
  • AI大模型探索之路-訓(xùn)練篇2:大語言模型預(yù)訓(xùn)練基礎(chǔ)認(rèn)知

    AI大模型探索之路-訓(xùn)練篇2:大語言模型預(yù)訓(xùn)練基礎(chǔ)認(rèn)知

    在人工智能的宏偉藍(lán)圖中,大語言模型(LLM)的預(yù)訓(xùn)練是構(gòu)筑智慧之塔的基石。預(yù)訓(xùn)練過程通過調(diào)整龐大參數(shù)空間以吸納數(shù)據(jù)中蘊(yùn)含的知識,為模型賦予從語言理解到文本生成等多樣化能力。本文將深入探討預(yù)訓(xùn)練過程中的技術(shù)細(xì)節(jié)、所面臨的挑戰(zhàn)、通信機(jī)制、并行化策略以

    2024年04月25日
    瀏覽(34)
  • AI大模型探索之路-提升篇2:一文掌握AI大模型的核心-注意力機(jī)制

    AI大模型探索之路-提升篇2:一文掌握AI大模型的核心-注意力機(jī)制

    目錄 前言 一、注意力機(jī)制簡介 二、注意力機(jī)制的工作原理 三、注意力機(jī)制的變體 1、自注意力(Self-Attention) 2、雙向注意力(Bidirectional Attention) 3、多頭注意力(Multi-Head Attention) ?4、無限注意力機(jī)制(Infini-attention) 四、注意力機(jī)制在自然語言理解中的應(yīng)用 五、未來展

    2024年04月15日
    瀏覽(35)
  • AI大模型探索之路-實(shí)戰(zhàn)篇1:基于OpenAI智能翻譯助手實(shí)戰(zhàn)落地

    AI大模型探索之路-實(shí)戰(zhàn)篇1:基于OpenAI智能翻譯助手實(shí)戰(zhàn)落地

    在全球化的浪潮中,語言翻譯需求日益增長。市場上涌現(xiàn)出各式各樣的翻譯工具和平臺,然而,免費(fèi)的解決方案往往局限于簡短文本的翻譯。面對長篇文檔,用戶通常不得不轉(zhuǎn)向付費(fèi)服務(wù)。鑒于大型預(yù)訓(xùn)練語言模型(LLMs)在自然語言翻譯上的顯著優(yōu)勢,利用這些模型打造一款

    2024年04月26日
    瀏覽(24)
  • 【AI開源大模型】GLM-130B:開放的中英雙語預(yù)訓(xùn)練模型
  • 探索AI大模型在語音識別與語音合成領(lǐng)域的應(yīng)用

    語音識別和語音合成是人工智能領(lǐng)域的兩個(gè)重要技術(shù),它們在現(xiàn)代社會中發(fā)揮著越來越重要的作用。隨著AI大模型的不斷發(fā)展,這兩個(gè)領(lǐng)域的技術(shù)進(jìn)步也越來越快。在本文中,我們將探討AI大模型在語音識別與語音合成領(lǐng)域的應(yīng)用,并深入了解其核心算法原理、最佳實(shí)踐、實(shí)際

    2024年04月16日
    瀏覽(19)
  • 內(nèi)容更新版:AI大模型智能大氣科學(xué)探索之:ChatGPT在大氣科學(xué)領(lǐng)域建模、數(shù)據(jù)分析、可視化與資源評估中的高效應(yīng)用及論文寫作

    內(nèi)容更新版:AI大模型智能大氣科學(xué)探索之:ChatGPT在大氣科學(xué)領(lǐng)域建模、數(shù)據(jù)分析、可視化與資源評估中的高效應(yīng)用及論文寫作

    深度探討人工智能在大氣科學(xué)中的應(yīng)用,特別是如何結(jié)合最新AI模型與Python技術(shù)處理和分析氣候數(shù)據(jù)。課程介紹包括GPT-4等先進(jìn)AI工具,旨在大家掌握這些工具的功能及應(yīng)用范圍。內(nèi)容覆蓋使用GPT處理數(shù)據(jù)、生成論文摘要、文獻(xiàn)綜述、技術(shù)方法分析等實(shí)戰(zhàn)案例,使學(xué)員能夠?qū)?/p>

    2024年04月10日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包