事前に訓練された機械学習モデルは、ますます多くのLLMが市場で発売されることで人気を博しています。この傾向が前進するにつれて、より多くの要求でカスタマイズされた機械学習モデルが必要になる場合があります。したがって、この記事では、AIアプリがPythonを使用して大きなデータセットと対話する方法を簡単に説明し、事前に訓練されたモデル関数をユーザーに提供します。
目次:Pythonを使用したGoogle Big Query ML事前トレーニングモデルデータセットとの対話
- Google Big Queryとは何ですか
- 新しいデータセットとテーブル作成
- 新しいデータセットを新しいデータセットとテーブルにアップロードします
- ビッグクエリに保存されている現在のデータセットを呼び出します
- 既存のテーブルに新しい行を挿入します
- Google Big Query Crudの完全なPythonスクリプト
Google Big Queryとは何ですか
Google BigQueryは、組み込みのクエリエンジンが付属するサーバーレスで非常にスケーラブルなデータウェアハウスです。クエリエンジンは、数秒でテラバイトのデータでSQLクエリを実行し、わずか数分でペタバイトを実行できます。インフラストラクチャを管理することなく、インデックスを作成または再構築することなく、このパフォーマンスを取得します。
Google Big Queryは、PythonなどのGoogleクラウドサービスやプログラミング言語の他の部分とシームレスに互換性があります。その容量と速度のパフォーマンスは、特に、事前に訓練されたモデルの展開と実行からのデータセットの作成とデータの取得に非常に優れています。
新しいデータセットとテーブル作成
手動や自動化によって行われていても、クエリデータハウスを作成するための3つの基本的な要素があります。これらは、プロジェクトID、データセットID、およびテーブルIDです。
プロジェクトIDの場合、ユーザーはGoogleクラウドにログインして新しいプロジェクトを作成することで作成できます。各プロジェクトIDは一意であり、Google Big Queryでも使用できます。
プロジェクトIDは、特定のデータベースと対話するアクション要求がある場合にユーザーIDを認証するために使用されます。 Google Cloud認証と資格情報の作成に関する詳細については、Easy2Digitalで以前にリリースされた他のGoogleクラウド記事をご覧ください。
## Authentication ##
project_id=”xxx”
dataset_id = 'aaa'
table_id = 'bbb'
credentials = service_account.Credentials.from_service_account_info(jsonTranslateV2)
client = bigquery.Client(project=project_id, credentials=credentials)
dataset2 = client.dataset(dataset_id)
## Create Dataset ##
def createNewDataSet(dataset):
dataset.location = 'sg'
dataset = client.create_dataset(dataset, timeout=30) # Make an API request.
return "Created dataset {}.{}".format(client.project, dataset.dataset_id)
次に、2つの変数を作成して、まず新しいデータセットIDとテーブルIDに名前を付ける必要があります。その後、認証されたオブジェクトとcreate_datasetメソッドを使用して、以前に電話した名前の新しいデータセットを作成できます。
最後になりましたが、データセットが作成されたら、新しいデータセットIDの下に新しいテーブルIDを作成できます。
def createADataTable(dataset, table_id):
table = dataset.table(table_id)
return table
新しいデータセットを新しいデータセットとテーブルにアップロードします
Nd-JSON、Stringify JSONデータ、およびスキーマ構成というnewDatasetアップロードに関して、3つのステップを実行する必要があります。
最初に、以前に展開されたBig Queryデータセットと対話するアプリの観点から、通常、ユーザーがGoogleクラウドにCSVを手動でアップロードしたり、サードパーティのプラットフォームと統合したりしない限り、JSON形式を使用します。最も安い方法は、JSONを使用することです。 Google Big Queryでは、純粋なJSONの代わりにND-JSON形式、またはNewline Delimited JSONをアップロードする必要があります。
finalNDJson = roundoneDF.to_json(orient='records', lines = True)
第二に、Big Queryにアップロードする前に、IOをインポートして使用してND-JSONデータをStringifyする必要があります。
stringio_data = io.StringIO(finalNDJson)
最後に、構成設定を備えたテーブルを作成する必要があります。列名、データ型、データモードなどなど。
table_schema = {
'name': 'CategoryID',
'type': 'STRING',
'mode': 'REQUIRED'
}, {
'name': 'CategoryDummy',
'type': 'INTEGER',
'mode': 'REQUIRED'
}, {
'name': 'Section Name',
'type': 'STRING',
'mode': 'REQUIRED'
}, {
'name': 'FinetunedCategory',
'type': 'STRING',
'mode': 'NULLABLE'
}, {
'name': 'Article',
'type': 'STRING',
'mode': 'REQUIRED'
}
ビッグクエリに保存されている現在のデータセットを呼び出します
新しいデータセットが作成され、新しいデータがデータセットにアップロードされます。 Big Queryは基本的にSQLであるため、SQLコマンドはBig Queryでも実行可能です。
queryJob = client.query(
f"""
SELECT *
FROM `{project_id}.{dataset_id}.{table_id}`
""")
データを取得するには、認証されたオブジェクトとクエリメソッドを使用します。
既存のテーブルに新しい行を挿入します
def insertNewRows():
rows_to_insert = [
{"a": "cccc", "b":902},
{"a": "ttt", "b": 40}
]
errors = client.insert_rows_json(table_id, rows_to_insert)
return
Google Big Query Crudの完全なPythonスクリプト
If you are interested in Chapter 87 – Interact with Google Big Query ML Pre-trained Model Dataset Using Python, please subscribe to our newsletter by adding the message ‘Chapter 87 Big query script’. We would send you the script immediately to your mailbox.
I hope you enjoy reading Chapter 87 – Interact with Google Big Query ML Pre-trained Model Dataset Using Python. If you did, please support us by doing one of the things listed below, because it always helps out our channel.
- Support and Donate to our channel through PayPal (paypal.me/Easy2digital)
- Subscribe to my channel and turn on the notification bell Easy2Digital Youtube channel.
- Follow and like my page Easy2Digital Facebook page
- ソーシャルネットワークの記事をハッシュタグ#easy2digitalで共有する
- Easy2Digitalの最新の記事、ビデオ、および割引コードを受け取るために、毎週のニュースレターにサインアップしてください
- Subscribe to our monthly membership through Patreon to enjoy exclusive benefits (www.patreon.com/louisludigital)