1 ポイント 投稿者 GN⁺ 2023-12-16 | 1件のコメント | WhatsAppで共有

人工知能/機械学習スキルの向上に投資する最善の方法

  • 毎日およそ1時間を人工知能(AI)/機械学習(ML)のスキル向上に充てるとき、この時間とエネルギーを投資する最善の方法について意見を求める質問。
  • さまざまな方法が提示されており、それぞれについて具体的な例やおすすめが求められている。
    • 小規模なプロジェクトを作る(何を作るべきか?)
    • ブログ/ニュースレターを読む(何を読むべきか?)
    • 講義を受ける(どの講義を受けるべきか?)
    • 教科書を読む(どの本を読むべきか?)
    • Kaggleコンペに参加する
    • AI/MLフォーラム/コミュニティに参加する
    • 上記の組み合わせ(可能であれば時間配分/比重も共有)
  • この質問は、ソフトウェアエンジニアがML分野で能力を身につけられるよう助けるために、一般的によく尋ねられるもの。

GN⁺の意見

  • 重要性: 人工知能と機械学習は、現在の技術世界で最も急成長している分野の1つであり、ソフトウェアエンジニアにとって必須のスキルになっている。この分野のスキルを伸ばすことは、キャリアの発展に大いに役立つ可能性がある。
  • 興味深さ: AI/MLはさまざまな産業や応用分野に革新をもたらしており、この分野での学習と実践は、創造的で挑戦しがいのあるプロジェクトを作る機会を提供する。
  • 学習方法の多様性: 提示された学習方法は、個人の学習スタイルや目標に応じて柔軟に調整でき、この多様性はそれぞれに合った最適な学習ルートを見つける助けになる。

1件のコメント

 
GN⁺ 2023-12-16
Hacker Newsの意見
  • 学位経験の共有

    • 良い学校でML(機械学習)の修士号を取得した。学校で学んだことは独学でも学べたが、学校は一人では得られない集中とプレッシャーを与えてくれた。
    • 論文実装が最も多くを学べた経験だった。講義や教科書は言葉にすぎず、実際に手を動かすことのほうがはるかに深い知識を与えてくれる。
    • さまざまなカリキュラムを提案できるが、1時間の集中的な問題解決が最もよい。
    • いくつかのプロジェクト案: 単純な関数学習のための小さなニューラルネットワークの訓練、MNIST数字分類器、特定コーパスでのGPT2ファインチューニング、視覚的類似性測定のためのシアミーズネットワークの訓練など。
    • 自分でニューラルネットワークや逆伝播を書くことに時間を無駄にせず、プロファイリングやデバッグツールの使い方を学ぶべきだと助言している。
  • AI研究者および技術系起業家の助言

    • 最新の発展について話している前提で、直線的な経路をたどらないことを勧めている。1つのコースと小さなプロジェクトに取り組み、時間を区切って終わらせようとすること。
    • 興味深い研究分野を見つけて、そのGitHubコードを動かし、改良したりアプリで使う方法を探すこと。
    • fast.aiのコース受講、Karpathyのブログ記事を読むこと、スタンフォードのcs231nおよびcs234のコース受講などを提案している。
    • 関心のあるプロジェクトを見つけて実行すること。
  • ML実用化の重要性

    • 多くのコメントはMLの低レベルな部分を強調するだろうが、現在MLに必要なのは実装レベルで賢い人材だ。
    • 既存のLLM技術を活用して、一般の人が使えるソフトウェアを作ることが重要で必要な仕事だ。
    • 日常的な練習としては、アプリケーションのスケッチ、プロンプトや関数呼び出しの構成、自分が作ったものをどうマーケティングするかを学ぶこと、ゼロからイチにするツールを作ることなどがある。
    • 例として、アリストテレス時代の共通知識整理技術を現代の埋め込み時代に適用したことや、純粋なMD仕様を理解してストリーミング生成モデルを統合したことが挙げられている。
  • AI/MLを日常業務に変える

    • AI/MLをクリティカルパスに置く方法を探す。新しい言語を学ぶのと同じで、完全な没入ほど効果的なものはない。
    • まだこの分野で仕事を得られるほど十分な基盤がないなら、情熱を注げるプロジェクトを見つけ、新しい解決方法を考え続けるのが次善の策だ。
    • 最後に、学校に戻ることを検討すること。1日1時間以上かかるが、他の学習戦略よりはるかに早く具体的な結果が見える。
  • 典型的なML/AI学生のロードマップ

    • 数学、コンピュータサイエンスなどの事前学習が必要だ。通常、微積分、線形代数、確率・統計、プログラミング、オブジェクト指向プログラミング、データ構造とアルゴリズムなどを含む。
    • 基本的なMLコースを経た後、急速に変化するDL(ディープラーニング)の基礎部分を扱う。
    • MLエンジニアリングとML研究に分かれる。エンジニアリングはMLパイプラインに関わる技術的なこと、研究は科学そのものに集中する。
    • 他の人たちが言うように、ツールを使って実装するのは楽しく有益だ。すべてのモデルを実装しようとすると非常に苦労するかもしれない。
    • 「実用的な」MLを学ぶ際には、APIを通じてデータを入力し結果を受け取れる形でモデルを実装しようとする。これにはデータ処理、ソフトウェア開発とホスティング、API開発などの課題が含まれる。
  • AI/MLの限界認識

    • 想像を膨らませすぎたり、AI/MLができることを過信したりしないこと。
    • 大手企業で2年間MLプロジェクトに参加したが、既存の統計的手法より改善せず、MLの「ブラックボックス」を理解する能力がないため、プロセスに実質的な改善がなかったと気づいた。
    • 多くのML作業は、問題を探している解決策だった。
    • データベース(SQLおよびNoSQL)の使い方を理解することが重要だ。MLを効果的に使うには、大量のデータを高性能にプログラミングする優れた技術が必要だ。
  • AI/MLの勉強法

    • Hastieらの "An Introduction to Statistical Learning with Applications in R/Python" を最初から最後まで読み、説明されている概念、アイデア、ニュアンス、微妙な違いを理解すること。
    • 数学・統計の本を手元に置き、知らない数学的手法が出てきたら、すぐにそれらの本を参照するか短いYouTube動画を見て、概念と使い方を理解すること。
    • これがAI/MLを勉強し理解する最もシンプルで直接的な方法だ。このスレッドで言及されている他のすべては、これが終わってからやるべきだ。
  • MLとエンジニアリングの結合

    • MLとエンジニアリングの接点を見ること。
    • MLOps、DevOpsの適用、ML分野でのテストとci/cd、複数GPUでの訓練方法、特に大規模かつ低コストでLLMをホスティングする方法などを検討すること。
    • 学界には強い学術的背景を持つ候補者が何百人もいるが、彼らの野心を実現できる経験豊富なエンジニアは非常に少ない。
  • ディープラーニングに焦点を当てる

    • ほとんどのLLMはTransformerアーキテクチャを使っている。これは視覚的に学べるし、ブログ記事やAndrej Karpathyのブログ記事・資料を通じて学べる。
    • 毎週発表される論文の最新動向を追うため、毎週日曜の要約を読む。
    • エンジニアリング面をさらに学ぶために、EleutherAIのDiscordサーバーに参加したり、llama.cppのようなプロジェクトのGitHub Discussionsを追ったりできる。
    • 最も効率的な開発方法は、おそらくこの分野の主要論文を再実装することだろう。明確な目標があり、成功の明確な兆候があり、作業を確認・比較しながら学べる実装も多い。
  • LLM初心者向けのクイズ

    • 非CS(生物医学)大学院生向けにLLM入門講義を最近行った。宿題用クイズを割り当てたかったが良いものが見つからず、多肢選択式クイズを作成した。このクイズは「悪魔的」で、しっかりした理解がないと引っかかる。いくつかの問題には、理解を試し、正しい答えを見つけようと努力することで学習に役立つニュアンスがある。メールアドレスを収集しないGoogleフォームだ。