• 2024/11/17 掲載

爆速生成AI「Llama 3.1 405B」をクラウド利用する、初心者向けステップガイド(2/2)

  • icon-mail
  • icon-print
  • icon-hatena
  • icon-line
  • icon-close-snsbtns
会員になると、いいね!でマイページに保存できます。

ステップ3:必須ライブラリのインストール

 次にターミナルの仮想環境内で、必須となるライブラリをインストールする。

 まず、以下のコマンドより、OpenAIのライブラリをインストールする。

pip install openai

*これはLLMの扱いに最適化されたライブラリであり、OpenAI以外のモデルを扱う際にもさまざまなシーンで利用されている。

画像
OpenAIライブラリのインストール画面

 次に、以下のコマンドより、APIキーをセキュアに扱うためのライブラリ「python-dotenv」をインストールする。

pip install python-dotenv

画像
python-dotenvライブラリのインストール画面

 インストールが完了すれば、VS Codeで「.env」ファイルを作成する。

File> New File > Save as .env > Create FIleの順。

※.envファイルとは環境変数を規定し、APIキーなどセンシティブな情報を格納するファイル。AIアプリケーションに限らず、アプリケーション開発において.envの作成は必須のプラクティスとなっている。



ステップ4:SambaNova CloudのAPIキーの取得

 こちらからSambaNova CloudのAPIページにアクセスする。

画像
登録/ログイン画面が表示されるので、指示に従い登録/ログインする

 すると以下のような画面が表示される。

画像
SambaNova CloudのAPI Key登録画面

 メイン画面の左上部の「API cURL」箇所のドロップダウンをクリックすると、以下のような選択肢が示されるので、「Meta-Llama-3.1-405B‐Instruct」を選択。


 その後、下にある「Generate NEW API KEY」をクリックすれば、新しいAPIキーが生成される。注意サインにあるように、APIを再度表示することはできないので、コピー&ペーストで、管理が容易な場所に格納することが望ましい。またAPIキーは、当該アカウントに紐づくもので、有料ティアでは、モデル利用料に直結するため厳重に管理することが求められる。


 次にこのAPIキーを先ほど作成した.envファイルに格納する。

ステップ5:Pythonスクリプトと実行

 APIキーを.envに格納した後、もう一度SambaNova Cloudページに行き、オレンジ色の「View API Curl」ボタンをクリックする。


 すると以下のようなコードが表示される。ここでは「Curl」と「Python」が選択できるようになっているが、今回はPythonを選択し、「Copy Code」ボタンをクリックする。


 VS Codeに戻り、メインのファイルを作成する。ファイル名は任意だが、ここでは「main.py」とする。


 このファイルに先ほどコピーしたコードを貼り付ける。
#直接貼り付けたオリジナルコード
import os
import openai

client = openai.OpenAI(
api_key=os.environ.get("SAMBANOVA_API_KEY"),
base_url="https://api.sambanova.ai/v1",
)

response = client.chat.completions.create(
model='Meta-Llama-3.1-405B-Instruct',
messages=[{"role":"system","content":"You are a helpful assistant"},{"role":"user","content":"Hello"}],
temperature = 0.1,
top_p = 0.1
)

print(response.choices[0].message.content)
 このコードの場合、5行目にある「api_key=os.environ.get("SAMBANOVA_API_KEY")」の、SAMBANOVA_API_KEYの箇所を、先ほど生成したAPIキーと入れ替えることで利用することもできる。

 ただし、ベストプラクティスの観点から、.envファイルを利用したいので、コードを以下のように書き換える。また入力プロンプトも分かりやすくするために、別途変数を追加している。
#変更版コード
import os
from dotenv import load_dotenv
import openai

load_dotenv()

#プロンプト
user_prompt = "Give me some examples of LLMs"

client = openai.OpenAI(
api_key=os.getenv("SAMBANOVA_API_KEY"),
base_url="https://api.sambanova.ai/v1",
)

response = client.chat.completions.create(
model='Meta-Llama-3.1-405B-Instruct',
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": user_prompt}
],
temperature=0.1,
top_p=0.1
)

print(response.choices[0].message.content)
 VS Codeで以下のようになっていれば問題ないはず。


 Llama 3.1 405Bモデルが日本語に公式対応していないことに留意し、今回は英語でプロンプトを入力した。8行目の、user_prompt = "Give me some examples of LLMs"(大規模言語モデルの事例を教えて)がプロンプトとなる。

 VS Code右上の右向き三角印をクリック、またはターミナルで python main.pyと入力すると、このスクリプトが実行される。

画像
VS Codeの実行ボタン(右向き三角印)

 以下がLlama 3.1 405Bの回答となる。BERTなどの基本モデルからGPT-4まで主要モデルを列挙する内容となっている。
(venv) genhosoya@Gens-Mac-mini sambanova % /Users/genhosoya/sambanova/venv/bin/python /Users/genhosoya/sambanova/main.py
Here are some examples of Large Language Models (LLMs):

1. **BERT (Bidirectional Encoder Representations from Transformers)**: Developed by Google, BERT is a pre-trained language model that uses a multi-layer bidirectional transformer encoder to generate contextualized representations of words in a sentence.

2. **RoBERTa (Robustly Optimized BERT Pretraining Approach)**: Developed by Facebook AI, RoBERTa is a variant of BERT that uses a different approach to pre-training and has achieved state-of-the-art results on several natural language processing (NLP) benchmarks.

3. **Longformer**: Developed by Google, Longformer is a type of transformer model that is designed to handle longer input sequences than traditional transformer models.

4. **XLNet**: Developed by Google and Carnegie Mellon University, XLNet is a type of transformer model that uses a combination of autoencoding and autoregressive techniques to generate text.

5. **T5 (Text-to-Text Transfer Transformer)**: Developed by Google, T5 is a type of transformer model that is designed to handle a wide range of NLP tasks, including text classification, sentiment analysis, and machine translation.

6. **Llama**: Developed by Meta, Llama is an artificial intelligence model developed by Meta, designed to process and generate human-like language.

7. **ChatGPT**: Developed by OpenAI, ChatGPT is a chatbot that uses a variant of the GPT-3 model to generate human-like text in response to user input.

8. **GPT-3 (Generative Pre-trained Transformer 3)**: Developed by OpenAI, GPT-3 is a type of transformer model that uses a combination of pre-training and fine-tuning to generate human-like text.

9. **GPT-4 (Generative Pre-trained Transformer 4)**: Developed by OpenAI, GPT-4 is the fourth version of the company's GPT multimodal large language model.
(venv) genhosoya@Gens-Mac-mini sambanova %
 このAPI利用は、SambaNova Cloudの「Usage」ページで確認できるので、特に有料ティアで利用する場合は逐次確認したいところだ。


 これを起点に、HTML、CSSなどでフロントエンド/インターフェイスを整えることで、簡易なチャットツールを作成することができる。また、複雑にはなるが、ベクトルデータベースに接続することでLlama 3.1 405BベースのRAGシステムの構築も可能となり、可能性は無限に広がるだろう。

評価する

いいね!でぜひ著者を応援してください

  • 0

会員になると、いいね!でマイページに保存できます。

共有する

  • 0

  • 0

  • 0

  • 0

  • 0

  • 0

  • icon-mail
  • icon-print
  • icon-hatena
  • icon-line
関連タグ タグをフォローすると最新情報が表示されます
あなたの投稿

    PR

    PR

    PR

処理に失敗しました

人気のタグ

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます