Upgrade to Pro — share decks privately, control downloads, hide ads and more …

情報収集を効率化する自然言語処理の活用方法 〜PythonではじめるAwesomeリポジトリの作り方〜 / pycon-apac-2023

taishi-i
October 24, 2023

情報収集を効率化する自然言語処理の活用方法 〜PythonではじめるAwesomeリポジトリの作り方〜 / pycon-apac-2023

PyCon APAC 2023 での発表スライドです。

taishi-i

October 24, 2023
Tweet

More Decks by taishi-i

Other Decks in Programming

Transcript

  1. 自己紹介 • 名前 ◦ 池田 大志(Taishi Ikeda) • 略歴 ◦

    2015 - 2017: 奈良先端大 自然言語処理学研究室 ◦ 2017 - 2022: 株式会社 NTTドコモ ◦ 2023 - 現在 : 企業にて自然言語処理の研究開発に従事 • 個人開発者としての取り組み ◦ 自然言語処理に関連する Awesome リポジトリの開発 ◦ 単語分割/品詞タグ付けライブラリ nagisa の開発 ◦ PyCon JP 2018, 2019, 2020, 2022 の発表 2
  2. 4 本発表の目的 • Awesome リポジトリの作り方を通じて、大規模言語モデルの 活用方法と、効率的な情報収集の方法を共有することが目的 Awesome リポジトリ GitHub API

    自然言語処理 元データ (JSON) ① データ 取得 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化
  3. 目次(1/3) • 情報収集の現状 ◦ エンジニアが情報収集を行う頻度 ◦ 情報過多による開発パフォーマンスへの影響 ◦ 課題の整理、解決案の提案 ◦

    実例:日本語NLPに関する Awesome リポジトリ ◦ 実例:ChatGPTに関する Awesome リポジトリ ◦ Awesome リポジトリとは? 5
  4. 目次(2/3) • 自然言語処理を活用した情報収集の効率化 ◦ ① GitHub API を活用したデータ収集 ◦ ②

    必要な情報を見つけ出すテキスト分類 ▪ 大規模言語モデルを利用した Few-Shot 分類 ▪ 学習データを利用した事前学習モデルのファインチューニング ▪ 大規模言語モデルでテキスト分類する方法 ▪ OpenAI API を利用したテキスト分類 ▪ Hugging Face に公開されているモデルの利用 ▪ テキスト分類の精度検証 ◦ ③ わかりやすく情報を伝える多言語機械翻訳 ▪ OpenAI API を利用した多言語機械翻訳 ◦ (参考)効率的に情報を探し出す検索・質問応答 6
  5. 目次(3/3) • 情報が自動的に集約される Awesome リポジトリの作り方 ◦ ④ Awesome リポジトリの作り方 ▪

    ユーザーに価値のある情報の追加 ◦ ⑤ 情報掲載作業の自動化 ◦ Awesome リポジトリの完成 • まとめ ◦ 大規模言語モデル時代の情報収集 7
  6. 11 課題の整理、解決案の提案 • 課題の整理 ◦ 1日に何度も情報収集を行い、蓄積された情報を見つけるのに 時間を要しており、これが生産性に影響を及ぼしている ◦ 情報を収集する行為が悪いわけではなく、 その情報を効率的に収集し、正しく整理することが必要だと考える

    • 解決案の提案 ◦ 情報が自動的に集約される Awesome リポジトリを作ることを 提案する • メリット ◦ Awesome リポジトリを作成し公開することで、 自分だけではなく他の人の情報収集の効率化にも役に立つ
  7. 16 ① GitHub API を活用したデータ取得 • リポジトリ情報を検索する API を活用し、データを取得する Awesome

    リポジトリ GitHub API 自然言語処理 元データ (JSON) ① データ 取得 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化
  8. 17 ① GitHub API を活用したデータ取得 • リポジトリ情報を検索する API を活用し、データを取得する Awesome

    リポジトリ 自然言語処理 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化 GitHub API 元データ (JSON) ① データ 取得 全処理(①〜⑤)を Python で自動化
  9. 18 ① GitHub API を活用したデータ取得 • GitHub リポジトリを取得する Python コード

    ◦ リクエスト先: https://api.github.com/search/repositories import json import requests query = "chatgpt" params = {"q": query, "sort": "stars", "order": "desc", "per_page": 100} URL = "https://api.github.com/search/repositories" response = requests.get(URL, params=params) data = json.loads(response.text)
  10. 19 ① GitHub API を活用したデータ取得 • GitHub リポジトリを取得する Python コード

    ◦ リクエスト先: https://api.github.com/search/repositories import json import requests query = "chatgpt" params = {"q": query, "sort": "stars", "order": "desc", "per_page": 100} URL = "https://api.github.com/search/repositories" response = requests.get(URL, params=params) data = json.loads(response.text) ライブラリのインポート
  11. 20 ① GitHub API を活用したデータ取得 • GitHub リポジトリを取得する Python コード

    ◦ リクエスト先: https://api.github.com/search/repositories import json import requests query = "chatgpt" params = {"q": query, "sort": "stars", "order": "desc", "per_page": 100} URL = "https://api.github.com/search/repositories" response = requests.get(URL, params=params) data = json.loads(response.text) 検索キーワードの設定
  12. 21 ① GitHub API を活用したデータ取得 • GitHub リポジトリを取得する Python コード

    ◦ リクエスト先: https://api.github.com/search/repositories import json import requests query = "chatgpt" params = {"q": query, "sort": "stars", "order": "desc", "per_page": 100} URL = "https://api.github.com/search/repositories" response = requests.get(URL, params=params) data = json.loads(response.text) リクエストの送信
  13. 22 ① GitHub API を活用したデータ取得 • GitHub リポジトリを取得する Python コード

    ◦ リクエスト先: https://api.github.com/search/repositories import json import requests query = "chatgpt" params = {"q": query, "sort": "stars", "order": "desc", "per_page": 100} URL = "https://api.github.com/search/repositories" response = requests.get(URL, params=params) data = json.loads(response.text) JSON に変換
  14. 23 ① GitHub API を活用したデータ取得 • 実際に取得したリポジトリ情報 ◦ f/awesome-chatgpt-prompts のリポジトリ情報

    { "full_name": "f/awesome-chatgpt-prompts", "description": "This repo includes ChatGPT prompt curation to use ChatGPT better.", "stargazers_count": 90892, "forks_count": 12362, "language": "HTML", "license": { "key": "cc0-1.0", "name": "Creative Commons Zero v1.0 Universal" } }
  15. 24 ② 必要な情報を見つけ出すテキスト分類 • データから必要な情報を抽出する処理 Awesome リポジトリ GitHub API 自然言語処理

    元データ (JSON) ① データ 取得 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化
  16. 25 ② 必要な情報を見つけ出すテキスト分類 • データから必要な情報を抽出する処理 Awesome リポジトリ GitHub API ①

    データ 取得 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化 自然言語処理 元データ (JSON) 分類済み データ ② テキスト 分類 全処理(①〜⑤)を Python で自動化
  17. • 具体的なテキスト分類手段 ◦ 大規模言語モデルを利用した Few-Shot 分類 ◦ 学習データを利用した事前学習モデルのファインチューニング • 例えば「日本語NLPに関する情報」を分類する事例

    ◦ 該当する場合は「Yes」、該当しない場合は「No」を付与 26 入力テキスト(リポジトリの description) • alpacaデータセットを日本語化したものです • 『プログラマーのための CPU入門』正誤情報 • DXライブラリを用いて作成したオセロゲームです。 ② 必要な情報を見つけ出すテキスト分類 出力ラベル • Yes • No • No テキスト 分類
  18. 大規模言語モデルを利用した Few-Shot 分類 • OpenAI API を利用する ◦ メリット:簡単に大規模言語モデルを利用できる ◦

    デメリット: API 利用の費用が必要となる ◦ おすすめモデル:gpt3.5-turbo, gpt-4 • Hugging Face に公開されているモデルを利用する ◦ メリット:一度ダウンロードすると費用なしに検証可能 ◦ デメリット:GPU リソースが必要 ◦ おすすめモデル: Instruction tuning 済み Llama2 系のモデル ▪ 日本語: elyza/ELYZA-japanese-Llama-2-7b-instruct ▪ 英語: meta-llama/Llama-2-13b-hf 27
  19. 学習データを利用した事前学習モデルの ファインチューニング • Hugging Face に公開されているモデルを利用する ◦ メリット:CPU でも動作する実用的なモデルを構築できる ◦

    デメリット:学習データを作成する必要がある ◦ おすすめモデル:ダウンロード数の多い BERT 系のモデル ▪ 日本語: cl-tohoku/bert-base-japanese-whole-word-masking ▪ 英語: bert-base-uncased 28
  20. 29 大規模言語モデルでテキスト分類する方法 • 少数のサンプルを提示することで、分類したい事例を予測する ### Question: Is this description relevant

    to Japanese natural language processing? Please answer Yes or No. ### Description: (End of life: May 31, 2023) AWS Toolkit for Eclipse ### Answer: No ### Question: Is this description relevant to Japanese natural language processing? Please answer Yes or No. ### Description: Japanese analyzer uses kuromoji japanese tokenizer for ElasticSearch ### Answer: Yes ### Question: Is this description relevant to Japanese natural language processing? Please answer Yes or No. ### Description: Proposal and Evaluation of Japanese Toxicity Schema" provides a schema and dataset for toxicity in the Japanese language ### Answer:
  21. 30 大規模言語モデルでテキスト分類する方法 • 少数のサンプルを提示することで、分類したい事例を予測する ### Question: Is this description relevant

    to Japanese natural language processing? Please answer Yes or No. ### Description: (End of life: May 31, 2023) AWS Toolkit for Eclipse ### Answer: No 負例( No の場合)
  22. 31 大規模言語モデルでテキスト分類する方法 • 少数のサンプルを提示することで、分類したい事例を予測する ### Question: Is this description relevant

    to Japanese natural language processing? Please answer Yes or No. ### Description: Japanese analyzer uses kuromoji japanese tokenizer for ElasticSearch ### Answer: Yes 正例( Yes の場合)
  23. 32 大規模言語モデルでテキスト分類する方法 • 少数のサンプルを提示することで、分類したい事例を予測する ### Question: Is this description relevant

    to Japanese natural language processing? Please answer Yes or No. ### Description: Proposal and Evaluation of Japanese Toxicity Schema" provides a schema and dataset for toxicity in the Japanese language ### Answer: 分類したい事例 大規模言語モデルで 次の単語を予測する 「Yes」または「No」を予測する
  24. 33 大規模言語モデルでテキスト分類する方法 • Python 変数で定義したプロンプト prompt = """### Question:\nIs this

    description relevant to Japanese natural language processing? Please answer Yes or No.\n\n### Description:\nThe Symfony PHP framework\n\n### Answer:\nNo\n\n### Question:\nIs this description relevant to Japanese natural language processing? Please answer Yes or No.\n\n### Description:\nGLUE: Japanese General Language Understanding Evaluation\n\n### Answer:\nYes\n\n### Question:\nIs this description relevant to Japanese natural language processing? Please answer Yes or No.\n\n### Description:\nProposal and Evaluation of Japanese Toxicity Schema" provides a schema and dataset for toxicity in the Japanese language\n\n### Answer:\n"""
  25. 34 OpenAI API を利用したテキスト分類 • OpenAI 公式 Python ライブラリを利用する例 ◦

    プロンプトを入力し、モデルの出力結果を得るプログラム import openai model = "gpt-3.5-turbo" prompt = """ """ messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create( model=model, messages=messages, ) print(completion["choices"][0]["message"]["content"])
  26. 35 OpenAI API を利用したテキスト分類 • OpenAI 公式 Python ライブラリを利用する例 ◦

    プロンプトを入力し、モデルの出力結果を得るプログラム import openai model = "gpt-3.5-turbo" prompt = """ """ messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create( model=model, messages=messages, ) print(completion["choices"][0]["message"]["content"]) ライブラリのインポート
  27. 36 OpenAI API を利用したテキスト分類 • OpenAI 公式 Python ライブラリを利用する例 ◦

    プロンプトを入力し、モデルの出力結果を得るプログラム import openai model = "gpt-3.5-turbo" prompt = """ """ messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create( model=model, messages=messages, ) print(completion["choices"][0]["message"]["content"]) モデルの指定
  28. 37 OpenAI API を利用したテキスト分類 • OpenAI 公式 Python ライブラリを利用する例 ◦

    プロンプトを入力し、モデルの出力結果を得るプログラム import openai model = "gpt-3.5-turbo" prompt = """ """ messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create( model=model, messages=messages, ) print(completion["choices"][0]["message"]["content"]) プロンプトの指定
  29. 38 OpenAI API を利用したテキスト分類 • OpenAI 公式 Python ライブラリを利用する例 ◦

    プロンプトを入力し、モデルの出力結果を得るプログラム import openai model = "gpt-3.5-turbo" prompt = """ """ messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create( model=model, messages=messages, ) print(completion["choices"][0]["message"]["content"]) リクエストの送信
  30. 39 OpenAI API を利用したテキスト分類 • OpenAI 公式 Python ライブラリを利用する例 ◦

    プロンプトを入力し、モデルの出力結果を得るプログラム import openai model = "gpt-3.5-turbo" prompt = """ """ messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create( model=model, messages=messages, ) print(completion["choices"][0]["message"]["content"]) 結果の出力 YES と出力
  31. 40 Hugging Face に公開されているモデルの利用 • Hugging Face ライブラリを利用する例 ◦ プロンプトを入力し、モデルの出力結果を得るプログラム

    import torch from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "elyza/ELYZA-japanese-Llama-2-7b-instruct" model = AutoModelForCausalLM.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name) prompt = """ """ inputs = tokenizer(prompt, return_tensors="pt").to(model.device) output = tokenizer.decode(inputs["input_ids"][0], skip_special_tokens=False) with torch.no_grad(): tokens = model.generate(**inputs) output = tokenizer.decode(tokens[0], skip_special_tokens=False) print(output)
  32. 41 テキスト分類の精度検証 • 大規模言語モデルを利用した Few-Shot 分類では、 たった2件の事例を与えるだけも非常に高い分類性能を実現 ◦ 「日本語NLPに関する情報」を分類する検証 ◦

    GPT4 では、約2500件を学習した BERT モデルに匹敵する性能 大規模言語モデル( LLM)で独自データセットを評価する https://zenn.dev/taishii/articles/235769248e6046
  33. 42 ③ わかりやすく情報を伝える多言語機械翻訳 • テキストを様々な言語に翻訳する処理 Awesome リポジトリ GitHub API 自然言語処理

    元データ (JSON) ① データ 取得 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化
  34. 43 ③ わかりやすく情報を伝える多言語機械翻訳 • テキストを様々な言語に翻訳する処理 Awesome リポジトリ GitHub API 元データ

    (JSON) ① データ 取得 ② テキスト 分類 マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化 自然言語処理 分類済み データ ③ 翻訳 翻訳済み データ 全処理(①〜⑤)を Python で自動化
  35. • メリット ◦ 言語に依存せず、最新の情報を入手することができる ◦ 多くのユーザーに情報を届けることができる • 具体的な機械翻訳の手段 ◦ OpenAI

    API を利用する ◦ Hugging Face に公開されている翻訳モデルを利用する 英語: Comparison of Japanese Sentence Segmentation Tools 44 ③ わかりやすく情報を伝える多言語機械翻訳 日本語: 日本語の文分割ツールの比較 繁体字中国語: 日本句子分割工具比較 簡体字中国語: 日本语句子分割工具比较 翻訳 入力テキスト 出力テキスト
  36. 45 OpenAI API を利用した多言語機械翻訳 • プロンプトを入力し、モデルの出力結果を得るプログラム import openai model =

    "gpt-3.5-turbo" target_lang = "Japanese" input_text = "Comparison of Japanese Sentence Segmentation Tools" prompt = ( "Please translate the following input text into" f" {target_lang}.\n\nInput text: {input_text}" ) messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create(model=model, messages=messages) print(completion["choices"][0]["message"]["content"])
  37. 46 OpenAI API を利用した多言語機械翻訳 • プロンプトを入力し、モデルの出力結果を得るプログラム import openai model =

    "gpt-3.5-turbo" target_lang = "Japanese" input_text = "Comparison of Japanese Sentence Segmentation Tools" prompt = ( "Please translate the following input text into" f" {target_lang}.\n\nInput text: {input_text}" ) messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create(model=model, messages=messages) print(completion["choices"][0]["message"]["content"]) ライブラリのインポート
  38. 47 OpenAI API を利用した多言語機械翻訳 • プロンプトを入力し、モデルの出力結果を得るプログラム import openai model =

    "gpt-3.5-turbo" target_lang = "Japanese" input_text = "Comparison of Japanese Sentence Segmentation Tools" prompt = ( "Please translate the following input text into" f" {target_lang}.\n\nInput text: {input_text}" ) messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create(model=model, messages=messages) print(completion["choices"][0]["message"]["content"]) モデルの指定
  39. 48 OpenAI API を利用した多言語機械翻訳 • プロンプトを入力し、モデルの出力結果を得るプログラム import openai model =

    "gpt-3.5-turbo" target_lang = "Japanese" input_text = "Comparison of Japanese Sentence Segmentation Tools" prompt = ( "Please translate the following input text into" f" {target_lang}.\n\nInput text: {input_text}" ) messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create(model=model, messages=messages) print(completion["choices"][0]["message"]["content"]) プロンプトの指定
  40. 49 OpenAI API を利用した多言語機械翻訳 • プロンプトを入力し、モデルの出力結果を得るプログラム import openai model =

    "gpt-3.5-turbo" target_lang = "Japanese" input_text = "Comparison of Japanese Sentence Segmentation Tools" prompt = ( "Please translate the following input text into" f" {target_lang}.\n\nInput text: {input_text}" ) messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create(model=model, messages=messages) print(completion["choices"][0]["message"]["content"]) リクエストの送信
  41. 50 OpenAI API を利用した多言語機械翻訳 • プロンプトを入力し、モデルの出力結果を得るプログラム import openai model =

    "gpt-3.5-turbo" target_lang = "Japanese" input_text = "Comparison of Japanese Sentence Segmentation Tools" prompt = ( "Please translate the following input text into" f" {target_lang}.\n\nInput text: {input_text}" ) messages = [{"role": "system", "content": prompt}] completion = openai.ChatCompletion.create(model=model, messages=messages) print(completion["choices"][0]["message"]["content"]) 結果の出力 日本語の文分割ツールの比較 と出力
  42. 51 (参考)効率的に情報を探し出す検索・質問応答 • 収集した情報をキーワードや自然文で検索する処理 Awesome リポジトリ GitHub API 自然言語処理 元データ

    (JSON) ① データ 取得 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化
  43. 52 (参考)効率的に情報を探し出す検索・質問応答 • 収集した情報をキーワードや自然文で検索する処理 Awesome リポジトリ GitHub API 元データ (JSON)

    ① データ 取得 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ ④ 統計データ付与 ⑤ GitHub にアップロード 全処理(①〜⑤)を Python で自動化 自然言語処理 マークダウンファイル (READEM.md) (検索・質問応答) 全処理(①〜⑤)を Python で自動化
  44. 53 (参考)効率的に情報を探し出す検索・質問応答 • 具体的な検索・質問応答の手段 ◦ 大規模言語モデルベース ▪ LangChain, LlamaIndex, haystack

    を利用する ◦ キーワード・ベクトル検索ベース ▪ Pyserini を利用する マークダウンファイル (READEM.md) • インデックスファイル • ベクトルファイル LangChain LlamaIndex haystack Pyserini 変換 自然文: 日本語の文分割ツールを教えて。 キーワード: 日本語, 文分割 変換 質問・キーワード 出力 Bunkai sengiri 検索結果
  45. 55 ④ Awesome リポジトリの作り方 • 分類・翻訳済みデータを加工し、README.md を作成する Awesome リポジトリ GitHub

    API 自然言語処理 元データ (JSON) ① データ 取得 分類済み データ ② テキスト 分類 ③ 翻訳 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード (検索・質問応答) 全処理(①〜⑤)を Python で自動化
  46. 56 ④ Awesome リポジトリの作り方 • 分類・翻訳済みデータを加工し、README.md を作成する GitHub API 自然言語処理

    元データ (JSON) ① データ 取得 ② テキスト 分類 ③ 翻訳 (検索・質問応答) Awesome リポジトリ 分類済み データ 翻訳済み データ マークダウンファイル (READEM.md) ④ 統計データ付与 ⑤ GitHub にアップロード 全処理(①〜⑤)を Python で自動化
  47. 57 ④ Awesome リポジトリの作り方 • 分類・翻訳済みデータを加工し、README.md を作成する ◦ 「 *

    [リポジトリ名](URL) - 説明文」 の形式 ### Morphology analysis * [sudachi.rs](https://github.com/WorksApplications/sudachi.rs) - SudachiPy 0.6* and above are developed as Sudachi.rs. * [Janome](https://github.com/mocobeta/janome) - Japanese morphological analysis engine written in pure Python |Name|downloads/week|total downloads|stars| -|-|-|- |[SudachiPy](https://github.com/WorksApplications/SudachiPy)|[![Downloads](https://static.pepy .tech/badge/sudachipy/week)](https://pepy.tech/project/sudachipy)|[![Downloads](https://static.p epy.tech/badge/sudachipy)](https://pepy.tech/project/sudachipy)|![GitHub Repo stars](https://img.shields.io/github/stars/WorksApplications/SudachiPy?style=social)| |[Janome](https://github.com/mocobeta/janome)|[![Downloads](https://static.pepy.tech/badge/ja nome/week)](https://pepy.tech/project/janome)|[![Downloads](https://static.pepy.tech/badge/jano me)](https://pepy.tech/project/janome)|![GitHub Repo stars](https://img.shields.io/github/stars/mocobeta/janome?style=social)|
  48. ⑤ 情報掲載作業の自動化 • 人手の処理は行わない ◦ 定期処理(crontab など)を設定し、各処理を自動的しておく ◦ Python ライブラリを利用し、GitHub

    に Push する • README.md を直接編集しない ◦ Python スクリプトで README.md を作成する • 定期的な情報掲載を行う ◦ 自分のためにも、ユーザーのためにもなる 59
  49. 大規模言語モデル時代の情報収集 • 毎日のように新しい情報が出現する状況は変わらない ◦ しかし、大規模言語モデルを活用することで、 効率的に情報を収集することが可能となった ◦ さらに、プロンプト(自然文)でモデルを操作できるため、 自然言語処理を簡単に活用できるようになった ◦

    なので、Awesome リポジトリを作り、GitHub に公開しよう • 結局、どの大規模言語モデルを利用すべきか? ◦ まずは OpenAI API で、タスクの実現性を検討することがおすすめ ▪ インターネット上の情報が豊富である ▪ LangChain, LlamaIndex などのライブラリとの連携が容易 ▪ 初期費用なし、低コスト(gpt-3.5-turbo の場合) ◦ 実現性を検証後、Hugging Face 上のモデル でも同様のタスクを検証する 62