2023年3月2日木曜日

ChatGPTを英会話に使う



AIと幅広い対話を行うことができるChatGPTですが、英語教師の役割を担わせることも可能になっています。これを用いて英会話(チャット)による学習を行うことが可能です。
  • 最初に必要なプロンプトを入力します。コピペして使ってください。
    • 初心者
Let's think step by step.
You are an American English teacher.
Chat with me, a beginner English speaker.
Conversation continues up to 7 times.
You come up with the topic.
Conversation will be done in one sentence.
You correct and explain any grammatical errors.

Responses should be in three-line format in the following order, which is a constraint.
Correction: My message after you corrected it. First time none.
Reason: Your reason for the correction. First time none.
Message: Your message.At first you ask questions on topics other than greetings.

Translate the immediately preceding three lines into Japanese and add.
    • 初級
You are an American English teacher.
Chat with me, a beginner English speaker.
Conversation continues up to 7 times.
You come up with the topic.
Conversation will be done in one sentence.
You correct and explain any grammatical errors.
Your message should consist of at least 15 words per sentence.

Responses should be in three-line format in the following order, which is a constraint.
Correction: Proposed correction to my message. First time none.
Reason: Your reason for the correction. First time none.
Message: Your message.At first you ask questions on topics other than greetings.

      • 中級
    You are an American English teacher.
    Chat with me, a beginner English speaker.
    Conversation continues up to 7 times.
    You come up with the topic.
    Conversation will be done in two sentence.
    You correct and explain any grammatical errors.
    You explain if there is a more natural way to express yourself.

    Responses should be in three-line format in the following order, which is a constraint.
    Correction: Proposed correction to my message. First time none.
    Reason: Your reason for the correction. First time none.
    Message: Your message.At first you ask questions on topics other than greetings.
      • 上級
    You are an American English teacher.
    Please chat with me.
    Conversation continues up to 7 times.
    You come up with the topic.
    You explain if there is a more natural way to express yourself.

    Responses should be in three-line format in the following order, which is a constraint.
    Correction: Proposed correction to my message. First time none.
    Reason: Your reason for the correction. First time none.
    Message: Your message.At first you ask questions on topics other than greetings.
      • それ以上
    そのままChatGPTと会話するのが良いと思います。
    • あとはChatGPTが会話を続けてくれます。英語だけでなく分からない単語を日本語で使うと英語に修正してくれたりもします。

    2022年9月29日木曜日

    Stable Diffusionを使う(Arch Linux)

     メモ兼テンプレです。

    • 目的
      • stable_diffusion.openvinoの実行に必要な手順をまとめておく
    • 前提
      • Arch Linuxがインストール済みであること
      • 一般ユーザーを作成済みであること。ユーザー名はuserとする。
    • 手順
      • rootユーザーを開始してAUR利用に必要なパッケージをインストール
        • su
        • pacman -Sy base-devel git sudo
      • visudoを実行してuserがsudoを利用可能にする
        • visudo
          • 操作方法はviなので注意
        • 例として「root ALL=(ALL:ALL) ALL」の次の行に「user ALL=(ALL:ALL) ALL」を追加
        • 「:wq」で保存して終了
      • userにユーザーを変更
        • su user
      • 作業用ディレクトリをホームディレクトリに作成し移動
        • mkdir /home/user/work
        • cd /home/user/work
      • AURのpython38をインストール
        • git clone https://aur.archlinux.org/python38.git
        • cd python38
        • gpg --recv-keys B26995E310250568
          • 証明書を信用できない場合は使わないこと(自己責任です)
        • makepkg -si
      • rootユーザーに戻って必要なパッケージをインストール
        • exit
        • pacman -Sy python python-pip python-virtualenv
      • userユーザーになり作業用ディレクトリでstable_diffusion.openvinoをclone
        • su user
        • cd /home/user/work
        • git clone https://github.com/bes-dev/stable_diffusion.openvino.git
      • virtualenvを設定し開始する
        • virtualenv -p python38 env1
        • source env1/bin/activate
      • stable_diffusion.openvinoに移動してインストール
        • cd stable_diffusion.openvino
        • pip install --timeout 150 -r requirements.txt
      • stable_diffusion.openvino実行
        • python demo.py --prompt "karaage"
          • 実行結果はoutput.pngに出力されます。
      • virtualenvを終了
        • deactivate
    • 備考
      • AMDでは動かないとか動くとか(不明)
      • ※現時点では動作した
    • 生成サンプル(Penguin typing on a laptop)

    2022年7月6日水曜日

    GPUパススルー(Arch Linux)

     メモ兼テンプレです。

    環境

    • Arch Linux
    • Pentium Gold G6405(VT-d対応)
    • GeForce GTX 950(UEFI対応)
    • BIOSTAR H510MH 2.0(IOMMU対応)

    手順

    • IOMMUとVT-dを有効化
      • UEFIでVMXをEnable
    • カーネルパラメーター
      • intel_iommu=on
    • モジュールをロード
      • /etc/modprobe.d/vfio.conf
        • 注意点としてCPU由来のPCIeコントローラーを含めないこと
      • /etc/mkinitcpio.conf
        • MODULES=(... vfio_pci vfio vfio_iommu_type1 vfio_virqfd ...)
    • 仮想マシン作成
      • virt-managerにて作成
        • UEFIを選択
        • CPUモデルとしてhost-passthroughを選択
        • SPICEの削除は不要

    2022年6月17日金曜日

    ゲームボーイエミュレータを自作

    Rustでゲームボーイエミュレータを自作してみました。
    なかなか面白くCPUを中心に知識を深めるのにも役立ったので内容と共に紹介したいと思います。ソースコードはこちらにあります。


    まずはじめに

    実際のところ執筆時点ではゲームボーイエミュレータを自作する為に必要な資料は豊富に揃っている為に比較的容易に作ることが出来ます。ただそれらの資料は一部不完全であったりするので突き合わせて正しい方を選んでいく必要があります。その際に役立つのがGitHubに公開されている完成品のエミュレータで動作させるのもソースコードを見るのも役に立ちます。

    完成品と同じ処理を実装していくことで確実に作れる点は大きいです。


    概要を把握

    エミュレータを作る前にGAME BOYが、どんな機能で、どんな動きをするのか概要を把握しておくと楽になります。CPU、RAM、割り込み、時計、画面、サウンド、ゲームパッド、ゲームカートリッジなどが主たる物としてあげられますが、ざっくらばんでも絵にしておくと把握が楽になります。


    準備

    必要な資料や開発環境を整えておくと楽が出来ます。
    私の開発環境ではGitとRustとVimとSDL2を使用しました。他にもVisual Studio Codeなどもありますし使い慣れた開発環境を準備するのが良いでしょう。また完成品のソースコードの開発環境に合わせられると更に楽が出来ます。
    資料については関連サイトが豊富にあります。日本語ではGB Specなど、海外ではBGB homepageGameboy DevelopmentgbdevGame Boy Projectなどがあります。海外の方が詳細であることが多いです。

    その他にROMデータが必要になりますが、これはオープンソースのROMがお手軽に利用できます。なかにはテスト用ROMなどもあり使うと確認が楽になります。またデバッグ機能の充実しているエミュレータBGBや、必要な物がまとめられているGitHubのawesome-gbdevなどもあります。


    実装

    私の場合は概要把握の後は仕様書と完成品のソースコードを相互参照しながら実装していきました。ソースコードに不明点があれば仕様書を参照、テストROMで不具合があればソースコードの見直し、それでも不明なら仕様書を参照、それでも不明なら完成品のソースコードを修正してレジスタの内容を出力して開発品とdiffなど。
    ドキュメントには不備が所々ある様で基本的にはテストROMに合わせるのが良いようです。


    終わりに

    結果として部分的ですがサウンドの再生も可能になり比較的まともにプレイ可能になりましたので今後は吸い出し機を使って購入したカートリッジのデータをプレイしてみる予定です。
    自作したエミュレータでマリオやポケモンが動くのは感慨深いかもしれません。

    2022年4月27日水曜日

    GAME BOY エミュレータを作る(Rust)

    メモ兼テンプレです。

        GB Emuの作成にあたり参考資料についてまとめておく


    2022年2月19日土曜日

    SSHでポートフォワード(リモートからローカルへトンネリング)

    メモ兼テンプレです。

    ssh -R 8080:localhost:8081 -g -N user@192.168.1.1

    解説

    • -R 8080:localhost:8081
      • 192.168.1.1のポート8080への接続をlocalhostの8081にポートフォワード
    • -g
      • 外部からの接続を許可
    • -N
      • ポートフォワード向け便利オプション(コマンド実行なしのモード)
    • user@192.168.1.1
      • userで192.168.1.1に接続
    ※未検証

    SSHでポートフォワード(ローカルからリモートへトンネリング)

    メモ兼テンプレです。

    ssh -L 8081:192.168.1.123:8080 -g -N user@192.168.1.123

    解説

    • -L 8081:192.168.1.123:8080
      • ポート8081への接続を192.168.1.123:8080にポートフォワード
    • -g
      • 外部からの接続を許可
    • -N
      • ポートフォワード向け便利オプション(コマンド実行なしのモード)
    • user@192.168.1.123
      • userで192.168.1.123に接続

    ChatGPTを英会話に使う

    AIと幅広い対話を行うことができるChatGPTですが、英語教師の役割を担わせることも可能になっています。これを用いて英会話(チャット)による学習を行うことが可能です。 最初に必要なプロンプトを入力します。コピペして使ってください。 初心者 Let's think ste...