開発、セキュリティ、運用のための llms と genai の学習
このリポジトリは何についてのものですか?
このリポジトリは、LLM と GenAi に関するさまざまな情報を、従来のソフトウェア エンジニアリングによって容易に理解できるレッスンの物語として構造化することを目的としています。開発、運用、セキュリティの観点から理解する必要がある側面を強調しています。世の中にはたくさんの資料がありますが、気づけば同じことを何度も説明し、物語を作り上げていました。
レッスンは主に Langchain フレームワークに基づいており、Python プログラミング言語に少し慣れていることが期待されます。多くの例はドキュメント ページから借用されており、可能な場合は出典が示されています。非常に多くの資料を収集してくれた Langchain に敬意を表します!
レッスンの概要
開発者
- OpenAI を使用した単純な LLM の呼び出し
- Langchain でのデバッグを検討する
- OpenAIをモデルとしてチャットする
- プロンプトテンプレートの使用
- Docloader を使用してローカル ファイルを読み取り、LLM 用に準備する
- エンベディングの計算と使用法を説明する
- 分割とチャンク化がいかに重要であるかを理解する
- ベクター データベースへの埋め込みとドキュメントの読み込み
- 質問と回答のチェーンを使用して RAG パターン (検索拡張生成) を実装します。
- OpenAI ドキュメントを使用して、llm に呼び出しを生成させてリアルタイム情報を検索する方法を示します。
- エージェントを実装し、よりリアルタイムの情報を取得するツールを提供します。
運営
- 使用しているトークンの量とコストを確認する
- 完全一致または埋め込みを使用して LLM への呼び出しをキャッシュする方法
- 埋め込みの計算をキャッシュし、ローカルで計算を実行する方法
- 独自のローカル LLM を実行します (Ollama を使用)
- 通話を追跡し、ファイルに記録します (コールバック ハンドラーを使用)
- 出力構造を (JSON として) 強制し、正しくない場合は LLM に再試行させます。
安全
- LLMS の OWASP トップ 10 について説明する
- 単純なプロンプト インジェクションがどのように機能するか、およびいくつかの軽減戦略を示す
- Hugginface のサードパーティ モデルを使用してプロンプト インジェクションを検出する方法
- プロンプトを使用してプロジェクトの挿入を検出する
- llms が提供する回答を確認し、問題がなければ反映します
- ハグフェイス モデルを使用して LLM 出力が有害かどうかを検出する
- Kubernetes と Trivy の脆弱性に関する LLM の意見を求めるための簡単なプロンプトを表示します。
https://github.com/jedi4ever/learning-llms-and-genai-for-dev-sec-ops/tree/main/lessons にジャンプしてください。
このリポジトリの歴史
- 最初のレッスン構造は、Techstrong/MediaOps が丁寧に主催した GenAI ハカトン中に形成されました
- レッスンは、London Devops Meetup グループでのプレゼンテーション用に洗練されました。
- 独自のバージョンを実行する計画を立てている人もいます
どうやって助けてもらえますか?
レッスンを受けたいトピックをお知らせください。 github の問題を開いて質問してください
改善するために、新しいレッスンを送信したり、修正内容を送信したりしてください。
このリポジトリをベースとして使用して独自のミートアップ/ハッカトンを実行し、レポートしてください。そういった話を聞くのが大好きです。写真やビデオを送ってください。
@patrickdebois に感謝のツイートを送信します
このリポジトリを実行するための要件 (もっと愛情が必要です)
devcontainerを使用して実行する
このプロジェクトには、リポジトリをローカルで実行するための devcontainer が含まれています。または、Google コラボなどを使用してノートブックを実行することもできます
ローカルで実行する
- デモの実行には Microsoft VSCode を使用しました
- Python と jupyter ノートブックをローカルで実行します
- 仮想環境 Python マネージャーとして詩を使用します
Poetry は、ブロック上の新しいパッケージ マネージャーです。 Conda や Pip と venv に似ています。
poetry init
poetry install --no-root
vscode を設定して詩を使用する
- pyenv を使用して Python 3.11 をインストールします (ただし、ほとんどの例は 3.12 で動作します)。
- パスを取得します pyenv
pyenv which python
- 詩の Python バージョンを設定します
poetry env use
- 詩の環境パスを検索する
poetry env info --path
- vscode
view -> command pallete -> python: select interpreter -> enter interpreter path
- パス
/Users/patrick.debois/Library/Caches/pypoetry/virtualenvs/london-devops-VW7lFx7f-py3.11
を追加し、 /bin/python to it
追加します poetry add ipykernel
jupyter ノートブックを構成する
- vscodeプラグインをインストールする
- ipykernel をインストールする
変更履歴
- 初期の langchain 構文を備えた 0.1 バージョン
- 新しい langchain-community 、 langchain-openai および新しい構文に適応した 0.2 バージョン