Logo Zephyrnet

Ṣawari data pẹlu irọrun: Lo SQL ati Ọrọ-si-SQL ni Amazon SageMaker Studio JupyterLab awọn iwe ajako | Amazon Web Services

ọjọ:

Amazon SageMaker Studio n pese ojutu iṣakoso ni kikun fun awọn onimọ-jinlẹ data lati kọ ibaraenisepo, ṣe ikẹkọ, ati mu awọn awoṣe ikẹkọ ẹrọ (ML). Ninu ilana ti ṣiṣẹ lori awọn iṣẹ-ṣiṣe ML wọn, awọn onimọ-jinlẹ data ni igbagbogbo bẹrẹ iṣan-iṣẹ wọn nipa wiwa awọn orisun data ti o yẹ ati sisopọ si wọn. Lẹhinna wọn lo SQL lati ṣawari, ṣe itupalẹ, wo oju, ati ṣepọ data lati awọn orisun oriṣiriṣi ṣaaju lilo rẹ ni ikẹkọ ML ati itọkasi wọn. Ni iṣaaju, awọn onimọ-jinlẹ data nigbagbogbo rii ara wọn ni jijọ awọn irinṣẹ lọpọlọpọ lati ṣe atilẹyin SQL ninu ṣiṣan iṣẹ wọn, eyiti o ṣe idiwọ iṣelọpọ.

Inu wa dun lati kede pe awọn iwe ajako JupyterLab ni SageMaker Studio ni bayi wa pẹlu atilẹyin ti a ṣe sinu fun SQL. Awọn onimọ-jinlẹ data le ni bayi:

  • Sopọ si awọn iṣẹ data olokiki pẹlu Athena Amazon, Redshift Amazon, Amazon DataZone, ati Snowflake taara laarin awọn iwe ajako
  • Ṣawakiri ki o wa awọn ibi ipamọ data, awọn eto, awọn tabili, ati awọn iwo, ati awotẹlẹ data laarin wiwo iwe ajako
  • Dapọ SQL ati koodu Python ninu iwe ajako kanna fun iṣawari daradara ati iyipada data fun lilo ninu awọn iṣẹ akanṣe ML
  • Lo awọn ẹya iṣelọpọ idagbasoke gẹgẹbi ipari pipaṣẹ SQL, iranlọwọ kika koodu, ati fifi aami sintasi lati ṣe iranlọwọ lati mu idagbasoke koodu pọ si ati ilọsiwaju iṣelọpọ idagbasoke gbogbogbo

Ni afikun, awọn alakoso le ṣakoso awọn asopọ ni aabo si awọn iṣẹ data wọnyi, gbigba awọn onimọ-jinlẹ data laaye lati wọle si data ti a fun ni aṣẹ laisi iwulo lati ṣakoso awọn iwe-ẹri pẹlu ọwọ.

Ninu ifiweranṣẹ yii, a ṣe itọsọna fun ọ nipasẹ iṣeto ẹya yii ni ile-iṣẹ SageMaker, ati rin ọ nipasẹ ọpọlọpọ awọn agbara ti ẹya yii. Lẹhinna a fihan bi o ṣe le mu iriri SQL inu-ajako pọ si nipa lilo awọn agbara Ọrọ-si-SQL ti a pese nipasẹ awọn awoṣe ede nla ti ilọsiwaju (LLMs) lati kọ awọn ibeere SQL eka ni lilo ọrọ ede adayeba bi titẹ sii. Lakotan, lati jẹ ki awọn olugbo ti o gbooro sii ti awọn olumulo lati ṣe agbekalẹ awọn ibeere SQL lati titẹ sii ede adayeba ninu awọn iwe ajako wọn, a fihan ọ bi o ṣe le ran awọn awoṣe Ọrọ-si-SQL wọnyi lọ ni lilo Ẹlẹda Amazon opin ojuami.

Akopọ ojutu

Pẹlu iṣọpọ SQL iwe SageMaker Studio JupyterLab, o le sopọ si awọn orisun data olokiki bi Snowflake, Athena, Amazon Redshift, ati Amazon DataZone. Ẹya tuntun yii jẹ ki o ṣe awọn iṣẹ oriṣiriṣi.

Fun apẹẹrẹ, o le ni oju ṣawari awọn orisun data bi awọn apoti isura data, awọn tabili, ati awọn eto taara lati ilolupo JupyterLab rẹ. Ti awọn agbegbe iwe ajako rẹ nṣiṣẹ lori SageMaker Distribution 1.6 tabi ga julọ, wa ẹrọ ailorukọ tuntun ni apa osi ti wiwo JupyterLab rẹ. Afikun yii ṣe alekun iraye si data ati iṣakoso laarin agbegbe idagbasoke rẹ.

Ti o ko ba si lọwọlọwọ pinpin SageMaker ti a daba (1.5 tabi isalẹ) tabi ni agbegbe aṣa, tọka si afikun fun alaye diẹ sii.

Lẹhin ti o ti ṣeto awọn asopọ (aworan ni apakan atẹle), o le ṣe atokọ awọn asopọ data, ṣawari awọn apoti isura infomesonu ati awọn tabili, ati ṣayẹwo awọn eto.

SageMaker Studio JupyterLab ti a ṣe sinu SQL itẹsiwaju tun jẹ ki o ṣiṣẹ awọn ibeere SQL taara lati inu iwe ajako kan. Awọn iwe ajako Jupyter le ṣe iyatọ laarin SQL ati koodu Python nipa lilo awọn %%sm_sql pipaṣẹ idan, eyiti o gbọdọ gbe si oke ti eyikeyi sẹẹli ti o ni koodu SQL ninu. Aṣẹ yii ṣe ifihan si JupyterLab pe awọn ilana atẹle jẹ awọn aṣẹ SQL ju koodu Python lọ. Ijade ibeere kan le ṣe afihan taara laarin iwe ajako, irọrun isọpọ ailopin ti SQL ati Python workflows ninu itupalẹ data rẹ.

Ijade ibeere kan le ṣe afihan ni oju bi awọn tabili HTML, bi o ṣe han ninu sikirinifoto atẹle.

Wọn tun le kọ si a pandas DataFrame.

Prerequisites

Rii daju pe o ti ni itẹlọrun awọn ibeere pataki wọnyi lati le lo iwe akiyesi SQL Studio SageMaker:

  • Studio SageMaker V2 – Rii daju pe o nṣiṣẹ awọn julọ imudojuiwọn version of rẹ Agbegbe ile-iṣẹ SageMaker ati awọn profaili olumulo. Ti o ba wa lọwọlọwọ lori SageMaker Studio Classic, tọka si Iṣilọ lati Amazon SageMaker Studio Classic.
  • IAM ipa – SageMaker nilo ohun Idanimọ AWS ati Isakoso Wiwọle (IAM) ipa lati ṣe sọtọ si agbegbe SageMaker Studio tabi profaili olumulo lati ṣakoso awọn igbanilaaye ni imunadoko. Imudojuiwọn ipa ipaniyan le nilo lati mu ni lilọ kiri data wọle ati ẹya ṣiṣe SQL. Ilana apẹẹrẹ atẹle n fun awọn olumulo laaye lati funni, ṣe atokọ, ati ṣiṣe AWS lẹ pọ, Atina, Iṣẹ Ifipamọ Simple Amazon (Amazon S3), Oluṣakoso Asiri AWS, ati Amazon Redshift awọn orisun:
    {
       "Version":"2012-10-17",
       "Statement":[
          {
             "Sid":"SQLRelatedS3Permissions",
             "Effect":"Allow",
             "Action":[
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetBucketLocation",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::sagemaker*/*",
                "arn:aws:s3:::sagemaker*"
             ]
          },
          {
             "Sid":"GlueDataAccess",
             "Effect":"Allow",
             "Action":[
                "glue:GetDatabases",
                "glue:GetSchema",
                "glue:GetTables",
                "glue:GetDatabase",
                "glue:GetTable",
                "glue:ListSchemas",
                "glue:GetPartitions",
                "glue:GetConnections",
                "glue:GetConnection",
                "glue:CreateConnection"
             ],
             "Resource":[
                "arn:aws:glue:<region>:<account>:table/sagemaker*/*",
                "arn:aws:glue:<region>:<account>:database/sagemaker*",
                "arn:aws:glue:<region>:<account>:schema/sagemaker*",
                "arn:aws:glue:<region>:<account>:connection/sagemaker*",
                "arn:aws:glue:<region>:<account>:registry/sagemaker*",
                "arn:aws:glue:<region>:<account>:catalog"
             ]
          },
          {
             "Sid":"AthenaQueryExecution",
             "Effect":"Allow",
             "Action":[
                "athena:ListDataCatalogs",
                "athena:ListDatabases",
                "athena:ListTableMetadata",
                "athena:StartQueryExecution",
                "athena:GetQueryExecution",
                "athena:RunQuery",
                "athena:StartSession",
                "athena:GetQueryResults",
                "athena:ListWorkGroups",
                "athena:GetDataCatalog",
                "athena:GetWorkGroup"
             ],
             "Resource":[
                "arn:aws:athena:<region>:<account>:workgroup/sagemaker*",
                "arn:aws:athena:<region>:<account>:datacatalog/sagemaker*"
             ]
          },
          {
             "Sid":"GetSecretsAndCredentials",
             "Effect":"Allow",
             "Action":[
                "secretsmanager:GetSecretValue",
                "redshift:GetClusterCredentials"
             ],
             "Resource":[
                "arn:aws:secretsmanager:<region>:<account>:secret:sagemaker*",
                "arn:aws:redshift:<region>:<account>:dbuser:sagemaker*/sagemaker*",
                "arn:aws:redshift:<region>:<account>:dbgroup:sagemaker*/sagemaker*",
                "arn:aws:redshift:<region>:<account>:dbname:sagemaker*/sagemaker*"
             ]
          }
       ]
    }

  • Aaye JupyterLab - O nilo iraye si Studio SageMaker ti a ṣe imudojuiwọn ati aaye JupyterLab pẹlu Pinpin SageMaker v1.6 tabi nigbamii image awọn ẹya. Ti o ba nlo awọn aworan aṣa fun JupyterLab Spaces tabi awọn ẹya agbalagba ti SageMaker Distribution (v1.5 tabi isalẹ), tọka si afikun fun awọn ilana lati fi sori ẹrọ awọn idii pataki ati awọn modulu lati mu ẹya yii ṣiṣẹ ni awọn agbegbe rẹ. Lati kọ diẹ sii nipa SageMaker Studio JupyterLab Spaces, tọka si Mu iṣelọpọ pọ si lori Amazon SageMaker Studio: Iṣafihan Awọn aaye JupyterLab ati awọn irinṣẹ AI ipilẹṣẹ.
  • Awọn iwe eri wiwọle orisun data - Ẹya iwe akiyesi ile-iṣẹ SageMaker yii nilo orukọ olumulo ati iraye si ọrọ igbaniwọle si awọn orisun data bii Snowflake ati Amazon Redshift. Ṣẹda orukọ olumulo ati iraye si orisun ọrọ igbaniwọle si awọn orisun data wọnyi ti o ko ba ni ọkan tẹlẹ. Wiwọle ti o da lori OAuth si Snowflake kii ṣe ẹya atilẹyin bi kikọ yii.
  • Fifuye SQL idan – Ṣaaju ki o to ṣiṣe awọn ibeere SQL lati inu sẹẹli iwe ajako Jupyter, o ṣe pataki lati ṣaju itẹsiwaju idans SQL. Lo aṣẹ naa %load_ext amazon_sagemaker_sql_magic lati jeki ẹya ara ẹrọ yi. Ni afikun, o le ṣiṣe awọn %sm_sql? pipaṣẹ lati wo atokọ okeerẹ ti awọn aṣayan atilẹyin fun ibeere lati sẹẹli SQL kan. Awọn aṣayan wọnyi pẹlu tito iwọn ibeere aiyipada kan ti 1,000, ṣiṣe isediwon ni kikun, ati itasi awọn ayeraye ibeere, laarin awọn miiran. Eto yii ngbanilaaye fun rirọ ati ifọwọyi data SQL daradara taara laarin agbegbe iwe ajako rẹ.

Ṣẹda database awọn isopọ

Ṣiṣe lilọ kiri SQL ti a ṣe sinu ati awọn agbara ipaniyan ti SageMaker Studio jẹ imudara nipasẹ awọn asopọ AWS Glue. Asopọmọra AWS Glue jẹ ohun elo AWS Glue Data Catalog ti o tọju data pataki gẹgẹbi awọn ẹrí iwọle, awọn okun URI, ati alaye awọsanma aladani foju (VPC) fun awọn ile itaja data kan pato. Awọn asopọ wọnyi jẹ lilo nipasẹ awọn crawlers AWS Glue, awọn iṣẹ, ati awọn aaye ipari idagbasoke lati wọle si awọn oriṣi awọn ile itaja data. O le lo awọn asopọ wọnyi fun orisun mejeeji ati data ibi-afẹde, ati paapaa tun lo asopọ kanna kọja ọpọlọpọ awọn crawlers tabi jade, yipada, ati fifuye (ETL) awọn iṣẹ.

Lati ṣawari awọn orisun data SQL ni apa osi ti SageMaker Studio, o nilo akọkọ lati ṣẹda awọn nkan asopọ Glue AWS. Awọn asopọ wọnyi dẹrọ iraye si awọn orisun data oriṣiriṣi ati gba ọ laaye lati ṣawari awọn eroja data sikematiki wọn.

Ni awọn apakan atẹle, a rin nipasẹ ilana ti ṣiṣẹda SQL-pato AWS Glue asopo. Eyi yoo jẹ ki o wọle, wo, ati ṣawari awọn ipilẹ data kọja awọn ile itaja data lọpọlọpọ. Fun alaye diẹ sii nipa awọn asopọ Glue AWS, tọka si Nsopọ si data.

Ṣẹda asopọ Glue AWS kan

Ọna kan ṣoṣo lati mu awọn orisun data wa sinu ile isise SageMaker jẹ pẹlu awọn asopọ AWS Glue. O nilo lati ṣẹda awọn asopọ Glue AWS pẹlu awọn iru asopọ kan pato. Gẹgẹ bi kikọ yii, ẹrọ atilẹyin nikan ti ṣiṣẹda awọn asopọ wọnyi ni lilo awọn Ọlọpọọmídíà Ifilelẹ Aws AWS (AWS CLI).

Itumọ asopọ faili JSON

Nigbati o ba n sopọ si awọn orisun data oriṣiriṣi ni AWS Glue, o gbọdọ kọkọ ṣẹda faili JSON kan ti o ṣalaye awọn ohun-ini asopọ — tọka si bi faili asọye asopọ. Faili yii ṣe pataki fun iṣeto asopọ AWS Glue ati pe o yẹ ki o ṣe alaye gbogbo awọn atunto pataki fun iraye si orisun data. Fun awọn iṣe aabo to dara julọ, o gba ọ niyanju lati lo Oluṣakoso Aṣiri lati tọju ifitonileti ifura ni aabo gẹgẹbi awọn ọrọ igbaniwọle. Nibayi, awọn ohun-ini asopọ miiran le ṣee ṣakoso taara nipasẹ awọn asopọ Glue AWS. Ọna yii rii daju pe awọn iwe-ẹri ifura ni aabo lakoko ti o tun jẹ ki iṣeto asopọ ni iraye si ati ṣakoso.

Atẹle jẹ apẹẹrẹ ti itumọ asopọ JSON:

{
    "ConnectionInput": {
        "Name": <GLUE_CONNECTION_NAME>,
        "Description": <GLUE_CONNECTION_DESCRIPTION>,
        "ConnectionType": "REDSHIFT | SNOWFLAKE | ATHENA",
        "ConnectionProperties": {
            "PythonProperties": "{"aws_secret_arn": <SECRET_ARN>, "database": <...>}"
        }
    }
}

Nigbati o ba ṣeto awọn asopọ AWS Glue fun awọn orisun data rẹ, awọn itọnisọna pataki diẹ wa lati tẹle lati pese iṣẹ mejeeji ati aabo:

  • Stringification ti awọn ohun-ini - Laarin awọn PythonProperties bọtini, rii daju pe gbogbo awọn ohun-ini jẹ stringified bọtini-iye orisii. O ṣe pataki lati sa fun daradara ni awọn agbasọ-meji nipa lilo ohun kikọ sẹhin () nibiti o jẹ dandan. Eyi ṣe iranlọwọ lati ṣetọju ọna kika to pe ki o yago fun awọn aṣiṣe sintasi ninu JSON rẹ.
  • Mimu kókó alaye - Botilẹjẹpe o ṣee ṣe lati pẹlu gbogbo awọn ohun-ini asopọ laarin PythonProperties, o ni imọran lati ma ṣe pẹlu awọn alaye ifura bi awọn ọrọigbaniwọle taara ni awọn ohun-ini wọnyi. Dipo, lo Oluṣakoso Aṣiri fun mimu alaye ifura mu. Ọna yii ṣe aabo data ifura rẹ nipa fifipamọ si agbegbe iṣakoso ati fifi ẹnọ kọ nkan, kuro ni awọn faili iṣeto akọkọ.

Ṣẹda asopọ AWS Glue nipa lilo AWS CLI

Lẹhin ti o ṣafikun gbogbo awọn aaye pataki ninu asọye asopọ rẹ faili JSON, o ti ṣetan lati fi idi asopọ Glue AWS kan mulẹ fun orisun data rẹ nipa lilo AWS CLI ati aṣẹ atẹle:

aws --region <REGION> glue create-connection 
--cli-input-json file:///path/to/file/connection/definition/file.json

Aṣẹ yii bẹrẹ asopọ AWS Glue tuntun ti o da lori awọn alaye ni pato ninu faili JSON rẹ. Atẹle ni iyara didenukole ti awọn paati aṣẹ:

  • – agbegbe - Eyi ṣalaye Agbegbe AWS nibiti asopọ AWS Glue rẹ yoo ṣẹda. O ṣe pataki lati yan Ekun nibiti awọn orisun data rẹ ati awọn iṣẹ miiran wa lati dinku lairi ati ni ibamu pẹlu awọn ibeere ibugbe data.
  • -cli-input-json faili:///path/to/file/connection/definition/file.json - Paramita yii ṣe itọsọna AWS CLI lati ka iṣeto titẹ sii lati faili agbegbe ti o ni asọye asopọ rẹ ni ọna kika JSON.

O yẹ ki o ni anfani lati ṣẹda awọn asopọ AWS Glue pẹlu aṣẹ AWS CLI ti tẹlẹ lati ebute Studio JupyterLab rẹ. Lori faili akojọ, yan New ati Itoju.

ti o ba ti create-connection aṣẹ nṣiṣẹ ni ifijišẹ, o yẹ ki o wo orisun data rẹ ti a ṣe akojọ si ni aaye aṣawakiri SQL. Ti o ko ba ri akojọ orisun data rẹ, yan Sọ lati mu kaṣe imudojuiwọn.

Ṣẹda asopọ Snowflake

Ni apakan yii, a dojukọ lori sisọpọ orisun data Snowflake pẹlu SageMaker Studio. Ṣiṣẹda awọn akọọlẹ Snowflake, awọn apoti isura data, ati awọn ile itaja ṣubu ni ita aaye ti ifiweranṣẹ yii. Lati bẹrẹ pẹlu Snowflake, tọka si awọn Itọsọna olumulo Snowflake. Ninu ifiweranṣẹ yii, a ṣojumọ lori ṣiṣẹda asọye Snowflake faili JSON ati iṣeto asopọ orisun data Snowflake nipa lilo AWS Glue.

Ṣẹda asiri Manager asiri

O le sopọ si akọọlẹ Snowflake rẹ nipasẹ boya lilo ID olumulo ati ọrọ igbaniwọle tabi lilo awọn bọtini ikọkọ. Lati sopọ pẹlu ID olumulo ati ọrọ igbaniwọle, o nilo lati tọju awọn iwe-ẹri rẹ ni aabo ni Oluṣakoso Awọn Aṣiri. Gẹgẹbi a ti sọ tẹlẹ, botilẹjẹpe o ṣee ṣe lati fi sabe alaye yii labẹ PythonProperties, ko ṣe iṣeduro lati tọju alaye ifura ni ọna kika ọrọ itele. Nigbagbogbo rii daju pe data ifura ni a mu ni aabo lati yago fun awọn ewu aabo ti o pọju.

Lati tọju alaye ni Oluṣakoso Aṣiri, pari awọn igbesẹ wọnyi:

  1. Lori console Manager asiri, yan Tọju titun ikoko.
  2. fun Iru asiri, yan Miiran iru asiri.
  3. Fun bata-iye bọtini, yan Ẹkọ ọrọ ki o si tẹ awọn wọnyi:
    {
        "user":"TestUser",
        "password":"MyTestPassword",
        "account":"AWSSAGEMAKERTEST"
    }

  4. Tẹ orukọ sii fun asiri rẹ, gẹgẹbi sm-sql-snowflake-secret.
  5. Fi awọn eto miiran silẹ bi aiyipada tabi ṣe akanṣe ti o ba nilo.
  6. Ṣẹda asiri.

Ṣẹda asopọ Glue AWS fun Snowflake

Gẹgẹbi a ti jiroro tẹlẹ, awọn asopọ AWS Glue jẹ pataki fun iraye si eyikeyi asopọ lati ile-iṣere SageMaker. O le wa akojọ kan ti gbogbo awọn ohun-ini asopọ atilẹyin fun Snowflake. Atẹle jẹ asọye asopọ apẹẹrẹ JSON fun Snowflake. Rọpo awọn iye ibi ipamọ pẹlu awọn iye ti o yẹ ṣaaju fifipamọ si disk:

{
    "ConnectionInput": {
        "Name": "Snowflake-Airlines-Dataset",
        "Description": "SageMaker-Snowflake Airlines Dataset",
        "ConnectionType": "SNOWFLAKE",
        "ConnectionProperties": {
            "PythonProperties": "{"aws_secret_arn": "arn:aws:secretsmanager:<region>:<account>:secret:sm-sql-snowflake-secret", "database": "SAGEMAKERDEMODATABASE1"}"
        }
    }
}

Lati ṣẹda ohun asopọ AWS Glue kan fun orisun data Snowflake, lo aṣẹ atẹle:

aws --region <REGION> glue create-connection 
--cli-input-json file:///path/to/file/snowflake/definition/file.json

Aṣẹ yii ṣẹda asopọ orisun data Snowflake tuntun ninu pane aṣawakiri SQL rẹ ti o ṣee ṣe lilọ kiri, ati pe o le ṣiṣe awọn ibeere SQL lodi si rẹ lati inu sẹẹli iwe ajako JupyterLab rẹ.

Ṣẹda asopọ Redshift Amazon kan

Amazon Redshift jẹ iṣakoso ni kikun, iṣẹ ile itaja data petabyte-iwọn ti o rọrun ati dinku idiyele ti itupalẹ gbogbo data rẹ nipa lilo SQL boṣewa. Ilana fun ṣiṣẹda asopọ Redshift Amazon ni pẹkipẹki ṣe afihan iyẹn fun asopọ Snowflake kan.

Ṣẹda asiri Manager asiri

Iru si iṣeto Snowflake, lati sopọ si Amazon Redshift nipa lilo ID olumulo ati ọrọ igbaniwọle, o nilo lati tọju alaye asiri ni aabo ni Oluṣakoso Aṣiri. Pari awọn igbesẹ wọnyi:

  1. Lori console Manager asiri, yan Tọju titun ikoko.
  2. fun Iru asiri, yan Awọn iwe-ẹri fun iṣupọ Redshift Amazon.
  3. Tẹ awọn iwe-ẹri ti a lo lati wọle lati wọle si Amazon Redshift bi orisun data.
  4. Yan iṣupọ Redshift ti o ni nkan ṣe pẹlu awọn aṣiri.
  5. Tẹ orukọ sii fun asiri, gẹgẹbi sm-sql-redshift-secret.
  6. Fi awọn eto miiran silẹ bi aiyipada tabi ṣe akanṣe ti o ba nilo.
  7. Ṣẹda asiri.

Nipa titẹle awọn igbesẹ wọnyi, o rii daju pe awọn iwe-ẹri asopọ rẹ ni aabo, ni lilo awọn ẹya aabo to lagbara ti AWS lati ṣakoso data ifura daradara.

Ṣẹda asopọ Glue AWS fun Amazon Redshift

Lati ṣeto asopọ kan pẹlu Amazon Redshift nipa lilo itumọ JSON kan, fọwọsi awọn aaye pataki ki o fi iṣeto JSON atẹle wọnyi pamọ si disk:

{
    "ConnectionInput": {
        "Name": "Redshift-US-Housing-Dataset",
        "Description": "sagemaker redshift us housing dataset connection",
        "ConnectionType": "REDSHIFT",
        "ConnectionProperties": {
            "PythonProperties": "{"aws_secret_arn": "arn:aws:secretsmanager:<region>:<account>:sm-sql-redshift-secret", "database": "us-housing-database"}"
        }
    }
}

Lati ṣẹda ohun asopọ AWS Glue kan fun orisun data Redshift, lo aṣẹ AWS CLI atẹle:

aws --region <REGION> glue create-connection 
--cli-input-json file:///path/to/file/redshift/definition/file.json

Aṣẹ yii ṣẹda asopọ kan ni AWS Glue ti o sopọ mọ orisun data Redshift rẹ. Ti aṣẹ naa ba ṣiṣẹ ni aṣeyọri, iwọ yoo ni anfani lati wo orisun data Redshift rẹ laarin iwe akiyesi SageMaker Studio JupyterLab, ṣetan fun ṣiṣe awọn ibeere SQL ati ṣiṣe itupalẹ data.

Ṣẹda asopọ Athena kan

Athena jẹ iṣẹ ibeere SQL ti iṣakoso ni kikun lati ọdọ AWS ti o jẹ ki itupalẹ data ti o fipamọ sinu Amazon S3 ni lilo SQL boṣewa. Lati ṣeto asopọ Athena kan gẹgẹbi orisun data ninu ẹrọ aṣawakiri SQL ti JupyterLab ajako, o nilo lati ṣẹda itumọ asopọ Athena apẹẹrẹ JSON. Ilana JSON atẹle yii tunto awọn alaye pataki lati sopọ si Athena, titọkasi katalogi data, itọsọna eto S3, ati Ekun naa:

{
    "ConnectionInput": {
        "Name": "Athena-Credit-Card-Fraud",
        "Description": "SageMaker-Athena Credit Card Fraud",
        "ConnectionType": "ATHENA",
        "ConnectionProperties": {
            "PythonProperties": "{"catalog_name": "AwsDataCatalog","s3_staging_dir": "s3://sagemaker-us-east-2-123456789/athena-data-source/credit-card-fraud/", "region_name": "us-east-2"}"
        }
    }
}

Lati ṣẹda ohun asopọ AWS Glue kan fun orisun data Athena, lo aṣẹ AWS CLI atẹle:

aws --region <REGION> glue create-connection 
--cli-input-json file:///path/to/file/athena/definition/file.json

Ti aṣẹ naa ba ṣaṣeyọri, iwọ yoo ni anfani lati wọle si katalogi data Athena ati awọn tabili taara lati aṣawakiri SQL laarin iwe ajako ile-iṣẹ SageMaker Studio JupyterLab rẹ.

Data ibeere lati awọn orisun pupọ

Ti o ba ni awọn orisun data lọpọlọpọ ti a ṣe sinu ile-iṣẹ SageMaker nipasẹ ẹrọ aṣawakiri SQL ti a ṣe sinu ati ẹya SQL ajako, o le yarayara awọn ibeere ati laiparuwo laarin awọn ẹhin orisun data ni awọn sẹẹli ti o tẹle laarin iwe ajako kan. Agbara yii ngbanilaaye fun awọn iyipada lainidi laarin awọn oriṣiriṣi awọn apoti isura infomesonu tabi awọn orisun data lakoko iṣan-iṣẹ itupalẹ rẹ.

O le ṣiṣe awọn ibeere lodi si ikojọpọ oniruuru ti awọn ẹhin orisun data ati mu awọn abajade taara sinu aaye Python fun itupalẹ siwaju tabi iwoye. Eyi ni irọrun nipasẹ awọn %%sm_sql idan pipaṣẹ wa ni SageMaker Studio iwe ajako. Lati jade awọn abajade ti ibeere SQL rẹ sinu pandas DataFrame, awọn aṣayan meji wa:

  • Lati ọpa ẹrọ alagbeka ajako rẹ, yan iru iṣẹjade DataFrame ki o si lorukọ oniyipada DataFrame rẹ
  • Fi paramita atẹle si rẹ %%sm_sql aṣẹ:
    --output '{"format": "DATAFRAME", "dataframe_name": "df"}'

Aworan atọka atẹle yii ṣe apejuwe ṣiṣiṣẹsẹhin iṣẹ yii ati ṣafihan bi o ṣe le ṣiṣẹ awọn ibeere lainidii kọja awọn orisun pupọ ni awọn sẹẹli iwe ajako ti o tẹle, bakanna bi ikẹkọ awoṣe SageMaker nipa lilo awọn iṣẹ ikẹkọ tabi taara laarin iwe ajako nipa lilo iṣiro agbegbe. Ni afikun, aworan atọka naa ṣe afihan bii iṣọpọ SQL ti a ṣe sinu ti SageMaker Studio ṣe irọrun awọn ilana isediwon ati ile taara laarin agbegbe faramọ ti sẹẹli iwe ajako JupyterLab kan.

Ọrọ si SQL: Lilo ede adayeba lati jẹki kikọ ibeere

SQL jẹ ede ti o nipọn ti o nilo oye ti awọn data data, awọn tabili, awọn ọna ṣiṣe, ati metadata. Loni, itetisi atọwọda ti ipilẹṣẹ (AI) le jẹ ki o kọ awọn ibeere SQL ti o nipọn laisi nilo iriri ijinle SQL. Ilọsiwaju ti LLM ti ni ipa ni pataki sisẹ ede ti ẹda (NLP) ti o da lori iran SQL, gbigba fun ṣiṣẹda awọn ibeere SQL kongẹ lati awọn apejuwe ede adayeba — ilana ti a tọka si bi Ọrọ-si-SQL. Sibẹsibẹ, o ṣe pataki lati jẹwọ awọn iyatọ ti o wa laarin ede eniyan ati SQL. Ede eniyan le jẹ alaiṣedeede nigba miiran tabi aiṣedeede, lakoko ti SQL ti wa ni tito, o fojuhan, ati aidaniloju. Pipade aafo yii ati iyipada ede adayeba ni deede si awọn ibeere SQL le ṣafihan ipenija nla kan. Nigbati a ba pese pẹlu awọn itọsi ti o yẹ, LLM le ṣe iranlọwọ lati di aafo yii nipa agbọye idi ti o wa lẹhin ede eniyan ati ṣiṣẹda awọn ibeere SQL deede ni ibamu.

Pẹlu itusilẹ ti ẹya-ara ibeere SQL inu iwe-iranti SageMaker Studio, SageMaker Studio jẹ ki o taara lati ṣayẹwo awọn apoti isura infomesonu ati awọn eto, ati onkọwe, ṣiṣe, ati ṣatunṣe awọn ibeere SQL laisi fifisilẹ kuro ni IDE iwe ajako Jupyter lailai. Abala yii ṣawari bi awọn agbara Text-to-SQL ti awọn LLM ti ilọsiwaju ṣe le dẹrọ iran ti awọn ibeere SQL nipa lilo ede adayeba laarin awọn iwe ajako Jupyter. A lo awoṣe gige-eti Text-to-SQL defog/sqlcoder-7b-2 ni apapo pẹlu Jupyter AI, oluranlọwọ AI ti ipilẹṣẹ ti a ṣe apẹrẹ pataki fun awọn iwe ajako Jupyter, lati ṣẹda awọn ibeere SQL eka lati ede ẹda. Nipa lilo awoṣe ilọsiwaju yii, a le ṣe lainidii ati ni imunadoko ṣẹda awọn ibeere SQL eka nipa lilo ede adayeba, nitorinaa imudara iriri SQL wa laarin awọn iwe ajako.

Afọwọkọ iwe ajako nipa lilo Ibudo Oju oju famọra

Lati bẹrẹ apẹrẹ, o nilo atẹle naa:

  • koodu GitHub – Awọn koodu gbekalẹ ni yi apakan ti o wa ninu awọn wọnyi GitHub repo ati nipa itọkasi awọn ajako apẹẹrẹ.
  • Aaye JupyterLab - Wiwọle si aaye JupyterLab Studio SageMaker ti o ṣe atilẹyin nipasẹ awọn apẹẹrẹ orisun GPU jẹ pataki. Fun awọn defog/sqlcoder-7b-2 awoṣe, a 7B paramita awoṣe, lilo ohun ml.g5.2xlarge apeere ti wa ni niyanju. Awọn ọna miiran bii defog/sqlcoder-70b-alphkan tabi defog/sqlcoder-34b-alpha tun le ṣee ṣe fun ede adayeba si iyipada SQL, ṣugbọn awọn iru apẹẹrẹ ti o tobi julọ le nilo fun iṣelọpọ. Rii daju pe o ni ipin lati ṣe ifilọlẹ apẹẹrẹ ti atilẹyin GPU nipa lilọ kiri si console Quotas Iṣẹ, wiwa SageMaker, ati wiwa fun Studio JupyterLab Apps running on <instance type>.

Ṣe ifilọlẹ aaye JupyterLab ti o ṣe atilẹyin GPU tuntun lati ile-iṣere SageMaker rẹ. O ṣe iṣeduro lati ṣẹda aaye JupyterLab tuntun pẹlu o kere ju 75 GB ti Ile itaja Ikọwe Rirọ Amazon (Amazon EBS) ibi ipamọ fun awoṣe paramita 7B kan.

  • Ifaramọ Oju Ipele - Ti agbegbe ile-iṣẹ ile-iṣẹ SageMaker rẹ ni iwọle si awọn awoṣe ṣe igbasilẹ lati inu Ifaramọ Oju Ipele, o le lo awọn AutoModelForCausalLM kilasi lati huggingface / Ayirapada lati ṣe igbasilẹ awọn awoṣe laifọwọyi ati pin wọn si awọn GPU agbegbe rẹ. Awọn iwọn awoṣe yoo wa ni ipamọ sinu kaṣe ẹrọ agbegbe rẹ. Wo koodu atẹle yii:
    model_id = "defog/sqlcoder-7b-2" # or use "defog/sqlcoder-34b-alpha", "defog/sqlcoder-70b-alpha
    
    # download model and tokenizer in fp16 and pin model to local notebook GPUs
    model = AutoModelForCausalLM.from_pretrained(
        model_id, 
        device_map="auto",
        torch_dtype=torch.float16
    )
    
    tokenizer = AutoTokenizer.from_pretrained(model_id)
    tokenizer.pad_token = tokenizer.eos_token

Lẹhin ti awoṣe ti ṣe igbasilẹ ni kikun ati ti kojọpọ sinu iranti, o yẹ ki o ṣe akiyesi ilosoke ninu lilo GPU lori ẹrọ agbegbe rẹ. Eyi tọkasi pe awoṣe n ṣiṣẹ ni lilo awọn orisun GPU fun awọn iṣẹ ṣiṣe iṣiro. O le mọ daju eyi ni aaye JupyterLab tirẹ nipa ṣiṣe nvidia-smi (fun a ọkan-akoko àpapọ) tabi nvidia-smi —loop=1 (lati tun ṣe ni gbogbo iṣẹju-aaya) lati ebute JupyterLab rẹ.

Awọn awoṣe ọrọ-si-SQL tayọ ni agbọye ero inu ati ọrọ-ọrọ ti ibeere olumulo kan, paapaa nigba ti ede ti a lo jẹ ibaraẹnisọrọ tabi aibikita. Ilana naa pẹlu titumọ awọn igbewọle ede adayeba sinu awọn eroja igbekalẹ data to pe, gẹgẹbi awọn orukọ tabili, awọn orukọ ọwọn, ati awọn ipo. Bibẹẹkọ, awoṣe Text-to-SQL ti ita-selifu kii yoo mọ ọna ti ile-ipamọ data rẹ, awọn eto ibi ipamọ data pato, tabi ni anfani lati ṣe itumọ deede akoonu ti tabili ti o da lori awọn orukọ ọwọn nikan. Lati lo awọn awoṣe wọnyi ni imunadoko lati ṣe agbekalẹ awọn ibeere SQL ti o wulo ati ti o munadoko lati ede ẹda, o jẹ dandan lati ṣe adaṣe awoṣe iran-ọrọ SQL si ero ibi ipamọ data ile-ipamọ kan pato. Yi aṣamubadọgba ti wa ni dẹrọ nipasẹ awọn lilo ti LLM ni kiakia. Atẹle yii jẹ apẹrẹ itọsẹ ti a ṣeduro fun apẹẹrẹ defog/sqlcoder-7b-2 Text-to-SQL, pin si awọn ẹya mẹrin:

  • Išẹ - Abala yii yẹ ki o pato iṣẹ-ṣiṣe ti o ga julọ lati ṣe nipasẹ awoṣe. O yẹ ki o pẹlu iru ẹhin data data (gẹgẹbi Amazon RDS, PostgreSQL, tabi Amazon Redshift) lati jẹ ki awoṣe mọ ti eyikeyi awọn iyatọ syntactical nuanced ti o le ni ipa lori iran ti ibeere SQL ikẹhin.
  • ilana - Abala yii yẹ ki o ṣalaye awọn aala iṣẹ-ṣiṣe ati imọ-ašẹ fun awoṣe, ati pe o le pẹlu awọn apẹẹrẹ-shot diẹ lati ṣe itọsọna awoṣe ni ṣiṣẹda awọn ibeere SQL aifwy daradara.
  • Eto aaye data - Abala yii yẹ ki o ṣe alaye awọn eto ibi ipamọ data ile-itaja rẹ, ti n ṣe ilana awọn ibatan laarin awọn tabili ati awọn ọwọn lati ṣe iranlọwọ awoṣe ni oye eto data data.
  • idahun - Abala yii wa ni ipamọ fun awoṣe lati gbejade esi ibeere SQL si igbewọle ede adayeba.

Apeere ti eto data data ati tọ ti a lo ni apakan yii wa ninu GitHub Repo.

### Task
Generate a SQL query to answer [QUESTION]{user_question}[/QUESTION]

### Instructions
- If you cannot answer the question with the available database schema, return 'I do not know'

### Database Schema
The query will run on a database with the following schema:
{table_metadata_string_DDL_statements}

### Answer
Given the database schema, here is the SQL query that 
 [QUESTION]
    {user_question}
 [/QUESTION]

[SQL]

Imọ-ẹrọ kiakia kii ṣe nipa ṣiṣẹda awọn ibeere tabi awọn alaye; o jẹ iṣẹ ọna nuanced ati imọ-jinlẹ ti o ni ipa pataki didara awọn ibaraenisepo pẹlu awoṣe AI kan. Ọna ti o ṣe iṣẹ-ọna itọka le ni ipa lori iseda ati iwulo ti idahun AI. Imọ-iṣe yii jẹ pataki ni mimu iwọn agbara ti awọn ibaraenisepo AI pọ si, pataki ni awọn iṣẹ ṣiṣe eka ti o nilo oye amọja ati awọn idahun alaye.

O ṣe pataki lati ni aṣayan lati kọ ni kiakia ati idanwo idahun awoṣe fun itọsi ti a fifun ati mu itọsi naa da lori esi naa. Awọn iwe ajako JupyterLab n pese agbara lati gba esi awoṣe lẹsẹkẹsẹ lati ọdọ awoṣe ti nṣiṣẹ lori iṣiro agbegbe ati mu itọsi naa dara ati tunse esi awoṣe siwaju tabi yi awoṣe pada patapata. Ninu ifiweranṣẹ yii, a lo iwe akiyesi SageMaker Studio JupyterLab ti o ṣe atilẹyin nipasẹ ml.g5.2xlarge's NVIDIA A10G 24 GB GPU lati ṣiṣẹ atọka awoṣe Text-to-SQL lori iwe ajako ati ni ibaraenisepo kọ itọsi awoṣe wa titi idahun awoṣe naa yoo ni aifwy to lati pese awọn idahun ti o ṣee ṣe taara ni awọn sẹẹli SQL JupyterLab. Lati ṣiṣe itọkasi awoṣe ati ni igbakanna ṣiṣan awọn idahun awoṣe, a lo apapo ti model.generate ati TextIteratorStreamer bi a ti ṣalaye ninu koodu atẹle:

streamer = TextIteratorStreamer(
    tokenizer=tokenizer, 
    timeout=240.0, 
    skip_prompt=True, 
    skip_special_tokens=True
)


def llm_generate_query(user_question):
    """ Generate text-gen SQL responses"""
    
    updated_prompt = prompt.format(question=user_question)
    inputs = tokenizer(updated_prompt, return_tensors="pt").to("cuda")
    
    return model.generate(
        **inputs,
        num_return_sequences=1,
        eos_token_id=tokenizer.eos_token_id,
        pad_token_id=tokenizer.eos_token_id,
        max_new_tokens=1024,
        temperature=0.1,
        do_sample=False,
        num_beams=1, 
        streamer=streamer,
    )

Abajade awoṣe le ṣe ọṣọ pẹlu idan SageMaker SQL %%sm_sql ..., eyiti ngbanilaaye iwe akiyesi JupyterLab lati ṣe idanimọ sẹẹli bi sẹẹli SQL kan.

Gbalejo Text-to-SQL si dede bi SageMaker endpoints

Ni ipari ipele apẹrẹ, a ti yan Ọrọ-si-SQL LLM ti o fẹ, ọna kika kiakia ti o munadoko, ati iru apẹẹrẹ ti o yẹ fun gbigbalejo awoṣe (boya-GPU ẹyọkan tabi pupọ-GPU). SageMaker dẹrọ alejo gbigba iwọn ti awọn awoṣe aṣa nipasẹ lilo awọn aaye ipari SageMaker. Awọn aaye ipari wọnyi le ṣe asọye ni ibamu si awọn ibeere kan pato, gbigba fun imuṣiṣẹ ti LLM bi awọn aaye ipari. Agbara yii jẹ ki o ṣe iwọn ojutu si awọn olugbo ti o gbooro, gbigba awọn olumulo laaye lati ṣe agbekalẹ awọn ibeere SQL lati awọn igbewọle ede adayeba nipa lilo awọn LLM ti gbalejo aṣa. Àwòrán ìsàlẹ̀ yìí ṣàkàwé ìtumọ̀ ìtumọ̀ yìí.

Lati gbalejo LLM rẹ bi aaye ipari SageMaker, o ṣe agbejade ọpọlọpọ awọn ohun-ọṣọ.

Ohun elo akọkọ jẹ awọn iwọn awoṣe. SageMaker Jin Java Library (DJL) Nṣiṣẹ awọn apoti gba ọ laaye lati ṣeto awọn atunto nipasẹ meta sìn.ohun-ìní faili, eyiti o fun ọ laaye lati ṣe itọsọna bi awọn awoṣe ṣe jẹ orisun-boya taara lati Ibudo Oju oju Hugging tabi nipa gbigba awọn ohun-ọṣọ awoṣe lati Amazon S3. Ti o ba pato model_id=defog/sqlcoder-7b-2, DJL Sìn yoo gbiyanju lati ṣe igbasilẹ awoṣe taara taara lati Ile-iṣẹ Face Face. Bibẹẹkọ, o le fa awọn idiyele ingress/egress nẹtiwọki nẹtiwọọki nigbakugba ti o ba ti gbe aaye ipari tabi iwọn rirọ. Lati yago fun awọn idiyele wọnyi ati agbara gbigba igbasilẹ ti awọn ohun-ọṣọ awoṣe, o gba ọ niyanju lati fo ni lilo model_id in serving.properties ati fi awọn iwọn awoṣe pamọ bi awọn ohun-ọṣọ S3 ati pato wọn nikan pẹlu s3url=s3://path/to/model/bin.

Fifipamọ awoṣe kan (pẹlu tokenizer rẹ) si disiki ati ikojọpọ si Amazon S3 le ṣee ṣe pẹlu awọn laini koodu diẹ:

# save model and tokenizer to local disk
model.save_pretrained(local_model_path)
tokenizer.save_pretrained(local_model_path)
...
...
...
# upload file to s3
s3_bucket_name = "<my llm artifact bucket name>>"
# s3 prefix to save model weights and tokenizer defs
model_s3_prefix = "sqlcoder-7b-instruct/weights"
# s3 prefix to store s
meta_model_s3_prefix = "sqlcoder-7b-instruct/meta-model"

sagemaker.s3.S3Uploader.upload(local_model_path,  f"s3://{s3_bucket_name}/{model_s3_prefix}")

O tun lo faili itọsi data kan. Ninu iṣeto yii, itọsi data data jẹ ninu Task, Instructions, Database Schema, Ati Answer sections. Fun faaji lọwọlọwọ, a pin faili itọsi lọtọ fun ero data kọọkan. Bibẹẹkọ, irọrun wa lati faagun iṣeto yii lati ni awọn apoti isura infomesonu pupọ fun faili ti o tọ, gbigba awoṣe lati ṣiṣẹ awọn akojọpọ akojọpọ kaakiri awọn apoti isura data lori olupin kanna. Lakoko ipele iṣapẹẹrẹ wa, a fipamọ data itọsi bi faili ọrọ ti a darukọ <Database-Glue-Connection-Name>.prompt, ibi ti Database-Glue-Connection-Name ni ibamu si orukọ asopọ ti o han ni agbegbe JupyterLab rẹ. Fun apẹẹrẹ, ifiweranṣẹ yii tọka si asopọ Snowflake kan ti a npè ni Airlines_Dataset, nitori naa faili ti o tọ data data ni orukọ Airlines_Dataset.prompt. Faili yii ti wa ni ipamọ lẹhinna lori Amazon S3 ati lẹhinna ka ati ti fipamọ nipasẹ apẹẹrẹ iṣẹ kannaa wa.

Pẹlupẹlu, faaji yii ngbanilaaye eyikeyi awọn olumulo ti a fun ni aṣẹ ti aaye ipari yii lati ṣalaye, tọju, ati ṣe ipilẹṣẹ ede abinibi si awọn ibeere SQL laisi iwulo fun awọn atunṣiṣẹpọ pupọ ti awoṣe. A lo atẹle naa apẹẹrẹ ti a database tọ lati ṣe afihan iṣẹ-ṣiṣe Text-to-SQL.

Nigbamii ti, o ṣe agbekalẹ ọgbọn iṣẹ awoṣe aṣa. Ni apakan yii, o ṣe ilana ilana imọran aṣa ti a npè ni awoṣe.py. Iwe afọwọkọ yii jẹ apẹrẹ lati mu iṣẹ ṣiṣe ati iṣọpọ ti awọn iṣẹ Text-to-SQL wa:

  • Setumo awọn database tọ faili caching kannaa - Lati dinku lairi, a ṣe imuse ọgbọn aṣa fun igbasilẹ ati fifipamọ awọn faili itọsi data. Ilana yii jẹ ki o rii daju pe awọn itọka wa ni imurasilẹ, dinku awọn oke ti o ni nkan ṣe pẹlu awọn igbasilẹ loorekoore.
  • Setumo aṣa awoṣe inference kannaa - Lati mu iyara itọkasi pọ si, awoṣe ọrọ-si-SQL wa ti kojọpọ ni ọna kika float16 ati lẹhinna yipada si awoṣe DeepSpeed ​​kan. Igbesẹ yii ngbanilaaye fun iṣiro daradara diẹ sii. Ni afikun, laarin ọgbọn yii, o pato iru awọn paramita ti awọn olumulo le ṣatunṣe lakoko awọn ipe itọka lati ṣe deede iṣẹ ṣiṣe ni ibamu si awọn iwulo wọn.
  • Ṣetumo igbewọle aṣa ati ọgbọn iṣejade - Ṣiṣeto titọ ati awọn ọna kika igbewọle/jade ti adani jẹ pataki fun isọpọ didan pẹlu awọn ohun elo isalẹ. Ọkan iru ohun elo jẹ JupyterAI, eyiti a jiroro ni apakan atẹle.
%%writefile {meta_model_filename}/model.py
...

predictor = None
prompt_for_db_dict_cache = {}

def download_prompt_from_s3(prompt_filename):

    print(f"downloading prompt file: {prompt_filename}")
    s3 = boto3.resource('s3')
    ...


def get_model(properties):
    
    ...
    print(f"Loading model from {cwd}")
    model = AutoModelForCausalLM.from_pretrained(
        cwd, 
        low_cpu_mem_usage=True, 
        torch_dtype=torch.bfloat16
    )
    model = deepspeed.init_inference(
        model, 
        mp_size=properties["tensor_parallel_degree"]
    )
    
    ...


def handle(inputs: Input) -> None:

    ...

    global predictor
    if not predictor:
        predictor = get_model(inputs.get_properties())

    ...
    result = f"""%%sm_sql --metastore-id {prompt_for_db_key.split('.')[0]} --metastore-type GLUE_CONNECTIONnn{result}n"""
    result = [{'generated_text': result}]
    
    return Output().add(result)

Ni afikun, a pẹlu a serving.properties faili, eyiti o ṣiṣẹ bi faili iṣeto ni agbaye fun awọn awoṣe ti a gbalejo ni lilo iṣẹ DJL. Fun alaye diẹ ẹ sii, tọka si Awọn atunto ati eto.

Nikẹhin, o tun le pẹlu kan requirements.txt faili lati setumo awọn afikun modulu ti o beere fun itọkasi ati package ohun gbogbo sinu kan tarball fun imuṣiṣẹ.

Wo koodu atẹle yii:

os.system(f"tar czvf {meta_model_filename}.tar.gz ./{meta_model_filename}/")

>>>./deepspeed-djl-serving-7b/
>>>./deepspeed-djl-serving-7b/serving.properties
>>>./deepspeed-djl-serving-7b/model.py
>>>./deepspeed-djl-serving-7b/requirements.txt

Ṣepọ aaye ipari rẹ pẹlu oluranlọwọ SageMaker Studio Jupyter AI

Jupyter AI jẹ ohun elo orisun ṣiṣi ti o mu AI ti ipilẹṣẹ wa si awọn iwe ajako Jupyter, ti o funni ni ipilẹ ti o lagbara ati ore-olumulo fun ṣawari awọn awoṣe AI ipilẹṣẹ. O mu iṣelọpọ pọ si ni JupyterLab ati awọn iwe ajako Jupyter nipa ipese awọn ẹya bii %% ai idan fun ṣiṣẹda ibi-iṣere AI ti ipilẹṣẹ inu awọn iwe ajako, UI iwiregbe abinibi kan ni JupyterLab fun ibaraenisọrọ pẹlu AI bi oluranlọwọ ibaraẹnisọrọ, ati atilẹyin fun ọpọlọpọ titobi ti LLMs lati olupese bi Amazon Titani, AI21, Anthropic, Cohere, ati Face Hugging tabi awọn iṣẹ iṣakoso bi Amazon Bedrock ati awọn opin opin SageMaker. Fun ifiweranṣẹ yii, a lo iṣọpọ-jade-ti-apoti Jupyter AI pẹlu awọn aaye ipari SageMaker lati mu agbara Text-to-SQL wa sinu awọn iwe ajako JupyterLab. Ohun elo Jupyter AI wa ti fi sori ẹrọ tẹlẹ ni gbogbo SageMaker Studio JupyterLab Spaces ti o ṣe atilẹyin nipasẹ Awọn aworan pinpin SageMaker; Awọn olumulo ipari ko nilo lati ṣe awọn atunto afikun eyikeyi lati bẹrẹ lilo itẹsiwaju Jupyter AI lati ṣepọ pẹlu aaye ipari ti SageMaker ti gbalejo. Ni apakan yii, a jiroro awọn ọna meji lati lo ohun elo Jupyter AI ti a ṣepọ.

Jupyter AI inu a ajako lilo magics

Jupyter AI %%ai Aṣẹ idan gba ọ laaye lati yi awọn iwe ajako ile-iṣẹ SageMaker Studio JupyterLab rẹ pada si agbegbe AI ipilẹṣẹ ti o tun ṣe. Lati bẹrẹ lilo awọn idan AI, rii daju pe o ti kojọpọ jupyter_ai_magics itẹsiwaju lati lo %%ai idan, ati afikun ohun ti fifuye amazon_sagemaker_sql_magic lati lo %%sm_sql idan:

# load sm_sql magic extension and ai magic extension
%load_ext jupyter_ai_magics
%load_ext amazon_sagemaker_sql_magic

Lati ṣiṣẹ ipe kan si aaye ipari SageMaker rẹ lati inu iwe ajako rẹ nipa lilo awọn %%ai pipaṣẹ idan, pese awọn paramita atẹle ati ilana aṣẹ bi atẹle:

  • – agbegbe-orukọ - Pato Ekun nibiti o ti gbe aaye ipari rẹ lọ. Eyi rii daju pe ibeere naa ni ipalọlọ si ipo agbegbe ti o pe.
  • -ibeere-eto - Ṣafikun ero ti data titẹ sii. Eto yii ṣe afihan ọna kika ti a nireti ati awọn oriṣi ti data igbewọle ti awoṣe rẹ nilo lati ṣe ilana ibeere naa.
  • -idahun-ona - Ṣetumo ọna laarin ohun idahun nibiti abajade ti awoṣe rẹ wa. Ona yii ni a lo lati yọ data ti o yẹ jade lati idahun ti o pada nipasẹ awoṣe rẹ.
  • -f (aṣayan) - Eyi jẹ ẹya o wu formatter Flag ti o tọkasi awọn iru ti o wu pada nipa awọn awoṣe. Ni aaye ti iwe ajako Jupyter kan, ti abajade ba jẹ koodu, asia yii yẹ ki o ṣeto ni ibamu lati ṣe ọna kika iṣẹjade bi koodu ṣiṣe ni oke ti sẹẹli iwe ajako Jupyter, atẹle nipa agbegbe titẹ ọrọ ọfẹ fun ibaraenisepo olumulo.

Fun apẹẹrẹ, aṣẹ ti o wa ninu sẹẹli iwe ajako Jupyter le dabi koodu wọnyi:

%%ai sagemaker-endpoint:<endpoint-name> --region-name=us-east-1 
--request-schema={
    "inputs":"<prompt>", 
    "parameters":{
        "temperature":0.1,
        "top_p":0.2,
        "max_new_tokens":1024,
        "return_full_text":false
    }, 
    "db_prompt":"Airlines_Dataset.prompt"
  } 
--response-path=[0].generated_text -f code

My natural language query goes here...

Jupyter AI iwiregbe window

Ni omiiran, o le ṣe ajọṣepọ pẹlu awọn aaye ipari SageMaker nipasẹ wiwo olumulo ti a ṣe sinu, rọrun ilana ti ṣiṣẹda awọn ibeere tabi ikopa ninu ijiroro. Ṣaaju ki o to bẹrẹ ibaraẹnisọrọ pẹlu aaye ipari SageMaker rẹ, tunto awọn eto ti o yẹ ni Jupyter AI fun aaye ipari SageMaker, bi o ṣe han ninu sikirinifoto atẹle.

ipari

Studio SageMaker ni bayi jẹ ki o rọrun ati ṣiṣalaye ṣiṣan iṣẹ onimọ-jinlẹ data nipa sisọpọ atilẹyin SQL sinu awọn iwe ajako JupyterLab. Eyi ngbanilaaye awọn onimọ-jinlẹ data lati dojukọ awọn iṣẹ ṣiṣe wọn laisi iwulo lati ṣakoso awọn irinṣẹ lọpọlọpọ. Pẹlupẹlu, isọpọ SQL tuntun ti a ṣe sinu ile-iṣẹ SageMaker n jẹ ki awọn eniyan data ṣiṣẹ laiparuwo awọn ibeere SQL nipa lilo ọrọ ede adayeba bi titẹ sii, nitorinaa isare ṣisẹṣẹ wọn.

A gba ọ niyanju lati ṣawari awọn ẹya wọnyi ni SageMaker Studio. Fun alaye diẹ ẹ sii, tọka si Mura data pẹlu SQL ni Studio.

ÀFIKÚN

Mu ẹrọ aṣawakiri SQL ṣiṣẹ ati sẹẹli SQL iwe ajako ni awọn agbegbe aṣa

Ti o ko ba lo aworan Pipin SageMaker tabi lilo awọn aworan Pipin 1.5 tabi isalẹ, ṣiṣe awọn aṣẹ wọnyi lati jẹki ẹya lilọ kiri SQL inu agbegbe JupyterLab rẹ:

npm install -g vscode-jsonrpc
npm install -g sql-language-server
pip install amazon-sagemaker-sql-execution==0.1.0
pip install amazon-sagemaker-sql-editor
restart-jupyter-server

Gbe ẹrọ ailorukọ aṣawakiri SQL pada

JupyterLab ẹrọ ailorukọ gba laaye fun sibugbe. Da lori ayanfẹ rẹ, o le gbe awọn ẹrọ ailorukọ si ẹgbẹ mejeeji ti PAN ẹrọ ailorukọ JupyterLab. Ti o ba fẹ, o le gbe itọsọna ti ẹrọ ailorukọ SQL si apa idakeji (ọtun si osi) ti ẹgbẹ ẹgbẹ pẹlu titẹ-ọtun ti o rọrun lori aami ẹrọ ailorukọ ati yiyan Yipada Sidebar Side.


Nipa awọn onkọwe

Pranav Murthy jẹ Onitumọ Awọn Solusan Alamọja AI / ML ni AWS. O dojukọ lori iranlọwọ awọn alabara lati kọ, ṣe ikẹkọ, ransiṣẹ ati ṣiwakiri awọn iṣẹ ikẹkọ ẹrọ (ML) si SageMaker. O ṣiṣẹ tẹlẹ ni ile-iṣẹ semikondokito ti ndagba iran kọnputa nla (CV) ati awọn awoṣe sisẹ ede adayeba (NLP) lati mu ilọsiwaju awọn ilana semikondokito nipa lilo ipo ti awọn ilana ML aworan. Ni akoko ọfẹ rẹ, o gbadun chess ati irin-ajo. O le wa Pranav lori LinkedIn.

Varun Shah jẹ Onimọ-ẹrọ sọfitiwia ti n ṣiṣẹ lori Amazon SageMaker Studio ni Awọn iṣẹ wẹẹbu Amazon. O wa ni idojukọ lori kikọ awọn solusan ML ibaraenisepo eyiti o jẹ irọrun sisẹ data ati awọn irin-ajo igbaradi data. Ni akoko apoju rẹ, Varun gbadun awọn iṣẹ ita gbangba pẹlu irin-ajo ati sikiini, ati nigbagbogbo wa fun wiwa tuntun, awọn aaye moriwu.

Sumedha Swamy jẹ Oluṣakoso Ọja Alakoso ni Awọn iṣẹ Oju opo wẹẹbu Amazon nibiti o ṣe itọsọna ẹgbẹ SageMaker Studio ni iṣẹ apinfunni rẹ lati ṣe agbekalẹ IDE yiyan fun imọ-jinlẹ data ati ẹkọ ẹrọ. O ti ṣe igbẹhin awọn ọdun 15 ti o ti kọja ti o kọ Ẹrọ Ẹkọ ti o da lori alabara ati awọn ọja ile-iṣẹ.

Bosco Albuquerque jẹ Onitumọ Awọn Solusan Alabaṣepọ Sr. ni AWS ati pe o ni iriri diẹ sii ju ọdun 20 ti o ṣiṣẹ pẹlu data data ati awọn ọja atupale lati ọdọ awọn olutaja ibi ipamọ data ile-iṣẹ ati awọn olupese awọsanma. O ti ṣe iranlọwọ fun awọn ile-iṣẹ imọ-ẹrọ ṣe apẹrẹ ati imuse awọn solusan atupale data ati awọn ọja.

iranran_img

Titun oye

iranran_img