サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
2024年ランキング
note.com/masuidrive
ちょっと出遅れたけど、サイバーエージェントが出したGPT-NeoXベースのLLM、OpenCALM-7BをGoogle Colab上でLoRA使ってFine tuningをしてみました。 とりあえず対話を試したい人masuidrive/open-calm-instruct-lora-20230525-r4-alpha16-batch32-epoch1 に1 epoch回したLoRAを置いておきます。 Google Colabで試したい人はV100やA100のハイメモリで動かしてください。OpenCALM-7Bのshardが10GB単位なため、12GBの標準メモリでは動きません。transformersのloaderがもう少し賢ければ、T4の標準メモリでも動くと思うんだけど・・・ なぜFine tuningをするのかOpenCALM-7Bは基礎モデルなので日本語やWikiPediaの内容など
Faissを使ったFAQ検索システムの構築Facebookが開発した効率的な近似最近傍検索ライブラリFaissを使用することで、FAQ検索システムを構築することができます。 まずは、SQLiteデータベースを準備し、FAQの本文とそのIDを保存します。次に、sentence-transformersを使用して各FAQの本文の埋め込みベクトルを計算し、そのベクトルをFaissインデックスに追加します。新しいクエリが入力されたときは、sentence-transformersを使用してクエリの埋め込みベクトルを計算し、Faissインデックスを使用して、クエリの埋め込みベクトルに最も類似したFAQの埋め込みベクトルを検索します。 検索結果は、FAQのIDのリストとして返され、最後に返されたIDを使用して、SQLiteデータベースから関連するFAQの本文を取得し、検索結果としてユーザーに表示されま
Slackって読むの大変ですよね。っていうかもうみんな追いかけるの無理でメンションしか読んでないですよね? でも、全体感は把握しておきたい。そんな人のために昨日発表されたChatGPT APIを使って、SlackのチャンネルをGPTが読んで短くまとめてくれるスクリプトを作りました。 OpenAIへの登録(要課金)とGitHub Actions(要課金)だけで、朝早くに昨日のSlackのPublic channelの内容をチャンネルごとに要約して投稿してくれます。 Summaryチャンネルに昨日の要約が投稿されるかなりの精度で要約してくれるので、普段は目を通さないチャンネルでも何が話されているのか把握ができてめちゃ便利です。 このスクリプトで既知の課題としては、1チャンネル当たりの発言が4000tokenを超えるとコケます。分割する部分は書いてないので。Pull Requestをお待ちしてま
よくある2ペインのレイアウト用コンポーネントを作りつつ、Web Componentsの仕組みを理解する Web Componentsを一言で説明すると「HTML/CSSが独立したカスタムタグを作れる仕組み」です。理解するには、まずは素のJavascriptだけでよくある部品を作ってみることが一番だと思います。 多くのサンプルではボタンやアイコンなどの部品を作りますが、今回はflexboxを使ったレイアウト定義のコンポーネントを作ってみます。この部分にはちょっとしたハマりどころがあるのでちょうど良い練習になります。 もう一つハマりやすいのはフォーム部品ですが、これはまた後日書きます。 この記事の前に 「今なら使えるWebComponents」を軽くでも読んでおいてもらえると嬉しいです。 2ペインのレイアウトを考える最初にWebアプリでよくある、左にナビゲーション、右にコンテンツを置く2ペイン
Web Componentsは10年ほど前に提唱されたブラウザのコンポーネント技術の総称です。自分でタグを作ってHTMLを拡張していける技術なのですが、ブラウザの対応や仕様の確定などに時間がかかり、なかなか実用に至りませんでした。 私もずっと忘れていたのですが、React/Vueに疲れたなーと考えていたところ、ふと思い出し調べ直してみると、既に安定してProduction readyなのに情報が少なくすごくもったいなかったので、自分で調べつつ色々書き残すことにしてみました。 Web Componentsの誤解名前は聞いたことはあっても使ったことがある人はまだ少ないWeb Components。私も認識違いがありました。 UIコンポーネントを作る仕組みだから自分で作ることはないCSSをページをまたがって使い回すことがあるなら楽になります CSSで!important を書いてたらWebCom
これでついにM1 MacbookAirを開発機として使えるようになります!多分。 先日、DockerのAppleSilicon対応版がDeveloper Preview Program(要ユーザ登録)で公開されたので早速試してみました。 インストールは特別なことなくD&Dするだけ。まずはターミナルからalpineを起動してみます。 $ docker run -it --rm alpine sh / # uname -a Linux 1bf5d756f216 4.19.104-linuxkit #1 SMP PREEMPT Sat Feb 15 00:49:47 UTC 2020 aarch64 Linux / # あっさり動きました。CPUはaarch64=ARMとして認識してます。 次にInter Macで動いていたRails & Nuxtのプロジェクトをビルドしてみます。 $ dock
前に紹介したCoderがPivotしエンタープライズ開発に注力するようで、個人開発者向けVSCodeブラウザ版はオープンソースで提供するようになりました。 VSCodeのブラウザ版はDockerでも提供されていて、Dockerさえインストールされていれば下記のコマンドを起動したあと`http://localhost:8080`をブラウザで開くだけでVSCodeと同じ環境で開発ができるようになります。 docker run -it -p 127.0.0.1:8080:8080 -v "${HOME}/.local/share/code-server:/home/coder/.local/share/code-server" -v "$PWD:/home/coder/project" codercom/code-server:v2しかし、ローカルで動かすなら普通のVSCodeと同じなので、どこ
今日、Facebookに「プログラマだったら当然知ってるよね?という知識一覧」という記事で、「データ構造」や「計算量」から「理論計算機」など幅広くコンピュータサイエンス(CS)の基礎をプログラマ知っているべきという論が展開されています。 私は経営学部だったのでコンピュータサイエンスについて学校で習ったことはないのですが、高校の頃から趣味で色々調べていて、この中だとグラフ理論と機械学習系以外は大体理解しています。 「Web系の人って、新技術ばっかり追いかけてCSの基礎とかちゃんと学んでないよね」っていう話は他でも時々聞く気がします。 一つがWeb系のエンジニアは情報系の大学を出てない人も多いことと、実際あまり役に立つシーンがないのではないかと思います。 実際、CSの基礎ができると多くのエンジニアにとって何のメリットがあるのでしょう? 一番は「先の技術を読めるようになる」ことです。 ITの世界
Progateやドットインストールなど、プログラミング学習サイトが最近たくさん出てきていますが、「言語やツールを学んだあとどうすればいいのかわからない」という話も聞くようになりました。 せっかく言語を学んだのであれば、この状態を超えて自分の作りたいものを作ったり、依頼されたものを作れるようになると世界が広がります。 実は「言語やツールを知っていること」「コードが書けること」「サービスが作れること」と「ビジネスができること」のそれぞれのフェーズには大きな壁があります。多くのサイトで学べるのは「言語やツールを知ること」になります。 ここから「コードを書ける」というギャップを埋めるためには、他人の書いた色々なコードを読んで、それをコピーして覚えるのが一番です。これを「写経」と言います。 例えばMedium.comクローンのrealworld.io や、ちょっと古いですが TodoMVC というサ
アプリのメンテナンスや告知などを行う機能はすぐには使わないけど、必ず必要になるので最初から入れておきたいですよね。 そのために、。アプリ起動時や復帰時に適当なURLを叩いてJSONを取得して、ダイアログでメッセージを表示する機能を実装しておくといいでしょう。 URLを開くと通常は404が返ってきて、その場合は何も表示しないようにしておきます。 このURLはS3など本体のサービスとは違うドメインとサーバにおきます。 サーバのメンテナンスや不具合でアクセスできない場合には、このURLに適当なJSONを置くようにします。あとこのファイルの多言語化も忘れずに。 JSONの中にはメッセージ本文と、詳細ページのURL、何度も表示するか一度だけかなどを持っておくといいでしょう。 { "message": { "ja": "20時までメンテナンスです", "en": "We have scheduled
私も日頃これを言っていて、家庭内でも「お互い相手に期待しない」って話をしています。例えばこんな感じに... - した話は聞いてない - 聞いた話は覚えてない - 覚えていても実行されない - LINEの既読は読んでない - 時間通りには来ない - 遊びに行ったら帰ってこない - 飲みに行ったら覚えてない ... これだけ読むと「本当に夫婦なの?」って思うけど、これはお互い「相手に期待しないけど、自分は可能な限り実行する」って言う前提があってのこと。 これがあると「話聞いてなかったの!?」とか言うよくある喧嘩の殆どはなくなりますw 喧嘩の原因は「自分の理想と相手の行動のギャップで、理想より行動が低かった」場合に起こりがちなので、まずは自分や相手の期待値を下げることが大事だと思いっています。 アドラーは「課題の分離」と言う話で「自分の課題」と「相手の課題」の区別を明確にしろって話をしてるんだけ
スタートアップの多くは、創業者が「こんなものが欲しい」とか「こう言うものが世の中にはあるべきだ」と言う信念を主軸にプロダクトや事業が作られていきます。(以下、主観型) PhotoShareやミイル、トレタなんかは、それぞれのプロダクトオーナーが「こうあるべき」と思うものを「どうやって形にするのか」という挑戦をしてきました。 もう一つの作り方に「顧客が必要とするものを作る」と言う方法があります。 顧客からの要望を元にしたり、観察をして「顧客にとって価値のあるもの」を探してそれを作ります。信念より外部から客観的に顧客を観察し、「課題」をどう明確にするのか、そこは「ビジネスになるのか」と言うことが主軸となります。(以下、客観型) 最近では、SmartHR社の宮田社長がインタビューの中で「『自分が』ほしいと思うものだけを作り続けてしまっていた。事業開発の仕方を変え、SmartHRが軌道に乗り始めて
今週はIVS CTOで金沢に来ています。私はもうCTOじゃないんだけど、ex-CTO枠っていうのがあってそれでの参加です。 昨日は前夜祭の二次会で居酒屋に行ったのですが、その時に「CTOの役割が広すぎてわけがわからん」という話があり、Amazon/AWS CTOのWerner Vogelsが2007年に同じような話をブログに書いていてその話をちょっとしたのでここでまとめを。 1. Infrastructure Manager ITインフラやセキュリティ、アプリ開発や保守に対して責任を持ちます。一般企業の情シスの統括みたいな役割です。 IT系スタートアップではこの役割でCTOと呼ばれることはあまりないでしょう。 2. Technology Visionary and Operations Manager ビジネス戦略を元に技術ビジョンを持って組み立てて実装します。アーキテクトに近い役割になり
多くの社会人エンジニアでもこれほどの作品は作れない!? "第3回 全国小中学生プログラミング大会"で審査員してきました。 初回から参加させていただいている"夏休みにプログラミングを楽しもう !!|第3回 全国小中学生プログラミング大会"で今年も審査員をしてきました。 300作品ちかくの応募があり、一次審査を超えた30作品の審査をさせていただきました。二次審査は各審査員が実際に自分で動かして10作品を選び、今日の最終審査では作者のプレゼンテーションを聞きながら、優秀賞などの賞を選考しました。 最優秀作品は中学三年生 三橋さん"つながる。"という人が繋がることを表現したゲームでした。プレイ部分の完成度が高いだけでなく、ステージエディタやオリジナルのステージの共有機能、Archivementなど全体としての完成度も非常に高いものでした。また「こんな せかい あったらいいな」というこの大会のテー
「2013年の増井にトレタのコード書くときに気をつけて欲しい事を伝えられるとしたら、何を言いたい? 」 フルタイムとしてトレタへの最終出勤日の今日、"Tech Mtg"という社内エンジニアの集まりで、今一番Railsのコードを書いているm_nakamuraくんに聞いてみた。(ちなみにトレタには中村が4人いますw) そしたら、こんな答えが。 - MySQLにUNIQUEやNOT NULL、外部キーなどの制約をちゃんと付ける - 魔改造的なHackはサービス内部のコードではやらないこと。ミドルウェアのアップデート時に問題になりがち - commit messageもしくはPull Requestのdescriptionは変更の意図がわかるように"なぜ"を書いておくこと - 仕様変更で必要なくなったテーブル・カラムは直ちに削除する、もしくは削除して良いというコメントを残す 「コードは変更できるけ
本当に技術を売りにしている会社以外、"Tech"より"Product"の方が大事だと思うんだけど。 いまはTechの幅が広すぎ、一人でカバーすることは難しくなっていますし、そもそも「技術が差別化ポイント」になっている会社は多くないと思います。 「経営側に技術がわかる人間がいないと、間違った技術投資を行い、エンジニアに無駄が負荷がかかったり、プロダクトが正しく完成しない」という可能性はあります。 しかしそれは経営層で必要なんだろうか? むしろ経営層からはプロダクトが健全に開発されているのなら、投資の正しさはプロダクトの中で行えばいいと思うんだけど。プロダクト横断の投資が必要ならそういう横串の検討を行えばいいわけだし。 ということでCTOよりCPOがいる構造の方が会社の目的に沿っている気がするんだけど、どうなんだろう? 起業当初はCEOやCTOがProduct OwnerとなりCPOの役割をし
AWS Cloud9を始めとしたCloudIDE。結構昔からあるけど、パフォーマンス的にも機能的にもまだまだ実用にならないなと思っていたら、ここ1年ぐらいで本当に開発に使えるクラスのものが出てき始めた。 デスクトップ用のエディタが、AtomやVSCodeのようにブラウザ技術を使ったものが主流になって開発が加速しているのも一因だろうし、Dockerなどのコンポーネント技術によって開発環境のポータビリティがあったのも大きな要因だと思う。 CloudIDEのいいところは、ローカルのOSなどに依存しないことと、開発環境そのものの共有が可能なこと、環境の構築と破壊が簡単なところなどが上げられる。 私はノート2台と、デスクトップ、iPadを行き来するので、その時にいちいちGitにPushする必要がないのも大変助かる。 いくつかのCloudIDEはLive機能を持っていて、講習会やHands onなどで
このたび、2018/10/15をもって、創業から携わってきたトレタから独立し、"Product Founder"として、トレタ以外の仕事にも広く関わることにしました。私の新しい役割についてはレジュメとして別ページにまとめましたので、ご覧いただけると嬉しいです。 創業から5年がたち、おかげさまでトレタをお使いの店舗数は12,000以上、社員も130人の規模になりました。私もこれまで、こうして大きくなったトレタでどんなバリューを発揮すべき・できるのか、自分の立ち位置を模索してきました。今年の春にはCTOを降りて事業開発部付の技術部長となり、主に新規企画の立ち上げに関わってきました。 しかしその間も「自分の強みを活かしてトレタに貢献していくためにはどういう形態がいいのか」「そもそも自分の強みとはなんなのか」ということを考え続けてきました。 そこで出た結論は「自由な立場で、ムダに動き、面白い事を見
このページを最初にブックマークしてみませんか?
『masuidrive|note』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く