サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猛暑に注意を
techblog.lycorp.co.jp
比較の結果、クエリログを用いてトークナイザを構築し語彙数を増加させることで性能を向上できることがわかりました。特に同じ語彙数でSarashinaトークナイザと比較したときの性能差が大きく、自然文と大きく形式が異なる検索クエリの処理において専用のトークナイザを構築することの重要性が確認できました。 おわりに 本記事では、StaticEmbeddingを活用することでクエリ埋め込みの推論速度を大幅に改善した取り組みを紹介しました。構築したモデルはTransformerベースのモデルと比較して10倍以上の速度改善をしつつ、97%以上の性能維持を達成しました。 今後もより良いクエリ埋め込みを構築し、ユーザーの皆様の体験向上に努めたいと考えています。 参考文献 [1] Sosuke Nishikawa, Jun Hirako, Nobuhiro Kaji, Koki Watanabe, Hiroki
こんにちは。AndroidアプリエンジニアのMoriです。 先日、私が執筆した『良いコードの道しるべ 変化に強いソフトウェアを作る原則と実践』の出版を記念して、俺達はなぜ良いコードを書くのか 〜『良いコードの道しるべ』著者と探る変化に強いソフトウェア〜というトークイベントを開催しました。 本イベントでは、本書の紹介を行った後、類書の執筆者・翻訳者の方々を招き「コードの保守性」をテーマにパネルディスカッションを実施しました。この記事では、そのディスカッションで交わされた内容をダイジェストでお届けします。 登壇者紹介 森 篤史 / (@at_sushi_at) / LINEヤフー LINEヤフー株式会社所属、Androidアプリエンジニア。明石工業高等専門学校に入学後、プログラミングを学び始める。複数のプログラミングコンテストで受賞する一方、継続的な開発の難しさや大切さに気がつく。現在はコミュ
出前館開発本部でサーバーサイド開発を担当している本多です。LINEヤフーのグループ会社である出前館とは資本業務提携を結んでおり、LINEヤフーが開発をサポートしています。本ブログでは以下についてお話しします。 モノリス → マイクロサービスへのアーキテクチャ移行多くのマイクロサービスがデータベースを共有するというアーキテクチャの中でのデータ不整合や不正なデータが生じている負債(-1 の状態)の原因。0 → 1 ではなく、-1 → 1 での新規マイクロサービス開発における実践した手法。 出前館で取り組まれるマイクロサービスアーキテクチャとマイクロサービス化における"-1"の課題 近年、大規模なシステムを取り扱う企業・サービスでは、運用面や人的・インフラ的コスト面とトレードオフに、スケーラビリティや疎結合なシステムを構築するため、マイクロサービスアーキテクチャを推進しています。出前館においても
こんにちは、テクニカルライターの銭神です。私が所属するチームでは、LINE Developersサイトというドキュメントサイトを運営しています。このサイトでは、LINE APIに関するニュースや開発ドキュメントを公開しています。 主な業務はLINE Developersサイトのドキュメントを書くことですが、それ以外にも、文章を通した社内コミュニケーションの効率化に関する取り組みをしています。その一環として毎年実施しているのが、新卒向けの研修である「わかりやすい文章の書き方講座」です。 ふだん仕事をする上で、Slackやメールなど、文章を書く機会がたくさんあると思います。文章を書くときに、相手にきちんと伝わるかどうか不安になることはありませんか?この記事では、書き方講座の内容をもとに、わかりやすい文章を書くための基本的な文章術について紹介します。 この記事で紹介するのは、あくまで私が文章を書
はじめに こんにちは、iOSアプリエンジニアのKiichiです。こちらの記事で紹介されている通り、今年の3月に、LINEアプリ内ブラウザ上からYahoo!検索できる機能がリリースされました。本記事では、iOS実装を担当した私から、この機能の紹介と、開発における技術的詳細をお届けします。 新機能の紹介 LINEアプリでは、トークルームで送受信したリンクをアプリ内ブラウザで開くことが可能です。このブラウザはもともと、リロードや共有、ブラウザバックなどの基本機能を備えています。しかし、他のWebページへの導線となる検索機能は持っておらず、そのページ内で気になった内容がある場合は別のブラウザアプリで検索する必要がありました。 3月にリリースされた新バージョンのLINEアプリでは、アプリ内ブラウザに検索窓が追加され、そこに文字列を入力することでYahoo!検索をすることができます。Yahoo!検索は
はじめにこんにちは。SR(Service Reliability)チームでSRE(Site Reliability Engineer、サイト信頼性エンジニア)業務を担当しているChaeseung Le...
はじめに 本記事は、Tech-Verse 2025で発表予定の内容を詳しくまとめたものです。個人の実践経験をもとに、AIコーディングの現場で得た知見や手法を紹介します。 AIコーディングを進めるにあたり、私は「Lean & Mean Teams(少数精鋭のチーム)」というLINEヤフーのバリューから大きなインスピレーションを受けています。少人数の開発チームがAIエージェントと緊密に協調し、開発期間を短縮しつつ品質を守る体制を目指すことが、私自身のAIコーディング戦略の中心です。高い技術力を土台に、信頼性の高いAIパイプラインの設計と実装を心がけています。 とはいえ、数行のプロンプトでプロトタイプが動く “Vibe Coding” の甘い誘惑は、テクニカルデットやバグを招きがちです。本稿では「速いけれど雑」を回避するため、私自身の実戦経験から得た8つのプラクティスを紹介します。タスクの AI
This post is also available in the following languages. English, Korean, Chinese はじめに 先日、Anthropic社はClaude LLMを通じてモデルコンテキストプロトコル(Model Context Protocol、以下MCP)を発表しました。MCPは、大型言語モデル(large language model、以下LLM)が外部のデータソースや機能を利用するためのプロトコルで、誰でも利用可能なオープンプロトコルとしてAnthropic社が公開しました(参考)。これにより、多くのサービスでMCPをサポートするようになり、多くのユーザーがMCPを使ってLLMと外部サービスを接続する方法に興味を持ち始めました。 この記事では、注目されているMCPの概念とアーキテクチャについて説明し、LINE Messagin
LINEヤフー プロダクトストラテジ部の江口です。普段はバックエンドエンジニアとして業務に関わっていますが、今回はReact.jsについての記事を執筆します。この記事では私たちが開発する「UTS Portal」という社内向けプロダクトで発生していたReact.jsのパフォーマンス悪化問題について原因と改善内容をまとめたものです。 UTS Portalについて まず私たちが開発するUTS Portalについて説明します。 UTS PortalとはUTS(Universal Tracking System)という内製ログトラッキングシステムを利用する際に「どのようなトラッキングログを取得したいか?」を事前に定義・管理しておくためのポータルサイトです。 ログ定義を管理しておくことで、取得するログがユーザーのプライバシー侵害とならないかを事前にレビューする際や実際にログの取得を開始した後のモニタリ
banner_hashesで調べると、27.124.XX.XXか118.107.XX.XXであることが分かります。 banner_hexで調べた場合、banner_hashesの検索結果が混じり、なおかつ先ほどとは第1・第2オクテットが異なるIPアドレスが引っかかることが分かります。異なるIPアドレスは、18852/tcpを含め複数ポートが開いていました。また、ここでの検索結果には載せられていませんが、banner_hashesの場合、一致しているポートが異なる場合もあります。 これらはすべてcensysによると香港に位置しているサーバでした。 対策 本検体による攻撃対象は中国語話者であると見られ、主に東南アジア・東アジアにおいて観測されています。本稿公開時点においては日本語による検索ではmalineをインストールすることを目的とした偽サイトはヒットしません。 一般的に、このような正規ツー
こんにちは。LINEアプリの公式アカウント開発を担当している諏訪と楊です。この記事では、LINE Appの開発を進める上でAndroidの開発者のリソース問題を解決するため、iOSエンジニアがAndroid開発を学習し、実際に開発を始めるまでの過程や学習内容、実務内容などを紹介します。 開発を始めるにあたって 上記はLINEクライアントチームのAndroidエンジニアとiOSエンジニアの当時の人口比率です。 LINEクライアントチームではiOSエンジニアと比べるとAndroidエンジニアが少なく、LINEクライアント開発者全体の開発リソース比率の懸念がある一方で、LINEアプリはiOS/Android同時に同様のスペックで開発を行うことが求められており、機能リリースをスムーズに進行するためにも、このギャップの改善が組織としての目標でもありました。この状況は、我々のチームでも同様に影響があり
はじめに本ブログシリーズでは、Yahoo!ショッピングのデータ分析基盤を最適化するために取り組んだ大規模プロジェクト――Apache HiveからTrinoとApache Sparkへの移行――につい...
こんにちは。LINE Plus Tech Content StrategyチームのSung Chang Haです。私たちのチームはテクニカルライターで構成されています。LINE Plusで開発したさまざまなプラットフォームの技術ドキュメントを作成する傍ら、社内用語集「Words」のコンテンツやLINEヤフー Tech Blogの韓国語版コンテンツを担当しています。この記事では、LINE PlanetというVoIPプラットフォームのドキュメントにシングルソーシング(single sourcing)を適用し、ドキュメント管理の効率を改善した事例を紹介します。 シングルソーシングとは? シングルソーシングとは、単一のソースから複数の成果物を生成することを指します。ドキュメンテーションでは、以下の2つのことを意味します。 単一のソースから複数のフォーマット(HTML、PDF、EPUB など)でドキ
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、"Weekly Report" 共有の連載の第 69 回です。LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) コード品質のための My tips 今回のレポートはいつもとは異なり、コード品質の改善で私が心掛けていることを 5 点取り上げます。 1. 読み" "書きの隙間にご注意ください コードを書く際は、思いついた内容をそのままコードにするのではなく、他の人がそのコードをどう理解するのかを意識して整理する ことが必要です。
This post is also available in the following languages. English, Korean, Chinese はじめに こんにちは。Enablement EngineeringチームでSRE(site reliability engineer)業務を担当しているDahee Eoです。 私たちのチームは、LINEサービスをより高性能で効率的かつ安全にユーザーへ提供できるよう、さまざまな面から「Enablement」をサポートする役割を担っています。具体的には、メディアプラットフォームのサイト信頼性エンジニアリング(site reliability engineering)に加え、トラフィックの起点となるGSLB(global server load balancing)とCDN(content delivery network)に関する業務
はじめにこんにちは。SRE(site reliability engineering、サイト信頼性エンジニアリング)業務を担当しているEnablement EngineeringチームのDahee E...
LLMOpsとは? 近年、GPT-4のような大規模言語モデル(large language model、以下LLM)の使用が普及し、それを活用したアプリケーションの開発が活発に行われています。たとえば、24時間英語学習をサポートするアプリケーションや、お客様からのお問い合わせに自然に応答するアプリケーションなど、LLMは私たちの生活の中に溶け込んでいます。 しかし、このようなLLMベースのアプリケーションを直接開発し、商用サービス化するのはまだ難しい状況です。万能のように見えるLLMでも、現在の文脈を把握して確率に基づいて回答を生成することに特化しているため、もっともらしい応答を提供することがあります。そのため、予期しない回答などでサービス品質が低下するのを防ぐには、さまざまな技術を適用する複雑なプロセスが必要になります。 LLMが有意義な回答を提供できるように開発するためには、データセッ
こんにちは。GitHub Copilot Meetupイベントを運営している河本です。 本記事では、LINEヤフーの Developer Relations が行っている GitHub Copilot 推進の取り組みをご紹介いたします。GitHub Copilotの組織導入を検討されている方や、個人での活用を考えている方の参考になれば幸いです。 GitHub Copilotは、生成AIを活用した AI peer programming tool で、コードの自動補完や提案を行い、開発者の生産性を大幅に向上させる革新的なサービスです。当社では多くのエンジニアが日常的に活用し、開発効率の向上を実感しています。 社内限定の GitHub Copilotイベントからスモールスタート このGitHub Copilot企画は、Developer Relationsの山岡さんを中心にLINEヤフー社内限
こんにちは、Dev Contentチームのmochikoです。LINEヤフー株式会社で開発者向けのドキュメントを書くテクニカルライターとして働く傍ら、個人としても技術書を書いて出しています。 先日、IT系の出版社である技術評論社の編集者の方をLINEヤフーにお招きして、「本を出すきっかけ」の作り方を聞くイベントを開催しました。参加者も多く、非常に実りあるイベントとなりましたので、このブログでは開催までの経緯や当日の様子を紹介します。 編集者とエンジニアをつなぐイベントをやろう!オンラインでもオフラインでもやろう!2月20日(木) オンラインセッションを開催2月21日(金) オフィスでオフライン交流会を開催参加したエンジニアの感想開催を経てどれくらいの本が生まれそうか 編集者とエンジニアをつなぐ 1on1などで社内の若手エンジニアと話すと、私自身が技術書を書いていることから「実は自分も本を書
LINEアプリ開発本部 モバイル・ディベロッパーエクスペリエンスチームの@giginetです。 皆さん、デバッグしてますか? LINE iOSアプリでは、Xcode 16から、デバッガの式評価が失敗したり、非常に長い時間がかかる現象が報告されています。この記事では、その問題に対処すべく巨大なプロジェクトにおけるデバッグ体験の改善について行った取り組みをいくつかご紹介します。 LINEアプリにおける、LLDBの速度と安定性の課題 LINEのiOSアプリは、非常に巨大なプロジェクトです。それ故、単純なデバッグ体験においてもパフォーマンス上の問題が発生しています。例えば、単にある実行ステップにブレークポイントを張り、変数を評価するだけでも、数分程度の時間がかかることがあります。 また、LINE固有の依存管理による課題もあります。LINEは、外部の依存関係が非常に多く、通常のパッケージ管理システム
はじめに こんにちは。Game Platform DevのDong Hun Ryoo、Takenaka、Zhang Youlu(Michael)、Hyungjung Leeです。私たちの組織は、ゲームパブリッシングに必要なさまざまな機能を開発・運用する役割を担っています。 私たちは最近、組織内の業務効率を高めるためにさまざまなLLM(large language model)アプリケーションを開発し、それと連携してLLMOpsシステムの構築プロジェクトを行いました。プロジェクトの主な目標の一つは、参入障壁が高いLLMアプリケーション開発を、職種に関係なく誰でも簡単に作成できる環境を構築することでした。そのため、さまざまなことを考えながら試行錯誤を経た結果、誰でも簡単にアクセスできる開発・デプロイ環境を整えました。 今回の記事では、LLMアプリケーションの一般的な開発方法と開発プロセスで直面
こんにちは。LINEヤフーでAIプラットフォーム向けのKubernetesクラスタの設計や構築、運用を担当している大村です。 LINEヤフーでは、100を超えるサービス向けにAI/機械学習を活用したサービスのライフサイクル全般(MLOps)をサポートするAIプラットフォームを内製しています。 最近、AIプラットフォーム向けのKubernetesクラスタであるAI Cloud Platform(ACP)において、H100 GPUクラスタの導入が行われ、本格的に分散深層学習ワークロードを受け入れる基盤が整ってきました。それを契機として、ACPにおけるバッチスケジューラの選定を行いました。その結果、kube-scheduler(Scheduling Frameworkによる拡張)+Kueueという組み合わせを導入することにしました。 このブログでは、その検討の軌跡を紹介することで ACPにおける
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 61 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 悪いな、この関数 1 人用なんだ 以下の calculateSomeFormula は、長時間かかる計算の結果を返す関数です。この関数では、複数の計算を並行して行うため、スレッドセーフであることを前提とします。(Kotlin で並行性制御をしたい場合はコルーチンを使うのが普通ですが、ここでは呼び
はじめに こんにちは。筑波大学情報学群情報科学類3年の浅田睦葉と申します。 私は2024年9月に行われた8日間のサマーインターンシップで、内製分散データベースシステム FractalDB の開発業務に参加しました。この記事では、インターンシップ中の課題とその取り組みについて紹介します。 FractalDB FractalDBとは、LINEヤフー内製で開発・運用されている分散データベースシステムです。現在、同じ分散データベースシステムであるApache Cassandraは、各サービス向けに独立にデータベースを構築し運用されています。 内部では分散型のキーバリューストアであるFoundationDBが使用されており、Cassandraクライアントから送信されるパケットをパースしてCQLを受け取り、FoundationDBへの操作に変換しています。したがって、これまでCassandraを利用し
LINEヤフー株式会社で、出前館の SRE をしている岡田 将です。今回の記事では、Wide Events と Honeycomb を組み合わせて可観測性を高める手法、主に Unknown unknowns (未知の未知) に対応しやすくするアプローチを紹介します。 Wide Events Wide Events は、一つのイベントにあらゆる関連情報をまとめて記録するアプローチです。ログ、メトリクス、トレースを分けて考えるのではなく、リクエストやジョブ単位で情報を広く詰め込むことで、後から自由に分析できるのが特長といえます。 このアプローチに興味を持つきっかけになったのは、A Practitioner’s Guide to Wide Events、 All you need is Wide Events, not “Metrics, Logs and Traces” というブログ記事を読ん
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 58 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 言葉にできない 以下のような、ABC と XYZ という 2 種類のパラメータの文字列形式があるとします。 ABC: a=foo,b=bar,c=bazXYZ: x:foo;y:bar;z:baz これらの文字列からパラメータ (foo, bar, baz) を取得したいです。そこで以下のように
LINEヤフーでは、2024年の10月に社内のWebフロントエンド開発に携わる社内のメンバーを対象に、昨今のWebフロントエンド関連のトレンドや周辺ツールの利用状況について調査するアンケート「State of LY Frontend 2024」を実施しました。これは、以前は「UIT Global Survey」とも呼ばれていた取り組みの後継でもあり、毎年社内に向けて実施されているものです(昨年度の実施レポート)。同様の取り組みとして State of JavaScript や State of CSS が知られていますが、そのLINEヤフー版と想像していただけるとわかりやすいかと思います。 今回のサーベイは、合併会社誕生後1年がたち、新会社の体制が整って以来初めて広く周知されたものとなりました。そのため、Webフロントエンド開発者だけで 342人 という、単独のグループ社員としてはあまり例
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 57 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 百見は一 fetch にしかず テキストメッセージを送受信するアプリケーションを実装しているとします。以下の sendMessage 関数では、引数として受け取った MessageModel に変換し、それをクエリパラメータとして送信する API を呼び出しています。 private fun s
次のページ
このページを最初にブックマークしてみませんか?
『LINEヤフー Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く