Pyxelを使って簡単なゲームの作成を試してみたい!part3

前回pyxeleditorを使ってサウンドを作って動かすところまでやってみました。 スコアとゲームオーバーの実装 スコア表示の実装 今回はゲーム性を持たせるところですね。やることはスコアの作成とゲームオーバーの作成ですね。まずはスコアの作成をしていきます。コードとしてはシンプルです。 class Scrolling_Game: def __init__(self): … self.score = 0 … def draw(self): … pyxel.text(5, 5, f"Score: {self.score}", 1) textの後の引数はx座標とy座標。後はテキストとカラーパレットですね。カラーパレットはドット絵と同じで0が黒、7が白になります。 さらにスコアについては特定のアイテムを取った時にプラスしていきたいので、変数にしています。ただ、固定ならテキストを入力で問題ないですね。表示させるとこんな感じ。左上にスコアが出ています。 スコア増加の実装 次はどうやってスコアを増加させるかですね。シンプルな方法でアテイムを取ったら増加するという方法でやろうと思います。 というわけでアイテムを書きました。ハチミツの壺ですね。「ハチミツ食べたいな~」でおなじみの奴です。 他にもいろいろ描いてますが、将来的に使いたいなーと思って描いたやつです。気にしないでください(笑) それから出現をランダムで出したいと思います。ここもそこまで難しくないですね。初期変数をランダムに設定し、draw関数でランダム変数を設定する感じですね。以下のコード import random class Scrolling_Game: def __init__(self): … self.item_x = random.randint(0, 120) self.item_y = random.randint(0, 120) … def draw(self): pyxel.blt(self.item_x, self.item_y, 0, 8, 24, 8, 8, 0) 当たり判定の実装 これでランダムに出現するようになりました。ただ、初期配置でランダムになるだけで取得もできないし、スコアも変わらないです。なので、次は取得して配置を変え、スコアを上げるコードを書いていきます。 class Scrolling_Game: … def update(self): … # 当たり判定 if (self.char_x < self.item_x + 8 and self.char_x + 16 > self.item_x and self.char_y < self.item_y + 8 and self.char_y + 16 > self.item_y): self.score += 100 self.item_x = random.randint(0, 120) self.item_y = random.randint(0, 120) … これで当たり判定とスコアの上昇、アイテムの再配置を行いました。動かすとこのような感じですね。 ...

2024年12月30日

Pyxelを使って簡単なゲームの作成を試してみたい!part2

pyxeleditorでキャラの動きやサウンド 前回pyxelのインストールからドット絵を描いて表示させるところまでやってみました。今回は実際にキャラクターを動かしたり、サウンドを作ったりしたいと思います。 pyxeleditorで作った部分 実際に動いた画面がこちら。 コードの中身_init 一旦各コードを簡単に見ていこうと思います。まずは__init__内ですね。前回も話したのでざっくりと見ます。 pyxel.init(128, 128, title='Scrolling Game') pyxel.load('assets/scroll_game.pyxres') self.char_x = 50 # キャラクターのX座標 self.char_y = 50 # キャラクターのY座標 initで画面サイズの設定、char_xとchar_yはキャラ座標を設定しています。loadでpixel editで作成したものをロードしています。ドット絵、タイルマップ、サウンドなど全て一旦ロードしています。 self.char_frame = 0 # 表示する画像のインデックス (0 または 1) self.frame_count = 0 # フレームカウンター self.is_moving = False # 移動中フラグを追加 self.last_input = False #直前のフレームでキー入力があったか pyxel.run(self.update, self.draw) 他のコードはコメントも記載していますが、キャラ画像の入れ替えやフラグの設定をしています。後はpyxelの起動ですね。 コードの中身_update 次はupdate関数ですね。 # ゲーム中断 if pyxel.btnp(pyxel.KEY_Q): pyxel.quit() # キー入力と移動処理 self.is_moving = False key_pressed = False # 今のフレームでキーが押されているか Qを押したらゲームを中断します。それからフラグとキー入力の初期設定をしています。 # キー入力処理とキャラクターの移動 if pyxel.btn(pyxel.KEY_LEFT): self.char_x -= 1 self.is_moving = True # 移動中フラグを立てる key_pressed = True if pyxel.btn(pyxel.KEY_RIGHT): self.char_x += 1 self.is_moving = True key_pressed = True if pyxel.btn(pyxel.KEY_UP): self.char_y -= 1 self.is_moving = True key_pressed = True if pyxel.btn(pyxel.KEY_DOWN): self.char_y += 1 self.is_moving = True key_pressed = True ここでは各方向キーを入力した時の設定をしています。上下左右分書いてるので記述は多いですが、内容はシンプルです。キャラクターの座標をずらして、フラグを書き換えています。というか関数化したほうがもっとシンプルになりますね… ...

2024年12月27日

Pyxelを使って簡単なゲームの作成を試してみたい!part1

Pyxelでゲーム開発入門 ゲームを作成するのであればUnityやUnreal Engineが有名です。それとは別にpythonでコーディングができるpyxelがあります。 pyxelはレトロゲームエンジンになります。ファミコンのようなドット絵スタイルのゲームしか作れませんが、pythonを知ってる人にはちょうどいいかもしれません。 開発環境の準備 pythonを導入している前提ですが、少し進めていきたいと思います。基本的にはREADME通りに進めていけばよいと思います。まずはライブラリのインストールを進めていきます。 pip install -U pyxel 私の例: py -3.10 -m pip install -U pyxel -Uがないとエディター画面が出ないので忘れずにつけましょう!その後は参考のためサンプルを導入するのもよいと思います。なくても特に問題はありません。 pyxel copy_examples 基本的なコード構造 そうすると簡単なゲームやガイドなどが入ってます。これを理解できれば基本的なコードは書けるようになると思います。基本的なコードはこんな感じになってます。 import pyxel class App: def __init__(self): pyxel.init(160, 120) self.x = 0 pyxel.run(self.update, self.draw) def update(self): self.x = (self.x + 1) % pyxel.width def draw(self): pyxel.cls(0) pyxel.rect(self.x, 0, 8, 8, 9) App() クラスの中に__init__関数とupdate関数とdraw関数があります。__init__関数では画面サイズの指定や各関数の実行ができます。 update関数ではキー入力や画面の切り替えを行う関数になります。update関数がメインになりそうです。もちろんupdate関数だけじゃなくて新しく関数を作っても問題ないです。キャラクター用や画面用などいろいろ作ると使い分けが楽になると思います。 draw関数では画面やキャラクターの描画を行います。エディター画面で作成した背景やキャラクターを呼び出したりします。 ドット絵とタイルマップの作成 というわけでまずはドット絵とタイルマップの作成からですね。ちなみに私は絵心は全くないので、大したものは書けません。所謂味がある絵みたいなイメージですね…コマンドは以下になります。 pyxel edit "絶対パス" 例: pyxel edit "C:\pyxel\assets\game.pyxres" コマンドは相対パスだと開かないので気を付けてください。一応実行しているフォルダーに移動してファイル名のみ指定しても問題ありません。 こんな感じで蜂A、蜂B、空、草原、岩のタイルを用意してみました。適当ですが苦手なりにそれっぽくできた気がします。まずはタイルマップの作成をします。左上のエディターからタイルマップを選び、書いたタイルを指定して書いていきます。 タイルマップへのキャラクター表示 今度はコードを使ってタイルマップにキャラクターを表示してみます。 ...

2024年12月21日

AIVMGeneraterでAivisSpeechでも使えるようにしたよ!

AIVMGeneraterを使えるようになるまで 前回Style-Bert-VITS2を使って音声合成モデルを作りました。今回は作ったモデルをAivis Speechでも使えるようにしようと思います。 AIVMGeneraterでは自作した音声合成モデルをAivis Speechで使えるようにします。以前までは音声合成モデルさえあればAIVMGeneraterで変換できるようになってました。しかし、今は使えなくなってます。そのため、.onnxファイルを作って変換する必要があります。 ただ、Style-Bert-VITS2を使えるのであればできますので諦めずやっていきましょう! Style-Bert-VITS2をdevブランチへ切り替え まずはStyle-Bert-VITS2をdevブランチへ切り替えます。デフォルトだとmainブランチになってますので、これをdevブランチへ切り替えます。ターミナルからコマンド実施でもよいですが、VSCodeを使っているのであれば以下の方法で切り替えて実施できます。 まずはGitのタブを選択しましょう。それからソース管理の設定から"チェックアウト先"を選択します。 そうすると真ん中あたりにこんな感じでブランチやリモートブランチが出てきます。ここからorigin/devを選択しましょう。 onnxファイルの作成 そうすると中のファイルなどが変わっていると思います。以下を確認してみましょう! “convert_onnx.py"が存在しているかどうか requirements.txtにonnx系のライブラリが記述されているかどうか 上記が確認出来たらrequirements.txtで一括再インストールをしてconvert_onnx.pyを実行しましょう。私の環境でのコマンドだと以下のような感じですね。この辺は適宜自身の環境に合わせて変えてください。 py -3.10 -m pip install -r requirements.txt py -3.10 convert_onnx.py --model model_assets/{モデル名} 例:py -3.10 convert_onnx.py --model model_assets/10minmodel そうするとモデルファイル内に.onnxファイルができてると思います。モデルごとにできるので少し容量を使っちゃいますが… AIVMGeneraterの設定 .onnxファイルが出来たらこちらのページからAIVMGeneraterを使います。使い方はシンプルでモデルに関するファイルをアップして、サンプルボイスもアップして変換するだけです。 メタデータ編集では製作者や説明を記載出来ます。この辺はなくても大丈夫です。私は一応記載しましたが。それからモデルの公開ですね。今回は公開しませんが、公開したい場合はライセンスを選びましょう。 ACML 1.0 と ACML-NC-1.0 の違い営利目的の利用を許可するかどうかです。ACML 1.0は許可しますが、ACML-NC-1.0は非営利目的のみとなっています。パブリックドメインは著作権フリーで、カスタムライセンスはライセンスを自作することになります。 ACML 1.0かACML-NC-1.0のどちらかを選べば特に問題ないかと思います。 それからアイコン、スタイル説明、サンプルボイスを追加しましょう。サンプルボイスは実際にモデルを使った時の音声を貼っておきます。 アイコンはデフォルトだと卵型の形になります。公開する場合は設定しておきましょう。スタイルは何もなければノーマルになります。公開するスタイルに合わせて書き換えましょう。 設定が完了したら、変換をします。そうすると変換が完了したファイルがダウンロードされます。許可を求められた場合は許可しましょう。 Aivis Speechへの取り込み ダウンロードが完了したら、Aivis Speechに取り込みます。まずはAivis Speechを起動します。“設定” > “音声合成モデルの管理"を選択します。そしたら右上の"インストール/更新"を選択して.aivmxファイルを選択します。 ファイルを選択したら右下の"インストール/更新"を選択しましょう。このような画面になったらインストール完了です。後は自由に使えるようになります。 終わりに 今後ですがもう少しモデルの作成を試してみたいなと思います。10minmodelを作りましたが、お試しで作った物なので。使ってみた感じつまずいたり、うまく喋れてない部分がありました。なので、データの再集録からですね。 それからスタイルもいくつか使ってみたいですね。本来Audibuleスタイルで作りましたが、せっかくなら感情表現もできるキャラクター用も作ってみたいですし。 ここまでできれば色んな音声合成モデルを作れるようになります。皆さんもぜひ試してみてください。唯一の難点はローカルでモデル作成しているときPCが使えないということですね。Colabを使えばいいと思いますが、あれだと数日かかりそうですし。ではでは。

2024年12月18日

音声合成モデルをStyle-Bert-VITS2を使って作ってみたよ

音声合成モデルの作成 前回Style-Bert-VITS2を試しに使ってみることをやってみました。今回は実際にモデルを作ることをやろうと思います。 まずは音声の収録ですね。こちらに関しては自身でいろいろ試してみるしかないですね。とりあえずノイズキャンセリング付きや単一指向性マイクなどがいいかもしれません。後は収録時に詰まったり、変な発声になったりせず滑らかに読むことですね。無音は多少なっても大丈夫なので。 次に音声データセットの作成です。こちらは前回やったので飛ばします。収録した音声を勝手に10秒程度に切り分けてくれますので。 文字おこし時のエラー対処 私は文字おこしで以下のエラーが出たので"pip install tf-keras"で対処しました。 RuntimeError: Failed to import transformers.models.whisper.modeling_tf_whisper because of the following error (look up to see its traceback): Your currently installed version of Keras is Keras 3, but this is not yet supported in Transformers. Please install the backwards-compatible tf-keras package with `pip install tf-keras`. . エラーメッセージが空の場合、何も問題がない可能性があるので、書き起こしファイルをチェックして問題なければ無視してください。 その次はこのようなエラーが出ました。 site-packages\transformers\pipelines\audio_utils.py", line 37, in ffmpeg_read raise ValueError("ffmpeg was not found but is required to load audio files from filename") from error ValueError: ffmpeg was not found but is required to load audio files from filename その場合は以下の手順で対応しました。私はwindowsかつVS Codeなのでmacとかは別になります。Gitでクローンする方法でも大丈夫です。 ...

2024年12月15日

StyleBertVITS2を使って自身のデータセットを作成してみるよ

前回Aivis Speechを触ってみたので自身の音声合成モデルを作ってみたいなと思い調べてみました!StyleBertVITS2は音声合成がメインになると思います。他にも学習やデータセットの作成もできます。というわけでStyleBertVITS2を使っていきます! StyleBertVITS2のインストール というわけでまずはStyleBertVITS2のインストールからですね。基本的にはGithubに載ってますのでその通りで問題ないと思います。 ただ、私は仮想環境作るのが面倒なタイプでpythonのversion別(3.10と3.12)でしか管理してないのでそれに合わせたコマンド使用しています。プロジェクトが複数存在しないのであれば、使わなくていいかなと思う派です。思想は人それぞれなので。 # 各種ライブラリのインストール git clone https://github.com/litagin02/Style-Bert-VITS2.git cd Style-Bert-VITS2 py -3.10 -m pip install "torch<2.4" "torchaudio<2.4" --index-url https://download.pytorch.org/whl/cu118 py -3.10 -m pip install -r requirements.txt # モデルのダウンロード py -3.10 initialize.py # エディター画面の表示 py -3.10 server_editor.py --inbrowser または py -3.10 app.py StyleBertVITS2_server_editor.pyの実行 server_editor.pyを実行した場合は以下のような画面になります。その前に利用規約に同意しましょう。特に性的や政治的、フェイク系はやめましょうという感じですね。 この辺は音声合成モデルを使用するという感じですね。やってることはAivis Speechと同じような感じだと思います。 StyleBertVITS2_app.pyの実行 こちらではモデルの作成などは出来なさそうなので、もう一方のプログラムを実行してみます。app.pyのほうですね。 こちらであればデータセット作成、モデルの学習、マージもできそうなのでこっちを使ってみます。 スタイルの作成方法 まずはスタイルの作成をする必要がありますがデータが必要になります。必要なデータは1時間ほどあれば十分だと思いますが、数十分でもできそうな気はしています。試してないので何とも言えませんが… もし10秒程度のwavファイルが360個ほどあれば十分なのでその時はスタイルの作成を行ってください。説明にもありますが、Dataフォルダとは別で配置しておくとスタイルの管理も楽なので別フォルダを作っておくと良いかもしれません。1スタイルなら適当な配置でもよさそうです。 wavファイルの準備 次はデータセットがない場合ですね。もし自身の声を使用しない場合はどこからかwavファイルをダウンロードする必要があります。状況によっては環境音や音楽を削除するなどの対応も必要かと思います。ただ、今回は自身の声で作成する想定なのでこの工程は省きます。 もし、細かい音声データを大量には持ってないけど、数十分~1時間のwavファイルがある場合はデータセットの作成を行いましょう。 データセットの作成 まずはinputフォルダにデータを入れます。録音などの環境がまだ整ってないので一旦前回使用したwavファイルを使ってみます。 次はモデル名を決めましょう。私はまだ本格的にやらないので適当に"test"にしました。秒数の設定などは一旦デフォルトにしています。この辺は好きなように設定すると良いです。“成功すればスライスが完了しました。“というメッセージが出て所定のフォルダに出力されます。 大体10秒近くの音声ファイルが出力されます。これでスタイル作成の準備が整ったのでスタイル作成をして学習という流れになります。 終わりに ここまで書いてきましたが、私の方でまだデータの準備ができていません。 一人で話して録音する分には問題ないです。ただ、マイクがゴミだったのでまともなマイクを使って収録したいと思います。 ...

2024年12月2日

AI音声合成のAivisSpeechを触ってみたよ!

まずはAudibleという形でこの記事を読み込ませてみました。今後も活用してみようと思います。 AivisSpeech とは? DMMのにじボイス(旧:DMMボイス)でいろいろ騒がれていたところに商用利用もできる無料のAI音声合成が出ていました。 Aivis ProjectのAivisSpeechですね。他のプロジェクトもありますが、一旦試しで使ってみる場合はAivisSpeechになると思います。 AivisSpeechのインストール方法 というわけでまずはダウンロードしてみましょう!ダウンロードする場合はWindowsとMacがあります。私はWindowsなのでこちらのインストーラー版をダウンロードしてきます。 インストーラーを実行しようとするとワーニングの表記が出ます。元のHPにも書かれていますが、コード署名はまだ行われていないようです。一旦開発をガシガシ進めて、余裕が出来たらコード署名もやるとは思います。今回はこのまま実行していきます。 インストールが完了したら実行しましょう。途中でダウンロードするファイルがありますが、不要であれば削除しても問題ありません。私はチェックを入れて特に問題なかったので。 起動するときと喋らせるときは時間がかかることがあります。この辺はPCの性能にもよりますので、人によっては数秒以上かかることもあるかと思います。 ライセンス情報に同意して始めましょう。内容を確認したほうが良いですが、著作権や商用、個人情報について書いてはないのでそのまま続けましょう! ポリシーは自由にしてもらって大丈夫です。私は基本的により良くなっていってほしいので許可することは多いです。ただ、拒否しても問題ありません。 音声合成 ダウンロードが完了したら試しに文字を打って実行してみましょう。PCによっては多少時間がかかるかもしれませんが、数秒で応えてくれます。デフォルトだとこんな感じですね。 右側の和側やテンポなどを変え、アクセントも少し変化させてみます。右側の喋る部分についてはプリセットで登録できますので、好みの話し方を模索すると良いと思います。こんな感じ。 音声の書き出しと読み込み 話し方を決めて話す内容を決めたら音声を書き出してみましょう!“音声書き出し"だと段落ごとに出力されますので、それが嫌な場合は"音声をつなげ書き出し"を行います。出力時の拡張子はwavファイルになります。 また、書いた内容をテキストファイルとして出力することもできます。逆に書いた内容がテキストファイルとして存在していれば読み込むことも可能です。 そしてプロジェクトを保存すればいつでも同じ話し方と話す内容で作業することができます。 それからモデルによってはスタイルがあります。このスタイルはアイコンをクリックすることで変更することができます。デフォルトだと6種類ですね。 設定などの変更について 後は設定もいろいろ変更できます。基本的にCPUでも動かせますがGPUでも動かすことができます。それから保存先です。ここを設定しておくと保存が楽になるのでやっておくとおすすめです。 もし、他の操作でわからない点や気になることがあればヘルプを見ることをおすすめします。ルビを振ったり、メモを残す方法などもありますので興味があれば一読すると良いと思います。 終わりに 他の音声モデルについてはこちらから確認することができます。ただ、今はあまり多くないのでここから選択するか、待つか、自分で作ってみるのも手だと思います。作るのは大変そうですが… 次はモデルを作ってAivis Speechに取り込むまでをやってみたいですね。ではでは。

2024年11月29日

pCloudがセールをやってたので購入してみたよ!

pCloud 3in1バンドルのレビュー pCloudがブラックフライデーセールをやっていたので購入してみました。以前から気になっていたのですが、このタイミングのセールがよさそうだったので待ってました。 購入したもの 今回買ったのは3in1バンドルですね。内容は以下 ストレージ5TB セキュリティ性が高いEncryption パスワード管理サービスのPass Premium pCloudのセール価格について 値段は599$、現在は154円/$なので大体9万2千円ですね。最初のコストが高いですが、99年使えるのでサブスク換算だとかなり安くなります。 その他の値段を見ると以下の金額。 1TBだと199$ 2TBだと279$ 10TBだと799$ 例えば1TBを買った場合、月26円ぐらいで1TBのストレージが使えます。もちろん写真以外にも動画、音楽、ドキュメントファイルなどなんでもよいですね。 注意してほしいのがこの会社が潰れないということが前提ですね。潰れない限りは日がたつことにどんどん安くなっていくイメージですね。 AWSやGoogle Cloud、iCloudは月間のサブスクなので、これらを使っているのであれば一考の余地ありという感じです。 実際に触ってみた感想 実際に使ってみた画面がこちらですね。「Automatic Upload」には自動でアップロードされたファイルがあります。こちらはwebで見た画面です。 アプリもありますので必要であればダウンロードしましょう。PC版モバイル版ありますのでファイルの同期をしてみます。 ちなみにPC版のアプリは画像のように各フォルダー別にバックアップをすることができます。 他のフォルダも同期から選択することができます。 CryptoフォルダはEncryptionサービスになります。見られたくないものや大事な書類を入れておくものに使ったりします。ただ、個人で使う場合は個人情報ぐらいしか思いつかないですね。プログラムならprivateでgit管理しそうですし… pCloud Pass Premiumについて もう一つPass Premiumというサービスを買いました。これはパスワードの管理ですね。こちらもWeb版アプリ版モバイル版で使うことができます。 ログインするとこんな感じです。色んなブラウザやパスワード管理ツールが出てきます。私はChromeを使ってるので実際にインポートしてみます。 Chromeのエクスポート方法 Chromeの場合は右上の縦三点リーダーから"設定" > “パスワードと自動入力” > “Googleパスワードマネージャー"を選択します。 パスワードマネージャー画面から"設定"を選び"パスワードのエクスポート"にある"ファイルをダウンロード"をクリックします。そうするとcsvファイルがダウンロードされます。 ファイルのインポート他 ダウンロード後はpCloud passからChromeを選び以下の画面にファイルをアップロードします。内容を確認して問題なければ"選択内容をインポート"をクリックします。 もし他のブラウザやパスワード管理ツールを追加したければ"追加"をクリックして同様の手順で設定すれば問題ありません。 ちなみにGoogle Driveやフォトのバックアップができますが、1アカウントだけみたいなので複数のアカウントに分けてる場合は別の方法が必要そうですね。 ざっくりpCloudはこんな感じですね。5TBもあるのである程度動画を入れても問題なさそうです。以前動画を作ったことがあるという話をしたのですが、それを全部突っ込んでチャンネル爆破でも楽しそうですね。 お得なキャンペーンをやってるらしい 最後に対象のサイトからpCloudの商品を買えばアマギフがもらえます。もちろん買う商品によって値段は変わりますが、1割弱戻ってくるのでお得です。 もしpCloudを購入したらエントリーしましょう。 姓名とメアドを記載したらエントリー完了です。ただ、調査がセール終了後になりますのでアマギフ送付が正月くらいになるみたいです。 最後に とは言えストレージはそんなに要らなければ買う必要はないと思います。強固なフォルダーもあまり使わなそうですし、パスワード管理は代用がいくらでもあるので。私は将来的にあると使えるかな?程度で買ったので興味とお金に余裕があれば試してみてください!ではでは。

2024年11月17日

簿記の勉強を暇なタイミングやる!世界でも使えそうかも?

簿記を始めたのはなぜか? 前回のブログでゲームに飽きてきたという話をしました。というわけで勉強をしようかと思います。 簿記に挑戦:コースについて プログラムの勉強もいいんですが、普段+副業でもやってるので変わった勉強をしたいなと思いましした。そこでこのサイトですね。アカウントを登録すると使えるようになります。 色んなコースがありますが、メインは簿記だと思います。問題集の解説もありますので、試験勉強だけでも使えると思います。他のコースは今のところ興味がわかないので無視します。 まずは簿記3級ですね。簿記2級を1つ見てみたんですが、簿記3級の知識を前提に話を進めていたので。 簿記に挑戦:教材の活用 それから動画だけでなく教材もあります。紙媒体ではなくpdfですが。コースを見ると左のタブに講義、右のタブに教材があります。ここからダウンロードできますので、欲しければダウンロードしてみてください。 さて、動画見て教材見て手を動かしながらやるのが勉強としては一番の近道だと思います。 進めていきながら時々忘れていることがあれば、立ち止まってなるべく思い出すまで考えて、どうしても出なければ復習するという感じでやるのがいいかなと思います。 ただ、私はITに従事する者です。これだけではわからないことがあった際に聞けないこともあるなと感じました。 NotebookLMを使ってサポート というわけでNotebookLMの出番です。実は最初Difyを使おうとしたのですが、15MBという制限がありましたので変更しました。勉強したいpdfを全てぶち込んでみましょう。 一旦概要と用語集を作ってみました。 作り方はシンプルでチャットに「教科書から概要を作成してください」や「教科書から用語集を作成してください」と入力します。 そうするとpdfを読み取って作成してくれます。それをメモに保存するという流れになります。作成されたチャットの下部に「メモに保存」があるのでそれをクリックすれば作成されます。 NotebookLMの活用法 大体概要や用語集を作れば困ることは少ないかと思いますが、動画内の説明でわからないことがあれば質問すると答えてくれると思います。あるいはこんな感じで質問の方法を出してくれることもありますので。 もう一つ有効活用としては類似問題の作成ですね。「問題集を見て似たような問題を3問作成してください。」と言えば3問類似問題を作成してくれます。一応「解答を作成して下さい」と言えばそちらも作成してくれます。 とは言え全て正確か?という言われるとわかりません。特に類似問題を作成した後の解答などは怪しいかもしれません。LLMを使うときは当たり前ですが、鵜呑みにはしないようにしましょう。時には教材を見直すことも必要なので。 Courseraでさらに深い学びを 今は空いた時間でやってるところなのでこの勉強をしていますが、仕事を辞めた直後ぐらいであればCourseraで勉強しようかと思います。こちらですね。 ここはほぼIT系の勉強になりますが、認定証ももらえますし、コースによっては海外大学の証明書ももらえます。もちろん有償ですが… ただ、コースの認定証だけなら7日間の無料トライアルがあります。この期間に1つぐらい取りたいなと思ったので空いた時間にやってみようと思います。ではでは。

2024年10月26日

llma-cpp-pythonを使って今更ローカルでLLMを動かしてみるよ!

llama-cpp-pythonのインストールとセットアップ 前回Github copilotをを使わず、vscodeでAIを動かしてコードを頼むようにしてみました。 そこでローカルでllama3.2:3bが動かせるなら他のモデルでもいけるのでは?ということが気になって調べて動かしてみました。 githubのライブラリはこちらになります。 というわけでまずはライブラリのインストール pip install llama-cpp-python こちらはcpu対応になります。もしエラーが出たら下のほうも試して見てください。私はvisual sutadioが入ってるので特に問題はありませんでした。 pip install llama-cpp-python \ --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu gpuを使いたい方はいろんなインストールパターンがあるので試して見てください。CUDAであればこんな感じ pip install llama-cpp-python \ --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cu121 ダウンロードしたモデルの紹介 ライブラリのインストールが完了したら今度はモデルをダウンロードしてきましょう。配置場所はどこでも構いません。 私は今回2つのモデルをダウンロードしてきました。 sakanaAI: https://huggingface.co/mmnga/SakanaAI-EvoLLM-JP-v1-7B-gguf gemma: https://huggingface.co/alfredplpl/gemma-2-2b-jpn-it-gguf llama-cpp-pythonを使ってコードでのモデル呼び出し インストールが完了したら実際にコードに書いていきます。一旦こんな感じ from llama_cpp import Llama prompt = "(12+50)*30/5-6*(38-19) この計算結果は何?" sakana_llm = Llama(model_path="./models/sakana/SakanaAI-EvoLLM-JP-v1-7B-q4_K_M.gguf") gemma_llm = Llama(model_path="./models/gemma/gemma-2-2b-jpn-it-Q4_K_M.gguf") sakana_response = sakana_llm.create_chat_completion( messages = [ { "role": "user", "content": prompt, } ] ) gemma_response = gemma_llm.create_chat_completion( messages = [ { "role": "user", "content": prompt, } ] ) print(sakana_response["choices"][0]["message"]["content"].strip()) print(gemma_response["choices"][0]["message"]["content"].strip()) llama-cpp-pythonを使った実行結果と考察 それからどのくらい時間がかかるか気になったので計測してみました。ちなみに私の環境ではこんな感じで時間がかかっています。 ...

2024年10月11日