BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース コードのための大規模言語モデル:QCon Londonにて、Loubna Ben Allal氏語る

コードのための大規模言語モデル:QCon Londonにて、Loubna Ben Allal氏語る

原文リンク(2024-04-10)

QCon Londonにおいて、Loubna Ben Allal氏は、コード用に調整された大規模言語モデル(LLM)について議論した。同氏は、コード補完モデルのライフサイクルについて議論し、膨大なコードベースに対する事前学習と、微調整の段階について強調した。特に、Hugging Faceのようなプラットフォームによって促進されるオープンソースのモデルについて議論した。リソースは、HFハブ上の1.7k以上のモデルと、StarCoder2Defog-SQLCoderのようなツールで構成されている。指示チューニングのようなカスタマイズ技術を使用することで、オーダーメイドのソリューションを提供できるが、データの偏りやプライバシーの懸念といった課題がある。

近年、コード補完ツールのLLMは、ソフトウェア開発手法に大きな変化をもたらしている。2021年に導入されたGitHub Copilotは、LLMが開発者の生産性を向上させるために使用できることを示した最初のツールの1つだ。しかし、有料のAPIしか提供されておらず、学習済みモデルや学習に使用したデータにアクセスできない。そのため、CodeLlamaBigCodeDeepSeek Coderといったオープンソースの代替サービスが登場している。BigCodeはオープンサイエンスのコラボレーションであり、モデルの訓練に使用されるデータセットだけでなく、モデル自体に対してもオープンで透明性の高いアプローチをとっている。BigCodeのSlackチャンネルには、1100人以上の研究者、エンジニア、弁護士、政策立案者がいる。BigCodeの一部として訓練されたモデルの重みは、商用に適したライセンスで公開されている。

Allal氏は、「すべてのモデルの主要なバックボーンはトランスフォーマーモデルアーキテクチャであり、これは人間のようなテキストを理解し生成するのに有効である」と説明した。このプロセスは未訓練のモデルから始まり、多くの場合GitHubのような公開リポジトリから供給されるコードのコーパスを取り込むことで、膨大な例を使って訓練できる。同氏は、HuggingFaceがThe StackThe Stack V2のような大規模なデータセットをホストしていると説明した。これらのデータセットには、それぞれ6.4TBと67.5TBのコードが含まれている。

事前トレーニングの後、モデルは教師によるファインチューニングを受け、より焦点を絞ったデータセットで改良され、コード提案の精度と関連性が向上する。この段階は、モデルを特定のコーディング言語やフレームワークに合わせるために重要である。その後、人間のフィードバックからの強化学習(Reinforcement Learning from Human Feedback:RLHF)が採用され、モデルをさらに人間の嗜好に近づけ、生成されるコードが人間が見たいものと一致するようにする。Allal氏は講演の中で、いくつかの有用なツールや論文を紹介した。

  • StarCoder2StarChat2:新しいモデルはリポジトリのコンテキストを認識し、ユーザーから与えられた指示を処理できる。オンラインで試せる。
  • Defog-SQLCoder:SQLクエリの生成においてGPT-4を凌駕するモデルで、特化型モデルの可能性を示している。
  • LLM-VSCode拡張:IDEでGitHub Copilotの代替を使える。

コード補完モデルのカスタマイズは、プロンプトエンジニアリングから、特定のデータセットでの継続的な事前トレーニングまで、幅広く対応できる。これにより、ニーズがあればニッチなドメインや特定のコーディングスタイルにモデルを適応させることができる。Allal氏は、「MagiCoder:ソースコードさえあればいい(原題:MagiCoder: Source Cord Is All You Need)」「OpenCodeInterpreter」など、ここで役立つ論文をいくつか取り上げている。また、SantaCoderに関する論文で説明されているように、当たり前のように見える最適化技術がすべてうまくいくわけではないことも説明した。最終的には、ファイルタイプに対するいくつかのフィルターに落ち着いたが、あまり積極的なフィルターではなかった。

最後になるが、モデルを評価することは重要である。現在、コード生成のリーダーボードは複数ある。ビッグ・コード・モデル・リーダーボードは、オープン・ソース・モデルのパフォーマンスだけを見る。EvalPlusリーダーボードは、クローズドソースモデルも考慮に入れている。最後に注目すべきリーダーボードは、LiveCodeBenchリーダーボードだ。このモデルは、頻繁に新しいテストを作成することで、テストベンチマークの漏洩を防ごうとしている。

ビデオ・オンリー・パスで録画されたQCon Londonの講演にアクセスできる。

作者について

この記事に星をつける

おすすめ度
スタイル

BT