ChatGPT APIに10ドル課金してみた
tag: chatgpt
ChatGPTのAPI契約はしてたんだけど、人力で質問文を書いて時々 gpt-3.5-turbo API を投げる程度ではAPI課金額は $0 のままだった。
API課金実績が少なくとも $1 (後に $0.5 に緩和) は無いと、API呼び出し時のモデル名に gpt-4 を指定できない。 ( https://help.openai.com/en/articles/7102672-how-can-i-access-gpt-4 )
gpt-3.5-turbo API の値下げ発表が相次ぎ、もはやウチからの gpt-4 API の呼び出しは絶望と思われた...。
がしかし、 https://platform.openai.com/account/billing/overview Billing settings の所に Buy Credits ボタンができて、APIを無理に呼ばなくても課金できるようになった。
上のボタンからとりあえず $10 ほど課金。
1日ほど放置した後に実験開始。 gpt-4 API 呼び出しに成功。やったぜ。
これから時々gpt-4 APIを使って料金がどうなるか試してみる予定。
gpt-3.5-turboでは課金まで行かなかったがgpt-4なら料金も高いし実用的だし課金まで届くだろう。
Windows Terminal の 設定 「見分けがつかないテキストの明るさを自動的に調整する」 で、黒背景に暗い青字とか暗い赤字のテキストカラーが調整されて見やすくなる
tag: windows-terminal, mintty, freebsd14, xterm-256color
Windows Terminal の 設定 > PwerShell > 外観 > 見分けがつかないテキストの明るさを自動的に調整する を ON にすると、黒背景に暗い青字とか暗い赤字のテキストカラーが調整されて見やすくなる。 ハイコントラスト寄りに調整するようで、これはいい機能だ。 TERM=xterm-256color設定で使っている人は是非。
ちなみに、MSYS2 (Git for Windowsにもついてくる) の mintty.exe は、デフォルトでこの手の機能がついているのか、カラーテキスト(ls --colorとか)が最初から見やすい。
余談だが、FreeBSD 14.0-RELEASE では terminfo の設定が変わったらしく、 TERM=xterm-256color 設定にて mintty / windows terminal 経由でターミナルを表示した場合でも emacs 上で表示位置がズレて違うところを編集することは無くなったっぽい。 こちらも地味に助かる。
FreeBSD 14.0-RELEASE 出ていたのでvagrant経由でインストール
tag: freebsd14, freebsd
環境を以下に示す。
今回のVagrantfileはちょっと変なものになった。
config.ssh.insert_key = false 設定は接続に使用するSSHキーがboxイメージに内蔵されているもの(=全世界で共通)になるのであまりよろしくないことに注意。
config.vm.synced_folder の rsync オプションが private key 系のエラーで動作しなくなったので仕方なく指定。(そのうち vagrant に修正が入るはず)
以下にVagrantfileを示す。
# coding: utf-8 # Vagrant.configure("2") do |config| config.vm.box = "freebsd/FreeBSD-14.0-RELEASE" config.vm.box_version = "2023.11.10" config.vm.boot_timeout = 800 # Disable automatic box update checking. If you disable this, then # boxes will only be checked for updates when the user runs # `vagrant box outdated`. This is not recommended. config.vm.box_check_update = false # https://developer.hashicorp.com/vagrant/docs/synced-folders/rsync # 2023/11/22 vagrant v2.4.0 にて rsync は動作しない。 config.ssh.insert_key = false を入れて動かした。。 config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: [ ".git/" ] # デフォルトの指定は以下と同じ。 # config.vm.synced_folder ".", "/vagrant" # https://developer.hashicorp.com/vagrant/docs/vagrantfile/ssh_settings config.ssh.shell = "sh" config.ssh.insert_key = false config.ssh.forward_x11 = true config.ssh.keep_alive = true # master node config.vm.define "freebsd65" do |master1| master1.vm.hostname = "freebsd65.area54.local" master1.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--memory", "6000"] vb.customize ["modifyvm", :id, "--cpus", "2"] # add storage /dev/ada1 file_to_disk = "../vagranthdd/65-freebsd-ada1.vdi" unless File.exist?(file_to_disk) vb.customize ['createhd', '--filename', file_to_disk, '--size', 100 * 1024, '--format', 'VDI'] # 100GB end vb.customize ['storageattach', :id, '--storagectl', 'IDE Controller', '--port', 0, '--device', 1, '--type', 'hdd', '--medium', file_to_disk] # add storage /dev/ada2 file_to_disk = "../vagranthdd/65-freebsd-ada2.vdi" unless File.exist?(file_to_disk) vb.customize ['createhd', '--filename', file_to_disk, '--size', 100 * 1024, '--format', 'VDI'] # 100GB end vb.customize ['storageattach', :id, '--storagectl', 'IDE Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', file_to_disk] end # PROXY設定を環境変数PROXY_SERV_PORT,PROXY_USER,PROXY_PASSから読み込んでVM側に持ち込む # https://qiita.com/hakomikan/items/860bb960699889849933 Vagrantfile をコミットするために - Qiita master1.vm.provision "export env", type: "shell", run: "always", privileged: true, inline: <<-SHELL mkdir -p /etc/profile.d echo "# vagrant script for every boot" > /etc/profile.d/vagrant.sh echo export VBOX_HOST_NAME=freebsd65 >> /etc/profile.d/vagrant.sh echo export VBOX_FIXED_IP_ADDR=192.168.54.65 >> /etc/profile.d/vagrant.sh echo export PROXY_SERV_PORT=#{ENV['PROXY_SERV_PORT']} >> /etc/profile.d/vagrant.sh echo export PROXY_USER=#{ENV['PROXY_USER']} >> /etc/profile.d/vagrant.sh echo export PROXY_PASS=#{ENV['PROXY_PASS']} >> /etc/profile.d/vagrant.sh echo export PROXY_SKIP=#{ENV['PROXY_SKIP']} >> /etc/profile.d/vagrant.sh echo export http_proxy=#{ENV['http_proxy']} >> /etc/profile.d/vagrant.sh echo export https_proxy=#{ENV['https_proxy']} >> /etc/profile.d/vagrant.sh echo export no_proxy=#{ENV['no_proxy']} >> /etc/profile.d/vagrant.sh echo "export INSECURE_REGISTRY=\\"#{ENV['INSECURE_REGISTRY']}\\"" >> /etc/profile.d/vagrant.sh echo export FROM_ORESRV=#{ENV['FROM_ORESRV']} >> /etc/profile.d/vagrant.sh echo export FROM_OREAWS=#{ENV['FROM_OREAWS']} >> /etc/profile.d/vagrant.sh echo "export ADDITIONAL_ETC_HOSTS_1=\\"#{ENV['ADDITIONAL_ETC_HOSTS_1']}\\"" >> /etc/profile.d/vagrant.sh echo "export ADDITIONAL_ETC_HOSTS_2=\\"#{ENV['ADDITIONAL_ETC_HOSTS_2']}\\"" >> /etc/profile.d/vagrant.sh echo "export ADDITIONAL_ETC_HOSTS_3=\\"#{ENV['ADDITIONAL_ETC_HOSTS_3']}\\"" >> /etc/profile.d/vagrant.sh chmod +x /etc/profile.d/vagrant.sh SHELL # shell provisioner master1.vm.provision "shell", path: "setupscripts.sh" end end
setupscripts.shの内容は前回と同じ。
ラグナクリムゾン
tag: anime
名作的な作品ではないけど、敵側も人類側も登場人物がみんなイカレてる人しかいない。
超異能バトルもあーもうなんかいろいろめちゃくちゃだけど、それでいて面白い。
原作はマンガとのこと。
運動しても痩せないのはなぜか_代謝の最新科学が示すそれでも運動すべき理由
tag: 読書
ジャンルとしてはダイエット本ではなくて最新科学紹介本かな?
この本は全編にわたって論文&エビデンスでぶん殴ってくるストロングスタイルを貫いていて大草原。
クレブス回路(電子伝達系)の解説を始めた時には「おいおい。。。もう読ませる気ないだろ。。。」と変な笑いが出た。
個人的にはこーゆー本好きだけど。
「人間の場合、かなり広範な状況において(長期的に見れば)1日の消費カロリーが一定になるように脳神経系と臓器が超頑張って調整している」という知見が目新しい所。
たとえば運動でカロリーを消費した場合、免疫用のエネルギーを減らしたり生殖用のエネルギーを減らしたり、なんとかやりくりして1日あたりのカロリー消費が一定になるようにする戦略を取るように進化しているらしい。
運動しても長期的に見れば消費カロリーは増えない(!)。運動によるダイエットが不可能な所以である。
逆に先進国の都市部の人間のように運動しなさすぎると、人体は免疫用のエネルギーを増やしたり生殖用のエネルギー(性ホルモン)を増やしたりして1日の消費カロリーを一定にしようとするので、不必要な炎症が起きたり腫瘍ができたりとあまりよろしくないらしい。
アフリカの狩猟採集民族(農耕や牧畜は一切しない)を調査した結果、1日に5時間程度歩いている(そのうち1時間は走っている)状態だった。 人間はこの生活に最適化するように200万年かけて進化したのではないか?というのが仮説。 (なお人間だけカロリー戦略が異なるとのこと。近縁の類人猿とも人間のカロリー戦略は異なっているらしい)
というわけで、減量には役立たないけど健康には役立つので運動しなさいよ、というのが本書のタイトルに書かれている。
ダイエット方法としては、必要以上に食うのをヤメロ、とのこと。
淡白な味で、脳が大好きな糖類、塩、油を含まない食物(例えば味なし茹でジャガイモとか、焼いただけの肉とか魚とか、ドレッシングなしの野菜とか、そのまんまの果物)ならば、人体は非常に正確に満腹を計測できるので、そういうものだけ食ってれば食べ過ぎることは無い、らしい。
逆にクッキーとかポテトチップスなどは砂糖、塩、油の配合がベストすぎるので脳がやられて食べ過ぎてしまうとのこと。
自宅や職場の机に買い置きのキャンディーとかクッキーとかポテトチップスなどを置いておくのは誰のためにもならないと言い切っている。
ビュッフェ形式のように品数が多い場合も脳の満腹判定がダメになるので禁止技らしい。
この発想はなかった iPhoneのMag Safe対応 ウォーターボトル(保温機能あり)
水筒の取っ手にMag Safe対応のマグネットを付けたのか。
水が入っていれば重量増加で安定性プラスと。
スマホ三脚、スマホスタンド、水筒を持ち歩く人ならいいかもしれん。
葬送のフリーレン
tag: anime
先週のリーニエ戦といい、今週のアウラ戦といい、バッチリ決まってて好き。
アニメ版も凄く良くできてるけど、原作漫画版の方も面白い。
p.s.
OP曲のMVが埋もれているのでリンクを追加。
p.p.s.
フリーレン世界の人類ってなんで生き残れているのかマジで謎。
魔王を倒したパーティーのメンバーもそうだったけど、 今のフリーレンパーティーのメンバーは全員が魔族に襲撃されて全滅した村の生き残りという状況。 ハードすぎる。
ARMORED CORE VI ver 1.04.1 中量2脚
tag: game, armored-core-6
HALシリーズを使い始めたのだけど、軽量機体とは雰囲気が違う。
軽量機体(シュナイダーとかエルカノ、ブースト時速度370を超える機体)だと横に逃げているだけであまり被弾しない。
中量機体(ブースト時速度280)の場合、横に逃げているだけだと結構被弾してスタッガー状態にされるので自分でタイミング良くクイックブーストを起動して真面目に回避しないといけないようだ。
ふーむ。難易度が高いな。。。
ローカルPCでrinna/youri-7b-chat-gptqを動かしてみた
tag: rinna, llm, youri
今回はYouri 7Bを試してみる。 動かし方は以下のサイトを参照。
ウチのGPUはGRAM 12GBなので4Bit量子化されたデータの方を使う。
Windowsの場合、LLMモデルの量子化に使う bitsandbytes ライブラリは専用のDLLを入手しないと動作しない。
しかし、auto-gptq というライブラリがあり、Windowsの場合は、以下のコマンドを実行すると実行に必要なライブラリがインストールされるらしい。(ただし、現在の所、対応する CUDA のバージョンは 11.8 のみ。)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
AutoGPTQについては以下を参照。
モデルのロード時間は6秒と高速で良い感じ。
チャットLLM用の良い質疑応答の例文どっかに落ちてないかな。 質問が思い浮かばないw
以下実際の質疑応答。
設定: 次の質問に答えてください。 ユーザー: HTTPのヘッダに記載するCache-Control: no-storeについて教えてください。 システム: これは、ウェブサーバーからクライアントに送信されるHTTPヘッダで、クライアントがウェブサーバーから送信されたコンテンツをキャッシュしないようにするためのものです。
7Bモデルくらいになると結構物知りだなーという印象。
ただ回答が精神崩壊するパターンも時々みられるのでこんなモンか?という気もする。
pythonのこともちょっとだけ知ってる感じが微笑ましいw (=まともなコードは出てこないけどハルシネーションで頑張っている雰囲気だけ出ているの意)
p.s.
モデルのロード時間が高速だとローカルPCで動作させている時には助かる。
ロード時間が遅いとモデルをロードしたままチャット待機させておきたくなるが、 GRAMを大量に消費したままになるのでアーマドコア6を起動できなくなるw
ローカルPCでrinna 3.6B を動かしてみた
tag: rinna, llm
インストール手順はInternet Watchのものを使用。ちょうど手元のCUDAのバージョンが一致していたので。
CPUだと回答まで60秒、GeForce RTX 3060 (12GB) CUDA 11.8だと回答まで 0.9秒。
モデルのロード時間は以下の書き方だと132秒と結構時間がかかる。
model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype=torch.float16)
ちょっと書き換えて以下のようにするとモデルのロード時間は30秒になった。
model = AutoModelForCausalLM.from_pretrained( model_name) if torch.cuda.is_available(): dtype = torch.float16 model = model.to("cuda", dtype)
さすがにChatGPT 3.5 turboと比較すると知識量が違うので教えて用途には利用しにくいかな。
p.s.
rinnaモデルをローカルPCでファインチューニングしている人もいるようだ。
p.p.s.
性能あがってるけどモデルサイズも大きくなっていってるな。。
p.p.p.s.
Rinna-4B も GeForce RTX 3060 (12GB) で動いた。 Rinna-3.6Bと同じく model.to("cuda", torch.float16)は行わないとGRAMから溢れていたけど。
ロード時の量子化ビット=8指定(load_in_8bit=True)はWindows版のbitsandbytesではDLLが無くて動作しない様子。
OpenAI DevDay 11/07
tag: openai, chatgpt
久しぶりに OpenAI ChatGPT APIを見てみたら、functions , function_call が deprecated になっていた。
代わりに tools, tool_choice を使えとのこと。
変更点は functions 指定の場合AI側からの応答JSONに1個しか関数呼び出し指定できないのに対し、 tools指定の場合は応答JSONの構造が変わってAI側から配列指定で複数の関数呼び出しを1回の応答で同時に指定できるようになった。
p.s.
「Function Calling」に、単一メッセージから複数のFunction (「車の窓を開けてエアコンをオフにする」など) を呼び出す機能などが追加されました。
上の話はchat API呼び出し時にtools指定で呼び出し可能関数の一覧を渡した場合ということかな。
p.p.s.
APIのお値段がさらにお安くなった模様。
ウチでは気が向いた時に人力で質問文を作ってAPI呼び出しを発行しているんだけど、未だに課金実績は $0.0 のまま。
月に0.5$の課金実績が無いとモデルにgpt-4が使用できないという制限があってウチではAPIだと gpt-3.5-turbo しか使えない。
ここまでお安くなると入力データが人力じゃAPI課金実績まで届かねぇなコレ。
ARMORED CORE VI ver 1.04 3周目完了
tag: game, armored-core-6
MA-J-200 RANSETSU-RF x 2 , BML-G2/PO5MLT-10 x 2 機体はアーキバス量産型セット(腕だけシュナイダーNACHTREIHER/46E) , FCS:IB-CO3F:WLT 001 でクリア。
3周目ミッションは特殊なのが多かった。
輸送ヘリの大群ミッションでは6連プラズマミサイルが特効。マジで神。(というか通常ミサイルの効果が無さすぎる。) 空戦ミッションなのでブースターも上昇力重視、ジェネレータもEN容量重視、FCSも遠距離重視、手も遠距離重視ハンドミサイルと機体構成全部変更。 6連プラズマミサイルは範囲鎮圧では神なので今後も使用していきたい。
ザイレムの迷路ミッションはタイムアタック迷路暗記モノ。 最後の部屋はどうせ反対側にマーカーがでるので先にアサルトブーストで向っておく手を使わないと時間切れになる。 ダンジョン攻略系だとありそうな謎解きトラップだけどアーマードコアで出すのはなんか違う気が。
結局重量2脚系は手を出さなかったなー。 HALシリーズとかALLMINDシリーズとか重量系で強そうなんだけど敵機として出てくるときはやたら高速に見えるのに自分が操作すると遅くて困る。 この手の機体はアサルトブーストで動くのが基本なんだろうか。
ARMORED CORE VI ver 1.04 2周目完了
tag: game, armored-core-6
2周目は3章あたりでOS TUNING用のCHIPが全部揃う。攻撃も防御も15%くらい強くなるのでだいぶ楽になる。
LR-037 HARRIS x 2 , BML-G2/PO5MLT-10 , BML-G2/PO3MLT-06 , 機体はアーキバス量産型セット , FCS:IB-CO3F:WLT 001 でクリア。
HARRIS x 2 構成 + 10連ミサイル x 2 構成は火力があって良いのだけど、重いので軽量機体には載らないのが問題。 今回片方が6連ミサイルになっているのも重量のため。 (追記。アーキバス量産セットでも腕だけアーキバス改良型にすれば10連ミサイルx2が載る。)
エルカノセットは軽量機体だけどHARRIS x 2 + 10連ミサイル x 2 がなぜか載る(ちょっと重量オーバーするけど)。 でも防御力が紙なので一発良いのをもらうと沈むw ある程度の被弾が前提となる敵ACたくさんミッションだと苦しい。
ARMORED CORE VI ver 1.04 5章
tag: game, armored-core-6
5章まできた。これは選びにくい選択ミッションがあってつらい。
そうこうしている間に1周目クリア。
高難易度ゲームっぽいから途中で投げるだろうと思っていたけど一応最後までたどり着いた。
ver 1.02 で難易度調整が入ってボスが弱体化され序盤武器が強化されたのが大きかったかも(変更前は知らんけど)。
ミッション途中にチェックポイントありそこからリスタートした場合は武器もバリアも全回復なので親切心あふれるゲームだった。
(2周目の追加ミッションでは途中のチェックポイントが無いので、本来は最初からやり直す死にながら覚える設計のゲームだった様子)
序盤武器が強化されたためほぼ最初から最後まで MA-J-200 RANSETSU-RF x 2 , 4連ミサイル→6連ミサイル , 10連ミサイル , 機体はシュナイダーのNACHTREIHERセット , FCS-G2/PO5 構成で中距離逃げ撃ちスタイルで進行。
軽量機体で飛び回っているのは楽しかったけど、NACHTREIHERセットは機体自体がEN消費する関係で派手な重たい武装とかEN系武器が使えなかったのが心残りか。
軽量機体といえばアーキバスセットも軽量の部類なので2週目はそちらを使うかな。
OpenAI ChatGPT API課金が $0 のままなのだが
自作 python から ChatGPT API を時々呼び出しているのだが、質問文の作成は人力、回答もらったら終わりみたいな使い方(過去の会話履歴を送信して Chain of Thought を使うまでもない1問1答型の使い方)してるとAPI課金額が毎月 $0 なんだよな。
何が困るかっていうと API の課金額が $1 に達して実際に引き落とししたことがないと GPT-4 model を API から利用できないこと。
ChatGPT の Web 版も Plus 契約してるんだけど、時々人力で質問して回答もらって終わりみたいなしょぼい使い方をしているだけでは元を取れていない感じはある。
うーむ。
もっとマシな活用方法を考えないとな。
ARMORED CORE VI ver 1.04
tag: game, armored-core-6
4章。どっちを倒すのかルート分岐で悩んだが戦闘難易度が低い方を選択。
敵ACが来たので飛び出していったら「ちっとも伏撃になってねぇ!」と怒られたw