315 Views
September 06, 25
スライド概要
2025-09-06に開催された "ChatGPT部" イベントでLTした内容です。
横浜市鶴見区を拠点に、多様な教育・人材育成サービスを提供しています。 ※なお、当所は個人で「研究所」と名乗っているだけの自営業です。法人ではありません。
Logics of Blue
298.2K
GitHub Copilotで RAGっぽいことを実現する 2025-09-06 鶴見教育工学研究所 (自称) 田中健太 https://mana.bi/
1. 自己紹介 • 鶴見教育工学研究所 (≠法人) 田中 健太 (たなか けんた) • 大学・大学院で心理学や教育工学を学ぶ…が研究者にはなれそうもなく挫折🤣 • 2010〜2016: (株) 富士通ラーニングメディアで講師・教材開発 • 2016〜2018: (株) マクロミルでデータアナリスト • 2018〜: 教育を主なビジネス領域として独立開業 • 2020〜: 専修大学ネットワーク情報学部 非常勤講師 • (一社) 中小企業個人情報セキュリティー推進協会が 認定するDXアドバイザーとしても活動 …実態は特にないですが🤪 • Tokyo.Rに12、3年前からたまに参加 1
2. GitHub Copilotとは • GitHubが提供する “AIペアプログラマー” • プログラミングに特化してチューニング (オーケストレーション) されている • データサイエンス系の実装についても、汎用チャットAIより実践的な回答を得やすい • ChatGPT (4o, 4.1, 5など) やGemini (2.5 Proなど)、Claude (3.5, 3.7, 4) など複数のモデルに対応 • Webチャットと各種エディターの拡張機能がある • エディターでの自動補完機能も提供されている →プログラムだけでなく文章も補完してくれる • 有料プランは月額$10 • 「真面目なこと」しか聞かないのであれば、 いろんなモデルを使えて一番お得なのでは 2
3. RAG (Retrieval-Augmented Generation) • 「検索拡張生成」などと訳される • 大規模言語モデル (LLM) は膨大なデータで学習されているが、 最新情報や専門的 (ローカル) な情報を含んでいない • LLMに外部の情報源を参照させることで、より正確で信頼性の高い回答を生成する手法 • Microsoft 365 CopilotやGoogle Geminiなどは オンラインストレージ上のデータを活用できる • GitHub Copilot Enterpriseプランでは、 ナレッジベースとして組織のリポジトリを 参照できる • Free, Proプランでは都度リポジトリを指定しない 限りパブリックコードしか参照できない 出典: RAG(Retrieval-Augmented Generation:検索拡張生成)とは?:AI・機械学習の用語辞典 - @IT https://atmarkit.itmedia.co.jp/ait/articles/2403/13/news035.html 3
4. GitHub Copilot Chat (Web) でRAGっぽいことを実現する 1. https://github.com/copilot 2. プライベートリポジトリを作成 (一瞬でもパブリックにすると学習に使用されるリスクあり) 3. リポジトリに参照したいドキュメントをアップロード (基本的にはテキストファイル) • PDFやWordファイルはCopilot Chatが直接読むことはできない • Google AI StudioのGemini 2.5 Proなどで 図表の構造や意味を維持したまま テキスト化するなどの前処理で対応 • リポジトリ内のファイルのインデックスを 作っておくとよいらしい 4. “Personal instructions” に 「必ずこのリポジトリの内容を 参照して解答すること」と記載 4
5. “Personal instructions” の例 USER/XXXリポジトリのmainブランチ内のドキュメントを学習し、その内容をベースに回答して ください。不足している情報はあなたの知識、外部の情報で補ってください。リポジトリ内の ファイルの一覧は、file_index.jsonに記述されています。検索には時間がかかるので、次の処理 (回答の組み立て) に入る前に10秒待ってください。検索失敗時は '一覧取得に失敗しました' とだけ返してください。 "USER/XXX" は自分の ユーザー名/リポジトリ名に読み替えてください 質問に対する回答では、まずUSER/XXXリポジトリのmainブランチ内のドキュメントのファイル パスおよび該当する箇所を提示することを優先してください。適切なものがない場合は、 外部の知識を活用して回答してください。 何らかの説明文や台本、スライドの構成やサンプルコードを作成する場合は、リポジトリ内の 文書の内容や文体、コーディングスタイルをベースに回答してください。 5
6. GitHub Copilot Chat (VSCode) でRAGっぽいことを実現する 1. Remote Repositories拡張をインストール 2. 空のワークスペースを作成する 3. ワークスペースファイルとして保存する (xxx.code-workspace ファイル) 4. VSCodeの起動スクリプトを作成する (macOSの場合はAutomatorに登録する) 5. VSCodeで指示ファイルを作成する 6. チャットの最初で @workspace と宣言する • Rの拡張機能 (languageserver) はオンラインストレージとの相性が悪いため以下のような手順に export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH" rm -f /tmp/workspace cp "$HOME/vscode-workspace/GPT_docs.code-workspace" /tmp/workspace.code-workspace code /tmp/workspace.code-workspace # 空のワークスペースを開く sleep 1 code -a "$@" # ワークスペースを開いたウィンドウにフォルダーを追加する sleep 1 code -a -folder-uri "vscode-vfs://github/USER/XXX" # ワークスペースにリモートリポジトリを追加する 6
6. GitHub Copilot Chat (VSCode) でRAGっぽいことを実現する 適用するフォルダー、 ファイル形式を指定できる ここで指示する効果がある のかはよくわかりませんが 7
6. GitHub Copilot Chat (VSCode) でRAGっぽいことを実現する インターネットに情報のない 担当講義の情報を聞いてみる 8
7. GitHub Educationプログラム • 学生、教職員、教育機関はGitHub Educationプログラムに参加できる • 無料でGitHub Copilotを含むProプランを利用できる (非常勤講師のメリットは「学割」と「肩書」くらい🤪) • 位置情報を使用するため、申請時にキャンパスにいる必要がある https://docs.github.com/ja/education/about-github-education 9
おわりに • 講師、教材開発、人材育成支援、執筆などお気軽にご用命ください • ITインフラ: Linux、仮想化、クラウド、データベースなど • プログラミング: R、Pythonなど • データ分析: Excel、BIツール、R、Pythonなど • AI: AIプロジェクトの推進、生成AI活用など • ワークショップ、ファシリテーションもちゃんと (?) できます https://mana.bi/ 🙇 10