大模型語料庫的構建過程 包括知識圖譜構建 垂直知識圖譜構建 輸入到sql構建 輸入到cypher構建 通過智能體管理數據生產組件

以下是大模型語料庫的構建過程:

一、文檔切分語料庫構建
  1. 數據來源確定

    • 首先,需要確定語料庫的數據來源。這些來源可以是多種多樣的,包括但不限于:
      • 網絡資源:利用網絡爬蟲技術從各種網站(如新聞網站、學術網站、博客、社交媒體平臺等)收集文本數據。例如,可以使用 Python 的 requestsBeautifulSoup 庫來爬取網頁內容,設定不同的網址和規則,收集各類文章、帖子、評論等信息。
      • 現有文檔存儲:整合企業內部的文檔庫、圖書館的數字資源、電子書籍、研究報告、學術論文等,這些文檔可以以不同的格式存在,如 PDF、DOCX、TXT 等。
      • 開放數據集:利用一些公開的數據集,像 Common Crawl 提供的大規模文本數據,以增加語料庫的廣度和多樣性。
  2. 文檔格式轉換與清洗

    • 對于不同格式的文檔,需要將其轉換為統一的純文本格式,以便后續處理。
      • 對于 PDF 文檔,使用 PyPDF2pdfplumber 等 Python 庫將其轉換為純文本,去除不必要的格式信息。
      • 對于 DOCX 格式的文檔,可使用 python-docx 庫提取文本內容。
      • 對于 HTML 內容,使用 BeautifulSoup 庫去除 HTML 標簽和腳本,僅保留文本信息。
    • 對轉換后的純文本進行清洗,使用正則表達式和字符串處理函數去除無關信息,例如刪除多余的空格、特殊字符、廣告信息、版權聲明等,確保文本內容的簡潔性和一致性。
  3. 文檔切分操作

    • 將長文檔按照語義單元進行切分,常見的切分方式有:
      • 按段落切分:根據段落標記(如 )將文檔拆分成段落,使每個段落成為一個獨立的語料單元,以保證每個單元具有相對獨立的語義。
      • 按句子切分:利用自然語言處理工具(如 nltkspaCy)的句子分割功能,將段落進一步拆分成句子,確保語料單元的細化和易于處理。
    • 將切分好的語料單元存儲在數據庫(如 MongoDB 或 Elasticsearch)或文件系統中,并為每個語料單元添加元數據,包括來源、時間戳、文檔類型等信息,方便后續管理和檢索。
二、基于文檔向量聚簇向量庫構建
  1. 文檔向量化

    • 利用 BGE(BAAI General Embedding)相關技術對切分好的語料單元進行向量化。
      • 首先,安裝并導入 sentence-transformers 庫,它提供了方便的接口來使用 BGE 模型。
      • 加載預訓練的 BGE 模型,如 BAAI/bge-base-enBAAI/bge-large-en 等,通過以下代碼實現:

    from sentence_transformers import SentenceTransformer
    model = SentenceTransformer(‘BAAI/bge-base-en’)

    - 將語料單元列表作為輸入,使用模型將其編碼為向量,示例代碼如下:
    

    sentences = [“This is a sample sentence”, “Another sentence for embedding”]
    sentence_embeddings = model.encode(sentences)

    - 存儲生成的向量,可以使用向量數據庫,如 Faiss 或 Annoy 進行存儲。以下是使用 Faiss 的簡單示例:
    

    import faiss
    import numpy as np
    d = sentence_embeddings.shape[1] # 向量維度
    index = faiss.IndexFlatL2(d) # 構建一個 L2 距離的索引
    index.add(sentence_embeddings.astype(np.float32)) # 添加向量到索引中

    • 對于較長的語料單元,可以采用截斷、采樣或其他文本摘要技術,確保輸入到 BGE 模型的長度在合理范圍內。
  2. 聚類操作

    • 選擇合適的聚類算法,如 K-Means、DBSCAN 或層次聚類。以 K-Means 為例,使用 scikit-learn 庫實現:

    from sklearn.cluster import KMeans
    kmeans = KMeans(n_clusters=5, random_state=0).fit(sentence_embeddings)
    cluster_labels = kmeans.labels_

    • 確定聚類的數量可以使用肘部法則(Elbow Method)或輪廓系數(Silhouette Coefficient)進行評估。例如,使用肘部法則的代碼如下:

    sse = []
    for k in range(1, 11):
    kmeans = KMeans(n_clusters=k, random_state=0).fit(sentence_embeddings)
    sse.append(kmeans.inertia_)
    import matplotlib.pyplot as plt
    plt.plot(range(1, 11), sse)
    plt.xlabel(‘Number of clusters’)
    plt.ylabel(‘SSE’)
    plt.show()

    • 存儲聚類結果,將簇的信息存儲在數據庫中,包括簇中心向量、簇內語料單元的索引等,以便后續的分析和檢索。
三、基于大模型指令的通用知識圖譜語料庫構建
  1. 實體和關系抽取

    • 從切分好的語料庫中選取語料單元,使用大模型(如 GPT-3、BERT 或其微調版本)進行實體和關系抽取。通過精心設計的提示,引導大模型完成任務,例如:

    import openai
    openai.api_key = “your_api_key”
    for corpus in corpus_list:
    prompt = f"從以下文本中提取所有的實體和關系:{corpus}"
    response = openai.Completion.create(
    engine=“text-davinci-02”,
    prompt=prompt,
    max_tokens=100
    )
    extracted_info = response.choices[0].text.strip()
    # 解析提取的信息,將其存儲在結構化數據中,如 JSON 或 RDF 格式

    • 對大模型的輸出進行解析和驗證,將提取的實體和關系存儲在結構化的數據格式中,確保信息的準確性和完整性。
  2. 知識圖譜構建

    • 將提取的實體作為節點,關系作為邊,使用圖數據庫(如 Neo4j)構建通用知識圖譜。以下是使用 py2neo 庫的示例:

    from py2neo import Graph
    graph = Graph(“bolt://localhost:7687”, auth=(“neo4j”, “password”))

    假設 entity1 和 entity2 是提取的兩個實體,relation 是它們之間的關系

    graph.run(“CREATE (e1:Entity {name: $name1})-[r:RELATION {type: $relation}]->(e2:Entity {name: $name2})”,
    name1=entity1, relation=relation, name2=entity2)

    • 對知識圖譜進行擴充和優化,可以繼續使用大模型的能力,通過生成性任務來推斷新的實體和關系。例如,使用以下提示讓大模型根據已有的信息推斷更多內容:

    prompt = “根據以下實體和關系,推斷新的實體和關系:[已有實體和關系列表]”
    response = openai.Completion.create(
    engine=“text-davinci-02”,
    prompt=prompt,
    max_tokens=100
    )

    • 將新推斷的實體和關系添加到知識圖譜中,以不斷豐富知識圖譜的內容。
四、基于垂直領域專家經驗的大模型指令構建的垂直領域知識圖譜語料庫
  1. 領域數據收集與篩選

    • 針對特定的垂直領域(如醫療、金融、法律等)收集數據,來源可以包括:
      • 專業數據庫:如醫療領域的 PubMed、金融領域的 Bloomberg 等,從這些專業數據庫中提取特定領域的數據。
      • 企業內部數據:從企業的業務系統、數據庫中收集與該領域相關的信息。
      • 專業網站和報告:從行業網站、專業報告、期刊中獲取最新的信息。
    • 對收集的數據進行篩選和整理,結合垂直領域專家的經驗,確保數據的相關性和專業性。
  2. 實體和關系抽取

    • 與通用知識圖譜的構建類似,但會使用更具領域針對性的大模型或對大模型進行微調。首先,使用垂直領域專家提供的知識和經驗來設計更精確的提示,引導大模型進行實體和關系抽取。例如,對于醫療領域:

    import openai
    openai.api_key = “your_api_key”
    for medical_corpus in medical_corpus_list:
    prompt = f"從以下醫療文本中提取醫療實體和關系:{medical_corpus}"
    response = openai.Completion.create(
    engine=“text-davinci-02”,
    prompt=prompt,
    max_tokens=100
    )
    extracted_info = response.choices[0].text.strip()
    # 解析提取的信息,將其存儲在結構化數據中,如 JSON 或 RDF 格式

    • 對大模型的輸出進行解析和驗證,可邀請領域專家對結果進行審核,確保提取信息的準確性和專業性。
  3. 知識圖譜構建與融合

    • 將提取的垂直領域實體和關系構建成垂直領域知識圖譜,使用圖數據庫存儲,如 Neo4j。
    • 將垂直領域知識圖譜與通用知識圖譜進行融合,可以通過共享的實體或關系將兩者連接起來,形成一個更完整的知識圖譜。
五、根據輸入生成 Cypher 語料庫構建
  1. 問題收集

    • 從用戶的問題、問答系統、客服記錄等渠道收集自然語言問題,將這些問題存儲在數據庫(如 PostgreSQL、MySQL)或文件系統中,并添加問題的來源、時間、領域等元數據。
  2. Cypher 語句生成

    • 使用大模型將自然語言問題轉換為 Cypher 查詢語句,使用特定的提示引導大模型完成轉換,例如:

    import openai
    openai.api_key = “your_api_key”
    for question in question_list:
    prompt = f"將以下自然語言問題轉換為 Cypher 查詢:{question}"
    response = openai.Completion.create(
    engine=“text-davinci-02”,
    prompt=prompt,
    max_tokens=100
    )
    cypher_query = response.choices[0].text.strip()
    # 存儲自然語言問題和對應的 Cypher 查詢,建立映射關系

    • 對生成的 Cypher 查詢語句進行驗證和優化,可以使用 Neo4j 的 Cypher 解釋器檢查語句的語法和語義是否正確,對于錯誤或不合理的語句,使用大模型重新生成或人工修改。
六、根據輸入生成 SQL 數據集
  1. 結構化數據確定

    • 確定需要使用 SQL 進行查詢的數據來源,這些數據通常存儲在關系型數據庫中,如企業的業務數據庫、數據倉庫等,包含不同的表和字段,例如用戶信息表、銷售數據表、庫存表等。
  2. SQL 語句生成

    • 使用大模型將自然語言問題轉換為 SQL 語句,使用相應的提示引導大模型完成任務,例如:

    import openai
    openai.api_key = “your_api_key”
    for question in question_list:
    prompt = f"將以下自然語言問題轉換為 SQL 查詢:{question}"
    response = openai.Completion.create(
    engine=“text-davinci-02”,
    prompt=prompt,
    max_tokens=100
    )
    sql_query = response.choices[0].text.strip()
    # 存儲自然語言問題和對應的 SQL 查詢,建立映射關系

    • 對生成的 SQL 語句進行驗證和優化,使用數據庫的 SQL 解釋器(如 MySQL 的 EXPLAIN 語句)檢查語句的可行性和性能,對于錯誤或不合理的語句,使用大模型重新生成或人工修改。
代碼解釋
  • 文檔切分部分
    • 使用各種工具將不同格式的文檔轉換為純文本,并將長文本按段落或句子切分,方便后續處理和存儲。
  • 文檔向量聚簇部分
    • sentence-transformers 庫加載 BGE 模型,將語料單元轉換為向量表示,使用 faiss 存儲向量,使用 scikit-learnKMeans 進行聚類操作,通過肘部法則確定聚類數量。
  • 知識圖譜部分
    • 利用大模型進行實體和關系抽取,使用 py2neo 將提取的信息存儲在 Neo4j 圖數據庫中,通過大模型的生成能力對知識圖譜進行擴充。
  • Cypher 和 SQL 生成部分
    • 利用大模型將自然語言問題轉換為 Cypher 或 SQL 語句,使用數據庫的解釋器對生成的語句進行驗證和優化。
使用說明
  • 在使用大模型時,要根據不同的任務設計合理的提示,引導大模型準確完成任務。
  • 對于存儲的數據,根據數據的特點選擇合適的存儲方式,如向量數據庫存儲向量、圖數據庫存儲知識圖譜、關系型數據庫存儲問題和語句映射等。
  • 對大模型的輸出要進行嚴格的驗證和優化,保證最終結果的準確性和有效性。
  • 定期更新和維護語料庫,根據新的數據和領域的發展,更新聚類結果、知識圖譜和生成的語句。

通過以上步驟,可以逐步構建一個功能完善的大模型語料庫,為大模型在不同領域和應用場景中的使用提供全面的數據支持。
以下是一個面向數據集構建的智能體協調管理底層數據加工組件的設計,該組件可以對上述大模型語料庫構建過程中的數據進行二次加工:

一、總體架構

該智能體協調管理底層數據加工組件主要由以下幾個部分組成:

  • 數據輸入模塊:負責接收來自不同來源的原始數據,包括文檔語料庫、向量數據、知識圖譜數據等。
  • 智能體控制器:根據數據的類型和加工需求,調度不同的加工模塊進行數據的二次加工,并協調不同模塊之間的工作。
  • 數據加工模塊:包含多個專門的加工模塊,如實體關系加工模塊、聚類優化模塊、Cypher/SQL 語句優化模塊等,分別對不同類型的數據進行二次加工。
  • 數據存儲模塊:存儲經過二次加工的數據,并提供數據的檢索和更新功能。
  • 監控與評估模塊:對加工過程和結果進行監控和評估,以便持續優化加工過程。
二、模塊詳細設計
數據輸入模塊
  • 功能

    • 從文件系統、數據庫(如 MongoDB、Elasticsearch、Neo4j、MySQL 等)或外部數據源接收原始數據。
    • 對輸入的數據進行格式檢查和初步的預處理,確保數據的一致性和可用性。
  • 實現示例(以 Python 為例)

    import json
    import pymongo
    from neo4j import GraphDatabase

    def fetch_document_corpus():
    client = pymongo.MongoClient(“mongodb://localhost:27017/”)
    db = client[“corpus_db”]
    collection = db[“document_corpus”]
    return list(collection.find())

    def fetch_vector_data():
    # 假設向量數據存儲在文件中
    with open(“vector_data.json”, “r”) as f:
    return json.load(f)

    def fetch_knowledge_graph():
    driver = GraphDatabase.driver(“bolt://localhost:7687”, auth=(“neo4j”, “password”))
    with driver.session() as session:
    result = session.run(“MATCH (n) RETURN n”)
    return [record for record in result]

    def fetch_sql_data():
    connection = pymysql.connect(
    host=“localhost”,
    user=“root”,
    password=“password”,
    database=“sql_corpus_db”
    )
    cursor = connection.cursor()
    cursor.execute(“SELECT * FROM sql_queries”)
    return cursor.fetchall()

    def fetch_cypher_data():
    driver = GraphDatabase.driver(“bolt://localhost:7687”, auth=(“neo4j”, “password”))
    with driver.session() as session:
    result = session.run(“MATCH (n:Query) RETURN n.cypher_query”)
    return [record[“cypher_query”] for record in result]

智能體控制器
  • 功能

    • 分析輸入數據的類型和特征,決定調用哪些數據加工模塊進行處理。
    • 協調不同加工模塊的工作順序和資源分配,確保數據的流暢加工。
    • 處理加工過程中的異常和錯誤,進行相應的調整和重新調度。
  • 實現示例(以 Python 為例)

    class DataProcessingAgentController:
    def init(self):
    self.processing_modules = []

    def register_module(self, module):self.processing_modules.append(module)def process_data(self, data):for module in self.processing_modules:if module.can_process(data):try:processed_data = module.process(data)self.store_data(processed_data)except Exception as e:print(f"Error processing data with module {module}: {e}")self.handle_error(module, data)def store_data(self, data):# 調用數據存儲模塊存儲數據passdef handle_error(self, module, data):# 處理異常,可能重新調度模塊或調整數據處理流程pass
    
數據加工模塊
實體關系加工模塊
  • 功能

    • 對于從大模型中提取的實體和關系數據,進行進一步的清理、驗證和優化。
    • 利用外部知識資源或規則,對實體和關系進行補充和完善。
    • 解決實體和關系中的歧義或錯誤信息。
  • 實現示例(以 Python 為例)

    class EntityRelationProcessingModule:
    def can_process(self, data):
    # 判斷數據是否為實體和關系數據
    return “entities” in data and “relations” in data

    def process(self, data):entities = data["entities"]relations = data["relations"]# 進行實體和關系的優化處理optimized_entities = self.optimize_entities(entities)optimized_relations = self.optimize_relations(relations)return {"entities": optimized_entities, "relations": optimized_relations}def optimize_entities(self, entities):# 對實體進行清理和優化,例如去除重復、添加語義信息等cleaned_entities = []seen_entities = set()for entity in entities:if entity["name"] not in seen_entities:seen_entities.add(entity["name"])cleaned_entities.append(entity)return cleaned_entitiesdef optimize_relations(self, relations):# 對關系進行清理和優化,例如去除錯誤關系、添加缺失關系等optimized_relations = []for relation in relations:if self.is_valid_relation(relation):optimized_relations.append(relation)return optimized_relationsdef is_valid_relation(self, relation):# 檢查關系的有效性,例如檢查源節點和目標節點是否存在等return True
    
聚類優化模塊
  • 功能

    • 對基于文檔向量的聚類結果進行優化,提高聚類的質量。
    • 利用新的數據和算法對聚類結果進行更新和調整。
  • 實現示例(以 Python 為例)

    from sklearn.cluster import KMeans
    import numpy as np

    class ClusteringOptimizationModule:
    def can_process(self, data):
    # 判斷數據是否為聚類數據
    return “cluster_labels” in data and “vectors” in data

    def process(self, data):vectors = np.array(data["vectors"])cluster_labels = data["cluster_labels"]# 使用新的聚類算法或參數進行優化optimized_clusters = self.recluster(vectors, cluster_labels)return {"cluster_labels": optimized_clusters, "vectors": vectors}def recluster(self, vectors, cluster_labels):# 使用 K-Means 重新聚類kmeans = KMeans(n_clusters=len(set(cluster_labels)), random_state=0).fit(vectors)return kmeans.labels_
    
Cypher/SQL 語句優化模塊
  • 功能

    • 對大模型生成的 Cypher 和 SQL 語句進行語法檢查和優化。
    • 根據知識圖譜和數據庫結構,對語句進行性能優化。
    • 利用專家規則和歷史執行數據,對語句進行調整和改進。
  • 實現示例(以 Python 為例)

    class CypherSQLStatementOptimizationModule:
    def can_process(self, data):
    # 判斷數據是否為 Cypher 或 SQL 語句
    return “cypher_queries” in data or “sql_queries” in data

    def process(self, data):if "cypher_queries" in data:optimized_cypher = self.optimize_cypher(data["cypher_queries"])data["cypher_queries"] = optimized_cypherif "sql_queries" in data:optimized_sql = self.optimize_sql(data["sql_queries"])data["sql_queries"] = optimized_sqlreturn datadef optimize_cypher(self, cypher_queries):optimized_queries = []for query in cypher_queries:# 進行 Cypher 語句的優化,例如添加索引建議等optimized_query = self.syntax_check_cypher(query)optimized_queries.append(optimized_query)return optimized_queriesdef optimize_sql(self, sql_queries):optimized_queries = []for query in sql_queries:# 進行 SQL 語句的優化,例如添加索引建議等optimized_query = self.syntax_check_sql(query)optimized_queries.append(optimized_query)return optimized_queriesdef syntax_check_cypher(self, query):# 使用 Neo4j 的解釋器進行語法檢查和優化return querydef syntax_check_sql(self, query):# 使用數據庫的 SQL 解釋器進行語法檢查和優化return query
    
數據存儲模塊
  • 功能

    • 將經過二次加工的數據存儲到相應的存儲系統中,如更新文檔語料庫、更新知識圖譜、存儲優化后的 Cypher 和 SQL 語句等。
  • 實現示例(以 Python 為例)

    def store_document_corpus(corpus):
    client = pymongo.MongoClient(“mongodb://localhost:27017/”)
    db = client[“corpus_db”]
    collection = db[“document_corpus”]
    collection.insert_many(corpus)

    def store_knowledge_graph(entities, relations):
    driver = GraphDatabase.driver(“bolt://localhost:7687”, auth=(“neo4j”, “password”))
    with driver.session() as session:
    for entity in entities:
    session.run(“CREATE (e:Entity {name: $name, properties: $properties})”,
    name=entity[“name”], properties=entity.get(“properties”, {}))
    for relation in relations:
    session.run("MATCH (a:Entity {name: $source}), (b:Entity {name: $target}) "
    “CREATE (a)-[r:RELATION {type: $type}]->(b)”,
    source=relation[“source”], target=relation[“target”], type=relation[“type”])

    def store_sql_queries(queries):
    connection = pymysql.connect(
    host=“localhost”,
    user=“root”,
    password=“password”,
    database=“sql_corpus_db”
    )
    cursor = connection.cursor()
    for query in queries:
    cursor.execute(“INSERT INTO optimized_sql_queries (query) VALUES (%s)”, (query,))
    connection.commit()

    def store_cypher_queries(queries):
    driver = GraphDatabase.driver(“bolt://localhost:7687”, auth=(“neo4j”, “password”))
    with driver.session() as session:
    for query in queries:
    session.run(“CREATE (q:Query {cypher_query: $query})”, query=query)

監控與評估模塊
  • 功能

    • 監控數據加工過程中的關鍵指標,如加工時間、加工成功率、錯誤率等。
    • 對加工結果進行評估,如聚類質量評估、語句執行性能評估等。
    • 根據評估結果,為智能體控制器提供優化建議。
  • 實現示例(以 Python 為例)

    import time

    class MonitoringEvaluationModule:
    def start_monitoring(self, start_time):
    end_time = time.time()
    processing_time = end_time - start_time
    print(f"Processing time: {processing_time}")

    def evaluate_clustering(self, cluster_labels, vectors):# 使用輪廓系數等指標評估聚類質量passdef evaluate_statements(self, statements, execution_results):# 根據執行結果評估語句性能pass
    
三、組件使用示例
# 初始化智能體控制器
controller = DataProcessingAgentController()# 注冊數據加工模塊
controller.register_module(EntityRelationProcessingModule())
controller.register_module(ClusteringOptimizationModule())
controller.register_module(CypherSQLStatementOptimizationModule())# 從不同來源獲取數據
document_corpus = fetch_document_corpus()
vector_data = fetch_vector_data()
knowledge_graph = fetch_knowledge_graph()
sql_data = fetch_sql_data()
cypher_data = fetch_cypher_data()# 對數據進行處理
controller.process_data({"document_corpus": document_corpus})
controller.process_data({"vector_data": vector_data})
controller.process_data({"knowledge_graph": knowledge_graph})
controller.process_data({"sql_data": sql_data})
controller.process_data({"cypher_data": cypher_data})
代碼解釋
  • 數據輸入模塊

    • 包含多個函數,用于從不同的數據源(如 MongoDB、Neo4j、文件系統等)獲取不同類型的數據,為后續的加工處理提供原始數據。
  • 智能體控制器

    • DataProcessingAgentController 類負責協調各個數據加工模塊,根據數據類型調度相應的模塊進行處理,并處理異常情況和存儲結果。
  • 數據加工模塊

    • 每個加工模塊都有 can_process 方法,用于判斷是否可以處理該類型的數據,process 方法用于實際的數據加工操作。
    • EntityRelationProcessingModule 對實體和關系數據進行清理和優化,確保數據的質量和準確性。
    • ClusteringOptimizationModule 對聚類結果進行重新聚類或優化,提高聚類的效果。
    • CypherSQLStatementOptimizationModule 對 Cypher 和 SQL 語句進行語法和性能優化。
  • 數據存儲模塊

    • 不同的存儲函數將經過二次加工的數據存儲到相應的存儲系統中,確保數據的更新和持久化。
  • 監控與評估模塊

    • 對加工過程和結果進行監控和評估,為整個加工過程的優化提供依據。
使用說明
  • 在使用該組件時,首先要確保各個數據源的連接信息(如數據庫地址、用戶名、密碼等)正確配置。
  • 根據需要添加或修改數據加工模塊,以適應不同的數據和加工需求。
  • 對于存儲模塊,根據實際的存儲系統和數據結構,調整存儲函數的實現細節。
  • 監控和評估模塊可以根據具體的評估指標和業務需求進行細化和擴展,以更好地指導加工過程的優化。

通過這樣的智能體協調管理底層數據加工組件,可以對大模型語料庫構建過程中的數據進行全面、系統的二次加工,提高數據的質量和可用性,為大模型的訓練和應用提供更好的數據支持。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896715.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896715.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896715.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle游標為什么沒有共享,統計一下原因

-- Script Code為什么沒共享 define sql_id bs391f0yq5tpw;set serveroutput onDECLAREv_count number;v_sql varchar2(500);v_sql_id varchar2(30) : &sql_id; BEGINv_sql_id : lower(v_sql_id);dbms_output.put_line(chr(13)||chr(10));dbms_output.put_line(sql_id: ||…

哈希碰撞攻防戰——深入淺出Map/Set的底層實現

各位看官早安午安晚安呀 如果您覺得這篇文章對您有幫助的話 歡迎您一鍵三連,小編盡全力做到更好 歡迎您分享給更多人哦 今天我們來學習Map/Set的底層實現 目錄 問題一:hash會出現負數?數組越界 一:什么是二叉搜索樹&#xff1f…

win10使用haneWIN NFS Server掛載NFS v2服務,u-boot通過NFS下載zImage

1. haneWIN NFS Server掛載NFS v2服務 https://www.hanewin.net/nfs-e.htm netstat -ano | findstr ":2049"TCP 0.0.0.0:2049 0.0.0.0:0 LISTENING 3824UDP 0.0.0.0:2049 *:* 38…

Linux文件系統與目錄結構

Linux系統中一切皆文件 bin 是Binary 的縮寫, 這個目錄存放著最經常使用的命令 boot 這里存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件,自 己的安裝別放這里。 cdrom 這個目錄通常專門用來掛載光盤。當系統剛安裝時&#x…

一文詳解基于NarrotoAI的短劇短視頻自動解說、混剪AI平臺搭建

背景 前陣給孩子做電子相冊學了點剪輯技術,就想湊個熱鬧剪剪短劇玩玩,一是學以 致用,再者也好奇短劇創作為啥這么火,跟個風。 初步了解情況后,發現我的剪輯技術已經落后了,行家們玩的主要是解說 &#xf…

計算機畢業設計Hadoop+Spark+DeepSeek-R1大模型音樂推薦系統 音樂數據分析 音樂可視化 音樂爬蟲 知識圖譜 大數據畢業設計

溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 溫馨提示:文末有 CSDN 平臺官方提供的學長聯系方式的名片! 作者簡介:Java領…

《Canvas修仙傳·第三重天金丹境(下集)》 ——量子煙花與物理宇宙的混沌法則

各位道友久候!上集我們煉就了《靈蛇奇譚》的元神,今日將開啟Canvas修仙路上最絢麗的篇章——掌控微觀粒子的創世之力!(ノ≧?≦)ノ 章前黑話詞典 🔍 量子境術語表: 對象池(Object Po…

c++ namespace名字域空間

在C中,namespace 是一個非常重要的概念,用于組織代碼,避免名稱沖突。namespace(命名空間)是一個邏輯上的代碼組織單元,用于將代碼(類、函數、變量等)分組,從而避免命名沖…

獲取阿里云OSS預簽名URL下載(java)

1,引入依賴 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId> </dependency> <!--AliSms--> <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-s…

中間件專欄之Redis篇——Redis的基本IO網絡模型

Redis主要采用的是單線程的事件驅動模型&#xff0c;通過I/O多路復用來實現高效的并發請求處理。 一、單線程模型 Redis 采用 單線程模型 來處理所有請求&#xff0c;包括網絡 I/O 和命令執行。雖然現代多核 CPU 能夠并行處理任務&#xff0c;但 Redis 的設計原則是盡量避免多…

Python 線程同步

Python 線程同步 Python 線程同步 Python 線程同步 線程同步是一種確保兩個或多個線程不同時執行同一塊共享代碼的機制。共享塊中的代碼通常是訪問共享數據或資源&#xff0c;這種共享塊被稱作臨界區。這個概念可以用下面的圖清晰地表示出來&#xff1a; #mermaid-svg-2TivIuc…

Linux操作系統5-進程信號3(信號的捕捉流程,信號集,sigaction)

上篇文章&#xff1a;Linux操作系統5-進程信號3&#xff08;信號的保存, 用戶態與內核態&#xff0c;內核空間&#xff09;-CSDN博客 本篇Gitee倉庫&#xff1a;???????myLerningCode/l26 橘子真甜/Linux操作系統與網絡編程學習 - 碼云 - 開源中國 (gitee.com) 本篇重點…

【機器學習chp10】降維——(核化)PCA + MDS + lsomap + 拉普拉斯特征映射 + t-NSE + UMAP

目錄 一、降維的意義與本質 1、意義 2、本質 3、常見降維方法 &#xff08;1&#xff09;線性降維 &#xff08;2&#xff09;非線性降維 二、基于重構的降維 1、PCA 2、核化PCA &#xff08;1&#xff09;實現過程 步驟一&#xff1a;數據映射與核函數定義 步驟二…

代碼的解讀——自用

代碼來自&#xff1a;https://github.com/ChuHan89/WSSS-Tissue?tabreadme-ov-file 借助了一些人工智能 run_pipeline.sh 功能總結 該腳本用于執行一個 弱監督語義分割&#xff08;WSSS&#xff09; 的完整流程&#xff0c;包含三個階段&#xff1a; Stage1&#xff1a;訓…

Powershell和BTEQ工具實現帶多組參數和標簽的Teradata數據庫批量數據導出程序

設計一個基于多個帶標簽SQL模板作為配置文件和多組參數的Powershell代碼程序和BTEQ工具&#xff0c;實現根據不同的輸入參數&#xff0c;自動批量地將Teradata數據庫的數據導出為CSV文件到指定目錄上&#xff0c;標簽和多個參數&#xff08;以“_”分割&#xff09;為組成導出數…

CF 118A.String Task(Java實現)

題目分析 輸入一個字符串&#xff0c;遍歷每一個字符&#xff0c;如果是元音字母就刪除&#xff0c;輔音字母就在其前面增加一個.&#xff0c;且所有字母輸出都是小寫。 思路分析 將輸入的字符串改為字符數組&#xff0c;考慮到任意位置插入的情況&#xff0c;所以主要選擇Lin…

LLM進階

prologue&#xff1a;最近大模型火出天際&#xff0c;I’m definitely aware I’m late to the party&#xff0c;2022年畢業之后就很少在系統的跟蹤一個domain了&#xff0c;所以這次下定決心要跟蹤一下大模型的技術細節和實現過程&#xff0c;不做AI丁真 本文三條主線&#…

Ubuntu 下查看進程 PID 和終止進程方法

查看進程 PID 使用 ps 命令: ps aux | grep <process_name>例如&#xff0c;查看名為 python 的進程&#xff1a; ps aux | grep python使用 pgrep 命令: pgrep <process_name>例如&#xff0c;查看名為 python 的進程&#xff1a; pgrep python使用 top 命令: top…

Java基礎語法練習34(抽象類-abstract)(抽象類最佳實踐-模版設計模式)

一抽象類-abstract、 父類方法不確定性的問題故將該方法設計為抽象類&#xff08;沒有實現的方法&#xff09;&#xff0c;但一般來說被子類繼承然后實現 細節&#xff1a; 1、抽象類不可以被實例化 2、抽象類可以不包含抽象方法而且可以有實現的其他非抽象方法 3、abstra…

Android SDK與NDK的區別

Android SDK&#xff08;Software Development Kit&#xff09;與NDK&#xff08;Native Development Kit&#xff09;在Android應用開發中各自扮演著重要角色&#xff0c;它們之間存在顯著的區別。以下是Android SDK與NDK的主要區別&#xff1a; 一、定義與用途 Android SDK…