GitHub Actions を使った論文キャッチアップ特化AI研究員「雪彦」

## はじめに

研究者や開発者にとって、常に最新の研究動向を把握することは非常に重要です。しかし、日々膨大な数の論文が発表される中で、そのすべてに目を通し、内容を理解することは容易ではありません。特に、言語の壁は大きな障壁となりえます。

**Yukihiko**は、そんな悩みを解決するために生まれた、AIを搭載した研究アシスタントです。最新の機械学習論文を自動で収集し、日本語に翻訳、要約した上で、GitHubのIssueとして報告します。サーバーレスで動作し、複雑な設定なしで利用できるため、誰でも簡単に導入できます。

## Yukihikoの機能詳細

Yukihikoは、以下の機能を提供することで、最新の研究動向を効率的に把握することを支援します。

### 論文の自動収集

- **arXiv**: 機械学習分野を含む、物理学、数学、コンピュータサイエンスなど、幅広い分野の論文を網羅するプレプリントサーバーです。
- **Hugging Face**: 自然言語処理分野を中心に、最新の機械学習モデルやデータセットを公開しているプラットフォームです。

Yukihikoは、これらのサイトから定期的に新規論文/モデルの情報を取得します。取得する論文/モデルの範囲は、キーワードやカテゴリなどを指定することでカスタマイズ可能です。

### 高精度な日本語翻訳

収集した論文/モデル情報は、Googleが開発した高度な大規模言語モデル **Google Gemini API** を利用して日本語に翻訳されます。Gemini APIは、文脈理解と自然言語生成能力に優れており、専門用語が多い論文でも高精度な翻訳を実現します。

### 要約の自動生成

論文/モデルの内容を短時間で把握できるように、Google Gemini APIを用いて要約を自動生成します。要約は、論文/モデルの主要な貢献、新規性、結論などを簡潔にまとめたものになります。

### GitHub Issueへの報告

翻訳・要約された論文/モデル情報は、GitHubのIssueとして報告されます。Issueには以下の情報が含まれます。

- 論文/モデルのタイトル（日本語）
- 論文/モデルのURL
- 論文/モデルの著者
- 公開日
- 翻訳された要約
- 関連するラベル

### カスタマイズ可能なラベル設定

報告されるIssueには、内容に応じて自動的にラベルが付与されます。ラベルは、例えば以下のように設定できます。

- 研究分野 (自然言語処理, コンピュータビジョン, 生成モデルなど)
- タスク (分類, 生成, 翻訳など)
- データセット
- 手法

ラベルはユーザーが自由に定義できるため、自身の研究テーマに合わせた情報管理が可能です。

## Yukihikoの導入と利用開始

Yukihikoは、GitHub Actionsを用いて動作するため、導入は非常に簡単です。

1. **GitHubリポジトリへのYukihikoの追加**: Yukihikoのリポジトリを自身のGitHubアカウントにフォークします。
2. **Secretsの設定**: GitHub Actionsが外部サービスと連携するために必要なAPIキー等を設定します。
   - `YOUR_PERSONAL_ACCESS_TOKEN`: GitHub APIを利用するためのトークン
   - `GEMINI_API_KEY`: Google Gemini APIを利用するためのAPIキー
3. **ワークフローのカスタマイズ**: `./github/workflows` ディレクトリにあるワークフローファイルを編集し、論文収集のスケジュールや条件などをカスタマイズします。
4. **実行**: 以上で設定は完了です。設定したスケジュールに従ってYukihikoが自動的に起動し、論文情報を収集・処理してIssueとして報告します。

## Yukihikoの動作原理

Yukihikoは、以下の図で示すように、複数のステップを経て論文情報を処理します。

```mermaid
%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#024959',
    'primaryTextColor': '#F2C12E',
    'primaryBorderColor': '#024959',
    'lineColor': '#A1A2A6',
    'secondaryColor': '#F2AE30',
    'tertiaryColor': '#593E25',
    'textColor': '#A1A2A6',
    'fontSize': '16px'
  }
} }%%
sequenceDiagram
    participant GitHub Actions
    participant Yukihiko
    participant arXiv
    participant Hugging Face
    participant Google Gemini API
    participant GitHub API

    GitHub Actions->>Yukihiko: スケジュール実行開始
    activate Yukihiko
    Yukihiko->>arXiv: 最新の論文情報を取得
    activate arXiv
    arXiv-->>Yukihiko: 論文情報
    deactivate arXiv
    Yukihiko->>Hugging Face: 最新の論文情報を取得
    activate Hugging Face
    Hugging Face-->>Yukihiko: 論文情報
    deactivate Hugging Face
    Yukihiko->>GitHub API: 収集した論文情報でプルリクエストを作成
    activate GitHub API
    GitHub API-->>Yukihiko: プルリクエスト作成完了
    GitHub Actions->>GitHub API: プルリクエストをマージ
    GitHub API-->>GitHub Actions: マージ完了
    deactivate GitHub API
    Yukihiko->>Google Gemini API: 論文情報を日本語に翻訳
    activate Google Gemini API
    Google Gemini API-->>Yukihiko: 翻訳済み論文情報
    deactivate Google Gemini API
    Yukihiko->>Google Gemini API: 翻訳済み論文情報を要約
    activate Google Gemini API
    Google Gemini API-->>Yukihiko: 要約済み論文情報
    deactivate Google Gemini API
    Yukihiko->>GitHub API:  論文情報からIssueを作成 & ラベルを付与
    activate GitHub API
    GitHub API-->>Yukihiko: Issue作成完了
    deactivate GitHub API
    Yukihiko-->>GitHub Actions: 処理完了
    deactivate Yukihiko

    Note left of GitHub Actions: スケジュール実行
```

1. **スケジュール実行**: GitHub Actionsのスケジュール機能に基づき、Yukihikoが起動します。
2. **論文の収集**: arXivとHugging Faceから、設定された条件に合致する最新の論文情報を収集します。
3. **収集情報のプルリクエストとマージ**: 収集した論文情報は、まずプルリクエストとして作成されます。その後、GitHub Actionsによって自動的にメインブランチにマージされます。
4. **日本語への翻訳**: Google Gemini APIを使って、収集した論文情報を日本語に翻訳します。
5. **要約の作成**: 翻訳された論文を元に、Google Gemini APIを用いて、重要なポイントをまとめた簡潔な要約を自動生成します。
6. **Issueの作成とタグ付け**: 翻訳、要約された論文情報はGitHubのIssueとして報告されます。この際、内容に応じたラベルが自動的に付与されるため、後から効率的に情報を探すことができます。


## Yukihikoがもたらすメリット

- **時間の節約**: 論文調査にかかる時間を大幅に削減できます。
- **最新情報のキャッチアップ**: 定期的に最新の論文/モデル情報が提供されるため、常に最新の研究動向を把握できます。
- **効率的な情報管理**: GitHub Issueとして情報が整理されるため、自身の研究テーマに関連する情報を効率的に管理できます。
- **言語の壁の克服**: 日本語で情報が提供されるため、英語論文を読むのが苦手な方でも安心して最新情報にアクセスできます。

## まとめ

Yukihikoは、AIの力を活用することで、研究者や開発者の論文調査を強力にサポートします。ぜひYukihikoを導入し、日々の研究活動にお役立てください。

## リポジトリ

https://github.com/Sunwood-ai-labs/Yukihiko