著者 | 崔昊 レビュー | Chonglou まとめこの記事では、ナレッジ グラフと大規模言語モデルを連携させて業界のアプリケーションを改善する方法について説明します。ナレッジグラフの開発プロセス、特にエンティティ認識、関係抽出、グラフ構築という 3 つの重要なリンクについて学習します。この記事では、実際の例を通して、自然言語処理 (NLP) と大規模言語モデルを使用してナレッジグラフを生成する方法を説明します。さらに、この記事ではオープンソースのナレッジグラフプロジェクト GraphGPT についても紹介します。 導入ご存知のとおり、ナレッジグラフは情報や知識をグラフ構造で整理して表現する方法です。このような構造では、ノードはエンティティ(人、場所、物など)を表し、エッジはエンティティ間のさまざまな関係を表します。ナレッジグラフは、情報をより効率的に整理して取得するのに役立ち、検索、推奨システム、自然言語理解、さまざまなアプリケーション シナリオで重要な役割を果たします。大規模モデルの開発がますます加速するにつれ、大規模モデルを使用してナレッジグラフを生成する方法も静かに登場してきました。この記事では、実用的なアプローチを使用して、大規模な言語モデルを使用してナレッジ グラフを生成する方法を説明します。 ナレッジグラフの応用と開発ナレッジグラフの応用ナレッジグラフといえば、皆さんもよくご存知かと思いますが、さまざまな分野で重要な役割を果たしています。 1. ヘルスケア 病気の診断と治療: ナレッジグラフは、病気、症状、薬の関係を分析することで、医師がより正確な診断と治療計画を立てるのに役立ちます。 医薬品開発: ナレッジグラフはさまざまな生物医学情報を統合し、新薬の開発を加速します。 2. 金融業界 リスク管理と評価: ナレッジ グラフは、個人や企業に関する多次元情報を統合して、融資や投資のリスクをより正確に評価できます。 不正防止: トランザクションのパターンと動作を分析することで、ナレッジグラフは不正行為を効果的に検出し、防止することができます。 3. 電子商取引とレコメンデーションシステム パーソナライズされた推奨事項:ナレッジ グラフは、ユーザーの行動や好み、製品属性に基づいて、より正確なパーソナライズされた推奨事項を提供できます。 サプライ チェーンの最適化: ナレッジ グラフは、サプライ チェーンの各リンクからのデータを分析することで、企業が在庫管理と物流を最適化するのに役立ちます。 ナレッジグラフの開発ナレッジグラフは、大規模で複雑なデータ ポイントを結び付けることで、複数の業界に関連性の高い実用的な洞察を提供します。これにより、現代の情報化時代には欠かせないものとなっています。 ナレッジ グラフの開発プロセスも比較的面倒で、次の手順が必要です。 データ収集: テキスト、データベース、Web サイトなどのさまざまなソースから生データを収集します。 データクリーニング: ノイズ除去、標準化など、収集したデータを前処理します。 エンティティ認識: テキスト内の重要なエンティティ (名詞や固有名詞など) を識別します。 関係抽出: エンティティ間の関係を決定します (「is」、「has」、「belongs to」など)。 グラフの構築: 識別されたエンティティと関係を使用してナレッジ グラフを構築します。 検証と更新: ナレッジ グラフを手動または自動で検証し、動的に更新します。 トリプル上記のプロセスの各ステップは重要ですが、「エンティティ認識」、「関係抽出」、「グラフ構築」の 3 つのステップは、開発プロセス全体の最優先事項です。認識、抽出、構築を完了するにはトリプルを使用する必要があります。 GPT や BERT などの大規模言語モデルが登場する前は、ナレッジグラフは主にルールマッチング、品詞タグ付け、依存関係解析、およびさまざまな機械学習手法に依存してトリプレット (エンティティ 1、関係、エンティティ2 ) を抽出していました。これらの従来の方法にはそれぞれ長所と短所があります。たとえば、大量の手動ルール、ラベル付きデータ、コンピューティング リソースが必要であり、一般化能力と精度も限られています。 例: 次の3つの文からトリプルを抽出します 1. シャオホンは私のクラスメートです。 2. シャオホンはシャオミンの隣人です。 3. シャオミンはバスケットボールチームの私のチームメイトです。 NLP メソッドを使用して処理できます。コードは次のとおりです。 コードの簡単な説明は次のとおりです。
上記のコードを実行すると、次の結果が生成されます。 結果は、自然言語処理 (NLP) タスクの問題を示しています。 1. トリプルの構成が不正確です。たとえば、最初のトリプル (「是」、「邻」、「小明」) では、「是」はエンティティではなく関係です。 2. 一部の重要な情報が失われます。たとえば、3 番目の文「Xiao Ming と私はバスケットボール チームのチームメイトです」は、トリプルとして正しく抽出されません。 これらの問題は、一般的な NLP タスク、特にルールや浅い NLP ツールに基づくタスクのいくつかの制限を明らかにしています。 1. 品詞タグ付けと構文解析の不正確さ: 品詞タグ付けと構文解析ツールの精度に依存します。ツールが間違っていると、その後の情報抽出にも影響します。 2. 深い意味理解の欠如: 品詞タグ付けと浅い構文分析だけでは、複雑または曖昧な関係を正確に抽出することは困難です。 3. 一般化能力が低い: 異なるタイプや構造の文の場合、ルールやモデルを常に調整する必要がある場合があります。 4. 文脈情報の活用が不十分: このアプローチでは通常、1 つの文内の情報のみが考慮され、複雑なテキストでは非常に重要な文脈情報は無視されます。 大規模言語モデルが知識グラフにどのように役立つかGPT や BERT などの大規模言語モデルは、優れたテキスト理解および生成機能を備えた、ディープラーニングに基づく自然言語処理モデルです。自然言語を理解できるため、複雑なクエリや推論が容易になります。従来の方法と比較して、大規模モデルには次のような利点があります。
同じ例を使用して、大規模なモデルがどのように行われるかを見てみましょう。コードは次のとおりです。 上記のコードはナレッジグラフを構築するために使用されます。 3 つのメインモジュール「OpenAI」、「GraphIndexCreator」、「GraphQAChain」と、補助クラス「KnowledgeTriple」を使用します。主な内容は次のとおりです。
結果は次のとおりです: 上記の NLP 処理の結果よりも良く見えますか? テキスト変数を変更すると: 特に複雑な例を使って説明しましょう。この例は私たちが作成した架空の国であり、この国に関連する他のいくつかの国について説明しています。かなり複雑に見えます。この時点で、ノードとエッジを通じてこのような複雑な関係を示すグラフを追加します。次のコードを追加します: このコードは、`networkx` および `matplotlib.pyplot` ライブラリを使用して、以前に抽出されたトリプル (エンティティ-リレーションシップ-エンティティ) からノードとエッジが取得される有向グラフ (つまり、ナレッジ グラフ) を視覚化します。 1. 空の有向グラフを作成する: `G = nx.DiGraph()` 2. グラフにエッジを追加します。 `G.add_edges_from((source, target, {'relation': relationship}) for source, relationship, target in final_graph.get_triples())` 以前にテキストから抽出したトリプルをグラフ `G` にエッジとして追加します。各エッジには、ソース (`source`)、エンドポイント (`target`)、および 2 つの関係を示すラベル (`relation`) があります。 3. 画像のサイズと解像度を設定します。 `plt.figure(figsize=(8,3), dpi=500)` 画像サイズ(8x3)と解像度(500 DPI)が設定されています。 4. ノードレイアウトを定義します。 `pos = nx.spring_layout(G, k=3, シード=0)` 「スプリング」レイアウト アルゴリズムを使用して、グラフ内の各ノードの位置を決定します。 `k` はノード間隔を設定するために使用されるパラメータであり、 `seed` は乱数ジェネレータのシードです。 5. エッジラベルを取得して描画します。 `edge_labels = nx.get_edge_attributes(G, '関係')` `nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels, font_size=8, font_family='simhei')` グラフ内の各エッジのラベル (つまり、`relation`) が取得され、プロットされます。 6. グラフを描きます。 `nx.draw_networkx(G, フォントファミリ = 'simhei')` 図全体は、漢字をサポートするために「simhei」フォントを使用して描かれています。 7. 軸表示をオフにして画像を表示します。 `plt.axis('off')` `plt.show()` 軸の表示がオフになり、最終画像が表示されます。 結果を見てみましょう: 生成されたナレッジ グラフは、Bird Country に関連するすべての場所を接続します。 次に、次のコードに示すように、上記のナレッジ グラフについて質問します。 結果は次のとおりです: ナレッジ グラフは、3 つの要素を通じて、「エメラルドの海」(エンティティ 1)、「7 大文明遺跡の 1 つ」(エンティティ 2)、「である」(関係) を伝えます。 GraphGPTをすぐに使える上記の実践的な経験から、大規模なモデルを使用すると、ナレッジ グラフをより適切に処理し、ナレッジ グラフの内容について質問できることがわかります。このようなシステムを自分で開発するのが面倒な場合は、 Github にあるオープンソースの GraphGPTを使用してみることもできます。 アドレスはここに載せました。https ://github.com/varunshenoy/GraphGPT GraphGPT は、構造化されていない自然言語を知識グラフに変換するプロジェクトです。映画のあらすじ、Wikipedia のページ、ビデオの書き起こしなど、さまざまな種類の入力を受け取り、エンティティ間の関係を示す視覚的なグラフを生成します。 GraphGPT は継続的なクエリをサポートしており、これを使用して既存のグラフの状態を更新したり、まったく新しい構造を作成したりできます。 インストール手順依存関係をダウンロードする 必要な依存関係をダウンロードするにはnpm installを実行します。現在はreact-graph-visのみが必要です。 OpenAI APIキーを取得する クエリを実行するときに入力する OpenAI API キーがあることを確認してください。 プロジェクトを開始する npm run startを実行します。GraphGPT が新しいブラウザ タブで開きます。 これらの手順を実行すると、GraphGPT を実行し、自然言語テキストをナレッジグラフに変換できるようになります。 コードを実行する 上記の手順に従ってコードを実行すると、 http://localhost:3000でローカルのウェブサイトが開きます。ナレッジグラフのテキストとOpenAIを入力する必要があります。 鍵。 ナレッジ グラフを生成するテキストを入力し、「生成」ボタンをクリックして、グラフの関係を生成します。 コードの説明このオープンソースプロジェクトはjsを通じて実装されています 大規模モデルの呼び出しを実現し、ナレッジグラフを生成します。下の図のコード構造から、主なビジネスロジックはApp.jsファイルにあり、 ディレクトリの下。 この React アプリケーションの主な目的は、GPT モデルを通じて入力された自然言語に基づいてナレッジ グラフを生成することです。メイン関数(App.js )について説明しましょう。
この関数は、ユーザーが入力したプロンプトと API キーを受け取り、`queryPrompt` 関数を呼び出してグラフを生成します。 さらに、2 つのプロンプト状態に対して 2 つの異なるプロンプト ファイルが生成されます。stateful.promptと stateless.prompt はどちらも、ナレッジ グラフ内のエンティティとリレーションシップを処理するために使用されます。 stateful.prompt は状態を認識し、グラフの現在の状態に基づいてノードとエッジを追加または変更します。継続的な更新が必要なシナリオに適しています。対照的に、stateless.prompt はステートレスであり、グラフの現在の状態に関係なく、指定されたプロンプトに基づいて一連の更新のみを生成します。一度限りの更新タスクや独立した更新タスクに適しています。 2 つの主な違いは、グラフの現在の状態を考慮する必要があるかどうかです。 要約するこの記事では、現代の情報処理と意思決定におけるナレッジグラフとビッグモデルのかけがえのない役割について説明します。医療診断から財務リスク評価、パーソナライズされた推奨事項まで、ナレッジグラフは強力な応用可能性を実証しています。同時に、GPT などの大規模言語モデルも、ナレッジ グラフの生成とクエリにおいて重要な役割を果たします。大規模言語モデルの助けを借りて、知識グラフを効率的に作成し、リアルタイムで柔軟に更新およびクエリすることができます。この記事は、ビッグデータと AI テクノロジーを実際のアプリケーションに統合したい人にとって有益です。 著者について51CTO コミュニティ エディター兼シニア アーキテクトの Cui Hao 氏は、ソフトウェア開発とアーキテクチャで 18 年の経験があり、分散アーキテクチャでは 10 年の経験があります。 |
[[419666]]序文みなさんこんにちは、パンパンです!これまでは rand と srand を使...
毎日、インテリジェント システムとアルゴリズムが、Uber の運転手、会計士、さらには弁護士などの単...
テクノロジーサイトEngadgetが北京時間8月25日に報じたところによると、人工知能は現在、ほとん...
2018年5月18日〜19日、51CTO主催のグローバルソフトウェアおよび運用技術サミットが北京で開...
[[265994]]最近、国際人工知能教育会議、第3回世界知能会議が相次いで開催され、さまざまなA...
大規模な AI モデルへの熱狂に後押しされ、AI チップの分野ではついに百家争鳴の時代が到来しました...
概要: 現在、カオスシステムと暗号化技術の組み合わせは、最もホットなトピックの 1 つです。多数の暗...
この文書は、OpenAI 内外の多くの人々からのフィードバックを含め、過去 2 年間にわたって改良し...
ビッグデータ概要編纂者:Jingzhe、Shijintian、Jiang Baoshangディープラ...
19 世紀以前、人々が集まるときには、人生の物語を語り、感情や考えを伝えるために、常に最も原始的な...
著者: ヨギータ・キナブガッティが編集企画丨孫淑娊適切な機械学習アルゴリズムを選択するにはどうすれば...
1. 人工知能と機械学習記事を始める前に、下の図 1.1 に示すように、人工知能、機械学習、ディープ...