概要
Llama3 のリリースにより、AI の世界はさらにエキサイティングになりました。 Meta によって作成されたこの強力なオープンソース言語モデルは、事態を大きく揺るがしています。 Llama3 は、8B および 70B の事前トレーニング済みおよび命令調整済みのバリアントで利用可能で、幅広いアプリケーションを提供します。このガイドでは、Llama3 の機能と、Llama3 にアクセスする方法について説明します。 フラスコ、生成 AI に革命をもたらす可能性に焦点を当てています。
学習目標
- Llama3 の背後にあるアーキテクチャとトレーニング方法論を調査し、その革新的な事前トレーニング データと 微調整 卓越したパフォーマンスを理解するために不可欠なテクニック。
- Flask を通じて Llama3 の実践的な実装を体験し、トランスフォーマーを使用したテキスト生成の技術を習得しながら、安全性のテストと調整の重要な側面についての洞察を獲得します。
- 強化された精度、適応性、堅牢なスケーラビリティなど、Llama3 の優れた機能を分析すると同時に、責任ある使用と開発に不可欠な限界と潜在的なリスクも認識します。
- Llama3 の実例とユースケースを活用することで、さまざまなアプリケーションやシナリオで LlamaXNUMX の力を効果的に活用できるようになり、生成 AI の領域で LlamaXNUMX の可能性を最大限に引き出すことができます。
この記事は、の一部として公開されました データサイエンスブログ。
目次
Llama3 のアーキテクチャとトレーニング
ラマ3 は、最適化されたトランスフォーマー アーキテクチャを利用する自己回帰言語モデルです。はい、通常のトランスですが、アップグレードされたアプローチが施されています。調整されたバージョンでは、教師あり微調整 (SFT) とヒューマン フィードバックを伴う強化学習 (RLHF) が採用され、有用性と安全性に対する人間の好みに合わせられます。このモデルは、公的に入手可能なソースからの 15 兆を超えるデータ トークンの広範なコーパスで事前トレーニングされており、2023B モデルは 8 年 2023 月、70B モデルは 10 年 XNUMX 月がそれぞれカットオフとなります。微調整データには、公開されている指示データセットと、人間が注釈を付けた XNUMX 万を超えるサンプルが組み込まれています。
Llama3 の優れた機能
以前に述べたように、Llama3 は最適化されたトランス設計を備えており、事前トレーニング済みバージョンと命令調整済みバージョンの両方で 8B と 70B パラメーターの 128 つのサイズが用意されています。モデルのトークナイザーには 8,192K のトークン語彙があります。モデルのトレーニングには 3 個のトークンのシーケンスが使用されました。 LlamaXNUMX は次のような驚くべき能力を備えていることが証明されています。
- 精度の向上: Llama3 は、さまざまな自然言語処理タスクのパフォーマンスが向上していることを示しています。
- 適応性: このモデルは多様なコンテキストやタスクに適応できるため、幅広いアプリケーションにとって理想的な選択肢となります。
- 堅牢なスケーラビリティ: Llama3 のスケーラビリティにより、大量のデータや複雑なタスクを簡単に処理できます。
- コーディング機能: Llama3 のコーディング能力は、250 秒あたり XNUMX 以上の驚異的なトークンを処理できるという、驚くべきものであることが認められています。ゴールデン GPU の代わりに、LPU の効率は比類のないものであり、大規模な言語モデルを実行するための優れた選択肢となります。
Llama3 の最も重要な利点は、オープンソースで無料であるため、開発者が大金を費やすことなくアクセスできることです。
Llama3 のバリアントと機能
前述したように、Llama3 には 8 つの主要なバリエーションがあり、それぞれが 70B と XNUMXB の XNUMX つのサイズで異なるユースケースに対応します。
- 事前トレーニング済みモデル: 自然言語生成タスクに適しています。パフォーマンスに関してはもう少し一般的です。
- 命令チューニングされたモデル: 対話のユースケース向けに最適化されており、業界ベンチマークで多くのオープンソース チャット モデルを上回ります。
Llama3 トレーニング データとベンチマーク
Llama3 は、公開データの 15 兆トークンを超える広範なコーパスで事前トレーニングされており、2023B モデルのカットオフは 8 年 2023 月、70B モデルのカットオフは 10 年 XNUMX 月です。微調整データには、公開されている指示データセットと人間が注釈を付けた XNUMX 万を超えるサンプルが組み込まれています (当然のことです!)。このモデルは、MMLU、AGIEval English、CommonSenseQA などの標準的な自動ベンチマークで優れた結果を達成しました。
Llama3 の使用例と例
ラマは他のものと同じように使用できます ラマの家族 使い方もとても簡単になったモデルです。基本的には変圧器を設置して加速する必要があります。このセクションではラッパー スクリプトについて説明します。コード スニペット全体と GPU で実行するノートブックを見つけることができます。 ページ をご覧ください モデルの動作をテストするために、ノートブック、フラスコ アプリ、および対話型モード スクリプトを追加しました。 Llama3 をパイプラインで使用する例を次に示します。
Flask で Llama3 にアクセスするには?
次に、Flask を使用して Llama3 にアクセスする手順を見てみましょう。
ステップ 1: Python 環境をセットアップする
仮想環境を作成します (オプションですが推奨)。
$ python -m venv env
$ source env/bin/activate # On Windows use `.envScriptsactivate`
必要なパッケージをインストールします。
トランスフォーマーをインストールして高速化しますが、Llama3 は新しいため、Git Hub から直接インストールして進めます。
(env) $ pip install -q git+https://github.com/huggingface/transformers.git
(env) $ pip install -q flask transformers torch accelerate # datasets peft bitsandbytes
ステップ2: メインアプリケーションファイルを準備する
main.py という名前の新しい Python ファイルを作成します。その中に次のコードを貼り付けます。
from flask import Flask, request, jsonify
import transformers
import torch
app = Flask(__name__)
# Initialize the model and pipeline outside of the function to avoid unnecessary reloading
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
@app.route('/generate', methods=['POST'])
def generate():
data = request.get_json()
user_message = data.get('message')
if not user_message:
return jsonify({'error': 'No message provided.'}), 400
# Create system message
messages = [{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"}]
# Add user message
messages.append({"role": "user", "content": user_message})
prompt = pipeline.tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = pipeline(
prompt,
max_new_tokens=256,
eos_token_id=terminators,
do_sample=True,
temperature=0.6,
top_p=0.9,
)
generated_text = outputs[0]['generated_text'][len(prompt):].strip()
response = {
'message': generated_text
}
return jsonify(response), 200
if __name__ == '__main__':
app.run(debug=True)
上記のコードは、単一のルートを使用して Flask Web サーバーを初期化します。 /生む、ユーザーメッセージを受信して処理し、AI が生成した応答を返す責任があります。
ステップ 3: Flask アプリケーションを実行する
次のコマンドを実行して、Flask アプリを実行します。
(env) $ export FLASK_APP=main.py
(env) $ flask run --port=5000
これで、Flask アプリが次の場所で実行されているはずです。 http://localhost:5000。 Postman や CURL などのツールを使用して API をテストしたり、単純な HTML フロントエンド ページを作成したりすることもできます。
トランスフォーマー AutoModelForCausalLM を使用したインタラクティブ モード
Jupyter Notebook 内でモデルを対話的にクエリするには、これをセルに貼り付けて実行します。
import requests
import sys
sys.path.insert(0,'..')
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
MODEL_NAME ='meta-llama/Meta-Llama-3-8B-Instruct'
class InteractivePirateChatbot:
def __init__(self):
self._tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, padding_side='left')
self._tokenizer.pad_token = self._tokenizer.eos_token
self._model = AutoModelForCausalLM.from_pretrained(MODEL_NAME, torch_dtype=torch.bfloat16, device_map="auto", offload_buffers=True)
def _prepare_inputs(self, messages):
try:
inputs = self._tokenizer([message['content'] for message in messages], padding='longest', truncation=True, max_length=512, return_tensors='pt')
input_ids = inputs.input_ids.to(self._model.device)
attention_mask = inputs.attention_mask.to(self._model.device)
return {'input_ids': input_ids, 'attention_mask': attention_mask}
except Exception as e:
print(f"Error preparing inputs: {e}")
return None
def ask(self, question):
try:
messages = [
{"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
{"role": "user", "content": question}
]
prepared_data = self._prepare_inputs(messages)
if prepared_data is None:
print("Error preparing inputs. Skipping...")
return
output = self._model.generate(**prepared_data, max_length=512, num_beams=5, early_stopping=True)
answer = self._tokenizer.decode(output[0], skip_special_tokens=True)
print("Pirate:", answer)
except Exception as e:
print(f"Error generating response: {e}")
generator = InteractivePirateChatbot()
while True:
question = input("User: ")
generator.ask(question)
上記のコードを使用すると、モデルをすばやく操作して、モデルがどのように機能するかを確認できます。コード全体を見つける こちら.
User: "Who are you?"
Pirate: "Arrrr, me hearty! Me name be Captain Chat, the scurviest pirate chatbot to ever sail the Seven Seas! I be here to swab yer decks with me clever responses and me trusty parrot, Polly, perched on me shoulder. So hoist the colors, me matey, and let's set sail fer a swashbucklin' good time!"
モデルがどのように機能するかを確認したので、安全性と責任に関するガイドをいくつか見てみましょう。
責任と安全性
Meta は、安全性のベスト プラクティスの実装、Meta Llama Guard 2 や Code Shield セーフガードなどのリソースの提供、責任ある使用ガイドの更新など、責任ある AI 開発を保証する一連の措置を講じています。開発者は、特定のユースケースや対象者に対する調整の利点と有用性を比較検討しながら、ニーズに応じてこれらの安全対策を調整して導入することが推奨されます。これらのリンクはすべて、Llama3 の Hugginface リポジトリで利用できます。
倫理的考慮事項と制限
Llama3 は強力なツールですが、その限界と潜在的なリスクを認識することが重要です。このモデルは、ユーザーのプロンプトに対して不正確、偏った、または不快な応答を生成する可能性があります。したがって、開発者は、モデルの特定のアプリケーションに合わせた安全性テストと調整を実行する必要があります。 Meta では、Purple Llama ソリューション、特に Llama Guard をワークフローに組み込むことを推奨しています。Llama Guard は、モデル レベルの安全性の上にシステム レベルの安全性を重ねて入力および出力プロンプトをフィルタリングするための基本モデルを提供します。
まとめ
Meta は、Meta が作成した強力なオープンソース言語モデルである Llama3 の導入により、人工知能の状況を再構築しました。 Llama8 は、70B と 3B の事前トレーニング済みバージョンと命令調整済みバージョンの両方が利用できるため、イノベーションの可能性が数多くあります。このガイドでは、Llama3 の機能と Flask を使用して Llama3 にアクセスする方法を詳しく説明し、Generative AI を再定義する可能性を強調しています。
主要な取り組み
- Meta が開発した Llama3 は、8B と 70B の両方の事前トレーニング済みおよび命令調整済みバージョンで利用できる強力なオープンソース言語モデルです。
- Llama3 は、精度、適応性、堅牢な拡張性の向上など、優れた機能を実証しました。
- このモデルはオープンソースで完全に無料であるため、開発者や低予算の研究者がアクセスできます。
- ユーザーは、パイプライン抽象化や、generate() 関数を使用した Auto クラスを利用して、トランスフォーマーで Llama3 を利用できます。
- Llama3 と Flask を使用すると、開発者はジェネレーティブ AI の新たな地平を探索し、チャットボットやコンテンツ生成などの革新的なソリューションを促進し、人間とマシンのインタラクションの境界を押し広げることができます。
よくある質問
A. Meta が開発した Llama3 は、8B と 70B の両方の事前トレーニング済みおよび命令調整済みバージョンで利用できる強力なオープンソース言語モデルです。
A. Llama3 は、精度、適応性、堅牢な拡張性の向上など、優れた機能を実証しました。調査とテストの結果、より適切でコンテキストを認識した応答が提供され、各ソリューションがユーザーのニーズに合わせて細かく調整されることがわかりました。
A. はい、Llama3 はオープンソースで完全に無料であるため、開発者は大金を費やすことなくアクセスできます。 Llama3 はオープンソースであり、商用目的で無料で使用できます。ただし、適用される規制を確実に遵守するために、ライセンス契約条件を確認することをお勧めします。
A.はい、Llama3 はハイパーパラメータとトレーニング データを調整することで、特定のユースケースに合わせて微調整できます。これは、特定のタスクやデータセットでのモデルのパフォーマンスを向上させるのに役立ちます。
A. Llama3 は、大規模なデータセットでトレーニングされたより高度な言語モデルであり、さまざまな自然言語処理タスクにおいて BERT や RoBERTa よりも優れたパフォーマンスを発揮します。
リンク
この記事に示されているメディアは Analytics Vidhya が所有するものではなく、著者の裁量で使用されています。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://www.analyticsvidhya.com/blog/2024/04/how-to-access-llama3-with-flask/
- :持っている
- :は
- :not
- 10万ドル
- $UP
- 1
- 10
- 13
- 視聴者の38%が
- 19
- 2%
- 200
- 2023
- 400
- 48
- 5
- 6
- 8
- 9
- a
- 能力
- 上記の.
- 抽象化
- 加速する
- アクセス
- アクセス可能な
- 従った
- 精度
- 達成
- 認める
- 適応する
- 適応性
- 加えます
- 追加されました
- 調整の
- 高度な
- 利点
- 同意して
- AI
- 整列する
- アラインメント
- すべて
- 許す
- また
- しかし
- 常に
- an
- 分析論
- 分析Vidhya
- および
- 回答
- どれか
- API
- アプリ
- 適用可能な
- 申し込み
- アプローチ
- 建築
- です
- 宝品
- 記事
- 人工の
- 人工知能
- AS
- 尋ね
- 側面
- At
- 聴衆
- オート
- オートマチック
- 賃貸条件の詳細・契約費用のお見積り等について
- 利用できます
- 避ける
- 銀行
- ベース
- 基本的に
- BE
- 行動
- 背後に
- ベンチマーク
- 利点
- BEST
- ベストプラクティス
- 偏った
- ビット
- ブログソン
- 両言語で
- 境界
- 破壊
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- 呼ばれます
- 缶
- 機能
- 機能
- できる
- 場合
- 例
- ケータリング
- セル
- チャット
- チャットボット
- チャットボット
- 選択
- class
- クラス
- 賢い
- コード
- コーディング
- 来ます
- command
- コマーシャル
- 比較します
- 完全に
- 複雑な
- コンプライアンス
- 条件
- 検討事項
- コンテンツ
- 文脈
- 細工された
- 作ります
- 作成した
- 重大な
- 重大な
- データ
- データセット
- 12月
- デッキ
- def
- 提供します
- 実証
- 展開します
- 設計
- 発展した
- 開発者
- 開発
- デバイス
- 対話
- 異なります
- 直接に
- 裁量
- 異なる
- ありません
- e
- 各
- 前
- 緩和する
- 簡単に
- 効果的に
- 効率
- 強調
- エンパワーメント
- enable
- 可能
- 奨励
- 英語
- 強化された
- 確保
- 確保する
- 全体
- 環境
- エラー
- 本質的な
- エーテル(ETH)
- さらに
- EVER
- 例
- 例
- 除く
- 例外
- 例外的
- エキサイティング
- 実行
- 探査
- 探る
- export
- 広範囲
- 家族
- 特徴
- フィードバック
- File
- filter
- もう完成させ、ワークスペースに掲示しましたか?
- 焦点
- フォロー中
- 助長
- 無料版
- から
- フロントエンド
- フル
- function
- 獲得
- 生成
- 世代
- 生々しい
- 生成AI
- ジェネレータ
- Gitの
- Go
- ゴールデン
- 良い
- だ
- GPU
- GPU
- ガード
- ガイド
- ガイド
- ハンドル
- 実践的な
- 持ってる
- 聞いた
- 助けます
- こちら
- ハイ
- 地平
- 認定条件
- How To
- しかしながら
- HTML
- HTTPS
- ハブ
- 人間
- i
- 理想
- if
- 実装
- 実装
- import
- 印象的
- 改善します
- 改善されました
- in
- 綿密な
- 不正確
- 含めて
- 組み込む
- 組み込む
- 信じられない
- 産業を変えます
- 革新的手法
- 革新的な
- 入力
- 内部
- 洞察
- install
- インストールする
- を取得する必要がある者
- インテリジェンス
- 対話
- 相互作用
- 相互作用的
- に
- 概要
- 犬和
- IT
- ITS
- JPG
- ジュピターノート
- ただ
- キー
- 風景
- 言語
- 大
- より大きい
- 層
- 学習
- 左
- う
- 活用します
- レバレッジ
- 活用
- ライセンシング
- ような
- 制限
- リンク
- ラマ
- 最長
- たくさん
- 製
- メイン
- 主要な
- 作る
- 作成
- 多くの
- 3月
- マスタリング
- 五月..
- me
- メディア
- 言及した
- メッセージ
- メッセージ
- Meta
- 方法論
- 百万
- モード
- モデル
- 他には?
- 最も
- 多数
- my
- 名
- ナチュラル
- 自然言語
- 自然言語の生成
- 自然言語処理
- 自然
- 必要
- 必要
- ニーズ
- 新作
- ニューホライズン
- いいえ
- なし
- ノート
- 注意
- 何も
- 今
- of
- オファー
- on
- オープンソース
- 最適化
- or
- その他
- 優れたパフォーマンス
- 優れた性能
- 出力
- outputs
- 外側
- が
- 所有している
- パッケージ
- ページ
- パラメータ
- 部
- path
- 以下のために
- 実行する
- パフォーマンス
- パイプライン
- 海賊
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- の可能性
- ポスト
- 強力な
- 潜在的な
- 電力
- 強力な
- プラクティス
- プ
- 準備
- 準備中
- プレゼント
- 前に
- 処理
- 作り出す
- プロンプト
- 実績のある
- 提供
- は、大阪で
- 提供
- 公然と
- 公表
- 目的
- 押す
- Python
- クエリー
- 質問
- すぐに
- 範囲
- 現実の世界
- realm
- 受け入れ
- 認識
- 推奨する
- 推奨される
- お勧めする
- 再定義する
- レギュラー
- 規制
- 強化学習
- リリース
- 関連した
- 顕著
- 倉庫
- 要求
- リクエスト
- 研究
- 研究者
- リソース
- 応答
- 回答
- 責任
- 責任
- 結果
- return
- 返す
- レビュー
- 革命を起こす
- リスク
- rlhf
- 堅牢な
- 職種
- ルート
- ラン
- ランニング
- s
- 保障措置
- 安全性
- スケーラビリティ
- シナリオ
- 科学
- スクリプト
- 二番
- セクション
- 見て
- 自己
- シリーズ
- セッションに
- セブン
- シールド
- ショート
- すべき
- 示す
- 重要
- 簡単な拡張で
- から
- サイズ
- So
- 溶液
- ソリューション
- 一部
- ソース
- ソース
- 特定の
- 特に
- 標準
- ステップ
- 優れた
- 監督
- テーラード
- 撮影
- タスク
- テクニック
- 条件
- 規約と条件
- test
- テスト
- テスト
- 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다.
- テキスト生成
- それ
- 風景
- アプリ環境に合わせて
- それら
- それによって
- したがって、
- ボーマン
- 物事
- この
- 介して
- 〜へ
- トークン
- トークン
- ツール
- 豊富なツール群
- top
- トーチ
- トレーニング
- 訓練された
- トレーニング
- トランス
- トランスフォーマー
- 1兆
- true
- 試します
- 曲
- 調整された
- チューニング
- 2
- 理解する
- ロック解除
- 比類のない
- 不要
- 更新
- アップグレード
- us
- つかいます
- 使用事例
- 中古
- ユーザー
- 活用する
- バリアント
- さまざまな
- バージョン
- 非常に
- 、
- バーチャル
- ボリューム
- ました
- we
- ウェブ
- ウェブサーバー
- 計量の
- WELL
- した
- この試験は
- 何ですか
- which
- while
- 誰
- 全体
- ワイド
- 広い範囲
- 意志
- ウィンドウズ
- 以内
- 無し
- ワークフロー
- 作品
- 世界
- 書きます
- はい
- 貴社
- ゼファーネット