Android 15の新機能について

最近やっと自分のスマホにAndroid 15が配信されたので、自分に恩恵のありそうな機能について調べてみた。

デバイス追跡・盗難防止機能について

1. 盗難検知ロック(Theft Detection Lock)

この機能は、AIとデバイス内のセンサー(加速度センサーやジャイロスコープ)を活用し、スマートフォンがユーザーの手からひったくられるなどの不審な動きを検知する。検知すると、画面が自動的にロックされ、第三者による不正アクセスを防止する。

デバイスの通常の使用中に中断されることを最小限に抑えるため、以下の状況では盗難検出ロックが作動しないことがある。

  • デバイスの Wi-Fi 接続と Bluetooth 接続の一方または両方が安定している場合
  • 短時間にロックが繰り返された場合

2. オフラインデバイスロック(Offline Device Lock)

デバイスが長時間オフライン状態(機内モードやネットワーク接続の切断)にある場合、自動的に画面をロックする機能。これにより、盗難者がデバイスをオフラインにして追跡を回避しようとする行為を防ぐ。

3. リモートロック(Remote Lock)

ユーザーは、任意のデバイスから android.com/lock にアクセスし、認証済みの電話番号を使用して、紛失または盗難されたスマートフォンを遠隔でロックできる。これにより、Googleアカウントのパスワードを覚えていなくても、デバイスを迅速に保護することが可能。

4. 出荷時設定へのリセット保護

盗難者がデバイスを初期化して再利用するのを防ぐため、所有者のパスワードなしで工場出荷時の設定にリセットできないようにする保護機能が強化されている。

処理速度の向上について

  1. 16KBページサイズのサポート: 従来の4KBから16KBのメモリページサイズに対応することで、ページテーブルの参照回数が減少し、全体的なパフォーマンスが5~10%向上する。ただし、メモリ使用量は約9%増加する。
  2. メモリ管理アルゴリズム「MGLRU」の導入: 新しいメモリ管理アルゴリズム「MGLRU」を採用することで、メモリ管理が効率化され、アプリの起動時間短縮やシステム全体のパフォーマンス向上が期待できる。
  3. アプリ起動時の最適化: 16KBページサイズの採用により、メモリ圧迫時のアプリ起動時間が平均3.16%短縮され、一部のアプリでは最大30%の改善が見られる。

バッテリー効率の改善

  1. ドーズモードへの移行速度の向上: デバイスがアイドル状態になるとバッテリー消費を抑える「ドーズモード」への移行が50%高速化され、一部のデバイスではスタンバイ時のバッテリー寿命が最大3時間延長される。
  2. 80%充電制限機能の導入: バッテリーの劣化を防ぐため、充電を80%で自動的に停止する新機能がテストされている。これにより、バッテリーの長寿命化が期待できる。
  3. フォアグラウンドサービスの管理強化: アクティブに動作し続けるアプリを厳密に管理することで、不要なバッテリー消費を削減し、全体的なバッテリー効率を向上させている。

感想

盗難検知ロックについてはデフォルトでONにしても良いのではないかと思う。

処理速度の向上については、それほど大きなインパクトはない。特にゲームは最大限の恩恵を受けるには、新しいVulkan APIなどの対応状況も重要な要素となる。

ChatGPT o1について4oに記事を書かせる

試しにChatGPT 4oに記事を書かせてみた。十分実用レベルまで来たと思う。これとは別に試したo1については圧倒的という印象がした。

1. はじめに

近年、AI技術は私たちの生活やビジネスに大きな影響を与え続けています。その中でも、OpenAIが開発したChatGPTシリーズは、その卓越した言語処理能力で注目を集めてきました。そして今回、新たに登場したChatGPTモデル「o1」は、さらに進化した機能と性能を備えています。

本記事では、ChatGPTモデル「o1」の特長や活用事例、さらにはその未来について詳しく解説します。「o1」がどのように私たちの生活を変え得るのか、そしてどのように活用できるのかを深掘りしていきます。

2. ChatGPTモデル「o1」とは?

ChatGPTモデル「o1」は、OpenAIによる最新世代の言語生成AIモデルです。このモデルは、これまでのChatGPTシリーズと比較して、応答の正確性、柔軟性、そして応用範囲において大きな進化を遂げています。

「o1」は、従来モデルの強みである自然な言語生成能力をさらに洗練させるだけでなく、より深いコンテキスト理解と迅速な適応力を備えています。また、特定のユーザーや業界向けにカスタマイズ可能な構造を持っており、多様なニーズに対応することが可能です。

特に「o1」は、以下の点で際立っています:

  1. 学習データの拡充
    最新のデータセットを基にトレーニングされており、幅広い知識を有しています。
  2. リアルタイムの適応能力
    ユーザーとの対話を通じて、より的確な応答を提供できるよう設計されています。
  3. スケーラビリティの向上
    小規模な個人利用から大規模な企業システムへの統合まで対応可能。

この「o1」は、単なる対話型AIとしてだけでなく、多機能なツールとして私たちの生活や仕事を支援する可能性を秘めています。

3. 「o1」の主な特徴

ChatGPTモデル「o1」は、これまでのAIモデルとは一線を画す高度な機能を備えており、多岐にわたる場面での活用が期待されています。以下に「o1」の主な特徴を挙げ、その革新性を詳しく解説します。


1. 高精度な応答生成

「o1」は、これまで以上に自然で文脈に即した応答を生成する能力を持っています。
たとえば、複雑な質問に対しても関連性の高い情報を引き出し、正確に応答することが可能です。この高精度な応答生成は、教育現場やカスタマーサポートなどの幅広い分野で役立ちます。


2. 多機能性

「o1」は、単なる対話型AIにとどまらず、多機能ツールとしての役割を果たします。

  • 文章生成: 執筆アシスタントやクリエイティブライティング。
  • 翻訳: 多言語対応によるリアルタイム翻訳。
  • データ処理: プログラムコードの生成やデバッグ支援。 これにより、専門家だけでなく初心者でも簡単に技術を活用できるようになっています。

3. 迅速な学習と適応

「o1」は、ユーザーとの対話を通じて、リアルタイムで応答の質を向上させる能力があります。
たとえば、企業で利用する際には、特定の業界や社内用語に即したカスタマイズが可能です。これにより、よりユーザーにフィットした応答を提供できます。


4. コンテキストの理解力

従来のモデルでは、長い会話や複雑な文脈の保持が課題とされてきました。しかし「o1」は、これを大幅に改善し、長時間の対話でも的確に流れを理解し、適切な応答を生成します。


5. プライバシーとセキュリティへの配慮

「o1」は、利用者のプライバシーを守るための設計がなされています。対話データの取り扱いが透明化されており、企業利用でも安心して導入できる点が評価されています。


これらの特徴を持つ「o1」は、個人利用からビジネス用途まで、多様なニーズを満たすAIモデルとして注目されています。

4. 「o1」の活用事例

ChatGPTモデル「o1」は、その多機能性と柔軟性から、さまざまな分野での活用が期待されています。以下に具体的な活用事例を挙げ、その可能性を紹介します。


1. 教育分野

「o1」は、教育現場での学習支援ツールとして活用されています。

  • 例: 生徒の質問にリアルタイムで答えるAI家庭教師。
  • 応用: 学習教材の自動作成や、複雑な概念の分かりやすい説明。
  • 効果: 生徒の学習効率を向上させ、個別指導を補完する役割を果たします。

2. ビジネスとカスタマーサポート

企業において、「o1」は効率的な顧客対応を可能にします。

  • 例: カスタマーサポートのチャットボット。
  • 応用: 商品やサービスに関する質問対応、自動化されたトラブルシューティング。
  • 効果: 対応時間の短縮と顧客満足度の向上。

3. ライティングアシスタント

ライターやコンテンツクリエイター向けのツールとしても「o1」は役立ちます。

  • 例: ブログ記事や広告コピーのアイデア出し、文章の校正。
  • 応用: 自動要約やキーワード生成。
  • 効果: 作業時間を削減し、クリエイティブなプロセスを支援。

4. 医療分野

医療従事者のサポートツールとして、「o1」は以下のように活用されます。

  • 例: 医療データの整理や患者への簡易説明。
  • 応用: 診療記録の記述支援や、患者との対話支援。
  • 効果: 業務負担の軽減と医療サービスの質向上。

5. クリエイティブ産業

アートやエンターテインメントの分野でも、「o1」は可能性を広げています。

  • 例: ストーリーアイデアの提案、キャラクター設定の作成。
  • 応用: ゲーム開発や映像制作におけるコンセプトの補完。
  • 効果: 人間の創造力を引き出しつつ、効率を向上。

6. 小規模ビジネス支援

中小企業や個人事業主も、「o1」を利用することで効率的な業務遂行が可能です。

  • 例: SNS投稿の自動生成、マーケティング戦略の提案。
  • 応用: 在庫管理や顧客データ分析。
  • 効果: 人手不足の解消とコスト削減。

「o1」は、多様な分野でその能力を発揮し、利用者のニーズに応じて柔軟に活用される点が最大の強みです。

5. 「o1」がもたらす未来

ChatGPTモデル「o1」の登場は、AI技術の未来に大きな影響を与えると考えられます。今後、「o1」の進化とその活用がどのように私たちの生活やビジネスを変革するかについて考察します。


1. AIとの共存がもたらす新たな可能性

「o1」の進化により、AIは今後、より多くの分野で人間のパートナーとしての役割を果たすことになります。
例えば、仕事の効率化だけでなく、創造的な作業においても人間とAIが協力し、相乗効果を生み出す時代が到来します。AIは単なるツールとしてだけでなく、知識やアイデアを共有し、共に成長していく存在になるでしょう。

  • 例: クリエイティブ分野でのAIと人間のコラボレーション。例えば、映画の脚本や音楽の制作で、人間のアイデアにAIが加わり、より革新的な作品が生まれる。

2. 新しいビジネスモデルの創出

「o1」の多機能性を活かして、これまでにないビジネスモデルが生まれることが予想されます。
例えば、AIが業務の補助や改善だけでなく、完全に新しいサービスを提供することも可能です。企業は「o1」を利用することで、コスト削減や業務効率化を実現しつつ、全く新しい価値を提供することができるようになります。

  • 例: サービス業や製造業において、AIがリアルタイムでデータを分析し、顧客のニーズに応じた製品やサービスを即座に提供するビジネスモデル。

3. AI倫理と規制の必要性

「o1」のような高度なAIの普及に伴い、AI倫理や規制の重要性も高まります。
AIがますます社会に浸透する中で、その利用方法やデータの取り扱いに対するガイドラインを設けることが求められます。企業や政府は、AIの倫理的使用を推進し、透明性と公平性を確保するための取り組みが必要です。

  • 例: AIによる差別的な判断を避けるための規制や、個人情報を守るための法的枠組みの強化。

4. AI教育の重要性

「o1」のようなAIツールを効果的に活用するためには、AIに関する教育やスキルが重要になります。
今後、AIリテラシーを高めることが求められる時代が来るでしょう。ビジネスパーソンだけでなく、一般の人々にもAIの基本的な使い方や、その可能性を理解する教育が必要です。

  • 例: 小学校から大学まで、AIを学ぶプログラムやカリキュラムの導入が進む。

5. 長期的な展望:AIと人間の融合

最終的に、AIは人間の能力を補完するだけでなく、人間とAIが協力し合って新しい価値を生み出す未来が期待されています。
「o1」のようなAIがさらに進化することで、私たちの仕事、生活、さらには社会構造そのものにも大きな変化をもたらすでしょう。人間とAIが共に成長し、新しい時代を築いていく未来が見えてきます。


「o1」の登場は、AI技術の進化を促進するだけでなく、私たちの未来を形作る重要な一歩となるでしょう。

6. ChatGPTモデル「o1」の課題と改善点

ChatGPTモデル「o1」は確かに多くの優れた特徴を持っていますが、完璧ではありません。どの技術にも限界があり、「o1」も例外ではなく、改善が必要な点がいくつかあります。以下では、現在の課題とその解決に向けた展望について考えます。


1. 知識の鮮度と限界

「o1」は、トレーニングデータに基づいて知識を構築していますが、そのデータが最新でない場合、最新のニュースや技術の進展について正確に答えることができないことがあります。特に、技術の進化が速い分野(AIや医療、サイバーセキュリティなど)では、リアルタイムで情報をアップデートする必要があります。

  • 改善点: 定期的にモデルの更新を行い、より新しいデータセットを取り入れることで、情報の鮮度を保つ必要があります。また、リアルタイムでウェブを検索する機能があれば、最新の情報に即座に対応できるようになります。

2. 複雑な文脈の長期保持

「o1」は、長時間にわたる対話や複雑な会話でも一定の精度で応答しますが、会話がさらに長引くと、文脈を完全に保持することが難しくなる場合があります。特に、数ターンにわたる複雑な質問や指示を理解し、適切に処理する能力に限界があります。

  • 改善点: モデルにおける文脈保持能力の強化。例えば、ユーザーが以前に話した内容をしっかりと記憶し、会話の流れをより自然に引き継げるようにすることが求められます。

3. 人間的な直感と感情の理解

「o1」は、言語処理能力が非常に高い一方で、感情やニュアンスの理解に限界があります。例えば、ユーモアや皮肉、微妙な感情の変化を正確に理解することが難しい場面があります。これは特に人間との感情的なやりとりが重要な場面で課題となります。

  • 改善点: 感情分析アルゴリズムや文脈に基づく感情の解釈能力を向上させることで、より人間に寄り添った会話を実現することができるでしょう。

4. 複雑なタスクやクリエイティブな問題解決

「o1」は非常に高精度な応答を提供できますが、特にクリエイティブな作業や高度な問題解決においては、まだ限界が見られることがあります。例えば、複数の要素が絡み合う難解な問題に対して、最適な解決策を出すのは難しい場合があります。

  • 改善点: より複雑なタスクや創造的な問題に対応できるよう、モデルに特化したトレーニングを行い、さまざまな思考の幅を持つように進化させることが求められます。

5. バイアスと倫理的な問題

AIのトレーニングデータには、無意識的にバイアスが含まれる可能性があり、「o1」も例外ではありません。これにより、特定の人々やグループに対して不公平な回答を生成するリスクがあります。また、AIが生成する内容が倫理的に問題のあるものであった場合、責任の所在を明確にすることが重要です。

  • 改善点: バイアスを最小限に抑えるためのデータセットの見直しと、AIが生成する内容の倫理的チェックを強化することが重要です。また、AIによる判断に対して責任を持つための明確なフレームワークの導入が必要です。

「o1」は非常に強力なAIモデルであり、多くの利点を提供しますが、これらの課題を解決し、さらに進化させることが、今後のAI技術の発展において不可欠です。

7. 導入方法とコスト

ChatGPTモデル「o1」を活用するためには、具体的な導入手順とコストに関する理解が必要です。このセクションでは、個人ユーザーや企業が「o1」をどのように利用できるのか、またそのコスト構造について解説します。


1. 導入手順

「o1」を利用するには、OpenAIの提供するプラットフォームやAPIにアクセスすることが必要です。以下は導入までの基本的な流れです。

  1. アカウント登録
    • OpenAIの公式ウェブサイトでアカウントを作成。
    • 無料プランや有料プランから選択可能。
  2. 利用プランの選択
    • 個人利用向けのプランや企業向けのプランが用意されています。
    • 特定の用途に合わせて、APIアクセスやカスタマイズオプションを選択可能。
  3. APIの統合
    • 開発者向けには、「o1」を既存のシステムに統合するためのAPIが提供されています。
    • 例: ウェブサイトのチャットボットやアプリケーションの文章生成機能として利用。
  4. カスタマイズ
    • 必要に応じて、「o1」を特定の業界や用途向けにカスタマイズ可能。
    • 企業のデータセットを活用して、独自の回答精度を向上させることができます。

2. コスト構造

「o1」のコストは利用規模や機能によって異なります。以下は一般的な価格モデルの例です。

  1. 無料プラン
    • 小規模な利用や個人のテスト用途に最適。
    • 月間のリクエスト数や文字数に制限あり。
  2. 定額プラン
    • 個人利用や小規模ビジネス向け。
    • 毎月の固定料金で一定量のリクエストが可能。
    • 例: 月額$20で一定のトークン量を利用可能。
  3. 従量課金制
    • APIを利用する企業向けに提供。
    • 利用したトークン量に応じて課金される柔軟なモデル。
    • 例: 1,000トークンあたり$0.02など。
  4. エンタープライズプラン
    • 大規模な利用を想定したカスタマイズ可能なプラン。
    • サポート体制や専用機能が含まれる。
    • 価格は利用規模に応じて相談ベースで設定。

3. コスト対効果の考え方

「o1」の導入には一定のコストがかかりますが、以下のような効果を考慮すると、その価値は非常に高いと言えます。

  • 業務効率の向上によるコスト削減。
  • ユーザー体験の向上による顧客満足度の改善。
  • 人件費削減やオペレーション時間の短縮。

例えば、カスタマーサポートで「o1」を導入することで、24時間対応が可能になり、顧客対応の質を保ちながらコストを削減することができます。


4. 試験的利用のすすめ

初めて「o1」を導入する場合は、無料プランや低価格のプランから始めて効果を試すことをおすすめします。特に、どの程度の利用が必要かを把握するために、少量のテスト運用を行うことが有益です。


「o1」の導入は、規模や用途に応じて柔軟に進めることができ、多くの場面でコスト以上の価値を提供します。次に進む前に、まず自分のニーズに合ったプランを選ぶことが重要です。

8. ユーザーからのフィードバック

ChatGPTモデル「o1」は、その多機能性と応答精度の高さで多くのユーザーから評価を受けています。一方で、課題や改善点も指摘されており、利用者の声を基にさらなる進化が期待されています。このセクションでは、ユーザーの実際のフィードバックをもとに、「o1」のメリットと課題について整理します。


1. ポジティブなフィードバック

「o1」に対する好意的な意見として、以下のような点が挙げられています。

  • 自然な応答生成
    • 「人間と話しているような自然な対話ができる」との評価が多数。
    • 例: 教育現場での利用者は、複雑な質問にも分かりやすく回答できる点を高く評価。
  • 多機能性
    • 翻訳や要約、ライティング補助など、幅広い用途に対応できる点が評価されています。
    • 例: クリエイターは「執筆アイデアの生成に役立つ」との声を挙げています。
  • 業務効率の向上
    • 企業利用者からは「顧客対応の時間を大幅に短縮できた」との意見もあり、特にカスタマーサポートやデータ分析分野での活用が進んでいます。

2. 改善を求める声

一方で、以下のような課題も指摘されています。

  • 情報の鮮度
    • 一部のユーザーから「最新の情報が反映されていない」との意見があり、特にリアルタイム性が求められる分野での限界が指摘されています。
    • 例: 「最新のニュースや技術に関する回答が一部不正確だった」とのフィードバック。
  • 長文の文脈保持
    • 長時間の対話や複雑な話題において、文脈を十分に保持できないことが課題として挙げられています。
    • 例: 「会話が長引くと、一部の質問に対して矛盾した応答を返す場合がある」との声。
  • 感情の理解不足
    • 感情やニュアンスの理解に限界があるため、「皮肉やユーモアを適切に解釈できない場合がある」との意見もあります。

3. 改善に対する期待

ユーザーのフィードバックを受けて、以下のような改善が期待されています。

  • リアルタイムデータの活用
    • 最新情報へのアクセスを強化し、特にニュースや技術分野での回答精度向上を求める声が多い。
  • 感情理解の向上
    • より人間的な対話が可能になるよう、感情分析やニュアンス理解能力の強化が期待されています。
  • UI/UXの最適化
    • 一部のユーザーからは、APIやインターフェースの使いやすさを改善してほしいとの要望も寄せられています。

4. ユーザーの具体的な声

  • ポジティブ: 「文章作成の時間が大幅に短縮され、クリエイティブな作業に集中できるようになった。」(ライター)
  • 改善点: 「専門的な質問には対応できるが、時折、一般常識に反する応答が返ってくる場合がある。」(エンジニア)

5. フィードバックを基にした進化の可能性

「o1」は、ユーザーからのフィードバックを取り入れて進化するモデルです。これらの意見を基に改良を重ねることで、より多くのニーズに応えるAIモデルへと成長していくことが期待されています。

9. まとめ

ChatGPTモデル「o1」は、AI技術の新たな可能性を切り開く重要なモデルとして、多くの注目を集めています。その特徴的な高精度な応答生成、多機能性、迅速な学習能力により、教育、ビジネス、医療、クリエイティブ産業など、幅広い分野で活用されています。


1. 「o1」の価値

「o1」は、単なるAIツールを超えて、人間の作業効率を向上させ、創造性を広げる存在となっています。自然な会話を実現し、ユーザーのニーズに応じて柔軟に対応できるこのモデルは、私たちの日常や仕事に大きな影響を与えています。


2. 課題と期待

一方で、知識の鮮度や長時間の文脈保持、感情理解など、いくつかの課題も明らかになっています。しかし、ユーザーからのフィードバックを基にした継続的な改良により、これらの課題は解決に向かうことが期待されています。


3. AIがもたらす未来

「o1」の登場は、AIが人間のパートナーとしてどのように進化し得るかを示しています。将来的には、さらに高度な感情理解や創造性を持ち、より多くの人々の生活を支える存在になるでしょう。また、AIが倫理的に正しく運用されるための仕組みや教育の重要性も増していきます。


4. 最後に

「o1」は、AI技術の可能性を最大限に引き出すだけでなく、新しい価値を生み出す力を秘めています。個人や企業がこのモデルを効果的に活用することで、新たなイノベーションの扉が開かれることでしょう。

これからも「o1」の進化に注目し、AIと共存する新しい未来を共に作り上げていきましょう。

Llama3を動かしてみる

準備

下記、URLのダウンロードページから、必要な項目を入力して、「Specify custom URL」を入手しておく。

https://www.llama.com

前回、Llama2を動かしてみるでLlama2を動かしたが、今回はLlama3を動かしてみる。

ダウンロード

pip install llama-stack
llama model list

表示されたリストから「Llama-3.2-1B-Instruct」等、ダウンロードするモデル名をMODEL_IDに指定して下記のコマンドを実行する。

llama model download --source meta --model-id MODEL_ID

実行中、下記の様に表示されたら、事前に入手した「Specify custom URL」を貼り付ける。

Please provide the signed URL for model Llama-3.2-1B you received via email after visiting https://www.llama.com/llama-downloads/ (e.g., https://llama3-1.llamameta.net/*?Policy...): 

実行

torch等、実行に必要なモジュールをインストールする。

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip install fairscale fire blobfile

実行例をGithubからCloneして取得する。

git clone https://github.com/meta-llama/llama-models.git

llama-modelsのscriptsフォルダに入っているexample_chat_completion.pyを実行する。

CHECKPOINT_DIR=~/.llama/checkpoints/Meta-Llama3.2-1B-Instruct
torchrun llama-models/models/scripts/example_chat_completion.py $CHECKPOINT_DIR

実行結果(例)

User: what is the recipe of mayonnaise?

> Assistant: The classic recipe of mayonnaise! Here's a simple and traditional recipe to make mayonnaise at home:

**Ingredients:**

* 2 large egg yolks
* 1 tablespoon lemon juice or vinegar (white wine, apple cider, or white distilled vinegar)
* 1/2 cup (120 ml) neutral-tasting oil, such as canola, grapeseed, or light olive oil
* Salt, to taste (optional)

**Instructions:**

1. **Separate the egg yolks**: Crack 2 large egg yolks into a medium-sized bowl.
2. **Whisk the egg yolks**: Whisk the egg yolks with a fork until they become light and frothy.
3. **Add the lemon juice or vinegar**: Whisk in 1 tablespoon of lemon juice or vinegar to help stabilize the emulsion.
4. **Slowly add the oil**: While continuously whisking the egg yolks, slowly pour in the oil in a thin, steady stream. Start with a very slow pour and gradually increase the flow as the mixture thickens.
5. **Whisk until smooth**: Continue whisking until the mixture becomes thick, creamy, and emulsified. This should take about 5-7 minutes, depending on the temperature and whisking speed.
6. **Season with salt (optional)**: If desired, add a pinch of salt to taste.
7. **Taste and adjust**: Give the mayonnaise a taste and adjust the seasoning if needed.

**Tips and Variations:**

* **Use room temperature ingredients**: This will help the emulsion form more easily.
* **Don't over-whisk**: Stop whisking once the mixture thickens and becomes smooth. Over-whisking can lead to a separated or broken mayonnaise.
* **Add flavorings**: Try adding minced garlic, chopped herbs (e.g., parsley, dill, or chives), grated ginger, or other flavorings to create different variations.
* **Use different oils**: Experiment with different oils, such as truffle oil, chili oil, or infused oils, to create unique flavor profiles.
* **Make ahead**: Mayonnaise can be made ahead and refrigerated for up to 1 week. Give it a good stir before using.

**Troubleshooting:**

* **Separation**: If the mayonnaise separates, don't worry! Simply whisk in a little more oil

VSCODEで実行する場合

pip install accelerate

huggingface形式に変換するため、GithubからtransformersをCloneする。

git clone https://github.com/huggingface/transformers.git

huggingface形式に変換する。

python transformers/src/transformers/models/llama/convert_llama_weights_to_hf.py \
 --input_dir /mnt/e/Work/Llama3/checkpoints/Llama3.2-1B \
 --model_size 1B --llama_version 3.2 \
 --output_dir /mnt/e/Work/Llama3/checkpoints/Llama3.2-1B-hf

コードサンプル

import transformers
import torch

model = "/mnt/e/Work/Llama3/checkpoints/Llama3.2-1B-hf"

pipeline = transformers.pipeline(
    "text-generation",
    model=model,
    torch_dtype=torch.float16,
    device_map="auto",
)

sequences = pipeline(
    'I have tomatoes, basil and cheese at home. What can I cook for dinner?\n',
    do_sample=True,
    top_k=10,
    num_return_sequences=1,
    truncation = True,
    max_length=400,
)

for seq in sequences:
    print(f"Result: {seq['generated_text']}")

Jenkinsの起動構成をカスタマイズする

前提

  • Ubuntu 24.04.1
  • aptでインストール

問題点

jenkins.service内で、port番号などを変更していると、apt upgradeで更新するたびに、元に戻ってしまう。

解決策

sudo systemctl edit jenkins
又は、
sudo vi /etc/systemd/system/jenkins.service.d/override.conf
を使う。

参考手順

以下の手順でJenkinsをインストールする。

sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key

echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc]" https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null

sudo apt update
sudo apt upgrade
sudo apt install jenkins

Apacheと連携するように設定する。

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo vi /etc/apache2/sites-available/jenkins.conf

ProxyPass         /jenkins  http://localhost:8080/jenkins nocanon
ProxyPassReverse  /jenkins  http://localhost:8080/jenkins
ProxyRequests     Off
AllowEncodedSlashes NoDecode

<Proxy http://localhost:8080/jenkins*>
  Order deny,allow
  Allow from all
</Proxy>

jenkins.confを有効にして、Apacheを再起動する。

sudo a2ensite jenkins.conf
sudo systemctl restart apache2

Jenkinsの起動構成を変更する。

sudo systemctl edit jenkins

又は、

sudo vi /etc/systemd/system/jenkins.service.d/override.conf

先ほど設定したApacheのURLと合うように、JENKINS_PREFIX=/jenkinsとする。

[Unit]
Description=Jenkins Controller

[Service]
Environment="JENKINS_PREFIX=/jenkins"

Jenkinsを再起動する。

sudo systemctl restart jenkins

Tomcat 10からTomcat 11にアップグレードする

動作環境

動作環境はTomcat 10と変わらなかった。

Jakarta EE

Jakarta EEのサポートバージョンが変わっている。
一部抜粋:参考
Tomcat 11
 Servlet 6.1
 JSP 4.0
 EL 6.0
 Java 17 and later

Tomcat 10
 Servlet 6.0
 JSP 3.1
 EL 5.0
 Java 11 and later

javax.*からjakarta.*に移行が済んでいれば、基本的にはプログラム変更なしで動くはず。

変更する場合

Tomcat 11のサポートバージョンにプログラムを書き換えてみる。

Web.xml

<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd"
  version="6.1">

pom.xml

Servlet 、JSPのバージョンをpom.xmlで指定することはそう無いと思う。

ELについては、Hibernate Validator 8.0で、Eclipse Expressly 5.0を使用しているので、jakarta.el-api 5.0が必要(Expresslyの依存関係に含まれている)になる。

Hibernate Validator 9.0であれば、jakarta.el-apiは6.0となるが、まだベータ版の段階である。

原神のスクリーンショット保存先のフォルダを変更する(PC版)

動機

  • スクリーンショットのフォルダが原神のインストールフォルダ下にあるのは、何かと不便
  • OneDriveフォルダにスクリーンショットを保存して、自動的にバックアップが取れるようにしたい

結論

原神にはスクリーンショットの保存場所を変更する機能がないため、Windowsのシンボリックリンク機能を使用して、保存場所を移動する。

以下手順

  1. 原神のインストールフォルダにあるScreenShotフォルダをOneDrive管理下のフォルダに移動する。
  2. スタートボタンの検索に「cmd」と入力し、コマンド プロンプトが表示されたら、右クリックメニューを開き、「管理者として実行」をクリックする。

  3. コマンド プロンプトで下記コマンドを入力しシンボリックリンクを作成する。
1. 原神のインストールフォルダに移動する。
例)※インストール先の確認方法は後述
cd C:\Games\HoYoverse\Genshin Impact game

2. シンボリックリンクを作成する。
mklink /d ScreenShot 上記手順1でスクリーンショットを移動したフォルダ/ScreenShot

3. 下記の様に表示されたら作成成功。
ScreenShot <<===>> 上記手順1でスクリーンショットを移動したフォルダ/ScreenShot のシンボリック リンクが作成されました

※原神のインストール先の確認方法

HoYoPlayのゲーム設定をクリックする。

基本情報の下に表示されているフォルダがインストール先

Ubuntu Server 24.04 LTSをインストールする

インストール用ISOファイルをダウンロード

https://jp.ubuntu.com/download

インストール用ISOファイルをUSBメモリに展開

ダウンロードしたISOファイルを展開してUSBメモリに書き込む。

自分はUSBWriterを使用。

USBメモリから起動しインストール

基本はデフォルトで設定し、以下項目だけ変更した。

  • 静的IPの設定
  • Open SSHのインストール

SSHで繋いで環境構築

sudo apt update
sudo apt upgrade
sudo reboot

Webminのインストール

curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
sudo sh setup-repos.sh
sudo apt install --install-recommends webmin

その他

 →Ubuntu Server 22.04 LTSをインストールする
 →Ubuntu Proを使ってみる

Windows 11で休止状態を無効にし、hiberfil.sys を削除する

デスクトップPCに休止状態の設定はいらないだろうということで、無効にする。管理者権限でコマンドプロンプトを開き下記のコマンドを実行する。

powercfg.exe -h off

無効にすると自動的にhiberfil.sysが削除される。自分の環境ではCドライブの空き容量が64GB増えた。

xsdのURLは正しいのにEclipseのエディタ上でエラーになる

xsdのURLは正しいのにDownloading external resources is disabled.と表示されてエラーになっている。

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"

下記の設定を変更することで解決した。

Mavenの設定の「Download Artifact Javadoc」にチェックを入れる。

XML (Wild Web Developer)の設定の「Download external resources like referenced DTD, XSD」にチェックを入れる。

Hibernate Searchを7.2にアップデートしたらNoSuchMethodErrorが発生した

Hibernate Searchを7.2.1にアップグレードして、テストを実施したら下記のエラーが発生した。

NoSuchMethodError: 'java.lang.Object org.jboss.logging.Logger.getMessageLogger

コンパイルエラーにはなっていないが、テスト時のログ出力でエラーとなった。

他のライブラリとの依存関係の影響で、jboss-logging 3.5系を使用するようになっていた。3.6.0.Finalを使用するようにpom.xmlに依存関係を追記したところ、エラーは解消した。

<dependency>
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.6.0.Final</version>
</dependency>

Gradleの場合も同様。

implementation 'org.jboss.logging:jboss-logging:3.6.0.Final'