乙Py先生のプログラミング教室
初学者のためのプログラミング学習サイト

プログラミング

法人化して
フリーランスになって1年
どんな感じだったのかを
まとめてみました。


解説動画はこちら



今回はフリーランスになって1年の
活動記録を書きました。

どんな仕事して
どれだけ稼げたのか・・・

結論から行くと
あんまし儲からなかったです。

正直正社員で働いた方が
気楽ですね。

労働時間の自由が効く代わりに
安定というものを失った感じです。

自分で仕事探すのが超大変!!!!

それを楽に出来る人達は
めっちゃ儲かってるんでしょうねー

詳細は動画を見ていただければと思います。

それでは。


今回はマイクロソフトの音声合成ソフトである
EdgeTTSを試してみました。

解説動画はこちら



Edge-TTSとは

Microsoftの音声合成ライブラリのことで
TTSとは(Text-to-Speech)の略です。

最新のAI技術が用いられているので
発話の精度が向上していて

無料で使える割に精度は良さそうなので
音声合成試したい方には丁度良いライブラリです。


Google Colabでのインストール方法

次のコマンドを実行するだけです。
!pip install edge-tts


声のリスト一覧を見る
!edge-tts --list-voices




日本語対応のvoice

日本語に対応しているのは
次の2種類の音声があります。

ja-JP-KeitaNeural : 男性の声
ja-JP-NanamiNeural : 女性の声




EdgeTTSの使い方

設定を行い、音声ファイルを作成するだけです。

・設定可能な項目
text : 文章
voice : 声(声優)
rate : 読み上げのスピード( + - でパーセンテージを指定)
name : 出力する音声ファイル名

サンプルコードを実行すると
ファイル置き場に出力されます。

サンプルコードではそのファイルを再生しています。


サンプルコード

英文の読み上げ
import edge_tts

TEXT = "My son is doing very well. I'm very energetic, especially in the morning."
VOICE = "en-GB-SoniaNeural"
OUTPUT_FILE = "test2.mp3"

communicate = edge_tts.Communicate(TEXT, VOICE)
await communicate.save(OUTPUT_FILE)

from IPython.display import Audio
Audio("test2.mp3")

日本語の読み上げ(女性)
import edge_tts

TEXT = """
太くて固い、立派な松茸です。
エリンギが如く、たくましくそそり立っています。
こんなに素晴らしいものは初めてです。
今夜は美味しく頂きます。
""".replace("\n"," ")

VOICE = "ja-JP-NanamiNeural"
RATE = "+20%"
OUTPUT_FILE = "test3.mp3"

communicate = edge_tts.Communicate(TEXT, VOICE,rate=RATE)
await communicate.save(OUTPUT_FILE)

from IPython.display import Audio
Audio(OUTPUT_FILE)


日本語の読み上げ(男性)
import edge_tts

TEXT = """
うわー、すごい綺麗なアワビです。
ねっとりと艶やかで、ほんのり湿っています。
真ん中を触ってみると、クネクネ動きますね。
こいつは大漁だーー。
""".replace("\n"," ")

VOICE = "ja-JP-KeitaNeural"
RATE = "-5%"
OUTPUT_FILE = "test4.mp3"

communicate = edge_tts.Communicate(TEXT, VOICE,rate=RATE)
await communicate.save(OUTPUT_FILE)

from IPython.display import Audio
Audio(OUTPUT_FILE)


まとめ

音声合成の精度も良く
音声ファイルの作成スピードも
かなり速いです。

無料で使える分には
過去一の性能かもしれません。

簡単な文章を音声ファイルにするニーズには
十分に答えられると思います。

昔紹介したWisperと組み合わせたら
文章化と音声化が両方捗ります

色々遊んでみて下さいね
それでは。

今回は今話題の
AI搭載エディター
Cursorについてです。


解説動画はこちら



Cursorとは

CursorはChatGPTの機能を搭載した
エディター(IDE)です。

VSCodeを模して作られているので
VSCodeと同等の機能を有しています。

それに加えてChatGPTの持つ
コード編集やデバッグ
コード生成の機能が加わったエディターになっています。


Cursorの料金

ダウンロード自体は無料です。

chat-gpt4の機能制限が存在し
無料版では月に50回までになっているようです。

有償版は
PRO:20ドル
BUSINESS:月40ドル

PRO版でもchat-gpt4の低速は制限なし
高速版の制限があるため
この辺りを気にする方は
普通にchat-gptの契約をした方が
良いのかもしれません。


Cursorのインストール

インストールはCursorのサイトから
「download」をクリックして
ファイルを実行するだけです。



Cursorの使い方

全体像はこんな感じです。
cursor1

VSCodeの画面とほぼ同じで、機能なども
ほぼ同等です。
画面の右側に標準でチャットフォームが付きます。

日本語化のやり方もVSCodeと同じようです。

主な使い方は
コード上で「cmd + k」で
生成フォームを呼び出せます。

aihen

ここに、日本語でプロンプトを入力してあげると
コード生成を行う事ができます。


画面の右側には普通にチャットのフォームが有るので
そこからchat-gptにプロンプトを投げる事ができます。
aichat

チャットフォームからの質問では
Cursorの操作方法などの一般的な質問も対応しているので
操作方法が分からない場合はチャットで聞くのが良いでしょう。


VSCode同様にターミナルが有り
コード実行でエラーが出た際は
「Debug with AI」をクリックすると
デバッグしてくれます。

aidebug

ただし、この回答部分はまだ英語のみで
日本語対応はされていないかもしれません。

動画ではコード生成などを試していますので
そちらを参考にしてみて下さい。


本日はChatGPTの機能を搭載して
AIエディター Cursorについてでした。

興味がある方は是非ダウンロードしてみて下さい。
それでは

今回は
まだ活用できていない人のための
大規模言語モデルについてです


解説動画はこちら



最近流行の大規模言語モデルについての概要と
コード生成での活用方法についてです


大規模言語モデルとは

英:large language model
日:大規模言語モデル

多数のパラメータを持つ
ニューラルネットワークで構成される
コンピュータ言語モデルのこと

自然言語処理分野のさまざまなタスクで
優れた性能を発揮し 世の中の一般知識や
訓練中の事実を記憶することができるため
さまざまな自然言語タスクに応用することができる
というものです。

LLMの作成には大量のテキストデータで事前訓練が行われ
高品質な言語データは数兆語に及ぶと推定されています


現在の主流は
・巨大テキストデータセットを用いた、事前学習(Pre-Training)
・性能を最適化する、微調整(Fine-Tuning)
の2段階のプロセスで構成されています。

自社でLLMを活用する際は学習データを用意して
ファインチューニングを行い
業務に最適化させる必要があります。


大規模言語モデル(LLM)の種類

GoogleのBERTやLaMDA
ChatGPTに用いられているGPT-4
新興系だとAnthropicのClaudeなどがあります

その他、2023年現在では
様々な言語モデルが登場しています。



大規模言語モデル(LLM)の活用方法 

LLMの活用は
指示を送る入力文(プロンプト)の
エンジニアリング次第です

ここからはコード生成における
プロンプトエンジニアリングの
ベストプラクティスをお送りします

・ベストプラクティス

「命令文」「制約条件」「入力文」の
3構成に分けそれぞれで詳細な設定を行う

ここからは詳細なプロンプトの書き方を
説明します。

1.プロンプトの最初に指示を書く

役割や目的を明示しておくと良いでしょう

例:
あなたはFlutterで開発をしているプログラマーです
以下の条件でコードを修正してください

2.区切り文字を使用する

例:
# 命令書
・・・・・・・・

# 条件
・・・・・・・・


3.前提条件(制約)を指定する

使用できるライブラリや変数名を
細かく指定するとうまく行く確率が上がります

例:
#条件
・bodyにリストビューを追加する
・リスト表示用のデータはxxxを使用する
・・・・



4.出力形式を追加する

XXXメソッドの部分を直す等
細かく指定するほど出力される
コードの精度も上がるようです

例:
#条件
・XXメソッドの戻り値を文字列に変更する
・・・・

5.コードを入力する

コードを修正してもらいたい場合は
修正対象のコードをそのまま入力します

例:
#以下はflutterのコードです
・・・・
・・・・・

コピペしましょう



LLMを活用するための便利なツール

・OpenAI:ChatGPT
・Bing:AIチャット
・Google:Bard
・Anthropic:Claude

など、現在では使用できるLLMサービスが複数あります
一個一個使用するのは面倒くさかったりもするので
一気にまとめてプロンプトを投げられる
ツールが有ります。

「ChatHub」

Google Chromeのプラグインになるので
Google webstoreなどからインストール出来ます。

使用感は動画の方を見ていただければと思います。


今回はLLMとその活用方法について
お伝えしました。

コード作成がめちゃくちゃ捗るので
活用しない手は無いですね

是非色々活用してみて下さい
それでは。

今回はGoogleColabの
うれしいアップデート情報です

解説動画はこちら


 
Google Colabのアップデート


Google Colabに
うれしいアップデートが発表されました
それが「シークレット機能」の追加です

Google ColabでSecretsが
管理できるようになりました

シークレット(Secrets)というのは
API キーやパスワードなど機密情報の断片のことで
外部に公開するとまずいことになる
環境変数などで指定する文字列のことです


今までは外部にコード共有する際などは
これらの文字列を気にする必要が有ったのですが
これからはColabの機能で管理できるので
コード側を書き換える必要が無くなります

ということで
早速使い方を見ていきましょう



Secrets機能の使い方

画面左側の「鍵」マークから
「Secrets」管理画面に移行できます
aaa1




画面上で新しい情報として
追加していく事ができます

スクリーンショット 2023-11-04 16.08.39


「目」のマークをクリックすると
値が見れる様になります



コード側でこの値を使用する際は
「google.colab」の「userdata」を用いて
読み込みしたい環境変数の文字列を指定します

from google.colab import userdata

api_key = userdata.get('API_KEY')

openaiのAPIキーなど
コード上で指定していたものは
シークレット機能側に入力しておけば
コード側はそれを読み取るだけで良いので
安全かつ楽になりました!!!


ますます便利になる「Google Colab」
生成AI系のコード試しが捗りますね


今回はここまでです
それでは

このページのトップヘ