名古屋出身ソフトウェアエンジニアのブログ

カテゴリ: メモ

1 / 2 ページ

.NET (C#) で複数オブジェクトをストリームに JSON シリアライズ

.NET (C#) で複数オブジェクトをストリームに JSON シリアライズ
BinaryFormatter が将来的に .NET から削除されるようです(つい最近まで知らなかった勢)。 Python の pickle 同様、低レイヤ API としてあくまでリスクがあっても使えるようにしてあるし、これからもそうであろうと思っていたので驚きました。 …

ELYZA Japanese LLaMA 2 13B を WEB デプロイ

ELYZA Japanese LLaMA 2 13B を WEB デプロイ
ELYZA Japanese LLaMA 2 の 13B モデルがリリースされたのでお試しです。量子化済みモデルの中から fast-instruct-q5_K_M を選びました。 7B を扱った先回記事とだいたい同じ内容を Ubuntu で行っています。 Llama.cpp の Python バインディング (CPU) である llama-cpp-python は OpenAI 互換の API サーバーを内蔵しているので、ここに Chatbot UI (WEB フロントエンド) を接続することで、ChatGPT サービスのように WEB から ELYZA Japanese LLaMa 2 を使うことができます1。 …

xargs コマンドを使用した複数プロセスによる並列処理

大量のファイルを HTTP でダウンロードするときや、複数のタスクを並列に実行したいとき、プログラム自体を並列に書き直すのは手間がかかります。そこで、便利なのがシェルの xargs コマンドです。 GNU 版 xargs を使えば並列処理をお手軽に実現できます。 …

ELYZA Japanese LLaMA 2 (CPU) を Chatbot UI から遊ぶ

ELYZA Japanese LLaMA 2 (CPU) を Chatbot UI から遊ぶ
先回記事の続きです。前回紹介した Elyza の日本語言語モデル ELYZA Japanese LLaMa 2 を Chatbot UI から使えるようにしてみました。 Llama.cpp の Python バインディングである llama-cpp-python は OpenAI 互換の API サーバーを内蔵しているので、ここに Chatbot UI を接続することで、ChatGPT のように WEB から ELYZA Japanese LLaMa 2 を使うことができます1。 …

pip-licenses で Python プロジェクトの OSS ライセンスをまとめて確認

OSS を活用したクラウドサービス開発では、使用する OSS のライセンス管理が重要です。中でも、クラウド提供を頒布行為とみなす AGPL ライセンスの OSS が混入すると法律的な問題に発展する可能性があるため、これを確実に避ける必要があります。 今回は Python 開発において、ライセンス管理を助けてくれるツール pip-licenses について具体的な使用方法を紹介します。 …

systemd を使用してログディレクトリ (/var/log/**) を自動生成する方法

systemd のサービス設定には RuntimeDirectory という、/run 以下にプログラム実行用のディレクトリを自動的に作成してくれる素晴らしい項目があります。 これの /var/log 版はないものかと思っていたところ、LogsDirectory というドンピシャなものが存在しました。私と同じことを思っていた方もいるかもしれませんし、インターネット上であまり情報が転がってなかったので、今回はこれを紹介します。 …

Unity でエディター拡張の設定をソースコードからオーバーライドする方法

Unity でエディター拡張パッケージを作成していて、パッケージ利用者がソースコードから設定(定数)を変更できる仕組みを考案しました。partial クラスを用いて実現しています。 純粋な C# スクリプトのみで動作するので、設定ファイルを読み込むロジック作成が不要になります。 Unity 以外でも、使い所はないかもしれないですが応用可能です。 …

Safari なら要素のスクリーンショットを背景透過で撮れる

Safari なら要素のスクリーンショットを背景透過で撮れる
HTML/CSS で作成したデザインをパーツごとにペイントソフトに持っていき画像編集したいという状況がありました。最近のブラウザーは要素ごとのスクリーンショット撮影機能があり、該当領域だけを正確に画像化できます。しかし、上位ノードの要素(背景)を含めずに、関係ない部分を透過で撮影する方法が分かりませんでした。 この場合、Safari を使うと、簡単に要素のスクリーンショットを背景透過で撮れます。 …