タグ

関連タグで絞り込む (422)

タグの絞り込みを解除

*programに関するsh19910711のブックマーク (8,660)

  • 【LLM論文を読む】Chat Vector:LLMに新たな言語での指示追従とアラインメントを付与するシンプルなアプローチ - ローカルLLM自由帳

    前回の記事につづき、「LightChatAssistant 2x7B」に高いチャット性能をもたらした要素について調べています。 基的には、1)ベースモデルとしての「ChatNTQ JA 7B」の日語性能の高さ、2) MoEマージで総パラメータ数が増えることによる全般的な性能向上、3) 小説生成モデル「Antler-7B」とのマージによるモデル特長の相互補完、の3点でかなりの部分が説明できそうです。 一方で、モデル作者のSdff-Ltbaさんはマージ前のモデルに対してChat Vectorという処理を施し、チャット能力を高めたと説明されています。よって、Chat Vectorがどの程度の性能向上に寄与しているのかもざっくり知りたい気がします。 さしあたって、そもそもChat Vectorとは何かについて簡単に予習しておきたいと思います。元のarXiv論文は、2023年10月に台湾の研究グ

    【LLM論文を読む】Chat Vector:LLMに新たな言語での指示追従とアラインメントを付与するシンプルなアプローチ - ローカルLLM自由帳
    sh19910711
    sh19910711 2024/04/21
    "すでに「Task Vector」というアプローチがあり(微調整済みモデルの重みから事前学習済みモデルの重みを引き算 / ChatVector: 重みをどれらい強くかけるかはケースバイケース + 1でかけると出力に英語が混ざったりする"
  • 小さい計算コストでスマートにLLMをチューニング!-Hugging Face PEFT入門(前編)

    はじめに 株式会社Elithで先月よりインターンとして働き始めた森川です。今回は、大規模言語モデル(以下、LMM)の研修中に興味を持ったパラメータ効率の良いFine Tuning手法(Parameter-Efficient Fine Tuning、 PEFT)について、サーベイを行いました。記事では、Hugging Faceで実装されている主なPEFTを紹介し、最後に今後の展望について述べます。記事で使用する図は、参考文献から引用されています。 Fine Tuningの必要性と問題点 Fine Tuningは各下流タスクに合わせて大規模な事前学習済みモデルの重みを微調整することです。LLMのパラメータをタスクごとに一から訓練することは計算資源や計算時間の観点で現実的ではないため、モデルの作成の際には、事前に汎用的なタスクに使用できるように学習された大規模言語モデルを使用することが一般的

    小さい計算コストでスマートにLLMをチューニング!-Hugging Face PEFT入門(前編)
    sh19910711
    sh19910711 2024/04/21
    "LoRA: 重みの増分行列を低ランク行列で近似 + 少ないパラメータ数の学習でFull FTと同等の性能改善を目指す / 数学やポーカーのようなルールに基づいた思考を必要とするタスクに対するFine Tuningを苦手とする傾向"
  • Pactで小さく始めるコンシューマ駆動契約テスト|sys1yagi

    Ubie(ユビー)株式会社でソフトウェアエンジニアをしている八木(@sys1yagi)です。現在Ubieはソフトウェアエンジニアが25名おり、採用活動の進捗としてはまもなく30名を超えることが見えてきています。 Ubieには大きく2種類のプロダクトがあります。病院向け(toB)の「AI問診ユビー」というプロダクトと、一般ユーザ向け(toC)の「AI受診相談ユビー」というプロダクトです。病院向けの「AI問診ユビー」は、病院、クリニック、グローバル(アジア)に分かれており、全体で4つのプロダクトを開発しています。これらのプロダクトは15個のサービスを組み合わせて動作しています。 プロダクトとサービスの関係図 プロダクト間連携で起こる課題現在はサービス群がざっくりプロダクトのバーティカルで分かれていて、一部で共通のサービスがあったり、プロダクト間で連携しあう部分が出てきたといった状態です。人数や

    Pactで小さく始めるコンシューマ駆動契約テスト|sys1yagi
    sh19910711
    sh19910711 2024/04/21
    "プロダクト間で連携しあう部分において、変更によるクリティカルな問題の発生が多く / 契約として記載し、それらが共通の理解に準拠しているかをテスト / Pact: Rubyで実装され、その後様々な言語をサポート" 2021
  • eBPFを使ったオレオレカーネル拡張入門

    Kernel/VM探検隊@東京 No16

    eBPFを使ったオレオレカーネル拡張入門
    sh19910711
    sh19910711 2024/04/20
    "eBPF: モニタリング + 高速パケット処理 + システムコールのフィルタ + これだけじゃない / いま、eBPFを使ったカーネルの拡張が熱い + MemcachedのキャッシュをeBPFでカーネルに移植 / XRP: eBPFを用いたストレージ処理高速化" 2023
  • JUnitで学ぶTest smells撃退法 / How to resolve Test smells using JUnit5

    スクラムフェス新潟2023で発表した際に使用した資料です! https://confengine.com/conferences/scrum-fest-niigata-2023/proposal/18389/junittest-smells

    JUnitで学ぶTest smells撃退法 / How to resolve Test smells using JUnit5
    sh19910711
    sh19910711 2024/04/20
    "Test Smells: ”Refactoring Test Code”(論文)が初手 + 「xUnit Test Patterns」で体系的に整理 / Test Smellsが埋め込まれる背景の一つには最新版のTesting Frameworkを使用していないことが挙げられ" 2023
  • Github Copilotを活用したテスト駆動開発 - テコテック開発者ブログ

    こんにちは。決済認証システム開発事業部の齊藤です。 最近Github Copilot(以下、Copilot)を試験導入し使っているのですが、開発する上で特にテスト駆動開発が捗ることに気づきました。そこで、社内外の方にもCopilotを使ったテスト駆動開発を広められれば、全体的に開発効率を上げることができるのではないかと思い記事を書きました。 目次 目次 Copilotとは テスト駆動開発とは Copilotを活用したテスト駆動開発の手順とメリット テスト駆動開発の手順 Copilotを使用したテスト駆動開発 Copilotを使ったテスト駆動開発のメリット テストコードを書くスピードが上がる テストコードの品質が上がる テストコードを書くストレスが減る その他にも…… Copilotを使ったテスト駆動開発の注意点 まとめ Copilotを使ったテスト駆動開発の今後の展望 テコテックの採用活

    Github Copilotを活用したテスト駆動開発 - テコテック開発者ブログ
    sh19910711
    sh19910711 2024/04/20
    "テストコードがあると、テストコードの内容を元に実装コードを予測してくれることもある / 仕様をテストコードに落とし込んでから実装する / 見落としを減らすことができるのでテストコードの品質が上がります" 2023
  • ChatGPTでE2Eテストコード自動作成 | フューチャー技術ブログ

    9/7に行われた技育CAMPアカデミアというイベントでPlaywrightについて話をしてきました。テストというと、設計手法であるところのテスト駆動開発は別としてちょっと業務っぽい感じがして学生さんにはちょっと響かないかな、というのも心配でしたが、アンケートを見る限り、わかりやすかったという声も多くてほっとしました。 次のスライドが今回の資料です。スライドの内容の多くはPlaywright連載始まりますに掲載されている記事にもぼつぼつある内容も多い(APIテストはないですが)のですが、エントリーでは発表の最後に触れたChatGPTなどの生成AIを使ったE2Eテストの生成について説明していきます。 ChatGPTが話題を席巻してしばらく経ちます。とはいえ、内製開発での利用以外はソースコード開発にばりばり使う、みたいな宣言はあまり聞かない気がします。利用を制限している会社も数多くあります。

    ChatGPTでE2Eテストコード自動作成 | フューチャー技術ブログ
    sh19910711
    sh19910711 2024/04/20
    "HTMLを渡すだけでそれを操作するコードを書いてくれました / Cypressはずっと安定したAPIを提供し、Playwrightはアクティブに機能追加したりしている印象がありますが、これが生成AI経由に使い勝手に影響" 2023
  • HTMXとRustを組み合わせて遊んでみた

    なにやら少し話題になっていたHTMXが気になっていたので、触ってみました。 基的なことは公式リファレンスにまとまっているので、 今回はRustとHTMXを利用してカウンターのWebアプリを作成してみました。 HTMXとは? htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext 意訳すると、「JavaScript使わんでも色々できまっせー」って感じらしい。 多分、実際に使ってみると言ってることがわかってくる。 サンプルコード maudを利用して、H

    HTMXとRustを組み合わせて遊んでみた
    sh19910711
    sh19910711 2024/04/20
    "HTMX: 勝手に距離を置いていましたが、触ってみると面白かった + 公式サイトにあるエッセイを読んでいても、HTMXに対する熱い想いを感じられて良い / maudを利用して、HTMXを用いたテンプレートを作成"
  • tidymodelsを使った機械学習 - Qiita

    cv_data ## # 10-fold cross-validation using stratification ## # A tibble: 10 × 2 ## splits id ## <list> <chr> ## 1 <split [135/15]> Fold01 ## 2 <split [135/15]> Fold02 ## 3 <split [135/15]> Fold03 ## 4 <split [135/15]> Fold04 ## 5 <split [135/15]> Fold05 ## 6 <split [135/15]> Fold06 ## 7 <split [135/15]> Fold07 ## 8 <split [135/15]> Fold08 ## 9 <split [135/15]> Fold09 ## 10 <split [135/15]> Fold10

    tidymodelsを使った機械学習 - Qiita
    sh19910711
    sh19910711 2024/04/20
    "tidymodels: 機械学習もtidyに行いたい人向け + パッケージごとに異なる変数を使っているのを統合可能 / 何を予測させるかの指示と、正規化などの前処理をrecipeに指定 / min_nは後でハイパラ探索するのでtune()とする" 2023
  • Mergoo: LLMの効率的なマージと微調整のためのライブラリ (MoE, Mixture of Adapters) - ローカルLLM自由帳

    「Merggoo」というLLMマージ用の新しいライブラリができたそうで、開発者の方がRedditでもPRポストを上げておられます。 もしかするとMegekitに代わるものになるのかもしれません。MoEのルーティングの学習や、LoRA Adapterの混合など。 面白そうなので後で試せればと思いますが、概要だけ先に見ておこうと思います。以下、開発者ブログの和訳です。 Mergoo: 効率的にマージし、微調整する (MoE, Mixture of Adapters) huggingface.co 私たちは最近、複数の LLM エキスパートを簡単に統合し、統合された LLM を効率的にトレーニングするためのライブラリである mergoo を開発しました。このライブラリでは、さまざまな汎用またはドメインベースの LLM エキスパートの知識を効率的に統合できます。 🚀 Mergooでは次のことが可

    Mergoo: LLMの効率的なマージと微調整のためのライブラリ (MoE, Mixture of Adapters) - ローカルLLM自由帳
    sh19910711
    sh19910711 2024/04/20
    "Merggoo: LLMマージ用の新しいライブラリ + MoEのルーティングの学習や、LoRA Adapterの混合 / 汎用的なものからドメイン固有のものまで、さまざまな LLM エキスパートの知識を統合 / Bertベースのエキスパートもサポート"
  • [Meta] 新しいLLM の Llama 3 が発表されました - Qiita

    Meta Llama 3の登場!業界をリードする最新AIモデル Metaから「Meta Llama 3」がリリースされました。 なかなか凄そうなのですが、まとまった情報が日語で無さそうなのでまとめてみます。 とりあえず試したい方用 特徴 利用可能なプラットフォーム Llama 3は、AWSGoogle Cloud、Microsoft Azure、NVIDIA NIMなどの主要なクラウドプラットフォームに加え、Hugging FaceやKaggleなどのプラットフォームで利用可能になる予定。 Claude 3 Sonnet・Gemini Pro 1.5を上回るスコア 出典 ほとんどの部分でClaude 3 Sonnet・Gemini Pro 1.5を上回るスコアを出しています。 ただ、Claude 3にはSonnetより上のOpusもおり、こちらのスコアよりは低め。 改めてClaude

    [Meta] 新しいLLM の Llama 3 が発表されました - Qiita
    sh19910711
    sh19910711 2024/04/20
    "Meta Llama 3: コード生成能力を大幅に向上 + 主要なクラウドプラットフォームに加え、Hugging FaceやKaggleなどのプラットフォームで利用可能になる予定 / torchtune: LLMのファインチューニングや実験"
  • LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ

    背景 日語性能のよい軽量 LLM, LiLM, Lightweight Language Model ほしい... スマホで動かしたり, ブラウザで動かしたり... ドメインは知識応答系. Code 生成とか数学とかのドメインは今は考えない. Chinese LLaMa https://zenn.dev/syoyo/scraps/6c3e92402e6fd0 でいい感じに incremental pretrain(追加事前学習) するといけるっぽいことがわかった! ん-, でも 7B or 14 B 規模で試して当にうまくいくのかわからん... (後日 たぶん似たような方法で rinna ちゃんが Youri 7B, ELYZA ちゃんが Japanese LLaMa 7B 出してきた! それなりにいい感じになったようだよ) あと 7B だとやっぱりまだちょっと大きい. 量子化してギリ

    LiLM 小規模言語モデル TinyLlama 1.1B の日本語追加事前学習(incremental pretrain) を試したメモ
    sh19910711
    sh19910711 2024/04/20
    "追加事前学習: CPU mem は 160 GB くらい + 192 GB or 256 GB あると安心 + 学習は 225 W に powerlimit した 3090 x 2 でおよそ 100 日 / WASM でブラウザ動作デモできるようにやっぱりどこかの時点で公開するかも" 2023
  • Chat VectorにならぬCode Vectorは作れるのか|はち

    はじめにChat Vectorと呼ばれる、重みの足し引きでFine TuningなしにChat能力を事前学習モデルに付与できるという技術あります。 事前に訓練されたベースモデル(例えばLLaMA2)の重みから、対応するチャットモデル(例えばLLaMA2-chat)の重みを引くことで得られる。継続的に事前訓練されたモデルの重みにChat Vectorを追加するだけで、さらなる訓練を必要とせずに、新しい言語でのChat機能をモデルに与えることができる。 https://arxiv.org/abs/2310.04799のAbstructの和訳つまりこういうことですね。 ChatVector = Llama2-chat - Llama2 でChat能力を抽出し、 New-Model-chat = New-Model + ChatVector でNew-ModelにChat能力を付与できます。(この

    Chat VectorにならぬCode Vectorは作れるのか|はち
    sh19910711
    sh19910711 2024/04/20
    "Code Vectorはうまくいきませんでした。Code LlamaはLlama2に追加の事前学習をしており、流石にモデルの中身が変わりすぎていたのだと考えます / あくまでRLHFやInstruction Tuningのような出力のTuningに限っての手段なのかも"
  • Chat VectorとMath Vectorは併用できるのか|はち

    Chat Vectorと呼ばれる、重みの足し引きでFine TuningなしにChat能力を事前学習モデルに付与できるという技術あります。 この発想から、Chat能力以外にも能力の切り貼りはできるのかという検証が前記事までの趣旨となります。 結果以下の通りです。 ⭕️ Chat(論文) ×  Code ⭕️  Math Reasoning なので記事では、 Chat+Math能力の両方を日語ベースモデルに付与したら、どちらの効果も得られるのか ということを試してみたいと思います。長くなるので結論だけ見たい方は『5.まとめ』までスキップしてください。 1. Chat強化モデルの確認前回作成したMath強化モデルに加えて、Chat強化モデルも同じ作り方で作りました。詳細・手順は同じなので省きますが、Chat強化モデルもある程度上手くいくことが確認できています。 例えば、[INST] お気に

    Chat VectorとMath Vectorは併用できるのか|はち
    sh19910711
    sh19910711 2024/04/20
    "Chat Vector: 重み Chat能力以外にも能力の切り貼りはできるのか / 想像ですが、Math Instruction Tuningの際にChat形式の長文は取り扱われず、長文の回答となるとその能力が下がってしまう"
  • GIS に欠かせない Shapefile を深堀ってみる - Qiita

    1. はじめに 地理情報システム (GIS) で、使用するデータとして「Shapefile 形式」でデータ提供されていることがあります。この記事では、この Shapefile が、どのような構造となっているのかについて、説明していきます。 1.1. トポロジ構造とは Shapefile について説明していく前に、まずは GIS データ等でよく利用される「トポロジ構造」について説明しておこうと思います。 例えば、トポロジ構造を持つファイルとして、次のようなものがあります。 .gdb: ESRIのファイルジオデータベースは、トポロジを含む複雑な空間データを格納することができます。 .topojson: トポロジを保存するための拡張 GeoJSON 形式で、隣接する地物間の境界を共有することでファイルサイズを削減します。 .gml: 地理マークアップ言語 (Geography Markup La

    GIS に欠かせない Shapefile を深堀ってみる - Qiita
    sh19910711
    sh19910711 2024/04/20
    "Shapefile: ESRI によって開発 + 点、線、ポリゴンなどの地理的要素を保存 / 重ねて表示をしたり、連続性を持たないといった特性 + 処理がシンプル、かつサイズが軽量 / pyshp: Python で Shapefile を扱うためのライブラリ"
  • ChatGPTのプロンプトをLispで書く

    ChatGPTのプロンプトをLispで書けることに気づきました。プロンプトによって処理系としてふるまってもらうという話は聞いたことがありましたが、Lispの場合はそのようなプロンプトがなくても解釈されました。 モデルはGPT-4です。言語としてはClojureをベースにした擬似コードを書いています。 ※いくつか例を追加しました。思った以上にプログラミング的なことができるみたいです。 単純な生成と変換の例 子供っぽくする 静かなヤンデレっぽくする (しっぽりやんでれ?) 対偶を返す 小説を作ってそれを要約する 鶏の唐揚げのレシピのJSONを生成する Lispについて執事っぽく説明する クラムチャウダーのレシピを妹として箇条書きにする お兄ちゃんとツンデレの妹の誕生日ケーキについての会話を生成する Clojureの関数を使う例 3つの文を元気にする 犬の名前を5個生成してひらがなにする キリン

    ChatGPTのプロンプトをLispで書く
    sh19910711
    sh19910711 2024/04/19
    "GPT-4 + 擬似コード / 思った以上にプログラミング的なことができる / 「Lispの処理系として振る舞ってください」のようなプロンプトは必要ありませんでした / 自然言語で書くよりもトークンが少なく" 2023
  • コサイン類似度のいろんな書き方 - どこにでもいるSEの備忘録

    前にこんなことやってました。 www.nogawanogawa.work コサイン類似度の計算を高速化したくなることがちょくちょくあるのですが、「ぶっちゃけどれくらいのスループットが出せるもんなの?」というのが気になったので完全に興味位でやってみます。 コサイン類似度 定義と素朴なpythonでの実装 コサイン類似度の2つの計算パターン 諸条件 2つのベクトルの配列間ですべての組み合わせのコサイン類似度を計算 baseline numpy sklearn xlr8 pytorch jax Numba 実行速度結果 2つのベクトルの配列間で同じインデックスの組み合わせのコサイン類似度を計算 baseline numpy jax Numba 実行速度結果 使用したコード 参考文献 感想 コサイン類似度 定義と素朴なpythonでの実装 コサイン類似度は下記のような式になります。 これがなんの

    コサイン類似度のいろんな書き方 - どこにでもいるSEの備忘録
    sh19910711
    sh19910711 2024/04/19
    "コサイン類似度の計算を高速化したくなることがちょくちょくある / xlr8: 内部実装を見る限りIntel MKLを使用して高速化しているようです / 総合的にはNumba + 型変換が不要な状況であれば、計算自体はjaxが最も高速"
  • 機械学習システムのためのメタモルフィックテスティング入門 - Qiita

    はじめに 先日発行されました情報処理学会誌1月号で「機械学習応用システムのテスト・検証」という記事を書きましたが、スペースの制約などがあり、メタモルフィックテスティングについて十分な量を書けていません。また執筆後にメタモルフィックテスティングの提唱者であるTsong Yueh Chen先生の講演を聞いたり、他の文献を読んだりした中で、もう少し書き足したい部分もあり、そのようなところを中心にメタモルフィックテスティングについて解説します。 解決する問題:期待値が分からないテストの成否をどう決める? 一般的にソフトウェアのテストの成功・失敗を決める際、テストケースごとに期待値(期待結果、確認項目などとも言われたりします)があり、実際にテストケースを実行したときの出力と比べることをします。このときの「ソフトウェアに対するテストが成功か失敗かを判定するメカニズム」のことをテストオラクルと呼びます。

    機械学習システムのためのメタモルフィックテスティング入門 - Qiita
    sh19910711
    sh19910711 2024/04/19
    "メタモルフィックテスティング: 期待値が分からないテスト + 複数の入力を用意しそれらの出力間の関係を比較することでテストの成否を決めます / 情報処理学会誌1月号「機械学習応用システムのテスト・検証」" 2018
  • Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か

    Hypothesisとは何か、プロパティベーステストとは何か Hypothesisは、Python向けのプロパティベーステストのライブラリである。 プロパティベーステストは、生成された多数の入力データに対してプロパティ(性質)が満たされるかどうかをテストする手法である。 HaskellのQuickCheckライブラリが初出で、現在は各プログラミング言語に移植されている。 従来のユニットテストは、ある程度固定したテストデータを指定してテストを行っていた。 その際、境界値分析などで妥当なパラメータを決定していた。 しかし、境界値分析が必ず通用するとは限らないし、人間が行う以上、ミスも発生する。 プロパティベーステストはデータを固定する代わりにそのデータが満たすプロパティを指定してテストを行う。 実際のテストケースはHypothesisがプロパティを満たすパラメータを決めて生成してくれる。 人力

    Hypothesisとpytestを使ってDjangoのユニットテストを書く - 何かを書き留める何か
    sh19910711
    sh19910711 2024/04/19
    "プロパティベーステスト: 生成された多数の入力データに対してプロパティ(性質)が満たされるかどうか + HaskellのQuickCheckライブラリが初出 / 『ロバストPython』でHypothesisの存在を知った"
  • scikit-learnの学習結果をpickleしない - Qiita

    機械学習を簡単に行うための有用なライブラリの一つはscikit-learnである。 この文書では、scikit-learnの学習結果をpickleしないで済ます方法について述べる。 scikit-learnの特徴 各種識別器の学習・予測・評価方法のためのインターフェースがそろえてある設計。 各種アルゴリズムを試して、比較しやすい。 ドキュメントが充実している。 前提 python scikit-learn pickle scikit-learn に欠けているもの scikit-learnで学習した結果を保持するための枠組みが不足している。 そのため、sckit-learnで作った学習済みの識別器をpickleして、それをpickl.loads(pickle済みのファイル)して使ってしまうということをしてしまいやすい。 問題点 scikit-learn のサイトでも、pickleしたものを使

    scikit-learnの学習結果をpickleしない - Qiita
    sh19910711
    sh19910711 2024/04/18
    "scikit-learnの学習結果をpickleしないで済ます方法 / sklean-onnx, skl2onnx: sckit-learn で学習 + 学習済みの識別器をonnxファイルに変換 + そのonnxファイルを元にonnxruntimeを使って推論" 2021